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 | if ( !class_exists( 'FooGallery_Masonry_Gallery_Template' ) ) { |
||
4 | |||
5 | define('FOOGALLERY_MASONRY_GALLERY_TEMPLATE_URL', plugin_dir_url( __FILE__ )); |
||
6 | |||
7 | class FooGallery_Masonry_Gallery_Template { |
||
0 ignored issues
–
show
|
|||
8 | /** |
||
9 | * Wire up everything we need to run the extension |
||
10 | */ |
||
11 | function __construct() { |
||
0 ignored issues
–
show
|
|||
12 | add_filter( 'foogallery_gallery_templates', array( $this, 'add_template' ) ); |
||
13 | add_filter( 'foogallery_gallery_templates_files', array( $this, 'register_myself' ) ); |
||
14 | |||
15 | add_action( 'foogallery_enqueue_preview_dependencies', array( $this, 'enqueue_preview_dependencies' ) ); |
||
16 | |||
17 | add_filter( 'foogallery_located_template-masonry', array( $this, 'enqueue_dependencies' ) ); |
||
18 | |||
19 | add_filter( 'foogallery_template_thumbnail_dimensions-masonry', array( $this, 'get_thumbnail_dimensions' ), 10, 2 ); |
||
20 | |||
21 | //add the data options needed for masonry |
||
22 | add_filter( 'foogallery_build_container_data_options-masonry', array( $this, 'add_masonry_options' ), 10, 3 ); |
||
23 | |||
24 | //build up any preview arguments |
||
25 | add_filter( 'foogallery_preview_arguments-masonry', array( $this, 'preview_arguments' ), 10, 2 ); |
||
26 | |||
27 | //build up the thumb dimensions from some arguments |
||
28 | add_filter( 'foogallery_calculate_thumbnail_dimensions-masonry', array( $this, 'build_thumbnail_dimensions_from_arguments' ), 10, 2 ); |
||
29 | |||
30 | //build up the arguments needed for rendering this template |
||
31 | add_filter( 'foogallery_gallery_template_arguments-masonry', array( $this, 'build_gallery_template_arguments' ) ); |
||
32 | |||
33 | //add extra fields to the templates |
||
34 | add_filter( 'foogallery_override_gallery_template_fields-masonry', array( $this, 'add_masonry_fields' ), 10, 2 ); |
||
35 | |||
36 | //remove the captions if the captions are below thumbs |
||
37 | add_filter( 'foogallery_build_attachment_html_caption', array( $this, 'remove_captions' ), 10, 3 ); |
||
38 | } |
||
39 | |||
40 | /** |
||
41 | * Register myself so that all associated JS and CSS files can be found and automatically included |
||
42 | * @param $extensions |
||
43 | * |
||
44 | * @return array |
||
45 | */ |
||
46 | function register_myself( $extensions ) { |
||
0 ignored issues
–
show
|
|||
47 | $extensions[] = __FILE__; |
||
48 | return $extensions; |
||
49 | } |
||
50 | |||
51 | /** |
||
52 | * Add our gallery template to the list of templates available for every gallery |
||
53 | * @param $gallery_templates |
||
54 | * |
||
55 | * @return array |
||
56 | */ |
||
57 | function add_template( $gallery_templates ) { |
||
0 ignored issues
–
show
|
|||
58 | $gallery_templates[] = array( |
||
59 | 'slug' => 'masonry', |
||
60 | 'name' => __( 'Masonry Image Gallery', 'foogallery' ), |
||
61 | 'preview_support' => true, |
||
62 | 'common_fields_support' => true, |
||
63 | 'lazyload_support' => true, |
||
64 | 'paging_support' => true, |
||
65 | 'mandatory_classes' => 'fg-masonry', |
||
66 | 'thumbnail_dimensions' => true, |
||
67 | 'filtering_support' => true, |
||
68 | 'fields' => array( |
||
69 | array( |
||
70 | 'id' => 'thumbnail_width', |
||
71 | 'title' => __( 'Thumb Width', 'foogallery' ), |
||
72 | 'desc' => __( 'Choose the width of your thumbnails. Thumbnails will be generated on the fly and cached once generated', 'foogallery' ), |
||
73 | 'section' => __( 'General', 'foogallery' ), |
||
74 | 'type' => 'number', |
||
75 | 'class' => 'small-text', |
||
76 | 'default' => 150, |
||
77 | 'step' => '1', |
||
78 | 'min' => '0', |
||
79 | 'row_data'=> array( |
||
80 | 'data-foogallery-change-selector' => 'input', |
||
81 | 'data-foogallery-preview' => 'shortcode' |
||
82 | ) |
||
83 | ), |
||
84 | array( |
||
85 | 'id' => 'layout', |
||
86 | 'title' => __( 'Masonry Layout', 'foogallery' ), |
||
87 | 'desc' => __( 'Choose a fixed width thumb layout, or responsive columns.', 'foogallery' ), |
||
88 | 'section' => __( 'General', 'foogallery' ), |
||
89 | 'type' => 'radio', |
||
90 | 'choices' => array( |
||
91 | 'fixed' => __( 'Fixed Width', 'foogallery' ), |
||
92 | 'col2' => __( '2 Columns', 'foogallery' ), |
||
93 | 'col3' => __( '3 Columns', 'foogallery' ), |
||
94 | 'col4' => __( '4 Columns', 'foogallery' ), |
||
95 | 'col5' => __( '5 Columns', 'foogallery' ) |
||
96 | ), |
||
97 | 'default' => 'fixed', |
||
98 | 'row_data'=> array( |
||
99 | 'data-foogallery-change-selector' => 'input:radio', |
||
100 | 'data-foogallery-value-selector' => 'input:checked', |
||
101 | 'data-foogallery-preview' => 'shortcode' |
||
102 | ) |
||
103 | ), |
||
104 | array( |
||
105 | 'id' => 'gutter_width', |
||
106 | 'title' => __( 'Gutter Width', 'foogallery' ), |
||
107 | 'desc' => __( 'The spacing between your thumbnails. Only applicable when using a fixed layout!', 'foogallery' ), |
||
108 | 'section' => __( 'General', 'foogallery' ), |
||
109 | 'type' => 'number', |
||
110 | 'class' => 'small-text', |
||
111 | 'default' => 10, |
||
112 | 'step' => '1', |
||
113 | 'min' => '0', |
||
114 | 'row_data'=> array( |
||
115 | 'data-foogallery-hidden' => true, |
||
116 | 'data-foogallery-change-selector' => 'input', |
||
117 | 'data-foogallery-value-selector' => 'input', |
||
118 | 'data-foogallery-show-when-field' => 'layout', |
||
119 | 'data-foogallery-show-when-field-value' => 'fixed', |
||
120 | 'data-foogallery-preview' => 'shortcode', |
||
121 | ) |
||
122 | ), |
||
123 | array( |
||
124 | 'id' => 'gutter_percent', |
||
125 | 'title' => __( 'Gutter Size', 'foogallery' ), |
||
126 | 'desc' => __( 'Choose a gutter size when using responsive columns.', 'foogallery' ), |
||
127 | 'section' => __( 'General', 'foogallery' ), |
||
128 | 'type' => 'radio', |
||
129 | 'choices' => array( |
||
130 | 'fg-gutter-none' => __( 'No Gutter', 'foogallery' ), |
||
131 | '' => __( 'Normal Size Gutter', 'foogallery' ), |
||
132 | 'fg-gutter-large' => __( 'Larger Gutter', 'foogallery' ) |
||
133 | ), |
||
134 | 'default' => '', |
||
135 | 'row_data'=> array( |
||
136 | 'data-foogallery-hidden' => true, |
||
137 | 'data-foogallery-change-selector' => 'input:radio', |
||
138 | 'data-foogallery-value-selector' => 'input:checked', |
||
139 | 'data-foogallery-show-when-field' => 'layout', |
||
140 | 'data-foogallery-show-when-field-operator' => '!==', |
||
141 | 'data-foogallery-show-when-field-value' => 'fixed', |
||
142 | 'data-foogallery-preview' => 'class' |
||
143 | ) |
||
144 | ), |
||
145 | array( |
||
146 | 'id' => 'alignment', |
||
147 | 'title' => __( 'Alignment', 'foogallery' ), |
||
148 | 'desc' => __( 'You can choose to center align your images or leave them at the default (left). Only applicable when using a fixed layout!', 'foogallery' ), |
||
149 | 'section' => __( 'General', 'foogallery' ), |
||
150 | 'type' => 'radio', |
||
151 | 'spacer' => '<span class="spacer"></span>', |
||
152 | 'choices' => array( |
||
153 | '' => __( 'Left', 'foogallery' ), |
||
154 | 'fg-center' => __( 'Center', 'foogallery' ) |
||
155 | ), |
||
156 | 'default' => 'fg-center', |
||
157 | 'row_data'=> array( |
||
158 | 'data-foogallery-hidden' => true, |
||
159 | 'data-foogallery-show-when-field' => 'layout', |
||
160 | 'data-foogallery-show-when-field-value' => 'fixed', |
||
161 | 'data-foogallery-change-selector' => 'input:radio', |
||
162 | 'data-foogallery-preview' => 'class' |
||
163 | ) |
||
164 | ), |
||
165 | array( |
||
166 | 'id' => 'thumbnail_link', |
||
167 | 'title' => __( 'Thumb Link', 'foogallery' ), |
||
168 | 'default' => 'image' , |
||
169 | 'type' => 'thumb_link', |
||
170 | 'desc' => __( 'You can choose to link each thumbnail to the full size image, or to the image\'s attachment page, or you can choose to not link to anything', 'foogallery' ), |
||
171 | ), |
||
172 | array( |
||
173 | 'id' => 'lightbox', |
||
174 | 'title' => __( 'Lightbox', 'foogallery' ), |
||
175 | 'desc' => __( 'Choose which lightbox you want to display images with. The lightbox will only work if you set the thumbnail link to "Full Size Image"', 'foogallery' ), |
||
176 | 'type' => 'lightbox', |
||
177 | 'default' => 'none', |
||
178 | ), |
||
179 | ), |
||
180 | ); |
||
181 | |||
182 | |||
183 | return $gallery_templates; |
||
184 | } |
||
185 | |||
186 | /** |
||
187 | * Enqueue scripts that the masonry gallery template relies on |
||
188 | */ |
||
189 | function enqueue_preview_dependencies() { |
||
0 ignored issues
–
show
|
|||
190 | wp_enqueue_script( 'masonry' ); |
||
191 | } |
||
192 | |||
193 | /** |
||
194 | * Enqueue scripts that the masonry gallery template relies on |
||
195 | */ |
||
196 | function enqueue_dependencies() { |
||
0 ignored issues
–
show
|
|||
197 | wp_enqueue_script( 'masonry' ); |
||
198 | |||
199 | //enqueue core files |
||
200 | foogallery_enqueue_core_gallery_template_style(); |
||
201 | foogallery_enqueue_core_gallery_template_script(); |
||
202 | } |
||
203 | |||
204 | /** |
||
205 | * Get the thumb dimensions arguments saved for the gallery for this gallery template |
||
206 | * |
||
207 | * @param array $dimensions |
||
208 | * @param FooGallery $foogallery |
||
209 | * |
||
210 | * @return mixed |
||
211 | */ |
||
212 | function get_thumbnail_dimensions( $dimensions, $foogallery ) { |
||
0 ignored issues
–
show
|
|||
213 | $width = $foogallery->get_meta( 'masonry_thumbnail_width', false ); |
||
214 | return array( |
||
215 | 'height' => 0, |
||
216 | 'width' => intval( $width ), |
||
217 | 'crop' => false |
||
218 | ); |
||
219 | } |
||
220 | |||
221 | /** |
||
222 | * Add the required masonry options if needed |
||
223 | * |
||
224 | * @param $options |
||
225 | * @param $gallery FooGallery |
||
226 | * |
||
227 | * @param $attributes array |
||
228 | * |
||
229 | * @return array |
||
230 | */ |
||
231 | function add_masonry_options($options, $gallery, $attributes) { |
||
0 ignored issues
–
show
|
|||
232 | $layout = foogallery_gallery_template_setting( 'layout', 'fixed' ); |
||
233 | $options['template']['layout'] = $layout; |
||
234 | if ( 'fixed' === $layout ) { |
||
235 | $width = foogallery_gallery_template_setting( 'thumbnail_width', '150' ); |
||
236 | $gutter_width = foogallery_gallery_template_setting( 'gutter_width', '10' ); |
||
237 | $options['template']['columnWidth'] = intval($width); |
||
238 | $options['template']['gutter'] = intval($gutter_width); |
||
239 | } |
||
240 | return $options; |
||
241 | } |
||
242 | |||
243 | /** |
||
244 | * Build up a arguments used in the preview of the gallery |
||
245 | * @param $args |
||
246 | * @param $post_data |
||
247 | * |
||
248 | * @return mixed |
||
249 | */ |
||
250 | function preview_arguments( $args, $post_data ) { |
||
0 ignored issues
–
show
|
|||
251 | $args['thumbnail_width'] = $post_data[FOOGALLERY_META_SETTINGS]['masonry_thumbnail_width']; |
||
252 | $args['layout'] = $post_data[FOOGALLERY_META_SETTINGS]['masonry_layout']; |
||
253 | $args['gutter_width'] = $post_data[FOOGALLERY_META_SETTINGS]['masonry_gutter_width']; |
||
254 | return $args; |
||
255 | } |
||
256 | |||
257 | /** |
||
258 | * Builds thumb dimensions from arguments |
||
259 | * |
||
260 | * @param array $dimensions |
||
261 | * @param array $arguments |
||
262 | * |
||
263 | * @return mixed |
||
264 | */ |
||
265 | function build_thumbnail_dimensions_from_arguments( $dimensions, $arguments ) { |
||
0 ignored issues
–
show
|
|||
266 | if ( array_key_exists( 'thumbnail_width', $arguments) ) { |
||
267 | return array( |
||
268 | 'height' => 0, |
||
269 | 'width' => intval($arguments['thumbnail_width']), |
||
270 | 'crop' => false |
||
271 | ); |
||
272 | } |
||
273 | return null; |
||
274 | } |
||
275 | |||
276 | /** |
||
277 | * Build up the arguments needed for rendering this gallery template |
||
278 | * |
||
279 | * @param $args |
||
280 | * @return array |
||
281 | */ |
||
282 | function build_gallery_template_arguments( $args ) { |
||
0 ignored issues
–
show
|
|||
283 | $args = array( |
||
284 | 'width' => foogallery_gallery_template_setting( 'thumbnail_width', '150' ), |
||
285 | 'link' => foogallery_gallery_template_setting( 'thumbnail_link', 'image' ), |
||
286 | 'crop' => false |
||
287 | ); |
||
288 | |||
289 | return $args; |
||
290 | } |
||
291 | |||
292 | /** |
||
293 | * Add masonry-specific fields to the gallery template |
||
294 | * |
||
295 | * @uses "foogallery_override_gallery_template_fields" |
||
296 | * @param $fields |
||
297 | * @param $template |
||
298 | * |
||
299 | * @return array |
||
300 | */ |
||
301 | function add_masonry_fields( $fields, $template ) { |
||
0 ignored issues
–
show
|
|||
302 | //update specific fields |
||
303 | foreach ($fields as &$field) { |
||
304 | if ( 'hover_effect_caption_visibility' === $field['id'] ) { |
||
305 | $field['choices']['fg-captions-bottom'] = __( 'Below Thumbnail', 'foogallery' ); |
||
306 | } |
||
307 | } |
||
308 | |||
309 | return $fields; |
||
310 | } |
||
311 | |||
312 | function remove_captions( $captions, $foogallery_attachment, $args ) { |
||
0 ignored issues
–
show
|
|||
313 | global $current_foogallery_template; |
||
314 | |||
315 | //check if masonry |
||
316 | if ( 'masonry' === $current_foogallery_template ) { |
||
317 | |||
318 | $hover_effect_caption_visibility = foogallery_gallery_template_setting( 'hover_effect_caption_visibility', 'fg-caption-hover' ); |
||
319 | |||
320 | //check if captions are set to show below the thumbs |
||
321 | if ( 'fg-captions-bottom' === $hover_effect_caption_visibility ) { |
||
322 | //if we have no captions then do not output captions at all |
||
323 | if ( !array_key_exists( 'title', $captions ) && !array_key_exists( 'desc', $captions ) ) { |
||
324 | $captions = false; |
||
325 | } |
||
326 | } |
||
327 | } |
||
328 | |||
329 | return $captions; |
||
330 | } |
||
331 | } |
||
332 | } |
You can fix this by adding a namespace to your class:
When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.