This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | /* |
||
4 | * FooGallery Admin Gallery MetaBoxes class |
||
5 | */ |
||
6 | |||
7 | if ( ! class_exists( 'FooGallery_Admin_Gallery_MetaBoxes' ) ) { |
||
8 | |||
9 | class FooGallery_Admin_Gallery_MetaBoxes { |
||
10 | |||
11 | private $_gallery; |
||
12 | |||
13 | public function __construct() { |
||
14 | //add our foogallery metaboxes |
||
15 | add_action( 'add_meta_boxes_' . FOOGALLERY_CPT_GALLERY, array( $this, 'add_meta_boxes_to_gallery' ) ); |
||
16 | |||
17 | //save extra post data for a gallery |
||
18 | add_action( 'save_post', array( $this, 'save_gallery' ) ); |
||
19 | |||
20 | //save custom field on a page or post |
||
21 | add_action( 'save_post', array( $this, 'attach_gallery_to_post' ), 10, 2 ); |
||
22 | |||
23 | //whitelist metaboxes for our gallery postype |
||
24 | add_filter( 'foogallery_metabox_sanity', array( $this, 'whitelist_metaboxes' ) ); |
||
25 | |||
26 | //add scripts used by metaboxes |
||
27 | add_action( 'admin_enqueue_scripts', array( $this, 'include_required_scripts' ) ); |
||
28 | |||
29 | // Ajax calls for creating a page for the gallery |
||
30 | add_action( 'wp_ajax_foogallery_create_gallery_page', array( $this, 'ajax_create_gallery_page' ) ); |
||
31 | |||
32 | // Ajax call for clearing thumb cache for the gallery |
||
33 | add_action( 'wp_ajax_foogallery_clear_gallery_thumb_cache', array( $this, 'ajax_clear_gallery_thumb_cache' ) ); |
||
34 | |||
35 | // Ajax call for generating a gallery preview |
||
36 | add_action( 'wp_ajax_foogallery_preview', array( $this, 'ajax_gallery_preview' ) ); |
||
37 | |||
38 | //handle previews that have no attachments |
||
39 | add_action( 'foogallery_template_no_attachments', array( $this, 'preview_no_attachments' ) ); |
||
40 | } |
||
41 | |||
42 | public function whitelist_metaboxes() { |
||
43 | return array( |
||
44 | FOOGALLERY_CPT_GALLERY => array( |
||
45 | 'whitelist' => apply_filters( 'foogallery_metabox_sanity_foogallery', |
||
46 | array( |
||
47 | 'submitdiv', |
||
48 | 'slugdiv', |
||
49 | 'postimagediv', |
||
50 | 'foogallery_items', |
||
51 | 'foogallery_settings', |
||
52 | 'foogallery_help', |
||
53 | 'foogallery_pages', |
||
54 | 'foogallery_customcss', |
||
55 | 'foogallery_sorting', |
||
56 | 'foogallery_thumb_settings', |
||
57 | 'foogallery_retina' |
||
58 | ) ), |
||
59 | 'contexts' => array( 'normal', 'advanced', 'side', ), |
||
60 | 'priorities' => array( 'high', 'core', 'default', 'low', ), |
||
61 | ) |
||
62 | ); |
||
63 | } |
||
64 | |||
65 | public function add_meta_boxes_to_gallery( $post ) { |
||
66 | |||
67 | add_meta_box( |
||
68 | 'foogallery_items', |
||
69 | __( 'Gallery Items', 'foogallery' ), |
||
70 | array( $this, 'render_gallery_media_metabox' ), |
||
71 | FOOGALLERY_CPT_GALLERY, |
||
72 | 'normal', |
||
73 | 'high' |
||
74 | ); |
||
75 | |||
76 | add_meta_box( |
||
77 | 'foogallery_settings', |
||
78 | __( 'Gallery Settings', 'foogallery' ), |
||
79 | array( $this, 'render_gallery_settings_metabox' ), |
||
80 | FOOGALLERY_CPT_GALLERY, |
||
81 | 'normal', |
||
82 | 'high' |
||
83 | ); |
||
84 | |||
85 | add_meta_box( |
||
86 | 'foogallery_help', |
||
87 | __( 'Gallery Shortcode', 'foogallery' ), |
||
88 | array( $this, 'render_gallery_shortcode_metabox' ), |
||
89 | FOOGALLERY_CPT_GALLERY, |
||
90 | 'side', |
||
91 | 'default' |
||
92 | ); |
||
93 | |||
94 | if ( 'publish' == $post->post_status ) { |
||
95 | add_meta_box( 'foogallery_pages', |
||
96 | __( 'Gallery Usage', 'foogallery' ), |
||
97 | array( $this, 'render_gallery_usage_metabox' ), |
||
98 | FOOGALLERY_CPT_GALLERY, |
||
99 | 'side', |
||
100 | 'high' |
||
101 | ); |
||
102 | } |
||
103 | |||
104 | add_meta_box( |
||
105 | 'foogallery_customcss', |
||
106 | __( 'Custom CSS', 'foogallery' ), |
||
107 | array( $this, 'render_customcss_metabox' ), |
||
108 | FOOGALLERY_CPT_GALLERY, |
||
109 | 'normal', |
||
110 | 'low' |
||
111 | ); |
||
112 | |||
113 | add_meta_box( |
||
114 | 'foogallery_retina', |
||
115 | __( 'Retina Support', 'foogallery' ), |
||
116 | array( $this, 'render_retina_metabox' ), |
||
117 | FOOGALLERY_CPT_GALLERY, |
||
118 | 'side', |
||
119 | 'default' |
||
120 | ); |
||
121 | |||
122 | add_meta_box( |
||
123 | 'foogallery_sorting', |
||
124 | __( 'Gallery Sorting', 'foogallery' ), |
||
125 | array( $this, 'render_sorting_metabox' ), |
||
126 | FOOGALLERY_CPT_GALLERY, |
||
127 | 'side', |
||
128 | 'default' |
||
129 | ); |
||
130 | |||
131 | add_meta_box( |
||
132 | 'foogallery_thumb_settings', |
||
133 | __( 'Thumbnails', 'foogallery' ), |
||
134 | array( $this, 'render_thumb_settings_metabox' ), |
||
135 | FOOGALLERY_CPT_GALLERY, |
||
136 | 'side', |
||
137 | 'default' |
||
138 | ); |
||
139 | } |
||
140 | |||
141 | public function get_gallery( $post ) { |
||
142 | if ( ! isset($this->_gallery) ) { |
||
143 | $this->_gallery = FooGallery::get( $post ); |
||
144 | |||
145 | //attempt to load default gallery settings from another gallery, as per FooGallery settings page |
||
146 | $this->_gallery->load_default_settings_if_new(); |
||
147 | } |
||
148 | |||
149 | return $this->_gallery; |
||
150 | } |
||
151 | |||
152 | public function save_gallery( $post_id ) { |
||
153 | // check autosave |
||
154 | if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { |
||
155 | return $post_id; |
||
156 | } |
||
157 | |||
158 | // verify nonce |
||
159 | if ( array_key_exists( FOOGALLERY_CPT_GALLERY . '_nonce', $_POST ) && |
||
160 | wp_verify_nonce( $_POST[FOOGALLERY_CPT_GALLERY . '_nonce'], plugin_basename( FOOGALLERY_FILE ) ) |
||
161 | ) { |
||
162 | //if we get here, we are dealing with the Gallery custom post type |
||
163 | do_action( 'foogallery_before_save_gallery', $post_id, $_POST ); |
||
164 | |||
165 | $attachments = apply_filters( 'foogallery_save_gallery_attachments', explode( ',', $_POST[FOOGALLERY_META_ATTACHMENTS] ), $post_id, $_POST ); |
||
166 | update_post_meta( $post_id, FOOGALLERY_META_ATTACHMENTS, $attachments ); |
||
167 | |||
168 | if ( isset( $_POST[FOOGALLERY_META_TEMPLATE] ) ) { |
||
169 | $gallery_template = $_POST[FOOGALLERY_META_TEMPLATE]; |
||
170 | update_post_meta( $post_id, FOOGALLERY_META_TEMPLATE, $gallery_template ); |
||
171 | } else { |
||
172 | $gallery_template = foogallery_default_gallery_template(); |
||
173 | } |
||
174 | |||
175 | if ( isset( $_POST[FOOGALLERY_META_SETTINGS] ) ) { |
||
176 | $settings = isset( $_POST[FOOGALLERY_META_SETTINGS] ) ? |
||
177 | $_POST[FOOGALLERY_META_SETTINGS] : array(); |
||
178 | } else { |
||
179 | $settings = array(); |
||
180 | } |
||
181 | |||
182 | $settings = apply_filters( 'foogallery_save_gallery_settings', $settings, $post_id, $_POST ); |
||
183 | $settings = apply_filters( 'foogallery_save_gallery_settings-'. $gallery_template, $settings, $post_id, $_POST ); |
||
184 | |||
185 | update_post_meta( $post_id, FOOGALLERY_META_SETTINGS, $settings ); |
||
186 | |||
187 | if ( isset( $_POST[FOOGALLERY_META_SORT] ) ) { |
||
188 | update_post_meta( $post_id, FOOGALLERY_META_SORT, $_POST[FOOGALLERY_META_SORT] ); |
||
189 | } |
||
190 | |||
191 | $custom_css = isset($_POST[FOOGALLERY_META_CUSTOM_CSS]) ? |
||
192 | $_POST[FOOGALLERY_META_CUSTOM_CSS] : ''; |
||
193 | |||
194 | if ( empty( $custom_css ) ) { |
||
195 | delete_post_meta( $post_id, FOOGALLERY_META_CUSTOM_CSS ); |
||
196 | } else { |
||
197 | update_post_meta( $post_id, FOOGALLERY_META_CUSTOM_CSS, $custom_css ); |
||
198 | } |
||
199 | |||
200 | if ( isset( $_POST[FOOGALLERY_META_RETINA] ) ) { |
||
201 | update_post_meta( $post_id, FOOGALLERY_META_RETINA, $_POST[FOOGALLERY_META_RETINA] ); |
||
202 | } else { |
||
203 | delete_post_meta( $post_id, FOOGALLERY_META_RETINA ); |
||
204 | } |
||
205 | |||
206 | if ( isset( $_POST[FOOGALLERY_META_FORCE_ORIGINAL_THUMBS] ) ) { |
||
207 | update_post_meta( $post_id, FOOGALLERY_META_FORCE_ORIGINAL_THUMBS, $_POST[FOOGALLERY_META_FORCE_ORIGINAL_THUMBS] ); |
||
208 | } else { |
||
209 | delete_post_meta( $post_id, FOOGALLERY_META_FORCE_ORIGINAL_THUMBS ); |
||
210 | } |
||
211 | |||
212 | do_action( 'foogallery_after_save_gallery', $post_id, $_POST ); |
||
213 | } |
||
214 | } |
||
215 | |||
216 | public function attach_gallery_to_post( $post_id, $post ) { |
||
217 | |||
218 | // check autosave |
||
219 | if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { |
||
220 | return $post_id; |
||
221 | } |
||
222 | |||
223 | $allowed_post_types = apply_filters( 'foogallery_allowed_post_types_for_attachment', array( 'post', 'page' ) ); |
||
224 | |||
225 | //only do this check for a page or post |
||
226 | if ( in_array( $post->post_type, $allowed_post_types ) ) { |
||
227 | |||
228 | do_action( 'foogallery_start_attach_gallery_to_post', $post_id ); |
||
229 | |||
230 | //Clear any foogallery usages that the post might have |
||
231 | delete_post_meta( $post_id, FOOGALLERY_META_POST_USAGE ); |
||
232 | |||
233 | //get all foogallery shortcodes that are on the page/post |
||
234 | $gallery_shortcodes = foogallery_extract_gallery_shortcodes( $post->post_content ); |
||
235 | |||
236 | if ( is_array( $gallery_shortcodes ) && count( $gallery_shortcodes ) > 0 ) { |
||
237 | |||
238 | foreach ( $gallery_shortcodes as $id => $shortcode ) { |
||
239 | //if the content contains the foogallery shortcode then add a custom field |
||
240 | add_post_meta( $post_id, FOOGALLERY_META_POST_USAGE, $id, false ); |
||
241 | |||
242 | do_action( 'foogallery_attach_gallery_to_post', $post_id, $id ); |
||
243 | } |
||
244 | } |
||
245 | |||
246 | do_action( 'foogallery_attach_gallery_to_post', $post_id, $post ); |
||
247 | } |
||
248 | } |
||
249 | |||
250 | public function render_gallery_media_metabox( $post ) { |
||
251 | $gallery = $this->get_gallery( $post ); |
||
252 | |||
253 | $mode = $gallery->get_meta( 'foogallery_items_view', 'manage' ); |
||
254 | |||
255 | if ( empty($mode) || $gallery->is_new() ) { |
||
256 | $mode = 'manage'; |
||
257 | } |
||
258 | |||
259 | wp_enqueue_media(); |
||
260 | |||
261 | ?> |
||
262 | <div class="hidden foogallery-items-view-switch-container"> |
||
263 | <div class="foogallery-items-view-switch"> |
||
264 | <a href="#manage" data-value="manage" data-container=".foogallery-items-view-manage" class="<?php echo $mode==='manage' ? 'current' : ''; ?>"><?php _e('Manage Items', 'foogallery'); ?></a> |
||
265 | <a href="#preview" data-value="preview" data-container=".foogallery-items-view-preview" class="<?php echo $mode==='preview' ? 'current' : ''; ?>"><?php _e('Gallery Preview', 'foogallery'); ?></a> |
||
266 | </div> |
||
267 | <span id="foogallery_preview_spinner" class="spinner"></span> |
||
268 | <input type="hidden" id="foogallery_items_view_input" value="<?php echo $mode; ?>" name="<?php echo FOOGALLERY_META_SETTINGS . '[foogallery_items_view]'; ?>" /> |
||
269 | </div> |
||
270 | |||
271 | <div class="foogallery-items-view foogallery-items-view-manage <?php echo $mode==='manage' ? '' : 'hidden'; ?>"> |
||
272 | <input type="hidden" name="<?php echo FOOGALLERY_CPT_GALLERY; ?>_nonce" |
||
273 | id="<?php echo FOOGALLERY_CPT_GALLERY; ?>_nonce" |
||
274 | value="<?php echo wp_create_nonce( plugin_basename( FOOGALLERY_FILE ) ); ?>"/> |
||
275 | <input type="hidden" name='foogallery_attachments' id="foogallery_attachments" |
||
276 | value="<?php echo $gallery->attachment_id_csv(); ?>"/> |
||
277 | <div> |
||
278 | <ul class="foogallery-attachments-list"> |
||
279 | <?php |
||
280 | if ( $gallery->has_attachments() ) { |
||
281 | foreach ( $gallery->attachments() as $attachment ) { |
||
282 | $this->render_gallery_item( $attachment ); |
||
283 | } |
||
284 | } ?> |
||
285 | <li class="add-attachment"> |
||
286 | <a href="#" data-uploader-title="<?php _e( 'Add Media To Gallery', 'foogallery' ); ?>" |
||
287 | data-uploader-button-text="<?php _e( 'Add Media', 'foogallery' ); ?>" |
||
288 | data-post-id="<?php echo $post->ID; ?>" class="upload_image_button" |
||
289 | title="<?php _e( 'Add Media To Gallery', 'foogallery' ); ?>"> |
||
290 | <div class="dashicons dashicons-format-gallery"></div> |
||
291 | <span><?php _e( 'Add Media', 'foogallery' ); ?></span> |
||
292 | </a> |
||
293 | </li> |
||
294 | </ul> |
||
295 | <div style="clear: both;"></div> |
||
296 | </div> |
||
297 | <textarea style="display: none" id="foogallery-attachment-template"> |
||
298 | <?php $this->render_gallery_item(); ?> |
||
299 | </textarea> |
||
300 | </div> |
||
301 | <div class="foogallery-items-view foogallery-items-view-preview <?php echo $mode==='preview' ? '' : 'hidden'; ?>"> |
||
302 | <div class="foogallery_preview_container"> |
||
303 | <?php |
||
304 | if ( $gallery->has_attachments() ) { |
||
305 | foogallery_render_gallery( $gallery->ID ); |
||
306 | } else { |
||
307 | $this->render_empty_gallery_preview(); |
||
308 | } |
||
309 | ?> |
||
310 | </div> |
||
311 | <div style="clear: both"></div> |
||
312 | <?php wp_nonce_field( 'foogallery_preview', 'foogallery_preview', false ); ?> |
||
313 | </div> |
||
314 | <?php |
||
315 | } |
||
316 | |||
317 | public function render_empty_gallery_preview() { |
||
318 | echo '<div class="foogallery-preview-empty" style="padding:20px; text-align: center">'; |
||
319 | echo '<h3>' . __( 'Please add media to your gallery to see a preview!', 'foogallery' ) . '</h3>'; |
||
320 | echo '</div>'; |
||
321 | } |
||
322 | |||
323 | public function render_gallery_item( $attachment_post = false ) { |
||
324 | if ( $attachment_post != false ) { |
||
325 | $attachment_id = $attachment_post->ID; |
||
326 | $attachment = wp_get_attachment_image_src( $attachment_id ); |
||
327 | $extra_class = apply_filters( 'foogallery_admin_render_gallery_item_extra_classes' , '', $attachment_post ); |
||
328 | } else { |
||
329 | $attachment_id = $attachment = $extra_class = ''; |
||
330 | } |
||
331 | |||
332 | $data_attribute = empty($attachment_id) ? '' : "data-attachment-id=\"{$attachment_id}\""; |
||
333 | $img_tag = empty($attachment) ? '<img width="150" height="150" />' : "<img width=\"150\" height=\"150\" src=\"{$attachment[0]}\" />"; |
||
334 | ?> |
||
335 | <li class="attachment details" <?php echo $data_attribute; ?>> |
||
336 | <div class="attachment-preview type-image <?php echo $extra_class; ?>"> |
||
337 | <div class="thumbnail"> |
||
338 | <div class="centered"> |
||
339 | <?php echo $img_tag; ?> |
||
340 | </div> |
||
341 | </div> |
||
342 | <a class="info" href="#" title="<?php _e( 'Edit Info', 'foogallery' ); ?>"> |
||
343 | <span class="dashicons dashicons-info"></span> |
||
344 | </a> |
||
345 | <a class="remove" href="#" title="<?php _e( 'Remove from gallery', 'foogallery' ); ?>"> |
||
346 | <span class="dashicons dashicons-dismiss"></span> |
||
347 | </a> |
||
348 | </div> |
||
349 | <!-- <input type="text" value="" class="describe" data-setting="caption" placeholder="Caption this image…" />--> |
||
350 | </li> |
||
351 | <?php |
||
352 | } |
||
353 | |||
354 | public function render_gallery_settings_metabox( $post ) { |
||
355 | $gallery = $this->get_gallery( $post ); |
||
356 | |||
357 | $gallery = apply_filters( 'foogallery_render_gallery_settings_metabox', $gallery ); |
||
358 | |||
359 | $settings = new FooGallery_Admin_Gallery_MetaBox_Settings_Helper( $gallery ); |
||
360 | |||
361 | $settings->render_hidden_gallery_template_selector(); |
||
362 | |||
363 | $settings->render_gallery_settings(); |
||
364 | } |
||
365 | |||
366 | public function render_gallery_shortcode_metabox( $post ) { |
||
367 | $gallery = $this->get_gallery( $post ); |
||
368 | $shortcode = $gallery->shortcode(); |
||
369 | ?> |
||
370 | <p class="foogallery-shortcode"> |
||
371 | <input type="text" id="foogallery_copy_shortcode" size="<?php echo strlen( $shortcode ) + 2; ?>" value="<?php echo htmlspecialchars( $shortcode ); ?>" readonly="readonly" /> |
||
372 | </p> |
||
373 | <p> |
||
374 | <?php _e( 'Paste the above shortcode into a post or page to show the gallery.', 'foogallery' ); ?> |
||
375 | </p> |
||
376 | <script> |
||
377 | jQuery(function($) { |
||
378 | var shortcodeInput = document.querySelector('#foogallery_copy_shortcode'); |
||
379 | shortcodeInput.addEventListener('click', function () { |
||
380 | try { |
||
381 | // select the contents |
||
382 | shortcodeInput.select(); |
||
383 | //copy the selection |
||
384 | document.execCommand('copy'); |
||
385 | //show the copied message |
||
386 | $('.foogallery-shortcode-message').remove(); |
||
387 | $(shortcodeInput).after('<p class="foogallery-shortcode-message"><?php _e( 'Shortcode copied to clipboard :)','foogallery' ); ?></p>'); |
||
388 | } catch(err) { |
||
389 | console.log('Oops, unable to copy!'); |
||
390 | } |
||
391 | }, false); |
||
392 | }); |
||
393 | </script> |
||
394 | <?php |
||
395 | } |
||
396 | |||
397 | public function render_gallery_usage_metabox( $post ) { |
||
398 | $gallery = $this->get_gallery( $post ); |
||
399 | $posts = $gallery->find_usages(); |
||
400 | if ( $posts && count( $posts ) > 0 ) { ?> |
||
401 | <p> |
||
402 | <?php _e( 'This gallery is used on the following posts or pages:', 'foogallery' ); ?> |
||
403 | </p> |
||
404 | <ul class="ul-disc"> |
||
405 | <?php foreach ( $posts as $post ) { |
||
406 | $url = get_permalink( $post->ID ); |
||
407 | echo '<li>' . $post->post_title . ' '; |
||
408 | edit_post_link( __( 'Edit', 'foogallery' ), '<span class="edit">', ' | </span>', $post->ID ); |
||
409 | echo '<span class="view"><a href="' . esc_url( $url ) . '" target="_blank">' . __( 'View', 'foogallery' ) . '</a></li>'; |
||
410 | } ?> |
||
411 | </ul> |
||
412 | <?php } else { ?> |
||
413 | <p> |
||
414 | <?php _e( 'This gallery is not used on any pages or pages yet. Quickly create a page:', 'foogallery' ); ?> |
||
415 | </p> |
||
416 | <div class="foogallery_metabox_actions"> |
||
417 | <button class="button button-primary button-large" id="foogallery_create_page"><?php _e( 'Create Gallery Page', 'foogallery' ); ?></button> |
||
418 | <span id="foogallery_create_page_spinner" class="spinner"></span> |
||
419 | <?php wp_nonce_field( 'foogallery_create_gallery_page', 'foogallery_create_gallery_page_nonce', false ); ?> |
||
420 | </div> |
||
421 | <p> |
||
422 | <?php _e( 'A draft page will be created which includes the gallery shortcode in the content. The title of the page will be the same title as the gallery.', 'foogallery' ); ?> |
||
423 | </p> |
||
424 | <?php } |
||
425 | } |
||
426 | |||
427 | public function render_sorting_metabox( $post ) { |
||
428 | $gallery = $this->get_gallery( $post ); |
||
429 | $sorting_options = foogallery_sorting_options(); |
||
430 | if ( empty( $gallery->sorting ) ) { |
||
431 | $gallery->sorting = ''; |
||
432 | } |
||
433 | ?> |
||
434 | <p> |
||
435 | <?php _e('Change the way images are sorted within your gallery. By default, they are sorted in the order you see them.', 'foogallery'); ?> |
||
436 | </p> |
||
437 | <?php |
||
438 | foreach ( $sorting_options as $sorting_key => $sorting_label ) { ?> |
||
439 | <p> |
||
440 | <input type="radio" value="<?php echo $sorting_key; ?>" <?php checked( $sorting_key === $gallery->sorting ); ?> id="FooGallerySettings_GallerySort_<?php echo $sorting_key; ?>" name="<?php echo FOOGALLERY_META_SORT; ?>" /> |
||
441 | <label for="FooGallerySettings_GallerySort_<?php echo $sorting_key; ?>"><?php echo $sorting_label; ?></label> |
||
442 | </p><?php |
||
443 | } ?> |
||
444 | <p class="foogallery-help"> |
||
445 | <?php _e('PLEASE NOTE : sorting randomly will force HTML Caching for the gallery to be disabled.', 'foogallery'); ?> |
||
446 | </p> |
||
447 | <?php |
||
448 | } |
||
449 | |||
450 | public function render_retina_metabox( $post ) { |
||
451 | $gallery = $this->get_gallery( $post ); |
||
452 | $retina_options = foogallery_retina_options(); |
||
453 | if ( empty( $gallery->retina ) ) { |
||
454 | $gallery->retina = foogallery_get_setting( 'default_retina_support', array() ); |
||
0 ignored issues
–
show
|
|||
455 | } |
||
456 | ?> |
||
457 | <p> |
||
458 | <?php _e('Add retina support to this gallery by choosing the different pixel densities you want to enable.', 'foogallery'); ?> |
||
459 | </p> |
||
460 | <?php |
||
461 | foreach ( $retina_options as $retina_key => $retina_label ) { |
||
462 | $checked = array_key_exists( $retina_key, $gallery->retina ) ? ('true' === $gallery->retina[$retina_key]) : false; |
||
463 | ?> |
||
464 | <p> |
||
465 | <input type="checkbox" value="true" <?php checked( $checked ); ?> id="FooGallerySettings_Retina_<?php echo $retina_key; ?>" name="<?php echo FOOGALLERY_META_RETINA; ?>[<?php echo $retina_key; ?>]" /> |
||
466 | <label for="FooGallerySettings_Retina_<?php echo $retina_key; ?>"><?php echo $retina_label; ?></label> |
||
467 | </p><?php |
||
468 | } ?> |
||
469 | <p class="foogallery-help"> |
||
470 | <?php _e('PLEASE NOTE : thumbnails will be generated for each of the pixel densities chosen, which will increase your website\'s storage space!', 'foogallery'); ?> |
||
471 | </p> |
||
472 | <?php |
||
473 | } |
||
474 | |||
475 | public function render_thumb_settings_metabox( $post ) { |
||
476 | $gallery = $this->get_gallery( $post ); |
||
0 ignored issues
–
show
$gallery is not used, you could remove the assignment.
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently. $myVar = 'Value';
$higher = false;
if (rand(1, 6) > 3) {
$higher = true;
} else {
$higher = false;
}
Both the ![]() |
|||
477 | $force_use_original_thumbs = get_post_meta( $post->ID, FOOGALLERY_META_FORCE_ORIGINAL_THUMBS, true ); |
||
478 | $checked = 'true' === $force_use_original_thumbs; ?> |
||
479 | <p> |
||
480 | <?php _e( 'Clear all the previously cached thumbnails that have been generated for this gallery.', 'foogallery' ); ?> |
||
481 | </p> |
||
482 | <div class="foogallery_metabox_actions"> |
||
483 | <button class="button button-primary button-large" id="foogallery_clear_thumb_cache"><?php _e( 'Clear Thumbnail Cache', 'foogallery' ); ?></button> |
||
484 | <span id="foogallery_clear_thumb_cache_spinner" class="spinner"></span> |
||
485 | <?php wp_nonce_field( 'foogallery_clear_gallery_thumb_cache', 'foogallery_clear_gallery_thumb_cache_nonce', false ); ?> |
||
486 | </div> |
||
487 | <p> |
||
488 | <input type="checkbox" value="true" <?php checked( $checked ); ?> id="FooGallerySettings_ForceOriginalThumbs" name="<?php echo FOOGALLERY_META_FORCE_ORIGINAL_THUMBS; ?>" /> |
||
489 | <label for="FooGallerySettings_ForceOriginalThumbs"><?php _e('Force Original Thumbs', 'foogallery'); ?></label> |
||
490 | </p> |
||
491 | <?php |
||
492 | } |
||
493 | |||
494 | public function include_required_scripts() { |
||
495 | $screen_id = foo_current_screen_id(); |
||
496 | |||
497 | //only include scripts if we on the foogallery add/edit page |
||
498 | if ( FOOGALLERY_CPT_GALLERY === $screen_id || |
||
499 | 'edit-' . FOOGALLERY_CPT_GALLERY === $screen_id ) { |
||
500 | |||
501 | //enqueue any dependencies from extensions or gallery templates |
||
502 | do_action( 'foogallery_enqueue_preview_dependencies' ); |
||
503 | //add core foogallery files for preview |
||
504 | foogallery_enqueue_core_gallery_template_style(); |
||
505 | foogallery_enqueue_core_gallery_template_script(); |
||
506 | |||
507 | //spectrum needed for the colorpicker field |
||
508 | $url = FOOGALLERY_URL . 'lib/spectrum/spectrum.js'; |
||
509 | wp_enqueue_script( 'foogallery-spectrum', $url, array('jquery'), FOOGALLERY_VERSION ); |
||
510 | $url = FOOGALLERY_URL . 'lib/spectrum/spectrum.css'; |
||
511 | wp_enqueue_style( 'foogallery-spectrum', $url, array(), FOOGALLERY_VERSION ); |
||
512 | |||
513 | //make sure we have jquery UI sortable enqueued |
||
514 | wp_enqueue_script( 'jquery-ui-sortable'); |
||
515 | |||
516 | //include any admin js required for the templates |
||
517 | foreach ( foogallery_gallery_templates() as $template ) { |
||
518 | $admin_js = foo_safe_get( $template, 'admin_js' ); |
||
519 | if ( is_array( $admin_js ) ) { |
||
520 | //dealing with an array of js files to include |
||
521 | foreach( $admin_js as $admin_js_key => $admin_js_src ) { |
||
522 | wp_enqueue_script( 'foogallery-gallery-admin-' . $template['slug'] . '-' . $admin_js_key, $admin_js_src, array('jquery', 'media-upload', 'jquery-ui-sortable'), FOOGALLERY_VERSION ); |
||
523 | } |
||
524 | } else { |
||
525 | //dealing with a single js file to include |
||
526 | wp_enqueue_script( 'foogallery-gallery-admin-' . $template['slug'], $admin_js, array('jquery', 'media-upload', 'jquery-ui-sortable'), FOOGALLERY_VERSION ); |
||
527 | } |
||
528 | } |
||
529 | } |
||
530 | } |
||
531 | |||
532 | public function render_customcss_metabox( $post ) { |
||
533 | $gallery = $this->get_gallery( $post ); |
||
534 | $custom_css = $gallery->custom_css; |
||
535 | $example = '<code>#foogallery-gallery-' . $post->ID . ' { }</code>'; |
||
536 | ?> |
||
537 | <p> |
||
538 | <?php printf( __( 'Add any custom CSS to target this specific gallery. For example %s', 'foogallery' ), $example ); ?> |
||
539 | </p> |
||
540 | <table id="table_styling" class="form-table"> |
||
541 | <tbody> |
||
542 | <tr> |
||
543 | <td> |
||
544 | <textarea class="foogallery_metabox_custom_css" name="<?php echo FOOGALLERY_META_CUSTOM_CSS; ?>" type="text"><?php echo $custom_css; ?></textarea> |
||
545 | </td> |
||
546 | </tr> |
||
547 | </tbody> |
||
548 | </table> |
||
549 | <?php |
||
550 | } |
||
551 | |||
552 | public function ajax_create_gallery_page() { |
||
553 | if ( check_admin_referer( 'foogallery_create_gallery_page', 'foogallery_create_gallery_page_nonce' ) ) { |
||
554 | |||
555 | $foogallery_id = $_POST['foogallery_id']; |
||
556 | |||
557 | $foogallery = FooGallery::get_by_id( $foogallery_id ); |
||
558 | |||
559 | $post = array( |
||
560 | 'post_content' => $foogallery->shortcode(), |
||
561 | 'post_title' => $foogallery->name, |
||
562 | 'post_status' => 'draft', |
||
563 | 'post_type' => 'page', |
||
564 | ); |
||
565 | |||
566 | wp_insert_post( $post ); |
||
567 | } |
||
568 | die(); |
||
569 | } |
||
570 | |||
571 | public function ajax_clear_gallery_thumb_cache() { |
||
572 | if ( check_admin_referer( 'foogallery_clear_gallery_thumb_cache', 'foogallery_clear_gallery_thumb_cache_nonce' ) ) { |
||
573 | |||
574 | $foogallery_id = $_POST['foogallery_id']; |
||
575 | |||
576 | $foogallery = FooGallery::get_by_id( $foogallery_id ); |
||
577 | |||
578 | ob_start(); |
||
579 | |||
580 | //loop through all images, get the full sized file |
||
581 | foreach ( $foogallery->attachments() as $attachment ) { |
||
582 | $meta_data = wp_get_attachment_metadata( $attachment->ID ); |
||
583 | |||
584 | $file = $meta_data['file']; |
||
585 | |||
586 | wpthumb_delete_cache_for_file( $file ); |
||
587 | } |
||
588 | |||
589 | ob_end_clean(); |
||
590 | |||
591 | echo __( 'The thumbnail cache has been cleared!', 'foogallery' ); |
||
592 | } |
||
593 | |||
594 | die(); |
||
595 | } |
||
596 | |||
597 | public function ajax_gallery_preview() { |
||
598 | if ( check_admin_referer( 'foogallery_preview', 'foogallery_preview_nonce' ) ) { |
||
599 | |||
600 | $foogallery_id = $_POST['foogallery_id']; |
||
601 | |||
602 | $template = $_POST['foogallery_template']; |
||
603 | |||
604 | //check that the template supports previews |
||
605 | $gallery_template = foogallery_get_gallery_template( $template ); |
||
606 | if ( isset( $gallery_template['preview_support'] ) && true === $gallery_template['preview_support'] ) { |
||
607 | |||
608 | global $foogallery_gallery_preview; |
||
0 ignored issues
–
show
Compatibility
Best Practice
introduced
by
Use of
global functionality is not recommended; it makes your code harder to test, and less reusable.
Instead of relying on 1. Pass all data via parametersfunction myFunction($a, $b) {
// Do something
}
2. Create a class that maintains your stateclass MyClass {
private $a;
private $b;
public function __construct($a, $b) {
$this->a = $a;
$this->b = $b;
}
public function myFunction() {
// Do something
}
}
![]() |
|||
609 | |||
610 | $foogallery_gallery_preview = true; |
||
611 | |||
612 | $args = array( |
||
613 | 'template' => $template, |
||
614 | 'attachment_ids' => $_POST['foogallery_attachments'], |
||
615 | 'preview' => true |
||
616 | ); |
||
617 | |||
618 | $args = apply_filters( 'foogallery_preview_arguments', $args, $_POST, $template ); |
||
619 | $args = apply_filters( 'foogallery_preview_arguments-' . $template, $args, $_POST ); |
||
620 | |||
621 | foogallery_render_gallery( $foogallery_id, $args ); |
||
622 | |||
623 | $foogallery_gallery_preview = false; |
||
624 | |||
625 | } else { |
||
626 | echo '<div style="padding:20px 50px 50px 50px; text-align: center">'; |
||
627 | echo '<h3>' . __( 'Preview not available!', 'foogallery' ) . '</h3>'; |
||
628 | echo __('Sorry, but this gallery template does not support live previews. Please update the gallery in order to see what the gallery will look like.', 'foogallery' ); |
||
629 | echo '</div>'; |
||
630 | } |
||
631 | } |
||
632 | |||
633 | die(); |
||
634 | } |
||
635 | |||
636 | /** |
||
637 | * Handle gallery previews where there are no attachments |
||
638 | * |
||
639 | * @param $foogallery FooGallery |
||
640 | */ |
||
641 | public function preview_no_attachments( $foogallery ) { |
||
0 ignored issues
–
show
|
|||
642 | global $foogallery_gallery_preview; |
||
0 ignored issues
–
show
Compatibility
Best Practice
introduced
by
Use of
global functionality is not recommended; it makes your code harder to test, and less reusable.
Instead of relying on 1. Pass all data via parametersfunction myFunction($a, $b) {
// Do something
}
2. Create a class that maintains your stateclass MyClass {
private $a;
private $b;
public function __construct($a, $b) {
$this->a = $a;
$this->b = $b;
}
public function myFunction() {
// Do something
}
}
![]() |
|||
643 | |||
644 | if ( isset( $foogallery_gallery_preview ) && true === $foogallery_gallery_preview ) { |
||
645 | $this->render_empty_gallery_preview(); |
||
646 | } |
||
647 | } |
||
648 | } |
||
649 | } |
||
650 |
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: