Issues (1223)

classes/class-lsx-team-widget.php (5 issues)

1
<?php
2
/**
3
 * LSX Team Widget Class
4
 *
5
 * @package   LSX Team
6
 * @author    LightSpeed
7
 * @license   GPL3
8
 * @link
9
 * @copyright 2016 LightSpeed
10
 */
11
class LSX_Team_Widget extends WP_Widget {
12
13
	public function __construct() {
14
		$widget_ops = array(
15
			'classname' => 'lsx-team',
16
		);
17
18
		parent::__construct( 'LSX_Team_Widget', esc_html__( 'LSX Team Members', 'lsx-team' ), $widget_ops );
19
	}
20
21
	public function widget( $args, $instance ) {
22
		extract( $args );
23
24
		$title = $instance['title'];
25
		$title_link = $instance['title_link'];
26
		$tagline = $instance['tagline'];
27
		$columns = $instance['columns'];
28
		$orderby = $instance['orderby'];
29
		$order = $instance['order'];
30
		$role = $instance['role'];
31
		$limit = $instance['limit'];
32
		$include = $instance['include'];
33
		$display = $instance['display'];
34
		$size = $instance['size'];
35
		$show_link = $instance['show_link'];
36
		$show_image = $instance['show_image'];
37
		$show_roles = $instance['show_roles'];
38
		$show_job_title = $instance['show_job_title'];
39
		$show_desc = $instance['show_desc'];
40
		$show_social = $instance['show_social'];
41
		$button_text = $instance['button_text'];
42
		$carousel = $instance['carousel'];
43
		$featured = $instance['featured'];
44
45
		// If limit not set, display 99 posts
46
		if ( empty( $limit ) ) {
47
			$limit = '99';
48
		}
49
50
		// If specific posts included, display 99 posts
51
		if ( ! empty( $include ) ) {
52
			$limit = '99';
53
		}
54
55
		// Disregard specific ID setting if specific role is defined
56
		if ( 'all' !== $role ) {
57
			$include = '';
58
		} else {
59
			$role = '';
60
		}
61
62
		$show_link = '1' == $show_link ? 'true' : 'false';
63
		$show_image = '1' == $show_image ? 'true' : 'false';
64
		$show_roles = '1' == $show_roles ? 'true' : 'false';
65
		$show_job_title = '1' == $show_job_title ? 'true' : 'false';
66
		$show_desc = '1' == $show_desc ? 'true' : 'false';
67
		$show_social = '1' == $show_social ? 'true' : 'false';
68
		$carousel = '1' == $carousel ? 'true' : 'false';
69
		$featured = '1' == $featured ? 'true' : 'false';
70
71
		if ( $title_link ) {
72
			//$link_open = '<a href="' . $title_link . '">';
73
			$link_open = '';
74
			$link_btn_open = '<a href="' . $title_link . '" class="btn border-btn">';
75
			//$link_close = '</a>';
76
			$link_close = '';
77
			$link_btn_close = '</a>';
78
		} else {
79
			$link_open = '';
80
			$link_btn_open = '';
81
			$link_close = '';
82
			$link_btn_close = '';
83
		}
84
85
		echo wp_kses_post( $before_widget );
86
87
		if ( $title ) {
88
			echo wp_kses_post( $before_title . $link_open . $title . $link_close . $after_title );
89
		}
90
91
		if ( $tagline ) {
92
			echo '<p class="tagline text-center">' . esc_html( $tagline ) . '</p>';
93
		}
94
95
		if ( class_exists( 'LSX_Team' ) ) {
96
			lsx_team( array(
97
				'columns' => $columns,
98
				'orderby' => $orderby,
99
				'order' => $order,
100
				'role' => $role,
101
				'limit' => $limit,
102
				'include' => $include,
103
				'display' => $display,
104
				'size' => $size,
105
				'show_link' => $show_link,
106
				'show_image' => $show_image,
107
				'show_roles' => $show_roles,
108
				'show_job_title' => $show_job_title,
109
				'show_desc' => $show_desc,
110
				'show_social' => $show_social,
111
				'carousel' => $carousel,
112
				'featured' => $featured,
113
			) );
114
115
		};
116
117
		if ( $button_text && $title_link ) {
118
			echo wp_kses_post( '<p class="text-center lsx-team-archive-link-wrap"><span class="lsx-team-archive-link">' . $link_btn_open . $button_text . ' <i class="fa fa-angle-right"></i>' . $link_btn_close . '</span></p>' );
119
		}
120
121
		echo wp_kses_post( $after_widget );
122
	}
123
124
	public function update( $new_instance, $old_instance ) {
125
		$instance = $old_instance;
126
127
		$instance['title'] 				= wp_kses_post( force_balance_tags( $new_instance['title'] ) );
128
		$instance['title_link'] 		= strip_tags( $new_instance['title_link'] );
129
		$instance['tagline'] 			= strip_tags( $new_instance['tagline'] );
130
		$instance['columns'] 			= strip_tags( $new_instance['columns'] );
131
		$instance['orderby'] 			= strip_tags( $new_instance['orderby'] );
132
		$instance['order'] 				= strip_tags( $new_instance['order'] );
133
		$instance['role'] 				= strip_tags( $new_instance['role'] );
134
		$instance['limit'] 				= strip_tags( $new_instance['limit'] );
135
		$instance['include'] 			= strip_tags( $new_instance['include'] );
136
		$instance['display'] 			= strip_tags( $new_instance['display'] );
137
		$instance['size'] 				= strip_tags( $new_instance['size'] );
138
		$instance['show_link'] 			= strip_tags( $new_instance['show_link'] );
139
		$instance['show_image'] 		= strip_tags( $new_instance['show_image'] );
140
		$instance['show_roles'] 		= strip_tags( $new_instance['show_roles'] );
141
		$instance['show_job_title'] 	= strip_tags( $new_instance['show_job_title'] );
142
		$instance['show_desc'] 			= strip_tags( $new_instance['show_desc'] );
143
		$instance['show_social'] 		= strip_tags( $new_instance['show_social'] );
144
		$instance['button_text'] 	    = strip_tags( $new_instance['button_text'] );
145
		$instance['carousel'] 			= strip_tags( $new_instance['carousel'] );
146
		$instance['featured']           = strip_tags( $new_instance['featured'] );
147
148
		return $instance;
149
	}
150
151
	public function form( $instance ) {
152
		$defaults = array(
153
			'title' => 'Team Members',
154
			'title_link' => '',
155
			'tagline' => '',
156
			'columns' => '1',
157
			'orderby' => 'name',
158
			'order' => 'ASC',
159
			'role' => '',
160
			'limit' => '',
161
			'include' => '',
162
			'display' => 'excerpt',
163
			'size' => 'lsx-team-archive',
164
			'show_link' => 0,
165
			'show_image' => 1,
166
			'show_roles' => 0,
167
			'show_job_title' => 1,
168
			'show_desc' => 1,
169
			'show_social' => 1,
170
			'button_text' => '',
171
			'carousel' => 1,
172
			'featured' => 0,
173
		);
174
175
		$instance = wp_parse_args( (array) $instance, $defaults );
176
177
		$title 				= esc_attr( $instance['title'] );
178
		$title_link			= esc_attr( $instance['title_link'] );
179
		$tagline 			= esc_attr( $instance['tagline'] );
180
		$columns 			= esc_attr( $instance['columns'] );
181
		$orderby 			= esc_attr( $instance['orderby'] );
182
		$order 				= esc_attr( $instance['order'] );
183
		$role 				= esc_attr( $instance['role'] );
184
		$limit  			= esc_attr( $instance['limit'] );
185
		$include  			= esc_attr( $instance['include'] );
186
		$display  			= esc_attr( $instance['display'] );
187
		$size  				= esc_attr( $instance['size'] );
188
		$show_link 			= esc_attr( $instance['show_link'] );
189
		$show_image 		= esc_attr( $instance['show_image'] );
190
		$show_roles 		= esc_attr( $instance['show_roles'] );
191
		$show_job_title 	= esc_attr( $instance['show_job_title'] );
192
		$show_desc 			= esc_attr( $instance['show_desc'] );
193
		$show_social 		= esc_attr( $instance['show_social'] );
194
		$button_text 	    = esc_attr( $instance['button_text'] );
195
		$carousel 			= esc_attr( $instance['carousel'] );
196
		$featured           = esc_attr( $instance['featured'] );
197
		?>
198
		<p>
199
			<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title:', 'lsx-team' ); ?></label>
200
			<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
201
		</p>
202
		<p>
203
			<label for="<?php echo esc_attr( $this->get_field_id( 'title_link' ) ); ?>"><?php esc_html_e( 'Page Link:', 'lsx-team' ); ?></label>
204
			<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title_link' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title_link' ) ); ?>" type="text" value="<?php echo esc_attr( $title_link ); ?>" />
205
			<small><?php esc_html_e( 'Link the widget to a page', 'lsx-team' ); ?></small>
206
		</p>
207
		<p>
208
			<label for="<?php echo esc_attr( $this->get_field_id( 'tagline' ) ); ?>"><?php esc_html_e( 'Tagline:', 'lsx-team' ); ?></label>
209
			<textarea class="widefat" rows="8" cols="20" id="<?php echo esc_attr( $this->get_field_id( 'tagline' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'tagline' ) ); ?>"><?php echo esc_html( $tagline ); ?></textarea>
210
			<small><?php esc_html_e( 'Tagline to display below the widget title', 'lsx-team' ); ?></small>
211
		</p>
212
		<p>
213
			<label for="<?php echo esc_attr( $this->get_field_id( 'columns' ) ); ?>"><?php esc_html_e( 'Columns:', 'lsx-team' ); ?></label>
214
			<select name="<?php echo esc_attr( $this->get_field_name( 'columns' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'columns' ) ); ?>" class="widefat layout">
215
			<?php
216
				$options = array( '1', '2', '3', '4' );
217
218
			foreach ( $options as $option ) {
219
					echo '<option value="' . lcfirst( esc_attr( $option ) ) . '" id="' . esc_attr( $option ) . '"', lcfirst( $option ) == $columns ? ' selected="selected"' : '', '>', esc_html( $option ), '</option>';
220
			}
221
			?>
222
			</select>
223
		</p>
224
		<p>
225
			<label for="<?php echo esc_attr( $this->get_field_id( 'orderby' ) ); ?>"><?php esc_html_e( 'Order By:', 'lsx-team' ); ?></label>
226
			<select name="<?php echo esc_attr( $this->get_field_name( 'orderby' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'orderby' ) ); ?>" class="widefat">
227
			<?php
228
				$options = array(
229
					esc_html__( 'None', 'lsx-team' ) => 'none',
230
					esc_html__( 'ID', 'lsx-team' ) => 'ID',
231
					esc_html__( 'Name', 'lsx-team' ) => 'name',
232
					esc_html__( 'Date', 'lsx-team' ) => 'date',
233
					esc_html__( 'Modified Date', 'lsx-team' ) => 'modified',
234
					esc_html__( 'Random', 'lsx-team' ) => 'rand',
235
					esc_html__( 'Menu (WP dashboard order)', 'lsx-team' ) => 'menu_order',
236
				);
237
238
			foreach ( $options as $name => $value ) {
239
					echo '<option value="' . esc_attr( $value ) . '" id="' . esc_attr( $value ) . '"', $orderby == $value ? ' selected="selected"' : '', '>', esc_html( $name ), '</option>';
240
			}
241
			?>
242
			</select>
243
		</p>
244
		<p>
245
			<label for="<?php echo esc_attr( $this->get_field_id( 'order' ) ); ?>"><?php esc_html_e( 'Order:', 'lsx-team' ); ?></label>
246
			<select name="<?php echo esc_attr( $this->get_field_name( 'order' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'order' ) ); ?>" class="widefat">
247
			<?php
248
				$options = array(
249
					esc_html__( 'Ascending', 'lsx-team' ) => 'ASC',
250
					esc_html__( 'Descending', 'lsx-team' ) => 'DESC',
251
				);
252
253
			foreach ( $options as $name => $value ) {
254
					echo '<option value="' . esc_attr( $value ) . '" id="' . esc_attr( $value ) . '"', $order == $value ? ' selected="selected"' : '', '>', esc_html( $name ), '</option>';
255
			}
256
			?>
257
			</select>
258
		</p>
259
		<p>
260
			<label for="<?php echo esc_attr( $this->get_field_id( 'role' ) ); ?>"><?php esc_html_e( 'Role:', 'lsx-team' ); ?></label>
261
			<select name="<?php echo esc_attr( $this->get_field_name( 'role' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'role' ) ); ?>" class="widefat">
262
			<?php
263
				$options = get_terms( 'team_role' );
264
			?>
265
			<option value="all" id="all">
266
				<?php esc_html_e( 'All Roles', 'lsx-team' ); ?>
267
			</option>
268
			<?php
269
			foreach ( $options as $option ) {
270
					echo '<option value="' . esc_attr( $option->slug ) . '" id="' . esc_attr( $option->slug ) . '"', $role == $option->slug ? ' selected="selected"' : '', '>', esc_html( $option->name ), '</option>';
271
			}
272
			?>
273
			</select>
274
			<small><?php esc_html_e( 'Display team members within a specific role', 'lsx-team' ); ?></small>
275
		</p>
276
		<p>
277
			<label for="<?php echo esc_attr( $this->get_field_id( 'limit' ) ); ?>"><?php esc_html_e( 'Maximum amount:', 'lsx-team' ); ?></label>
278
			<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'limit' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'limit' ) ); ?>" type="text" value="<?php echo esc_attr( $limit ); ?>" />
279
			<small><?php esc_html_e( 'Leave empty to display all', 'lsx-team' ); ?></small>
280
		</p>
281
		<p>
282
			<label for="<?php echo esc_attr( $this->get_field_id( 'include' ) ); ?>"><?php esc_html_e( 'Specify Team Members by ID:', 'lsx-team' ); ?></label>
283
			<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'include' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'include' ) ); ?>" type="text" value="<?php echo esc_attr( $include ); ?>" />
284
			<small><?php esc_html_e( 'Comma separated list, overrides limit setting', 'lsx-team' ); ?></small>
285
		</p>
286
		<p>
287
			<label for="<?php echo esc_attr( $this->get_field_id( 'display' ) ); ?>"><?php esc_html_e( 'Display:', 'lsx-team' ); ?></label>
288
			<select name="<?php echo esc_attr( $this->get_field_name( 'display' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'display' ) ); ?>" class="widefat">
289
			<?php
290
				$options = array(
291
					esc_html__( 'Excerpt', 'lsx-team' ) => 'excerpt',
292
					esc_html__( 'Full Content', 'lsx-team' ) => 'full',
293
				);
294
295
			foreach ( $options as $name => $value ) {
296
					echo '<option value="' . esc_attr( $value ) . '" id="' . esc_attr( $value ) . '"', $display == $value ? ' selected="selected"' : '', '>', esc_html( $name ), '</option>';
297
			}
298
			?>
299
			</select>
300
		</p>
301
		<p>
302
			<label for="<?php echo esc_attr( $this->get_field_id( 'size' ) ); ?>"><?php esc_html_e( 'Image size:', 'lsx-team' ); ?></label>
303
			<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'size' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'size' ) ); ?>" type="text" value="<?php echo esc_attr( $size ); ?>" />
304
		</p>
305
		<p>
306
			<label for="<?php echo esc_attr( $this->get_field_id( 'button_text' ) ); ?>"><?php esc_html_e( 'Button "view all" text:', 'lsx-team' ); ?></label>
307
			<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'button_text' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'button_text' ) ); ?>" type="text" value="<?php echo esc_attr( $button_text ); ?>" />
308
			<small><?php esc_html_e( 'Leave empty to not display the button', 'lsx-team' ); ?></small>
309
		</p>
310
		<p>
311
			<input id="<?php echo esc_attr( $this->get_field_id( 'show_link' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'show_link' ) ); ?>" type="checkbox" value="1" <?php checked( '1', $show_link ); ?> />
312
			<label for="<?php echo esc_attr( $this->get_field_id( 'show_link' ) ); ?>"><?php esc_html_e( 'Link to Single', 'lsx-team' ); ?></label>
313
		</p>
314
		<p>
315
			<input id="<?php echo esc_attr( $this->get_field_id( 'show_image' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'show_image' ) ); ?>" type="checkbox" value="1" <?php checked( '1', $show_image ); ?> />
316
			<label for="<?php echo esc_attr( $this->get_field_id( 'show_image' ) ); ?>"><?php esc_html_e( 'Show Images', 'lsx-team' ); ?></label>
317
		</p>
318
		<p>
319
			<input id="<?php echo esc_attr( $this->get_field_id( 'show_roles' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'show_roles' ) ); ?>" type="checkbox" value="1" <?php checked( '1', $show_roles ); ?> />
320
			<label for="<?php echo esc_attr( $this->get_field_id( 'show_roles' ) ); ?>"><?php esc_html_e( 'Show Roles', 'lsx-team' ); ?></label>
321
		</p>
322
		<p>
323
			<input id="<?php echo esc_attr( $this->get_field_id( 'show_job_title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'show_job_title' ) ); ?>" type="checkbox" value="1" <?php checked( '1', $show_job_title ); ?> />
324
			<label for="<?php echo esc_attr( $this->get_field_id( 'show_job_title' ) ); ?>"><?php esc_html_e( 'Show Job Title', 'lsx-team' ); ?></label>
325
		</p>
326
		<p>
327
			<input id="<?php echo esc_attr( $this->get_field_id( 'show_desc' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'show_desc' ) ); ?>" type="checkbox" value="1" <?php checked( '1', $show_desc ); ?> />
328
			<label for="<?php echo esc_attr( $this->get_field_id( 'show_desc' ) ); ?>"><?php esc_html_e( 'Show Description', 'lsx-team' ); ?></label>
329
		</p>
330
		<p>
331
			<input id="<?php echo esc_attr( $this->get_field_id( 'show_social' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'show_social' ) ); ?>" type="checkbox" value="1" <?php checked( '1', $show_social ); ?> />
332
			<label for="<?php echo esc_attr( $this->get_field_id( 'show_social' ) ); ?>"><?php esc_html_e( 'Show Social Icons', 'lsx-team' ); ?></label>
333
		</p>
334
		<p>
335
			<input id="<?php echo esc_attr( $this->get_field_id( 'carousel' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'carousel' ) ); ?>" type="checkbox" value="1" <?php checked( '1', $carousel ); ?> />
336
			<label for="<?php echo esc_attr( $this->get_field_id( 'carousel' ) ); ?>"><?php esc_html_e( 'Carousel', 'lsx-team' ); ?></label>
337
		</p>
338
		<p>
339
			<input id="<?php echo esc_attr( $this->get_field_id( 'featured' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'featured' ) ); ?>" type="checkbox" value="1" <?php checked( '1', $featured ); ?> />
340
			<label for="<?php echo esc_attr( $this->get_field_id( 'featured' ) ); ?>"><?php esc_html_e( 'Featured posts', 'lsx-team' ); ?></label>
341
		</p>
342
		<?php
343
	}
344
345
}
346
347
/**
348
* Registers the Widget
0 ignored issues
show
Expected 1 space(s) before asterisk; 0 found
Loading history...
349
*/
0 ignored issues
show
Expected 1 space(s) before asterisk; 0 found
Loading history...
350
function lsx_team_widget() {
0 ignored issues
show
Expected 2 blank lines before function; 1 found
Loading history...
351
	register_widget( 'LSX_Team_Widget' );
352
}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
353
354
add_action( 'widgets_init', 'lsx_team_widget' );
355