wordpress-starter 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. data/CHANGELOG.md +1 -0
  2. data/LICENSE +20 -0
  3. data/README.md +34 -0
  4. data/lib/wordpress-starter.rb +29 -0
  5. data/stylesheets/_wordpress.scss +9 -0
  6. data/stylesheets/wordpress/_base.scss +74 -0
  7. data/stylesheets/wordpress/_defaults.scss +28 -0
  8. data/stylesheets/wordpress/_layout.scss +56 -0
  9. data/stylesheets/wordpress/_mixins.scss +57 -0
  10. data/stylesheets/wordpress/_page.scss +364 -0
  11. data/stylesheets/wordpress/_responsive.scss +231 -0
  12. data/stylesheets/wordpress/_theme.scss +83 -0
  13. data/stylesheets/wordpress/_typography.scss +135 -0
  14. data/stylesheets/wordpress/_utils.scss +64 -0
  15. data/templates/project/ie.scss +1 -0
  16. data/templates/project/manifest.rb +21 -0
  17. data/templates/project/print.css +4 -0
  18. data/templates/project/print.scss +104 -0
  19. data/templates/project/readme.txt +1 -0
  20. data/templates/project/screen.scss +1 -0
  21. data/templates/project/style.css +13 -0
  22. data/templates/starter/404.php +24 -0
  23. data/templates/starter/admin/README.txt +25 -0
  24. data/templates/starter/admin/assets/css/admin-style.css +838 -0
  25. data/templates/starter/admin/assets/css/colorpicker.css +177 -0
  26. data/templates/starter/admin/assets/images/1col.png +0 -0
  27. data/templates/starter/admin/assets/images/2-col-portfolio.png +0 -0
  28. data/templates/starter/admin/assets/images/2cl.png +0 -0
  29. data/templates/starter/admin/assets/images/2cr.png +0 -0
  30. data/templates/starter/admin/assets/images/3-col-portfolio.png +0 -0
  31. data/templates/starter/admin/assets/images/3cm.png +0 -0
  32. data/templates/starter/admin/assets/images/3cr.png +0 -0
  33. data/templates/starter/admin/assets/images/4-col-portfolio.png +0 -0
  34. data/templates/starter/admin/assets/images/accept.png +0 -0
  35. data/templates/starter/admin/assets/images/button_check.png +0 -0
  36. data/templates/starter/admin/assets/images/colorpicker/blank.gif +0 -0
  37. data/templates/starter/admin/assets/images/colorpicker/colorpicker_background.png +0 -0
  38. data/templates/starter/admin/assets/images/colorpicker/colorpicker_hex.png +0 -0
  39. data/templates/starter/admin/assets/images/colorpicker/colorpicker_hsb_b.png +0 -0
  40. data/templates/starter/admin/assets/images/colorpicker/colorpicker_hsb_h.png +0 -0
  41. data/templates/starter/admin/assets/images/colorpicker/colorpicker_hsb_s.png +0 -0
  42. data/templates/starter/admin/assets/images/colorpicker/colorpicker_indic.gif +0 -0
  43. data/templates/starter/admin/assets/images/colorpicker/colorpicker_overlay.png +0 -0
  44. data/templates/starter/admin/assets/images/colorpicker/colorpicker_rgb_b.png +0 -0
  45. data/templates/starter/admin/assets/images/colorpicker/colorpicker_rgb_g.png +0 -0
  46. data/templates/starter/admin/assets/images/colorpicker/colorpicker_rgb_r.png +0 -0
  47. data/templates/starter/admin/assets/images/colorpicker/colorpicker_select.gif +0 -0
  48. data/templates/starter/admin/assets/images/colorpicker/colorpicker_submit.png +0 -0
  49. data/templates/starter/admin/assets/images/colorpicker/select.png +0 -0
  50. data/templates/starter/admin/assets/images/dropdown-arrow.png +0 -0
  51. data/templates/starter/admin/assets/images/favicon.ico +0 -0
  52. data/templates/starter/admin/assets/images/icon-add.png +0 -0
  53. data/templates/starter/admin/assets/images/icon-backup.png +0 -0
  54. data/templates/starter/admin/assets/images/icon-delete.png +0 -0
  55. data/templates/starter/admin/assets/images/icon-docs.png +0 -0
  56. data/templates/starter/admin/assets/images/icon-edit.png +0 -0
  57. data/templates/starter/admin/assets/images/icon-home.png +0 -0
  58. data/templates/starter/admin/assets/images/icon-info.png +0 -0
  59. data/templates/starter/admin/assets/images/icon-notice.png +0 -0
  60. data/templates/starter/admin/assets/images/icon-paint.png +0 -0
  61. data/templates/starter/admin/assets/images/icon-settings.png +0 -0
  62. data/templates/starter/admin/assets/images/icon-slider.png +0 -0
  63. data/templates/starter/admin/assets/images/icon-warn.png +0 -0
  64. data/templates/starter/admin/assets/images/icon_option.png +0 -0
  65. data/templates/starter/admin/assets/images/loading-bottom.gif +0 -0
  66. data/templates/starter/admin/assets/images/select.png +0 -0
  67. data/templates/starter/admin/assets/images/sign_warning.png +0 -0
  68. data/templates/starter/admin/assets/images/stop.png +0 -0
  69. data/templates/starter/admin/assets/images/toggle_tabs.png +0 -0
  70. data/templates/starter/admin/assets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  71. data/templates/starter/admin/assets/images/warning.png +0 -0
  72. data/templates/starter/admin/assets/images/wrench.png +0 -0
  73. data/templates/starter/admin/assets/images/wrench16.png +0 -0
  74. data/templates/starter/admin/assets/js/ajaxupload.js +606 -0
  75. data/templates/starter/admin/assets/js/colorpicker.js +455 -0
  76. data/templates/starter/admin/assets/js/cookie.js +1 -0
  77. data/templates/starter/admin/assets/js/jquery.maskedinput-1.2.2.js +252 -0
  78. data/templates/starter/admin/assets/js/jquery.tipsy.js +241 -0
  79. data/templates/starter/admin/assets/js/of-medialibrary-uploader.js +168 -0
  80. data/templates/starter/admin/assets/js/smof.js +623 -0
  81. data/templates/starter/admin/classes/class.options-machine.php +627 -0
  82. data/templates/starter/admin/front-end/options.php +77 -0
  83. data/templates/starter/admin/functions/functions.admin.php +76 -0
  84. data/templates/starter/admin/functions/functions.interface.php +232 -0
  85. data/templates/starter/admin/functions/functions.load.php +14 -0
  86. data/templates/starter/admin/functions/functions.mediauploader.php +194 -0
  87. data/templates/starter/admin/functions/functions.options.php +507 -0
  88. data/templates/starter/admin/functions/functions.php +0 -0
  89. data/templates/starter/admin/index.php +86 -0
  90. data/templates/starter/admin/layouts/default.css +0 -0
  91. data/templates/starter/admin/layouts/placebo.css +0 -0
  92. data/templates/starter/app.js +97 -0
  93. data/templates/starter/archive.php +57 -0
  94. data/templates/starter/category.php +40 -0
  95. data/templates/starter/comments.php +65 -0
  96. data/templates/starter/content-aside.php +26 -0
  97. data/templates/starter/content-image.php +29 -0
  98. data/templates/starter/content-link.php +27 -0
  99. data/templates/starter/content-none.php +21 -0
  100. data/templates/starter/content-page.php +24 -0
  101. data/templates/starter/content-quote.php +26 -0
  102. data/templates/starter/content-status.php +33 -0
  103. data/templates/starter/content.php +67 -0
  104. data/templates/starter/editor-style.scss +359 -0
  105. data/templates/starter/footer.php +29 -0
  106. data/templates/starter/functions.php +1211 -0
  107. data/templates/starter/header.php +63 -0
  108. data/templates/starter/ie.scss +1 -0
  109. data/templates/starter/images/bg/bg0.png +0 -0
  110. data/templates/starter/images/bg/bg1.png +0 -0
  111. data/templates/starter/images/bg/bg10.png +0 -0
  112. data/templates/starter/images/bg/bg11.png +0 -0
  113. data/templates/starter/images/bg/bg2.png +0 -0
  114. data/templates/starter/images/bg/bg3.png +0 -0
  115. data/templates/starter/images/bg/bg4.png +0 -0
  116. data/templates/starter/images/bg/bg5.png +0 -0
  117. data/templates/starter/images/bg/bg6.jpg +0 -0
  118. data/templates/starter/images/bg/bg7.jpg +0 -0
  119. data/templates/starter/images/bg/bg8.png +0 -0
  120. data/templates/starter/images/bg/bg9.png +0 -0
  121. data/templates/starter/index.php +19 -0
  122. data/templates/starter/loop.php +30 -0
  123. data/templates/starter/manifest.rb +149 -0
  124. data/templates/starter/moderninzr.min.js +4 -0
  125. data/templates/starter/options.php +407 -0
  126. data/templates/starter/page.php +29 -0
  127. data/templates/starter/print.scss +104 -0
  128. data/templates/starter/readme.txt +1 -0
  129. data/templates/starter/screen.scss +1 -0
  130. data/templates/starter/search.php +31 -0
  131. data/templates/starter/search.png +0 -0
  132. data/templates/starter/searchform.php +14 -0
  133. data/templates/starter/sidebar.php +15 -0
  134. data/templates/starter/single.php +31 -0
  135. data/templates/starter/style.css +13 -0
  136. data/templates/starter/tag.php +41 -0
  137. metadata +230 -0
@@ -0,0 +1,77 @@
1
+ <div class="wrap" id="of_container">
2
+
3
+ <div id="of-popup-save" class="of-save-popup">
4
+ <div class="of-save-save">Options Updated</div>
5
+ </div>
6
+
7
+ <div id="of-popup-reset" class="of-save-popup">
8
+ <div class="of-save-reset">Options Reset</div>
9
+ </div>
10
+
11
+ <div id="of-popup-fail" class="of-save-popup">
12
+ <div class="of-save-fail">Error!</div>
13
+ </div>
14
+
15
+ <span style="display: none;" id="hooks"><?php echo json_encode( of_get_header_classes_array() ); ?></span>
16
+ <input type="hidden" id="reset" value="<?php if ( isset( $_REQUEST['reset'] ) ) echo $_REQUEST['reset']; ?>" />
17
+ <input type="hidden" id="security" name="security" value="<?php echo wp_create_nonce( 'of_ajax_nonce' ); ?>" />
18
+
19
+ <form id="of_form" method="post" action="<?php echo esc_attr( $_SERVER['REQUEST_URI'] ) ?>" enctype="multipart/form-data" >
20
+
21
+ <div id="header">
22
+
23
+ <div class="logo">
24
+ <h2><?php echo THEMENAME; ?></h2>
25
+ <span><?php echo 'v'. THEMEVERSION; ?></span>
26
+ </div>
27
+
28
+ <div id="js-warning">Warning- This options panel will not work properly without javascript!</div>
29
+ <div class="icon-option"></div>
30
+ <div class="clear"></div>
31
+
32
+ </div>
33
+
34
+ <div id="info_bar">
35
+
36
+ <a>
37
+ <div id="expand_options" class="expand">Expand</div>
38
+ </a>
39
+
40
+ <img style="display:none" src="<?php echo ADMIN_DIR; ?>assets/images/loading-bottom.gif" class="ajax-loading-img ajax-loading-img-bottom" alt="Working..." />
41
+
42
+ <button id="of_save" type="button" class="button-primary">
43
+ <?php _e( 'Save All Changes' );?>
44
+ </button>
45
+
46
+ </div><!--.info_bar-->
47
+
48
+ <div id="main">
49
+
50
+ <div id="of-nav">
51
+ <ul>
52
+ <?php echo $options_machine->Menu ?>
53
+ </ul>
54
+ </div>
55
+
56
+ <div id="content">
57
+ <?php echo $options_machine->Inputs /* Settings */ ?>
58
+ </div>
59
+
60
+ <div class="clear"></div>
61
+
62
+ </div>
63
+
64
+ <div class="save_bar">
65
+
66
+ <img style="display:none" src="<?php echo ADMIN_DIR; ?>assets/images/loading-bottom.gif" class="ajax-loading-img ajax-loading-img-bottom" alt="Working..." />
67
+ <button id ="of_save" type="button" class="button-primary"><?php _e( 'Save All Changes' );?></button>
68
+ <button id ="of_reset" type="button" class="button submit-button reset-button" ><?php _e( 'Options Reset' );?></button>
69
+ <img style="display:none" src="<?php echo ADMIN_DIR; ?>assets/images/loading-bottom.gif" class="ajax-reset-loading-img ajax-loading-img-bottom" alt="Working..." />
70
+
71
+ </div><!--.save_bar-->
72
+
73
+ </form>
74
+
75
+ <div style="clear:both;"></div>
76
+
77
+ </div><!--wrap-->
@@ -0,0 +1,76 @@
1
+ <?php
2
+ /**
3
+ * SMOF Admin
4
+ *
5
+ * @package WordPress
6
+ * @subpackage SMOF
7
+ * @since 1.4.0
8
+ * @author Syamil MJ
9
+ */
10
+
11
+
12
+ /**
13
+ * Head Hook
14
+ *
15
+ * @since 1.0.0
16
+ */
17
+ function of_head() { do_action( 'of_head' ); }
18
+
19
+ /**
20
+ * Add default options upon activation else DB does not exist
21
+ *
22
+ * @since 1.0.0
23
+ */
24
+ function of_option_setup() {
25
+ global $of_options, $options_machine;
26
+ $options_machine = new Options_Machine( $of_options );
27
+
28
+ if ( !get_option( OPTIONS ) ) {
29
+ update_option( OPTIONS, $options_machine->Defaults );
30
+ }
31
+ }
32
+
33
+ /**
34
+ * Change activation message
35
+ *
36
+ * @since 1.0.0
37
+ */
38
+ function optionsframework_admin_message() {
39
+
40
+ //Tweaked the message on theme activate
41
+ ?>
42
+ <script type="text/javascript">
43
+ jQuery(function(){
44
+
45
+ var message = '<p>This theme comes with an <a href="<?php echo admin_url( 'admin.php?page=optionsframework' ); ?>">options panel</a> to configure settings. This theme also supports widgets, please visit the <a href="<?php echo admin_url( 'widgets.php' ); ?>">widgets settings page</a> to configure them.</p>';
46
+ jQuery('.themes-php #message2').html(message);
47
+
48
+ });
49
+ </script>
50
+ <?php
51
+
52
+ }
53
+
54
+ /**
55
+ * Get header classes
56
+ *
57
+ * @since 1.0.0
58
+ */
59
+ function of_get_header_classes_array() {
60
+ global $of_options;
61
+
62
+ foreach ( $of_options as $value ) {
63
+ if ( $value['type'] == 'heading' )
64
+ $hooks[] = str_replace( ' ', '', strtolower( $value['name'] ) );
65
+ }
66
+
67
+ return $hooks;
68
+ }
69
+
70
+
71
+ /**
72
+ * For use in themes
73
+ *
74
+ * @since forever
75
+ */
76
+ $data = get_option( OPTIONS );
@@ -0,0 +1,232 @@
1
+ <?php
2
+ /**
3
+ * SMOF Interface
4
+ *
5
+ * @package WordPress
6
+ * @subpackage SMOF
7
+ * @since 1.4.0
8
+ * @author Syamil MJ
9
+ */
10
+
11
+
12
+ /**
13
+ * Admin Init
14
+ *
15
+ * @uses wp_verify_nonce()
16
+ * @uses header()
17
+ * @uses update_option()
18
+ *
19
+ * @since 1.0.0
20
+ */
21
+ function optionsframework_admin_init() {
22
+ // Rev up the Options Machine
23
+ global $of_options, $options_machine;
24
+ $options_machine = new Options_Machine( $of_options );
25
+ }
26
+
27
+ /**
28
+ * Create Options page
29
+ *
30
+ * @uses add_theme_page()
31
+ * @uses add_action()
32
+ *
33
+ * @since 1.0.0
34
+ */
35
+ function optionsframework_add_admin() {
36
+
37
+ $of_page = add_theme_page( THEMENAME, 'Theme Options', 'edit_theme_options', 'optionsframework', 'optionsframework_options_page' );
38
+
39
+ // Add framework functionaily to the head individually
40
+ add_action( "admin_print_scripts-$of_page", 'of_load_only' );
41
+ add_action( "admin_print_styles-$of_page", 'of_style_only' );
42
+ add_action( "admin_print_styles-$of_page", 'optionsframework_mlu_css', 0 );
43
+ add_action( "admin_print_scripts-$of_page", 'optionsframework_mlu_js', 0 );
44
+
45
+ }
46
+
47
+
48
+ /**
49
+ * Build Options page
50
+ *
51
+ * @since 1.0.0
52
+ */
53
+ function optionsframework_options_page() {
54
+
55
+ global $options_machine;
56
+ /*
57
+ //for debugging
58
+ $data = get_option(OPTIONS);
59
+ print_r($data);
60
+ */
61
+
62
+ include_once ADMIN_PATH . 'front-end/options.php';
63
+
64
+ }
65
+
66
+ /**
67
+ * Create Options page
68
+ *
69
+ * @uses wp_enqueue_style()
70
+ *
71
+ * @since 1.0.0
72
+ */
73
+ function of_style_only() {
74
+ wp_enqueue_style( 'admin-style', ADMIN_DIR . 'assets/css/admin-style.css' );
75
+ wp_enqueue_style( 'color-picker', ADMIN_DIR . 'assets/css/colorpicker.css' );
76
+ }
77
+
78
+ /**
79
+ * Create Options page
80
+ *
81
+ * @uses add_action()
82
+ * @uses wp_enqueue_script()
83
+ *
84
+ * @since 1.0.0
85
+ */
86
+ function of_load_only() {
87
+ add_action( 'admin_head', 'of_admin_head' );
88
+
89
+ wp_enqueue_script( 'jquery-ui-core' );
90
+ wp_enqueue_script( 'jquery-ui-sortable' );
91
+ wp_enqueue_script( 'jquery-input-mask', ADMIN_DIR .'assets/js/jquery.maskedinput-1.2.2.js', array( 'jquery' ) );
92
+ wp_enqueue_script( 'tipsy', ADMIN_DIR .'assets/js/jquery.tipsy.js', array( 'jquery' ) );
93
+ wp_enqueue_script( 'color-picker', ADMIN_DIR .'assets/js/colorpicker.js', array( 'jquery' ) );
94
+ wp_enqueue_script( 'ajaxupload', ADMIN_DIR .'assets/js/ajaxupload.js', array( 'jquery' ) );
95
+ wp_enqueue_script( 'cookie', ADMIN_DIR . 'assets/js/cookie.js', 'jquery' );
96
+ wp_enqueue_script( 'smof', ADMIN_DIR .'assets/js/smof.js', array( 'jquery' ) );
97
+ }
98
+
99
+ /**
100
+ * Front end inline jquery scripts
101
+ *
102
+ * @since 1.0.0
103
+ */
104
+ function of_admin_head() { ?>
105
+
106
+ <script type="text/javascript" language="javascript">
107
+
108
+ jQuery.noConflict();
109
+ jQuery(document).ready(function($){
110
+
111
+ // COLOR Picker
112
+ $('.colorSelector').each(function(){
113
+ var Othis = this; //cache a copy of the this variable for use inside nested function
114
+
115
+ $(this).ColorPicker({
116
+ color: '<?php if ( isset( $color ) ) echo $color; ?>',
117
+ onShow: function (colpkr) {
118
+ $(colpkr).fadeIn(500);
119
+ return false;
120
+ },
121
+ onHide: function (colpkr) {
122
+ $(colpkr).fadeOut(500);
123
+ return false;
124
+ },
125
+ onChange: function (hsb, hex, rgb) {
126
+ $(Othis).children('div').css('backgroundColor', '#' + hex);
127
+ $(Othis).next('input').attr('value','#' + hex);
128
+
129
+ }
130
+ });
131
+
132
+ }); //end color picker
133
+
134
+ }); //end doc ready
135
+
136
+ </script>
137
+ <?php
138
+ }
139
+
140
+ /**
141
+ * Ajax Save Options
142
+ *
143
+ * @uses get_option()
144
+ * @uses update_option()
145
+ *
146
+ * @since 1.0.0
147
+ */
148
+ function of_ajax_callback() {
149
+ global $options_machine, $of_options;
150
+
151
+ $nonce = $_POST['security'];
152
+
153
+ if ( ! wp_verify_nonce( $nonce, 'of_ajax_nonce' ) )
154
+ die( '-1' );
155
+
156
+ //get options array from db
157
+ $all = get_option( OPTIONS );
158
+
159
+ $save_type = $_POST['type'];
160
+
161
+ //echo $_POST['data'];
162
+
163
+ //Uploads
164
+ if ( $save_type == 'upload' ) {
165
+ $clickedID = $_POST['data']; // Acts as the name
166
+ $filename = $_FILES[$clickedID];
167
+ $filename['name'] = preg_replace( '/[^a-zA-Z0-9._\-]/', '', $filename['name'] );
168
+
169
+ $override['test_form'] = false;
170
+ $override['action'] = 'wp_handle_upload';
171
+ $uploaded_file = wp_handle_upload( $filename, $override );
172
+
173
+ $upload_tracking[] = $clickedID;
174
+
175
+ //update $options array w/ image URL
176
+ $upload_image = $all; //preserve current data
177
+
178
+ $upload_image[$clickedID] = $uploaded_file['url'];
179
+
180
+ update_option( OPTIONS, $upload_image );
181
+
182
+ if ( ! empty( $uploaded_file['error'] ) ) {
183
+ echo 'Upload Error: ' . $uploaded_file['error'];
184
+ }
185
+ else {
186
+ echo $uploaded_file['url'];
187
+ } // Is the Response
188
+ }
189
+ elseif ( $save_type == 'image_reset' ) {
190
+ $id = $_POST['data']; // Acts as the name
191
+
192
+ $delete_image = $all; //preserve rest of data
193
+ $delete_image[$id] = ''; //update array key with empty value
194
+ update_option( OPTIONS, $delete_image );
195
+ }
196
+ elseif ( $save_type == 'backup_options' ) {
197
+ $backup = $all;
198
+ $backup['backup_log'] = date( 'r' );
199
+
200
+ update_option( BACKUPS, $backup );
201
+
202
+ die( '1' );
203
+ } elseif ( $save_type == 'restore_options' ) {
204
+ $data = get_option( BACKUPS );
205
+
206
+ update_option( OPTIONS, $data );
207
+
208
+ die( '1' );
209
+ }
210
+ elseif ( $save_type == 'import_options' ) {
211
+ $data = $_POST['data'];
212
+ $data = unserialize( base64_decode( $data ) ); //100% safe - ignore theme check nag
213
+ update_option( OPTIONS, $data );
214
+
215
+ die( '1' );
216
+ }
217
+ elseif ( $save_type == 'save' ) {
218
+ wp_parse_str( stripslashes( $_POST['data'] ), $data );
219
+ unset( $data['security'] );
220
+ unset( $data['of_save'] );
221
+ update_option( OPTIONS, $data );
222
+
223
+ die( '1' );
224
+ }
225
+ elseif ( $save_type == 'reset' ) {
226
+ update_option( OPTIONS, $options_machine->Defaults );
227
+
228
+ die( '1' ); //options reset
229
+ }
230
+
231
+ die();
232
+ }
@@ -0,0 +1,14 @@
1
+ <?php
2
+ /**
3
+ * Functions Load
4
+ *
5
+ * @package WordPress
6
+ * @subpackage SMOF
7
+ * @since 1.4.0
8
+ * @author Syamil MJ
9
+ */
10
+ require_once( ADMIN_PATH . 'functions/functions.php' );
11
+ require_once( ADMIN_PATH . 'functions/functions.interface.php' );
12
+ require_once( ADMIN_PATH . 'functions/functions.options.php' );
13
+ require_once( ADMIN_PATH . 'functions/functions.admin.php' );
14
+ require_once( ADMIN_PATH . 'functions/functions.mediauploader.php' );
@@ -0,0 +1,194 @@
1
+ <?php
2
+
3
+ /**
4
+ * WooThemes Media Library-driven AJAX File Uploader Module (2010-11-05)
5
+ *
6
+ * Slightly modified for use in the Options Framework.
7
+ *
8
+ * @since 1.0.0
9
+ */
10
+
11
+ /**
12
+ * Sets up a custom post type to attach image to. This allows us to have
13
+ * individual galleries for different uploaders.
14
+ */
15
+
16
+ if ( ! function_exists( 'optionsframework_mlu_init' ) ) {
17
+ function optionsframework_mlu_init() {
18
+ register_post_type(
19
+ 'options', array(
20
+ 'labels' => array(
21
+ 'name' => __( 'Options' ),
22
+ ),
23
+ 'public' => true,
24
+ 'show_ui' => false,
25
+ 'capability_type' => 'post',
26
+ 'hierarchical' => false,
27
+ 'rewrite' => false,
28
+ 'supports' => array( 'title', 'editor' ),
29
+ 'query_var' => false,
30
+ 'can_export' => true,
31
+ 'show_in_nav_menus' => false,
32
+ )
33
+ );
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Forces insert into post
39
+ */
40
+
41
+ add_filter( 'get_media_item_args', 'force_send' );
42
+ function force_send( $args ) {
43
+ $args['send'] = true;
44
+ return $args;
45
+ }
46
+
47
+ /**
48
+ * Adds the Thickbox CSS file and specific loading and button images to the header
49
+ * on the pages where this function is called.
50
+ */
51
+
52
+ if ( ! function_exists( 'optionsframework_mlu_css' ) ) {
53
+ function optionsframework_mlu_css() {
54
+ $_html = '';
55
+ $_html .= '<link rel="stylesheet" href="' . get_option( 'siteurl' ) . '/' . WPINC . '/js/thickbox/thickbox.css" type="text/css" media="screen" />' . "\n";
56
+ $_html .= '<script type="text/javascript">
57
+ var tb_pathToImage = "' . get_option( 'siteurl' ) . '/' . WPINC . '/js/thickbox/loadingAnimation.gif";
58
+ var tb_closeImage = "' . get_option( 'siteurl' ) . '/' . WPINC . '/js/thickbox/tb-close.png";
59
+ </script>' . "\n";
60
+
61
+ echo $_html;
62
+ }
63
+ }
64
+
65
+ /**
66
+ * Registers and enqueues (loads) the necessary JavaScript file for working with the
67
+ * Media Library-driven AJAX File Uploader Module.
68
+ */
69
+
70
+ if ( ! function_exists( 'optionsframework_mlu_js' ) ) {
71
+ function optionsframework_mlu_js() {
72
+ // Registers custom scripts for the Media Library AJAX uploader.
73
+ wp_register_script( 'of-medialibrary-uploader', ADMIN_DIR .'assets/js/of-medialibrary-uploader.js', array( 'jquery', 'thickbox' ) );
74
+ wp_enqueue_script( 'of-medialibrary-uploader' );
75
+ wp_enqueue_script( 'media-upload' );
76
+ }
77
+ }
78
+
79
+ /**
80
+ * Uses "silent" posts in the database to store relationships for images.
81
+ * This also creates the facility to collect galleries of, for example, logo images.
82
+ *
83
+ * Return: $_postid.
84
+ *
85
+ * If no "silent" post is present, one will be created with the type "optionsframework"
86
+ * and the post_name of "of-$_token".
87
+ *
88
+ * Example Usage:
89
+ * optionsframework_mlu_get_silentpost ( 'of_logo' );
90
+ */
91
+
92
+ if ( ! function_exists( 'optionsframework_mlu_get_silentpost' ) ) {
93
+ function optionsframework_mlu_get_silentpost( $_token ) {
94
+ global $wpdb;
95
+ $_id = 0;
96
+
97
+ // Check if the token is valid against a whitelist.
98
+ // $_whitelist = array( 'of_logo', 'of_custom_favicon', 'of_ad_top_image' );
99
+ // Sanitise the token.
100
+
101
+ $_token = strtolower( str_replace( ' ', '_', $_token ) );
102
+
103
+ // if ( in_array( $_token, $_whitelist ) ) {
104
+ if ( $_token ) {
105
+ // Tell the function what to look for in a post.
106
+ $_args = array( 'post_type' => 'options', 'post_name' => 'of-' . $_token, 'post_status' => 'draft', 'comment_status' => 'closed', 'ping_status' => 'closed' );
107
+
108
+ // Look in the database for a "silent" post that meets our criteria.
109
+ $query = 'SELECT ID FROM ' . $wpdb->posts . ' WHERE post_parent = 0';
110
+ foreach ( $_args as $k => $v ) {
111
+ $query .= ' AND ' . $k . ' = "' . $v . '"';
112
+ } // End FOREACH Loop
113
+
114
+ $query .= ' LIMIT 1';
115
+ $_posts = $wpdb->get_row( $query );
116
+
117
+ // If we've got a post, loop through and get it's ID.
118
+ if ( count( $_posts ) ) {
119
+ $_id = $_posts->ID;
120
+ }
121
+ else {
122
+ // If no post is present, insert one.
123
+ // Prepare some additional data to go with the post insertion.
124
+ $_words = explode( '_', $_token );
125
+ $_title = join( ' ', $_words );
126
+ $_title = ucwords( $_title );
127
+ $_post_data = array( 'post_title' => $_title );
128
+ $_post_data = array_merge( $_post_data, $_args );
129
+ $_id = wp_insert_post( $_post_data );
130
+ }
131
+ }
132
+ return $_id;
133
+ }
134
+ }
135
+
136
+ /**
137
+ * Trigger code inside the Media Library popup.
138
+ */
139
+
140
+ if ( ! function_exists( 'optionsframework_mlu_insidepopup' ) ) {
141
+ function optionsframework_mlu_insidepopup() {
142
+ if ( isset( $_REQUEST['is_optionsframework'] ) && $_REQUEST['is_optionsframework'] == 'yes' ) {
143
+ add_action( 'admin_head', 'optionsframework_mlu_js_popup' );
144
+ add_filter( 'media_upload_tabs', 'optionsframework_mlu_modify_tabs' );
145
+ }
146
+ }
147
+ }
148
+
149
+ if ( ! function_exists( 'optionsframework_mlu_js_popup' ) ) {
150
+ function optionsframework_mlu_js_popup() {
151
+ $_of_title = $_REQUEST['of_title'];
152
+ if ( ! $_of_title ) {
153
+ $_of_title = 'file';
154
+ } // End IF Statement
155
+ ?>
156
+ <script type="text/javascript">
157
+ jQuery(function($) {
158
+ jQuery.noConflict();
159
+
160
+ // Change the title of each tab to use the custom title text instead of "Media File".
161
+ $( 'h3.media-title' ).each (function () {
162
+ var current_title = $(this).html();
163
+ var new_title = current_title.replace( 'media file', '<?php echo $_of_title; ?>' );
164
+ $(this).html(new_title);
165
+ });
166
+
167
+ // Change the text of the "Insert into Post" buttons to read "Use this File".
168
+ $( '.savesend input.button[value*="Insert into Post"], .media-item #go_button' ).attr( 'value', 'Use this File' );
169
+
170
+ // Hide the "Insert Gallery" settings box on the "Gallery" tab.
171
+ $( 'div#gallery-settings' ).hide();
172
+
173
+ // Preserve the "is_optionsframework" parameter on the "delete" confirmation button.
174
+ $( '.savesend a.del-link' ).click (function () {
175
+ var continueButton = $(this).next( '.del-attachment' ).children( 'a.button[id*="del"]' );
176
+ var continueHref = continueButton.attr( 'href' );
177
+ continueHref = continueHref + '&is_optionsframework=yes';
178
+ continueButton.attr( 'href', continueHref );
179
+ });
180
+ });
181
+ </script>
182
+ <?php
183
+ }
184
+ }
185
+
186
+ /**
187
+ * Triggered inside the Media Library popup to modify the title of the "Gallery" tab.
188
+ */
189
+ if ( ! function_exists( 'optionsframework_mlu_modify_tabs' ) ) {
190
+ function optionsframework_mlu_modify_tabs( $tabs ) {
191
+ $tabs['gallery'] = str_replace( __( 'Gallery', 'starter' ), __( 'Previously Uploaded', 'starter' ), $tabs['gallery'] );
192
+ return $tabs;
193
+ }
194
+ }