wordpress-starter 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. data/CHANGELOG.md +4 -1
  2. data/README.md +12 -0
  3. data/lib/wordpress-starter.rb +2 -1
  4. data/templates/bootstrap/404.php +24 -0
  5. data/templates/bootstrap/admin/README.txt +25 -0
  6. data/templates/bootstrap/admin/assets/css/admin-style.css +838 -0
  7. data/templates/bootstrap/admin/assets/css/colorpicker.css +177 -0
  8. data/templates/bootstrap/admin/assets/images/1col.png +0 -0
  9. data/templates/bootstrap/admin/assets/images/2-col-portfolio.png +0 -0
  10. data/templates/bootstrap/admin/assets/images/2cl.png +0 -0
  11. data/templates/bootstrap/admin/assets/images/2cr.png +0 -0
  12. data/templates/bootstrap/admin/assets/images/3-col-portfolio.png +0 -0
  13. data/templates/bootstrap/admin/assets/images/3cm.png +0 -0
  14. data/templates/bootstrap/admin/assets/images/3cr.png +0 -0
  15. data/templates/bootstrap/admin/assets/images/4-col-portfolio.png +0 -0
  16. data/templates/bootstrap/admin/assets/images/accept.png +0 -0
  17. data/templates/bootstrap/admin/assets/images/button_check.png +0 -0
  18. data/templates/bootstrap/admin/assets/images/colorpicker/blank.gif +0 -0
  19. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_background.png +0 -0
  20. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_hex.png +0 -0
  21. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_hsb_b.png +0 -0
  22. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_hsb_h.png +0 -0
  23. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_hsb_s.png +0 -0
  24. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_indic.gif +0 -0
  25. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_overlay.png +0 -0
  26. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_rgb_b.png +0 -0
  27. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_rgb_g.png +0 -0
  28. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_rgb_r.png +0 -0
  29. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_select.gif +0 -0
  30. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_submit.png +0 -0
  31. data/templates/bootstrap/admin/assets/images/colorpicker/select.png +0 -0
  32. data/templates/bootstrap/admin/assets/images/dropdown-arrow.png +0 -0
  33. data/templates/bootstrap/admin/assets/images/favicon.ico +0 -0
  34. data/templates/bootstrap/admin/assets/images/icon-add.png +0 -0
  35. data/templates/bootstrap/admin/assets/images/icon-backup.png +0 -0
  36. data/templates/bootstrap/admin/assets/images/icon-delete.png +0 -0
  37. data/templates/bootstrap/admin/assets/images/icon-docs.png +0 -0
  38. data/templates/bootstrap/admin/assets/images/icon-edit.png +0 -0
  39. data/templates/bootstrap/admin/assets/images/icon-home.png +0 -0
  40. data/templates/bootstrap/admin/assets/images/icon-info.png +0 -0
  41. data/templates/bootstrap/admin/assets/images/icon-notice.png +0 -0
  42. data/templates/bootstrap/admin/assets/images/icon-paint.png +0 -0
  43. data/templates/bootstrap/admin/assets/images/icon-settings.png +0 -0
  44. data/templates/bootstrap/admin/assets/images/icon-slider.png +0 -0
  45. data/templates/bootstrap/admin/assets/images/icon-warn.png +0 -0
  46. data/templates/bootstrap/admin/assets/images/icon_option.png +0 -0
  47. data/templates/bootstrap/admin/assets/images/loading-bottom.gif +0 -0
  48. data/templates/bootstrap/admin/assets/images/select.png +0 -0
  49. data/templates/bootstrap/admin/assets/images/sign_warning.png +0 -0
  50. data/templates/bootstrap/admin/assets/images/stop.png +0 -0
  51. data/templates/bootstrap/admin/assets/images/toggle_tabs.png +0 -0
  52. data/templates/bootstrap/admin/assets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  53. data/templates/bootstrap/admin/assets/images/warning.png +0 -0
  54. data/templates/bootstrap/admin/assets/images/wrench.png +0 -0
  55. data/templates/bootstrap/admin/assets/images/wrench16.png +0 -0
  56. data/templates/bootstrap/admin/assets/js/ajaxupload.js +606 -0
  57. data/templates/bootstrap/admin/assets/js/colorpicker.js +455 -0
  58. data/templates/bootstrap/admin/assets/js/cookie.js +1 -0
  59. data/templates/bootstrap/admin/assets/js/jquery.maskedinput-1.2.2.js +252 -0
  60. data/templates/bootstrap/admin/assets/js/jquery.tipsy.js +241 -0
  61. data/templates/bootstrap/admin/assets/js/of-medialibrary-uploader.js +168 -0
  62. data/templates/bootstrap/admin/assets/js/smof.js +623 -0
  63. data/templates/bootstrap/admin/classes/class.options-machine.php +627 -0
  64. data/templates/bootstrap/admin/front-end/options.php +77 -0
  65. data/templates/bootstrap/admin/functions/functions.admin.php +76 -0
  66. data/templates/bootstrap/admin/functions/functions.interface.php +232 -0
  67. data/templates/bootstrap/admin/functions/functions.load.php +14 -0
  68. data/templates/bootstrap/admin/functions/functions.mediauploader.php +194 -0
  69. data/templates/bootstrap/admin/functions/functions.options.php +508 -0
  70. data/templates/bootstrap/admin/functions/functions.php +0 -0
  71. data/templates/bootstrap/admin/index.php +87 -0
  72. data/templates/bootstrap/admin/layouts/default.css +0 -0
  73. data/templates/bootstrap/admin/layouts/placebo.css +0 -0
  74. data/templates/bootstrap/archive.php +57 -0
  75. data/templates/bootstrap/category.php +40 -0
  76. data/templates/bootstrap/comments.php +65 -0
  77. data/templates/bootstrap/content-aside.php +26 -0
  78. data/templates/bootstrap/content-image.php +29 -0
  79. data/templates/bootstrap/content-link.php +27 -0
  80. data/templates/bootstrap/content-none.php +21 -0
  81. data/templates/bootstrap/content-page.php +24 -0
  82. data/templates/bootstrap/content-quote.php +26 -0
  83. data/templates/bootstrap/content-status.php +33 -0
  84. data/templates/bootstrap/content.php +67 -0
  85. data/templates/bootstrap/editor-style.scss +72 -0
  86. data/templates/bootstrap/footer.php +29 -0
  87. data/templates/bootstrap/functions.php +1528 -0
  88. data/templates/bootstrap/header.php +74 -0
  89. data/templates/bootstrap/ie.scss +1 -0
  90. data/templates/bootstrap/images/bg/bg0.png +0 -0
  91. data/templates/bootstrap/images/bg/bg1.png +0 -0
  92. data/templates/bootstrap/images/bg/bg10.png +0 -0
  93. data/templates/bootstrap/images/bg/bg11.png +0 -0
  94. data/templates/bootstrap/images/bg/bg2.png +0 -0
  95. data/templates/bootstrap/images/bg/bg3.png +0 -0
  96. data/templates/bootstrap/images/bg/bg4.png +0 -0
  97. data/templates/bootstrap/images/bg/bg5.png +0 -0
  98. data/templates/bootstrap/images/bg/bg6.jpg +0 -0
  99. data/templates/bootstrap/images/bg/bg7.jpg +0 -0
  100. data/templates/bootstrap/images/bg/bg8.png +0 -0
  101. data/templates/bootstrap/images/bg/bg9.png +0 -0
  102. data/templates/bootstrap/images/glyphicons-halflings-white.png +0 -0
  103. data/templates/bootstrap/images/glyphicons-halflings.png +0 -0
  104. data/templates/bootstrap/index.php +19 -0
  105. data/templates/bootstrap/javascripts/app.js +6 -0
  106. data/templates/bootstrap/javascripts/bootstrap.js +2159 -0
  107. data/templates/bootstrap/javascripts/bootstrap.min.js +6 -0
  108. data/templates/{project/javascripts/moderninzr.min.js → bootstrap/javascripts/modernizr.min.js} +0 -0
  109. data/templates/bootstrap/languages/readme.txt +6 -0
  110. data/templates/bootstrap/license.txt +281 -0
  111. data/templates/bootstrap/loop.php +30 -0
  112. data/templates/bootstrap/manifest.rb +156 -0
  113. data/templates/bootstrap/options.php +42 -0
  114. data/templates/bootstrap/page.php +29 -0
  115. data/templates/bootstrap/print.scss +104 -0
  116. data/templates/bootstrap/readme.txt +6 -0
  117. data/templates/bootstrap/sass/_app.scss +10 -0
  118. data/templates/bootstrap/sass/_settings.scss +301 -0
  119. data/templates/bootstrap/screen.scss +1 -0
  120. data/templates/bootstrap/screenshot.png +0 -0
  121. data/templates/bootstrap/search.php +31 -0
  122. data/templates/bootstrap/searchform.php +31 -0
  123. data/templates/bootstrap/sidebar.php +15 -0
  124. data/templates/bootstrap/single.php +31 -0
  125. data/templates/bootstrap/style.css +18 -0
  126. data/templates/bootstrap/tag.php +41 -0
  127. data/templates/foundation/functions.php +8 -9
  128. data/templates/foundation/sass/_app.scss +2 -0
  129. data/templates/project/functions.php +1 -1
  130. data/templates/project/javascripts/app.js +2 -5
  131. data/templates/project/javascripts/modernizr.min.js +4 -0
  132. data/templates/project/manifest.rb +1 -1
  133. metadata +141 -2
@@ -0,0 +1,627 @@
1
+ <?php
2
+ /**
3
+ * SMOF Options Machine Class
4
+ *
5
+ * @package WordPress
6
+ * @subpackage SMOF
7
+ * @since 1.0.0
8
+ * @author Syamil MJ
9
+ */
10
+
11
+ class Options_Machine {
12
+
13
+ /**
14
+ * PHP5 contructor
15
+ *
16
+ * @since 1.0.0
17
+ */
18
+ function __construct( $options ) {
19
+
20
+ $return = $this->optionsframework_machine( $options );
21
+
22
+ $this->Inputs = $return[0];
23
+ $this->Menu = $return[1];
24
+ $this->Defaults = $return[2];
25
+
26
+ }
27
+
28
+
29
+ /**
30
+ * Process options data and build option fields
31
+ *
32
+ * @uses get_option()
33
+ *
34
+ * @access public
35
+ * @since 1.0.0
36
+ *
37
+ * @return array
38
+ */
39
+ public static function optionsframework_machine( $options ) {
40
+
41
+ $data = get_option( OPTIONS );
42
+
43
+ $defaults = array();
44
+ $counter = 0;
45
+ $menu = $output = '';
46
+
47
+ foreach ( $options as $value ) {
48
+ $counter++;
49
+ $val = '';
50
+
51
+ //create array of defaults
52
+ if ( $value['type'] == 'multicheck' ) {
53
+ if ( is_array( $value['std'] ) ) {
54
+ foreach ( $value['std'] as $i => $key ) {
55
+ $defaults[$value['id']][$key] = true;
56
+ }
57
+ } else {
58
+ $defaults[$value['id']][$value['std']] = true;
59
+ }
60
+ } else {
61
+ if ( isset( $value['id'] ) ) $defaults[$value['id']] = $value['std'];
62
+ }
63
+
64
+ //Start Heading
65
+ if ( $value['type'] != 'heading' ) {
66
+ $class = '';
67
+ if ( isset( $value['class'] ) ) {
68
+ $class = $value['class'];
69
+ }
70
+
71
+ //hide items in checkbox group
72
+ $fold = '';
73
+ if ( array_key_exists( 'fold', $value ) ) {
74
+ if ( $data[$value['fold']] ) {
75
+ $fold = 'f_'.$value['fold'].' ';
76
+ }
77
+ else {
78
+ $fold = 'f_'.$value['fold'].' temphide ';
79
+ }
80
+ }
81
+
82
+ $output .= '<div id="section-'.$value['id'].'" class="'.$fold.'section section-'.$value['type'].' '. $class .'">'."\n";
83
+
84
+ //only show header if 'name' value exists
85
+ if ( $value['name'] ) $output .= '<h3 class="heading">'. $value['name'] .'</h3>'."\n";
86
+
87
+ $output .= '<div class="option">'."\n" . '<div class="controls">'."\n";
88
+ }
89
+ //End Heading
90
+
91
+ //switch statement to handle various options type
92
+ switch ( $value['type'] ) {
93
+ //text input
94
+ case 'text':
95
+ $t_value = '';
96
+ $t_value = stripslashes( $data[$value['id']] );
97
+
98
+ $mini = '';
99
+ if ( ! isset( $value['mod'] ) ) $value['mod'] = '';
100
+ if ( $value['mod'] == 'mini' ) {
101
+ $mini = 'mini';
102
+ }
103
+
104
+ $output .= '<input class="of-input '.$mini.'" name="'.$value['id'].'" id="'. $value['id'] .'" type="'. $value['type'] .'" value="'. $t_value .'" />';
105
+ break;
106
+
107
+ //select option
108
+ case 'select':
109
+ $mini = '';
110
+ if ( ! isset( $value['mod'] ) ) $value['mod'] = '';
111
+ if ( $value['mod'] == 'mini' ) {
112
+ $mini = 'mini';
113
+ }
114
+ $output .= '<div class="select_wrapper ' . $mini . '">';
115
+ $output .= '<select class="select of-input" name="'.$value['id'].'" id="'. $value['id'] .'">';
116
+ foreach ( $value['options'] as $select_ID => $option ) {
117
+ $output .= '<option id="' . $select_ID . '" value="'.$option.'" ' . selected( $data[$value['id']], $option, false ) . ' />'.$option.'</option>';
118
+ }
119
+ $output .= '</select></div>';
120
+ break;
121
+ //textarea option
122
+ case 'textarea':
123
+ $cols = '8';
124
+ $ta_value = '';
125
+
126
+ if ( isset( $value['options'] ) ) {
127
+ $ta_options = $value['options'];
128
+ if ( isset( $ta_options['cols'] ) ) {
129
+ $cols = $ta_options['cols'];
130
+ }
131
+ }
132
+
133
+ $ta_value = stripslashes( $data[$value['id']] );
134
+ $output .= '<textarea class="of-input" name="'.$value['id'].'" id="'. $value['id'] .'" cols="'. $cols .'" rows="8">'.$ta_value.'</textarea>';
135
+ break;
136
+ //radiobox option
137
+ case 'radio':
138
+ foreach ( $value['options'] as $option => $name ) {
139
+ $output .= '<input class="of-input of-radio" name="'.$value['id'].'" type="radio" value="'.$option.'" ' . checked( $data[$value['id']], $option, false ) . ' /><label class="radio">'.$name.'</label><br/>';
140
+ }
141
+ break;
142
+
143
+ //checkbox option
144
+ case 'checkbox':
145
+ if ( ! isset( $data[$value['id']] ) ) {
146
+ $data[$value['id']] = 0;
147
+ }
148
+
149
+ $fold = '';
150
+ if ( array_key_exists( 'folds', $value ) )
151
+ $fold = 'fld ';
152
+
153
+ $output .= '<input type="hidden" class="'.$fold.'checkbox aq-input" name="'.$value['id'].'" id="'. $value['id'] .'" value="0"/>';
154
+ $output .= '<input type="checkbox" class="'.$fold.'checkbox of-input" name="'.$value['id'].'" id="'. $value['id'] .'" value="1" '. checked( $data[$value['id']], 1, false ) .' />';
155
+ break;
156
+
157
+ //multiple checkbox option
158
+ case 'multicheck':
159
+ $multi_stored = $data[$value['id']];
160
+
161
+ foreach ( $value['options'] as $key => $option ) {
162
+ if ( !isset( $multi_stored[$key] ) ) {
163
+ $multi_stored[$key] = '';
164
+ }
165
+ $of_key_string = $value['id'] . '_' . $key;
166
+ $output .= '<input type="checkbox" class="checkbox of-input" name="'.$value['id'].'['.$key.']'.'" id="'. $of_key_string .'" value="1" '. checked( $multi_stored[$key], 1, false ) .' /><label class="multicheck" for="'. $of_key_string .'">'. $option .'</label><br />';
167
+ }
168
+ break;
169
+ //ajax image upload option
170
+ case 'upload':
171
+ if ( !isset( $value['mod'] ) ) $value['mod'] = '';
172
+ $output .= Options_Machine::optionsframework_uploader_function( $value['id'], $value['std'], $value['mod'] );
173
+ break;
174
+ // native media library uploader - @uses optionsframework_media_uploader_function()
175
+ case 'media':
176
+ $_id = strip_tags( strtolower( $value['id'] ) );
177
+ $int = '';
178
+ $int = optionsframework_mlu_get_silentpost( $_id );
179
+ if ( ! isset( $value['mod'] ) )
180
+ $value['mod'] = '';
181
+ $output .= Options_Machine::optionsframework_media_uploader_function( $value['id'], $value['std'], $int, $value['mod'] ); // New AJAX Uploader using Media Library
182
+ break;
183
+
184
+ //colorpicker option
185
+ case 'color':
186
+ $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: '.$data[$value['id']].'"></div></div>';
187
+ $output .= '<input class="of-color" name="'.$value['id'].'" id="'. $value['id'] .'" type="text" value="'. $data[$value['id']] .'" />';
188
+ break;
189
+
190
+ //typography option
191
+ case 'typography':
192
+ $typography_stored = isset( $data[$value['id']] ) ? $data[$value['id']] : $value['std'];
193
+ /* Font Size */
194
+ if ( isset( $typography_stored['size'] ) ) {
195
+ $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
196
+ $output .= '<select class="of-typography of-typography-size select" name="'.$value['id'].'[size]" id="'. $value['id'].'_size">';
197
+ for ( $i = 9; $i < 20; $i++ ) {
198
+ $test = $i.'px';
199
+ $output .= '<option value="'. $i .'px" ' . selected( $typography_stored['size'], $test, false ) . '>'. $i .'px</option>';
200
+ }
201
+
202
+ $output .= '</select></div>';
203
+ }
204
+
205
+ /* Line Height */
206
+ if ( isset( $typography_stored['height'] ) ) {
207
+ $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
208
+ $output .= '<select class="of-typography of-typography-height select" name="'.$value['id'].'[height]" id="'. $value['id'].'_height">';
209
+ for ( $i = 20; $i < 38; $i++ ) {
210
+ $test = $i.'px';
211
+ $output .= '<option value="'. $i .'px" ' . selected( $typography_stored['height'], $test, false ) . '>'. $i .'px</option>';
212
+ }
213
+
214
+ $output .= '</select></div>';
215
+ }
216
+ /* Font Face */
217
+ if ( isset( $typography_stored['face'] ) ) {
218
+ $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
219
+ $output .= '<select class="of-typography of-typography-face select" name="'.$value['id'].'[face]" id="'. $value['id'].'_face">';
220
+ $faces = array(
221
+ 'arial' => 'Arial',
222
+ 'verdana' => 'Verdana, Geneva',
223
+ 'trebuchet' => 'Trebuchet',
224
+ 'georgia' => 'Georgia',
225
+ 'times' => 'Times New Roman',
226
+ 'tahoma' => 'Tahoma, Geneva',
227
+ 'palatino' => 'Palatino',
228
+ 'helvetica' => 'Helvetica',
229
+ );
230
+
231
+ foreach ( $faces as $i => $face ) {
232
+ $output .= '<option value="'. $i .'" ' . selected( $typography_stored['face'], $i, false ) . '>'. $face .'</option>';
233
+ }
234
+
235
+ $output .= '</select></div>';
236
+ }
237
+
238
+ /* Font Weight */
239
+ if ( isset( $typography_stored['style'] ) ) {
240
+ $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
241
+ $output .= '<select class="of-typography of-typography-style select" name="'.$value['id'].'[style]" id="'. $value['id'].'_style">';
242
+ $styles = array(
243
+ 'normal' => 'Normal',
244
+ 'italic' => 'Italic',
245
+ 'bold' => 'Bold',
246
+ 'bold italic' => 'Bold Italic',
247
+ );
248
+
249
+ foreach ( $styles as $i => $style ) {
250
+ $output .= '<option value="'. $i .'" ' . selected( $typography_stored['style'], $i, false ) . '>'. $style .'</option>';
251
+ }
252
+ $output .= '</select></div>';
253
+ }
254
+
255
+ /* Font Color */
256
+ if ( isset( $typography_stored['color'] ) ) {
257
+ $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: '.$typography_stored['color'].'"></div></div>';
258
+ $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="'.$value['id'].'[color]" id="'. $value['id'] .'_color" type="text" value="'. $typography_stored['color'] .'" />';
259
+ }
260
+ break;
261
+ // border option
262
+ case 'border':
263
+ /* Border Width */
264
+ $border_stored = $data[$value['id']];
265
+ $output .= '<div class="select_wrapper border-width">';
266
+ $output .= '<select class="of-border of-border-width select" name="'.$value['id'].'[width]" id="'. $value['id'].'_width">';
267
+ for ( $i = 0; $i < 21; $i++ ) {
268
+ $output .= '<option value="'. $i .'" ' . selected( $border_stored['width'], $i, false ) . '>'. $i .'</option>';
269
+ }
270
+ $output .= '</select></div>';
271
+
272
+ /* Border Style */
273
+ $output .= '<div class="select_wrapper border-style">';
274
+ $output .= '<select class="of-border of-border-style select" name="'.$value['id'].'[style]" id="'. $value['id'].'_style">';
275
+
276
+ $styles = array(
277
+ 'none' => 'None',
278
+ 'solid' => 'Solid',
279
+ 'dashed' => 'Dashed',
280
+ 'dotted' => 'Dotted',
281
+ );
282
+
283
+ foreach ( $styles as $i => $style ) {
284
+ $output .= '<option value="'. $i .'" ' . selected( $border_stored['style'], $i, false ) . '>'. $style .'</option>';
285
+ }
286
+
287
+ $output .= '</select></div>';
288
+
289
+ /* Border Color */
290
+ $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: '.$border_stored['color'].'"></div></div>';
291
+ $output .= '<input class="of-color of-border of-border-color" name="'.$value['id'].'[color]" id="'. $value['id'] .'_color" type="text" value="'. $border_stored['color'] .'" />';
292
+ break;
293
+ // images checkbox - use image as checkboxes
294
+ case 'images':
295
+ $i = 0;
296
+ $select_value = $data[$value['id']];
297
+
298
+ foreach ( $value['options'] as $key => $option ) {
299
+ $i++;
300
+
301
+ $checked = $selected = '';
302
+ if ( NULL != checked( $select_value, $key, false ) ) {
303
+ $checked = checked( $select_value, $key, false );
304
+ $selected = 'of-radio-img-selected';
305
+ }
306
+ $output .= '<span>';
307
+ $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="'.$key.'" name="'.$value['id'].'" '.$checked.' />';
308
+ $output .= '<div class="of-radio-img-label">'. $key .'</div>';
309
+ $output .= '<img src="'.$option.'" alt="" class="of-radio-img-img '. $selected .'" onClick="document.getElementById(\'of-radio-img-'. $value['id'] . $i.'\').checked = true;" />';
310
+ $output .= '</span>';
311
+ }
312
+ break;
313
+ // info (for small intro box etc)
314
+ case 'info':
315
+ $info_text = $value['std'];
316
+ $output .= '<div class="of-info">'.$info_text.'</div>';
317
+ break;
318
+ // display a single image
319
+ case 'image':
320
+ $src = $value['std'];
321
+ $output .= '<img src="'.$src.'">';
322
+ break;
323
+ // tab heading
324
+ case 'heading':
325
+ if ( $counter >= 2 ) {
326
+ $output .= '</div>'."\n";
327
+ }
328
+ $header_class = str_replace( ' ', '', strtolower( $value['name'] ) );
329
+ $jquery_click_hook = str_replace( ' ', '', strtolower( $value['name'] ) );
330
+ $jquery_click_hook = 'of-option-' . $jquery_click_hook;
331
+ $menu .= '<li class="'. $header_class .'"><a title="'. $value['name'] .'" href="#'. $jquery_click_hook .'">'. $value['name'] .'</a></li>';
332
+ $output .= '<div class="group" id="'. $jquery_click_hook .'"><h2>'.$value['name'].'</h2>'."\n";
333
+ break;
334
+ // drag & drop slide manager
335
+ case 'slider':
336
+ $_id = strip_tags( strtolower( $value['id'] ) );
337
+ $int = '';
338
+ $int = optionsframework_mlu_get_silentpost( $_id );
339
+ $output .= '<div class="slider"><ul id="'.$value['id'].'" rel="'.$int.'">';
340
+ $slides = $data[$value['id']];
341
+ $count = count( $slides );
342
+ if ( $count < 2 ) {
343
+ $oldorder = 1;
344
+ $order = 1;
345
+ $output .= Options_Machine::optionsframework_slider_function( $value['id'], $value['std'], $oldorder, $order, $int );
346
+ }
347
+ else {
348
+ $i = 0;
349
+ foreach ( $slides as $slide ) {
350
+ $oldorder = $slide['order'];
351
+ $i++;
352
+ $order = $i;
353
+ $output .= Options_Machine::optionsframework_slider_function( $value['id'], $value['std'], $oldorder, $order, $int );
354
+ }
355
+ }
356
+ $output .= '</ul>';
357
+ $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
358
+ break;
359
+ // drag & drop block manager
360
+ case 'sorter':
361
+ $sortlists = isset( $data[$value['id']] ) && ! empty( $data[$value['id']] ) ? $data[$value['id']] : $value['std'];
362
+ $output .= '<div id="'.$value['id'].'" class="sorter">';
363
+
364
+ if ( $sortlists ) {
365
+ foreach ( $sortlists as $group => $sortlist ) {
366
+ $output .= '<ul id="'.$value['id'].'_'.$group.'" class="sortlist_'.$value['id'].'">';
367
+ $output .= '<h3>'.$group.'</h3>';
368
+ foreach ( $sortlist as $key => $list ) {
369
+ $output .= '<input class="sorter-placebo" type="hidden" name="'.$value['id'].'['.$group.'][placebo]" value="placebo">';
370
+ if ( $key != 'placebo' ) {
371
+ $output .= '<li id="'.$key.'" class="sortee">';
372
+ $output .= '<input class="position" type="hidden" name="'.$value['id'].'['.$group.']['.$key.']" value="'.$list.'">';
373
+ $output .= $list;
374
+ $output .= '</li>';
375
+ }
376
+ }
377
+ $output .= '</ul>';
378
+ }
379
+ }
380
+ $output .= '</div>';
381
+ break;
382
+ // background images option
383
+ case 'tiles':
384
+ $i = 0;
385
+ $select_value = isset( $data[$value['id']] ) && !empty( $data[$value['id']] ) ? $data[$value['id']] : '';
386
+ foreach ( $value['options'] as $key => $option ) {
387
+ $i++;
388
+ $checked = $selected = '';
389
+ if ( NULL != checked( $select_value, $option, false ) ) {
390
+ $checked = checked( $select_value, $option, false );
391
+ $selected = 'of-radio-tile-selected';
392
+ }
393
+ $output .= '<span>';
394
+ $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="'.$option.'" name="'.$value['id'].'" '.$checked.' />';
395
+ $output .= '<div class="of-radio-tile-img '. $selected .'" style="background: url('.$option.')" onClick="document.getElementById(\'of-radio-tile-'. $value['id'] . $i.'\').checked = true;"></div>';
396
+ $output .= '</span>';
397
+ }
398
+ break;
399
+ // backup and restore options data
400
+ case 'backup':
401
+ $instructions = $value['desc'];
402
+ $backup = get_option( BACKUPS );
403
+ if ( !isset( $backup['backup_log'] ) ) {
404
+ $log = 'No backups yet';
405
+ }
406
+ else {
407
+ $log = $backup['backup_log'];
408
+ }
409
+
410
+ $output .= '<div class="backup-box">';
411
+ $output .= '<div class="instructions">'.$instructions."\n";
412
+ $output .= '<p><strong>'. __( 'Last Backup : ' ).'<span class="backup-log">'.$log.'</span></strong></p></div>'."\n";
413
+ $output .= '<a href="#" id="of_backup_button" class="button" title="'.__( 'Backup Options', 'bootstrap' ).'">'.__( 'Backup Options', 'bootstrap' ).'</a>';
414
+ $output .= '<a href="#" id="of_restore_button" class="button" title="'.__( 'Restore Options', 'bootstrap' ).'">'.__( 'Restore Options', 'bootstrap' ).'</a>';
415
+ $output .= '</div>';
416
+ break;
417
+ // export or import data between different installs
418
+ case 'transfer':
419
+ $instructions = $value['desc'];
420
+ $output .= '<textarea id="export_data" rows="8">'.base64_encode( serialize( $data ) ) /* 100% safe - ignore theme check nag */ .'</textarea>'."\n";
421
+ $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">'.__( 'Import Options', 'bootstrap' ).'</a>';
422
+ break;
423
+ }
424
+
425
+ // description of each option
426
+ if ( $value['type'] != 'heading' ) {
427
+ if ( ! isset( $value['desc'] ) ) {
428
+ $explain_value = '';
429
+ }
430
+ else {
431
+ $explain_value = '<div class="explain">'. $value['desc'] .'</div>'."\n";
432
+ }
433
+ $output .= '</div>'.$explain_value."\n";
434
+ $output .= '<div class="clear"> </div></div></div>'."\n";
435
+ }
436
+ }
437
+ $output .= '</div>';
438
+
439
+ return array( $output, $menu, $defaults );
440
+ }
441
+
442
+ /**
443
+ * Ajax image uploader - supports various types of image types
444
+ *
445
+ * @uses get_option()
446
+ *
447
+ * @access public
448
+ * @since 1.0.0
449
+ *
450
+ * @return string
451
+ */
452
+ public static function optionsframework_uploader_function( $id, $std, $mod ) {
453
+ $data = get_option( OPTIONS );
454
+
455
+ $uploader = '';
456
+ $upload = $data[$id];
457
+ $hide = '';
458
+
459
+ if ( $mod == 'min' ) {
460
+ $hide = 'hide';
461
+ }
462
+
463
+ if ( $upload != '' ) {
464
+ $val = $upload;
465
+ }
466
+ else {
467
+ $val = $std;
468
+ }
469
+
470
+ $uploader .= '<input class="'.$hide.' upload of-input" name="'. $id .'" id="'. $id .'_upload" value="'. $val .'" />';
471
+ $uploader .= '<div class="upload_button_div"><span class="button image_upload_button" id="'.$id.'">'._( 'Upload' ).'</span>';
472
+
473
+ if ( ! empty( $upload ) ) {
474
+ $hide = '';
475
+ }
476
+ else {
477
+ $hide = 'hide';
478
+ }
479
+ $uploader .= '<span class="button image_reset_button '. $hide.'" id="reset_'. $id .'" title="' . $id . '">'.__( 'Remove', 'bootstrap' ).'</span>';
480
+ $uploader .= '</div>' . "\n";
481
+ $uploader .= '<div class="clear"></div>' . "\n";
482
+ if ( ! empty( $upload ) ) {
483
+ $uploader .= '<div class="screenshot">';
484
+ $uploader .= '<a class="of-uploaded-image" href="'. $upload . '">';
485
+ $uploader .= '<img class="of-option-image" id="image_'.$id.'" src="'.$upload.'" alt="" />';
486
+ $uploader .= '</a>';
487
+ $uploader .= '</div>';
488
+ }
489
+ $uploader .= '<div class="clear"></div>' . "\n";
490
+
491
+ return $uploader;
492
+ }
493
+
494
+ /**
495
+ * Native media library uploader
496
+ *
497
+ * @uses get_option()
498
+ *
499
+ * @access public
500
+ * @since 1.0.0
501
+ *
502
+ * @return string
503
+ */
504
+ public static function optionsframework_media_uploader_function( $id, $std, $int, $mod ) {
505
+ $data = get_option( OPTIONS );
506
+
507
+ $uploader = '';
508
+ $upload = $data[$id];
509
+ $hide = '';
510
+
511
+ if ( $mod == 'min' ) {
512
+ $hide = 'hide';
513
+ }
514
+
515
+ if ( $upload != '' ) {
516
+ $val = $upload;
517
+ }
518
+ else {
519
+ $val = $std;
520
+ }
521
+
522
+ $uploader .= '<input class="'.$hide.' upload of-input" name="'. $id .'" id="'. $id .'_upload" value="'. $val .'" />';
523
+ $uploader .= '<div class="upload_button_div"><span class="button media_upload_button" id="'.$id.'" rel="' . $int . '">'.__( 'Upload', 'bootstrap' ).'</span>';
524
+
525
+ if ( ! empty( $upload ) ) {
526
+ $hide = '';
527
+ }
528
+ else {
529
+ $hide = 'hide';
530
+ }
531
+ $uploader .= '<span class="button mlu_remove_button '. $hide.'" id="reset_'. $id .'" title="' . $id . '">'.__( 'Remove', 'bootstrap' ).'</span>';
532
+ $uploader .= '</div>' . "\n";
533
+ $uploader .= '<div class="screenshot">';
534
+ if ( ! empty( $upload ) ) {
535
+ $uploader .= '<a class="of-uploaded-image" href="'. $upload . '">';
536
+ $uploader .= '<img class="of-option-image" id="image_'.$id.'" src="'.$upload.'" alt="" />';
537
+ $uploader .= '</a>';
538
+ }
539
+ $uploader .= '</div>';
540
+ $uploader .= '<div class="clear"></div>' . "\n";
541
+
542
+ return $uploader;
543
+ }
544
+
545
+ /**
546
+ * Drag and drop slides manager
547
+ *
548
+ * @uses get_option()
549
+ *
550
+ * @access public
551
+ * @since 1.0.0
552
+ *
553
+ * @return string
554
+ */
555
+ public static function optionsframework_slider_function( $id, $std, $oldorder, $order, $int ) {
556
+ $data = get_option( OPTIONS );
557
+
558
+ $slider = '';
559
+ $slide = array();
560
+ $slide = $data[$id];
561
+
562
+ if ( isset( $slide[$oldorder] ) ) {
563
+ $val = $slide[$oldorder];
564
+ }
565
+ else {
566
+ $val = $std;
567
+ }
568
+
569
+ //initialize all vars
570
+ $slidevars = array( 'title', 'url', 'link', 'description' );
571
+
572
+ foreach ( $slidevars as $slidevar ) {
573
+ if ( ! isset( $val[$slidevar] ) ) {
574
+ $val[$slidevar] = '';
575
+ }
576
+ }
577
+
578
+ // begin slider interface
579
+ if ( ! empty( $val['title'] ) ) {
580
+ $slider .= '<li><div class="slide_header"><strong>'.stripslashes( $val['title'] ).'</strong>';
581
+ }
582
+ else {
583
+ $slider .= '<li><div class="slide_header"><strong>Slide '.$order.'</strong>';
584
+ }
585
+
586
+ $slider .= '<input type="hidden" class="slide of-input order" name="'. $id .'['.$order.'][order]" id="'. $id.'_'.$order .'_slide_order" value="'.$order.'" />';
587
+ $slider .= '<a class="slide_edit_button" href="#">'.__( 'Edit', 'bootstrap' ).'</a></div>';
588
+ $slider .= '<div class="slide_body">';
589
+
590
+ $slider .= '<label>'.__( 'Title', 'bootstrap' ).'</label>';
591
+ $slider .= '<input class="slide of-input of-slider-title" name="'. $id .'['.$order.'][title]" id="'. $id .'_'.$order .'_slide_title" value="'. stripslashes( $val['title'] ) .'" />';
592
+
593
+ $slider .= '<label>'.__( 'Image URL', 'bootstrap' ).'</label>';
594
+ $slider .= '<input class="slide of-input" name="'. $id .'['.$order.'][url]" id="'. $id .'_'.$order .'_slide_url" value="'. $val['url'] .'" />';
595
+ $slider .= '<div class="upload_button_div"><span class="button media_upload_button" id="'.$id.'_'.$order .'" rel="' . $int . '">'.__( 'Upload', 'bootstrap' ).'</span>';
596
+
597
+ if ( ! empty( $val['url'] ) ) {
598
+ $hide = '';
599
+ }
600
+ else {
601
+ $hide = 'hide';
602
+ }
603
+ $slider .= '<span class="button mlu_remove_button '. $hide.'" id="reset_'. $id .'_'.$order .'" title="' . $id . '_'.$order .'">'.__( 'Remove', 'bootstrap' ).'</span>';
604
+ $slider .= '</div>' . "\n";
605
+ $slider .= '<div class="screenshot">';
606
+ if ( ! empty( $val['url'] ) ) {
607
+ $slider .= '<a class="of-uploaded-image" href="'. $val['url'] . '">';
608
+ $slider .= '<img class="of-option-image" id="image_'.$id.'_'.$order .'" src="'.$val['url'].'" alt="" />';
609
+ $slider .= '</a>';
610
+ }
611
+ $slider .= '</div>';
612
+ $slider .= '<label>'.__( 'Link URL (optional)', 'bootstrap' ).'</label>';
613
+ $slider .= '<input class="slide of-input" name="'. $id .'['.$order.'][link]" id="'. $id .'_'.$order .'_slide_link" value="'. $val['link'] .'" />';
614
+
615
+ $slider .= '<label>'.__( 'Description (optional)', 'bootstrap' ).'</label>';
616
+ $slider .= '<textarea class="slide of-input" name="'. $id .'['.$order.'][description]" id="'. $id .'_'.$order .'_slide_description" cols="8" rows="8">'.stripslashes( $val['description'] ).'</textarea>';
617
+
618
+ $slider .= '<a class="slide_delete_button" href="#">'.__( 'Delete', 'bootstrap' ).'</a>';
619
+ $slider .= '<div class="clear"></div>' . "\n";
620
+
621
+ $slider .= '</div>';
622
+ $slider .= '</li>';
623
+
624
+ return $slider;
625
+ }
626
+
627
+ } // end Options Machine class