GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — develop ( 3bd383...ce1d31 )
by Brad
02:29
created

__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 10
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
if ( ! class_exists( 'FooGallery_Admin_Gallery_MetaBox_Fields' ) ) {
4
5
	class FooGallery_Admin_Gallery_MetaBox_Fields {
6
7
		function __construct() {
8
			//handle some default field types that all templates can reuse
9
			add_filter( 'foogallery_alter_gallery_template_field', array( $this, 'alter_gallery_template_field' ), 10, 2 );
10
11
			//render the different types of fields for our gallery settings
12
			add_action( 'foogallery_render_gallery_template_field', array( $this, 'render_gallery_template_field' ), 10, 3 );
13
14
			//allow changing of field values
15
			add_filter( 'foogallery_render_gallery_template_field_value', array( $this, 'check_lightbox_value' ), 10, 4 );
16
		}
17
18
		/**
19
		 * Renders a gallery template field into the gallery settings metabox for a FooGallery
20
		 *
21
		 * @param array $field
22
		 * @param       $gallery FooGallery
23
		 * @param       $template
24
		 */
25
		function render_gallery_template_field( $field = array(), $gallery, $template ) {
26
			$template_slug = $template['slug'];
27
28
			//only declare up front so no debug warnings are shown
29
			$type = $id = $desc = $default = $placeholder = $choices = $class = $spacer = $opactiy = null;
30
31
			extract( $field );
32
33
			$id = $template_slug . '_' . $id;
34
35
			$field['value'] = apply_filters( 'foogallery_render_gallery_template_field_value', $gallery->get_meta( $id, $default ), $field, $gallery, $template );
36
37
			$field_class = empty($class) ? '' : ' class="' . $class . '"';
38
39
			$field['choices'] = apply_filters( 'foogallery_render_gallery_template_field_choices', $choices, $field, $gallery );
40
41
			//allow for UI customization
42
			do_action( 'foogallery_render_gallery_template_field_before', $field, $gallery );
43
44
			echo '<div class="foogallery_metabox_field-' . $type . '">';
45
46
			switch ( $type ) {
47
48
				case 'html':
49
					echo $desc;
50
					$desc = '';
51
					break;
52
53
				case 'checkbox':
54
					if ( isset($gallery->settings[$id]) && $gallery->settings[$id] == 'on' ) {
55
						$field['value'] = 'on';
56
					} else if ( ! isset($gallery->settings) && $default == 'on' ) {
57
						$field['value'] = 'on';
58
					} else {
59
						$field['value'] = '';
60
					}
61
62
					$checked = 'on' === $field['value'] ? ' checked="checked"' : '';
63
					echo '<input' . $field_class . ' type="checkbox" id="FooGallerySettings_' . $id . '" name="' . FOOGALLERY_META_SETTINGS . '[' . $id . ']" value="on"' . $checked . ' />';
64
					break;
65
66
				case 'select':
67
					echo '<select' . $field_class . ' id="FooGallerySettings_' . $id . '" name="' . FOOGALLERY_META_SETTINGS . '[' . $id . ']">';
68
					foreach ( $choices as $value => $label ) {
69
						$selected = '';
70
						if ( $field['value'] == $value ) {
71
							$selected = ' selected="selected"';
72
						}
73
						echo '<option ' . $selected . ' value="' . $value . '">' . $label . '</option>';
74
					}
75
76
					echo '</select>';
77
					break;
78
79
				case 'radio':
80
					$i = 0;
81
					$spacer = isset($spacer) ? $spacer : '<br />';
82
					foreach ( $choices as $value => $label ) {
83
						$selected = '';
84
						if ( $field['value'] == $value ) {
85
							$selected = ' checked="checked"';
86
						}
87
						echo '<input' . $field_class . $selected . ' type="radio" name="' . FOOGALLERY_META_SETTINGS . '[' . $id . ']"  id="FooGallerySettings_' . $id . $i . '" value="' . $value . '"> <label for="FooGallerySettings_' . $id . $i . '">' . $label . '</label>';
88
						if ( $i < count( $choices ) - 1 ) {
89
							echo $spacer;
90
						}
91
						$i++;
92
					}
93
					break;
94
95
				case 'textarea':
96
					echo '<textarea' . $field_class . ' id="FooGallerySettings_' . $id . '" name="' . FOOGALLERY_META_SETTINGS . '[' . $id . ']" placeholder="' . $placeholder . '">' . esc_attr( $field['value'] ) . '</textarea>';
97
98
					break;
99
100
				case 'text':
101
					echo '<input' . $field_class . ' type="text" id="FooGallerySettings_' . $id . '" name="' . FOOGALLERY_META_SETTINGS . '[' . $id . ']" value="' . esc_attr( $field['value'] ) . '" />';
102
103
					break;
104
105
				case 'colorpicker':
0 ignored issues
show
Coding Style introduced by
The case body in a switch statement must start on the line following the statement.

According to the PSR-2, the body of a case statement must start on the line immediately following the case statement.

switch ($expr) {
case "A":
    doSomething(); //right
    break;
case "B":

    doSomethingElse(); //wrong
    break;

}

To learn more about the PSR-2 coding standard, please refer to the PHP-Fig.

Loading history...
106
107
					$opacity_attribute = empty($opacity) ? '' : ' data-show-alpha="true"';
108
109
					echo '<input ' . $opacity_attribute . ' class="colorpicker" type="text" id="FooGallerySettings_' . $id . '" name="' . FOOGALLERY_META_SETTINGS . '[' . $id . ']" value="' . esc_attr( $field['value'] ) . '" />';
110
111
					break;
112
113
				case 'number':
114
					$min = isset($min) ? $min : 0;
115
					$step = isset($step) ? $step : 1;
116
					echo '<input class="regular-text ' . $class . '" type="number" step="' . $step . '" min="' . $min .'" id="FooGallerySettings_' . $id . '" name="' . FOOGALLERY_META_SETTINGS . '[' . $id . ']" placeholder="' . $placeholder . '" value="' . esc_attr( $field['value'] ) . '" />';
117
118
					break;
119
120
				case 'checkboxlist':
121
					$i = 0;
122
					foreach ( $choices as $value => $label ) {
123
124
						$checked = '';
125
						if ( isset($field['value'][$value]) && $field['value'][$value] == 'true' ) {
126
							$checked = 'checked="checked"';
127
						}
128
129
						echo '<input' . $field_class . ' ' . $checked . ' type="checkbox" name="' . FOOGALLERY_META_SETTINGS . '[' . $id . '|' . $value . ']" id="FooGallerySettings_' . $id . $i . '" value="on"> <label for="FooGallerySettings_' . $id . $i . '">' . $label . '</label>';
130
						if ( $i < count( $choices ) - 1 ) {
131
							echo '<br />';
132
						}
133
						$i++;
134
					}
135
136
					break;
137
				case 'icon':
138
					$i = 0;
139
					$input_name = FOOGALLERY_META_SETTINGS . '[' . $id . ']';
140
					$icon_html = '';
141
					foreach ( $choices as $value => $icon ) {
142
						$selected = ( $field['value'] == $value ) ? ' checked="checked"' : '';
143
						$icon_html .= '<input style="display:none" name="' . $input_name. '" id="FooGallerySettings_' . $id . $i . '" ' . $selected . ' type="radio" value="' . $value . '" tabindex="' . $i . '"/>';
144
						$title = $icon['label'];
145
						$img = $icon['img'];
146
						$icon_html .= '<label for="FooGallerySettings_' . $id . $i . '" title="' . $title . '"><img src="' . $img . '" /></label>';
147
						$i++;
148
					}
149
					echo $icon_html;
150
					break;
151
152
				case 'thumb_size':
153
					$width = is_array( $field['value'] ) ? $field['value']['width'] : 150;
154
					$height = is_array( $field['value'] ) ? $field['value']['height'] : 150;
155
					$crop = is_array( $field['value'] ) && array_key_exists( 'crop', $field['value'] ) ? $field['value']['crop'] : 0;
156
					$crop_checked = ( $crop == 1 ) ? ' checked="checked"' : '';
157
					echo '<label for="FooGallerySettings_' . $id . '_width">' . __( 'Width', 'foogallery' ) . '</label>';
158
					echo '<input class="small-text" type="number" step="1" min="0" id="FooGallerySettings_' . $id . '_width" name="' . FOOGALLERY_META_SETTINGS . '[' . $id . '][width]" value="' . esc_attr( $width ) . '" />';
159
					echo '<label for="FooGallerySettings_' . $id . '_width">' . __( 'Height', 'foogallery' ) . '</label>';
160
					echo '<input class="small-text" type="number" step="1" min="0" id="FooGallerySettings_' . $id . '_height" name="' . FOOGALLERY_META_SETTINGS . '[' . $id . '][height]" value="' . esc_attr( $height ) . '" />';
161
					echo '<input name="' . FOOGALLERY_META_SETTINGS . '[' . $id . '][crop]" type="hidden" id="FooGallerySettings_' . $id . '_nocrop" value="0" />';
162
					echo '<input name="' . FOOGALLERY_META_SETTINGS . '[' . $id . '][crop]" type="checkbox" id="FooGallerySettings_' . $id . '_crop" value="1"' . $crop_checked . '>';
163
					echo '<label for="FooGallerySettings_' . $id . '_crop">' . __( 'Crop thumbnail to exact dimensions', 'foogallery' ) . '</label>';
164
					break;
165
166
				default:
167
					do_action( 'foogallery_render_gallery_template_field_custom', $field, $gallery, $template );
168
					break;
169
			}
170
171
			if (!empty($suffix)) {
172
				echo $suffix;
173
			}
174
175
			echo '</div>';
176
			if ( isset( $desc ) ) {
177
				echo '<small>' . $desc . '</small>';
178
			}
179
180
			//allow for more customization
181
			do_action( 'foogallery_render_gallery_template_field_after', $field, $gallery );
182
		}
183
184
		function alter_gallery_template_field( $field, $gallery ) {
185
			if ( $field ) {
186
				switch ( $field['type'] ) {
187
					case 'thumb_link':
188
						$field['type'] = 'radio';
189
						$field['choices'] = $this->get_thumb_link_field_choices();
190
						break;
191
					case 'lightbox':
192
						$field['lightbox'] = true;
193
						$lightboxes = $this->get_lightbox_field_choices();
194
						if ( 1 === count( $lightboxes ) && array_key_exists( 'none', $lightboxes ) ) {
195
							$field['type'] = 'html';
196
							$field['desc'] = '<strong>' . __( 'You have no lightbox extensions activated!', 'foogallery' ) . '</strong><br />';
197
							$api = new FooGallery_Extensions_API();
198
							if ( $api->is_downloaded( false, FOOGALLERY_FOOBOX_PRO_EXTENSION_SLUG ) ) {
0 ignored issues
show
Documentation introduced by
FOOGALLERY_FOOBOX_PRO_EXTENSION_SLUG is of type string, but the function expects a boolean.

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:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
199
								//just need to activate it
200
								$foobox_install_link = foogallery_build_admin_menu_url( array(
201
									'page' => 'foogallery-extensions',
202
									'extension' => FOOGALLERY_FOOBOX_PRO_EXTENSION_SLUG,
203
									'action' => 'activate',
204
								));
205
								$field['desc'] .= '<a target="_blank" href="' . esc_url( $foobox_install_link ). '">' . __( 'Activate FooBox right now!', 'foogallery' ) . '</a>';
206
							} else if ( $api->is_downloaded( false, FOOGALLERY_FOOBOX_FREE_EXTENSION_SLUG ) ) {
0 ignored issues
show
Documentation introduced by
FOOGALLERY_FOOBOX_FREE_EXTENSION_SLUG is of type string, but the function expects a boolean.

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:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
207
								//just need to activate it
208
								$foobox_install_link = foogallery_build_admin_menu_url( array(
209
									'page' => 'foogallery-extensions',
210
									'extension' => FOOGALLERY_FOOBOX_FREE_EXTENSION_SLUG,
211
									'action' => 'activate',
212
								));
213
								$field['desc'] .= '<a target="_blank" href="' . esc_url( $foobox_install_link ). '">' . __( 'Activate FooBox FREE right now!', 'foogallery' ) . '</a>';
214
							} else {
215
								//we need to download it
216
								$foobox_install_link = foogallery_build_admin_menu_url( array(
217
									'page' => 'foogallery-extensions',
218
									'extension' => FOOGALLERY_FOOBOX_FREE_EXTENSION_SLUG,
219
									'action' => 'download',
220
								));
221
								$foobox_install_html = '<a target="_blank" href="' . esc_url( $foobox_install_link ) . '">' . __( 'Download and activate FooBox FREE', 'foogallery' ) . '</a>';
222
								$field['desc'] .= sprintf( __( '%s which works flawlessly with %s.', 'foogallery' ), $foobox_install_html, foogallery_plugin_name() );
223
							}
224
						} else {
225
							$field['type'] = 'select';
226
							$field['choices'] = $lightboxes;
227
						}
228
						break;
229
				}
230
231
				if ( isset($field['help']) && $field['help'] ) {
232
					$field['type'] = 'help';
233
				}
234
			}
235
			return $field;
236
		}
237
238
		function get_thumb_size_choices() {
239
			global $_wp_additional_image_sizes;
240
			$sizes = array();
241
			foreach( get_intermediate_image_sizes() as $s ){
242
				$sizes[ $s ] = array( 0, 0 );
243
				if ( in_array( $s, array( 'thumbnail', 'medium', 'large', ) ) ){
244
					$sizes[ $s ] = $s . ' (' . get_option( $s . '_size_w' ) . 'x' . get_option( $s . '_size_h' ) . ')';
245
				} else {
246
					if ( isset( $_wp_additional_image_sizes ) && isset( $_wp_additional_image_sizes[ $s ] ) )
247
						$sizes[ $s ] = $s . ' (' . $_wp_additional_image_sizes[ $s ]['width'] . 'x' . $_wp_additional_image_sizes[ $s ]['height'] . ')';
248
				}
249
			}
250
			return $sizes;
251
		}
252
253
		function get_thumb_link_field_choices() {
254
			return apply_filters( 'foogallery_gallery_template_field_thumb_links', array(
255
				'image'  => __( 'Full Size Image', 'foogallery' ),
256
				'page'   => __( 'Image Attachment Page', 'foogallery' ),
257
				'custom' => __( 'Custom URL', 'foogallery' ),
258
				'none'   => __( 'Not linked', 'foogallery' ),
259
			) );
260
		}
261
262
		function get_lightbox_field_choices() {
263
			$lightboxes = apply_filters( 'foogallery_gallery_template_field_lightboxes', array() );
264
			$lightboxes['none'] = __( 'None', 'foogallery' );
265
			return $lightboxes;
266
		}
267
268
		/***
269
		 * Check if we have a lightbox value from FooBox free and change it if foobox free is no longer active
270
		 * @param $value
271
		 * @param $field
272
		 * @param $gallery
273
		 * @param $template
274
		 *
275
		 * @return string
276
		 */
277
		function check_lightbox_value($value, $field, $gallery, $template) {
278
279
			if ( isset( $field['lightbox'] ) ) {
280
				if ( 'foobox-free' === $value ) {
281
					if ( !class_exists( 'Foobox_Free' ) ) {
282
						return 'foobox';
283
					}
284
				}
285
			}
286
287
			return $value;
288
		}
289
	}
290
}
291