Passed
Push — master ( 2c632e...2916ae )
by Warwick
02:47 queued 13s
created
includes/class-lsx-team-scpo-engine.php 1 patch
Indentation   +366 added lines, -366 removed lines patch added patch discarded remove patch
@@ -13,133 +13,133 @@  discard block
 block discarded – undo
13 13
  */
14 14
 class LSX_TEAM_SCPO_Engine {
15 15
 
16
-	public function __construct() {
17
-		if ( ! get_option( 'lsx_team_scporder_install' ) )
18
-			$this->lsx_team_scporder_install();
16
+     public function __construct() {
17
+          if ( ! get_option( 'lsx_team_scporder_install' ) )
18
+               $this->lsx_team_scporder_install();
19 19
 
20
-		add_action( 'admin_init', array( $this, 'refresh' ) );
21
-		add_action( 'admin_init', array( $this, 'load_script_css' ) );
20
+          add_action( 'admin_init', array( $this, 'refresh' ) );
21
+          add_action( 'admin_init', array( $this, 'load_script_css' ) );
22 22
 
23
-		add_action( 'wp_ajax_update-menu-order', array( $this, 'update_menu_order' ) );
24
-		add_action( 'wp_ajax_update-menu-order-tags', array( $this, 'update_menu_order_tags' ) );
23
+          add_action( 'wp_ajax_update-menu-order', array( $this, 'update_menu_order' ) );
24
+          add_action( 'wp_ajax_update-menu-order-tags', array( $this, 'update_menu_order_tags' ) );
25 25
 
26
-		add_action( 'pre_get_posts', array( $this, 'lsx_team_scporder_pre_get_posts' ) );
26
+          add_action( 'pre_get_posts', array( $this, 'lsx_team_scporder_pre_get_posts' ) );
27 27
 
28
-		add_filter( 'get_previous_post_where', array( $this, 'lsx_team_scporder_previous_post_where' ) );
29
-		add_filter( 'get_previous_post_sort', array( $this, 'lsx_team_scporder_previous_post_sort' ) );
30
-		add_filter( 'get_next_post_where', array( $this, 'lsx_team_scporder_next_post_where' ) );
31
-		add_filter( 'get_next_post_sort', array( $this, 'lsx_team_scporder_next_post_sort' ) );
28
+          add_filter( 'get_previous_post_where', array( $this, 'lsx_team_scporder_previous_post_where' ) );
29
+          add_filter( 'get_previous_post_sort', array( $this, 'lsx_team_scporder_previous_post_sort' ) );
30
+          add_filter( 'get_next_post_where', array( $this, 'lsx_team_scporder_next_post_where' ) );
31
+          add_filter( 'get_next_post_sort', array( $this, 'lsx_team_scporder_next_post_sort' ) );
32 32
 
33
-		add_filter( 'get_terms_orderby', array( $this, 'lsx_team_scporder_get_terms_orderby' ), 10, 3 );
34
-		add_filter( 'wp_get_object_terms', array( $this, 'lsx_team_scporder_get_object_terms' ), 10, 3 );
35
-		add_filter( 'get_terms', array( $this, 'lsx_team_scporder_get_object_terms' ), 10, 3 );
36
-	}
33
+          add_filter( 'get_terms_orderby', array( $this, 'lsx_team_scporder_get_terms_orderby' ), 10, 3 );
34
+          add_filter( 'wp_get_object_terms', array( $this, 'lsx_team_scporder_get_object_terms' ), 10, 3 );
35
+          add_filter( 'get_terms', array( $this, 'lsx_team_scporder_get_object_terms' ), 10, 3 );
36
+     }
37 37
 
38
-	public function lsx_team_scporder_install() {
39
-		global $wpdb;
40
-		$result = $wpdb->query( "DESCRIBE $wpdb->terms `lsx_team_term_order`" );
38
+     public function lsx_team_scporder_install() {
39
+          global $wpdb;
40
+          $result = $wpdb->query( "DESCRIBE $wpdb->terms `lsx_team_term_order`" );
41 41
 
42
-		if ( ! $result ) {
43
-			$result = $wpdb->query( "ALTER TABLE $wpdb->terms ADD `lsx_team_term_order` INT( 4 ) NULL DEFAULT '0'" );
44
-		}
42
+          if ( ! $result ) {
43
+               $result = $wpdb->query( "ALTER TABLE $wpdb->terms ADD `lsx_team_term_order` INT( 4 ) NULL DEFAULT '0'" );
44
+          }
45 45
 
46
-		update_option( 'lsx_team_scporder_install', 1 );
47
-	}
46
+          update_option( 'lsx_team_scporder_install', 1 );
47
+     }
48 48
 
49
-	public function _check_load_script_css() {
50
-		$active = false;
49
+     public function _check_load_script_css() {
50
+          $active = false;
51 51
 
52
-		$objects = $this->get_lsx_team_scporder_options_objects();
53
-		$tags = $this->get_lsx_team_scporder_options_tags();
52
+          $objects = $this->get_lsx_team_scporder_options_objects();
53
+          $tags = $this->get_lsx_team_scporder_options_tags();
54 54
 
55
-		if ( empty( $objects ) && empty( $tags ) )
56
-			return false;
55
+          if ( empty( $objects ) && empty( $tags ) )
56
+               return false;
57 57
 
58
-		if ( isset( $_GET['orderby'] ) || strstr( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 'action=edit' ) || strstr( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 'wp-admin/post-new.php' ) )
59
-			return false;
58
+          if ( isset( $_GET['orderby'] ) || strstr( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 'action=edit' ) || strstr( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 'wp-admin/post-new.php' ) )
59
+               return false;
60 60
 
61
-		if ( ! empty( $objects ) ) {
62
-			if ( isset( $_GET['post_type'] ) && ! isset( $_GET['taxonomy'] ) && array_key_exists( sanitize_text_field( wp_unslash( $_GET['post_type'] ) ), $objects ) ) { // if page or custom post types.
63
-				$active = true;
64
-			}
65
-			if ( ! isset( $_GET['post_type'] ) && strstr( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 'wp-admin/edit.php' ) && array_key_exists( 'post', $objects ) ) { // if post.
66
-				$active = true;
67
-			}
68
-		}
61
+          if ( ! empty( $objects ) ) {
62
+               if ( isset( $_GET['post_type'] ) && ! isset( $_GET['taxonomy'] ) && array_key_exists( sanitize_text_field( wp_unslash( $_GET['post_type'] ) ), $objects ) ) { // if page or custom post types.
63
+                    $active = true;
64
+               }
65
+               if ( ! isset( $_GET['post_type'] ) && strstr( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 'wp-admin/edit.php' ) && array_key_exists( 'post', $objects ) ) { // if post.
66
+                    $active = true;
67
+               }
68
+          }
69 69
 
70
-		if ( ! empty( $tags ) ) {
71
-			if ( isset( $_GET['taxonomy'] ) && array_key_exists( sanitize_text_field( wp_unslash( $_GET['taxonomy'] ) ), $tags ) ) {
72
-				$active = true;
73
-			}
74
-		}
70
+          if ( ! empty( $tags ) ) {
71
+               if ( isset( $_GET['taxonomy'] ) && array_key_exists( sanitize_text_field( wp_unslash( $_GET['taxonomy'] ) ), $tags ) ) {
72
+                    $active = true;
73
+               }
74
+          }
75 75
 
76
-		return $active;
77
-	}
76
+          return $active;
77
+     }
78 78
 
79
-	public function load_script_css() {
80
-		if ( $this->_check_load_script_css() ) {
81
-			wp_enqueue_script( 'scporderjs', LSX_TEAM_URL . 'assets/js/scporder.min.js', array( 'jquery', 'jquery-ui-sortable' ), null, true );
79
+     public function load_script_css() {
80
+          if ( $this->_check_load_script_css() ) {
81
+               wp_enqueue_script( 'scporderjs', LSX_TEAM_URL . 'assets/js/scporder.min.js', array( 'jquery', 'jquery-ui-sortable' ), null, true );
82 82
 
83
-			$scporderjs_params = array(
84
-				'ajax_url' => admin_url( 'admin-ajax.php' ),
85
-				'ajax_nonce' => wp_create_nonce( 'scporder' ),
86
-			 );
83
+               $scporderjs_params = array(
84
+                    'ajax_url' => admin_url( 'admin-ajax.php' ),
85
+                    'ajax_nonce' => wp_create_nonce( 'scporder' ),
86
+                    );
87 87
 
88
-			wp_localize_script( 'scporderjs', 'scporderjs_params', $scporderjs_params );
88
+               wp_localize_script( 'scporderjs', 'scporderjs_params', $scporderjs_params );
89 89
 
90
-			wp_enqueue_style( 'scporder', LSX_TEAM_URL . 'assets/css/scporder.css', array(), null );
91
-		}
92
-	}
90
+               wp_enqueue_style( 'scporder', LSX_TEAM_URL . 'assets/css/scporder.css', array(), null );
91
+          }
92
+     }
93 93
 
94
-	public function refresh() {
95
-		global $wpdb;
96
-		$objects = $this->get_lsx_team_scporder_options_objects();
97
-		$tags = $this->get_lsx_team_scporder_options_tags();
94
+     public function refresh() {
95
+          global $wpdb;
96
+          $objects = $this->get_lsx_team_scporder_options_objects();
97
+          $tags = $this->get_lsx_team_scporder_options_tags();
98 98
 
99
-		if ( ! empty( $objects ) ) {
100
-			foreach ( $objects as $object => $object_data ) {
101
-				$result = $wpdb->get_results( $wpdb->prepare( "
99
+          if ( ! empty( $objects ) ) {
100
+               foreach ( $objects as $object => $object_data ) {
101
+                    $result = $wpdb->get_results( $wpdb->prepare( "
102 102
 					SELECT count( * ) as cnt, max( menu_order ) as max, min( menu_order ) as min
103 103
 					FROM $wpdb->posts
104 104
 					WHERE post_type = '%s' AND post_status IN ( 'publish', 'pending', 'draft', 'private', 'future' )
105 105
 				", $object ) );
106 106
 
107
-				if ( 0 == $result[0]->cnt || $result[0]->cnt == $result[0]->max )
108
-					continue;
107
+                    if ( 0 == $result[0]->cnt || $result[0]->cnt == $result[0]->max )
108
+                         continue;
109 109
 
110
-				$results = $wpdb->get_results( $wpdb->prepare( "
110
+                    $results = $wpdb->get_results( $wpdb->prepare( "
111 111
 					SELECT ID
112 112
 					FROM $wpdb->posts
113 113
 					WHERE post_type = '%s' AND post_status IN ( 'publish', 'pending', 'draft', 'private', 'future' )
114 114
 					ORDER BY menu_order ASC
115 115
 				", $object ) );
116 116
 
117
-				foreach ( $results as $key => $result ) {
118
-					$wpdb->update( $wpdb->posts,
119
-						array(
120
-							'menu_order' => $key + 1,
121
-						),
122
-						array(
123
-							'ID' => $result->ID,
124
-						)
125
-					);
126
-				}
127
-			}
128
-		}
129
-
130
-		if ( ! empty( $tags ) ) {
131
-			foreach ( $tags as $taxonomy => $taxonomy_data ) {
132
-				$result = $wpdb->get_results( $wpdb->prepare( "
117
+                    foreach ( $results as $key => $result ) {
118
+                         $wpdb->update( $wpdb->posts,
119
+                              array(
120
+                                   'menu_order' => $key + 1,
121
+                              ),
122
+                              array(
123
+                                   'ID' => $result->ID,
124
+                              )
125
+                         );
126
+                    }
127
+               }
128
+          }
129
+
130
+          if ( ! empty( $tags ) ) {
131
+               foreach ( $tags as $taxonomy => $taxonomy_data ) {
132
+                    $result = $wpdb->get_results( $wpdb->prepare( "
133 133
 					SELECT count( * ) as cnt, max( lsx_team_term_order ) as max, min( lsx_team_term_order ) as min
134 134
 					FROM $wpdb->terms AS terms
135 135
 					INNER JOIN $wpdb->term_taxonomy AS term_taxonomy ON ( terms.term_id = term_taxonomy.term_id )
136 136
 					WHERE term_taxonomy.taxonomy = '%s'
137 137
 				", $taxonomy ) );
138 138
 
139
-				if ( 0 == $result[0]->cnt || $result[0]->cnt == $result[0]->max )
140
-					continue;
139
+                    if ( 0 == $result[0]->cnt || $result[0]->cnt == $result[0]->max )
140
+                         continue;
141 141
 
142
-				$results = $wpdb->get_results( $wpdb->prepare( "
142
+                    $results = $wpdb->get_results( $wpdb->prepare( "
143 143
 					SELECT terms.term_id
144 144
 					FROM $wpdb->terms AS terms
145 145
 					INNER JOIN $wpdb->term_taxonomy AS term_taxonomy ON ( terms.term_id = term_taxonomy.term_id )
@@ -147,270 +147,270 @@  discard block
 block discarded – undo
147 147
 					ORDER BY lsx_team_term_order ASC
148 148
 				", $taxonomy ) );
149 149
 
150
-				foreach ( $results as $key => $result ) {
151
-					$wpdb->update(
152
-						$wpdb->terms,
153
-						array(
154
-							'lsx_team_term_order' => $key + 1,
155
-						),
156
-						array(
157
-							'term_id' => $result->term_id,
158
-						)
159
-					);
160
-				}
161
-			}
162
-		}
163
-	}
164
-
165
-	public function update_menu_order() {
166
-		check_ajax_referer( 'scporder', 'security' );
167
-
168
-		global $wpdb;
169
-
170
-		parse_str( sanitize_text_field( wp_unslash( $_POST['order'] ) ), $data );
171
-
172
-		if ( ! is_array( $data ) )
173
-			return false;
174
-
175
-		$id_arr = array();
176
-
177
-		foreach ( $data as $key => $values ) {
178
-			foreach ( $values as $position => $id ) {
179
-				$id_arr[] = $id;
180
-			}
181
-		}
182
-
183
-		$menu_order_arr = array();
184
-
185
-		foreach ( $id_arr as $key => $id ) {
186
-			$results = $wpdb->get_results( "SELECT menu_order FROM $wpdb->posts WHERE ID = " . intval( $id ) );
187
-			foreach ( $results as $result ) {
188
-				$menu_order_arr[] = $result->menu_order;
189
-			}
190
-		}
191
-
192
-		sort( $menu_order_arr );
193
-
194
-		foreach ( $data as $key => $values ) {
195
-			foreach ( $values as $position => $id ) {
196
-				$wpdb->update( $wpdb->posts,
197
-					array(
198
-						'menu_order' => $menu_order_arr[ $position ],
199
-					),
200
-					array(
201
-						'ID' => intval( $id ),
202
-					)
203
-				);
204
-			}
205
-		}
206
-	}
207
-
208
-	public function update_menu_order_tags() {
209
-		check_ajax_referer( 'scporder', 'security' );
210
-
211
-		global $wpdb;
212
-
213
-		parse_str( sanitize_text_field( wp_unslash( $_POST['order'] ) ), $data );
214
-
215
-		if ( ! is_array( $data ) )
216
-			return false;
217
-
218
-		$id_arr = array();
219
-
220
-		foreach ( $data as $key => $values ) {
221
-			foreach ( $values as $position => $id ) {
222
-				$id_arr[] = $id;
223
-			}
224
-		}
225
-
226
-		$menu_order_arr = array();
227
-
228
-		foreach ( $id_arr as $key => $id ) {
229
-			$results = $wpdb->get_results( "
150
+                    foreach ( $results as $key => $result ) {
151
+                         $wpdb->update(
152
+                              $wpdb->terms,
153
+                              array(
154
+                                   'lsx_team_term_order' => $key + 1,
155
+                              ),
156
+                              array(
157
+                                   'term_id' => $result->term_id,
158
+                              )
159
+                         );
160
+                    }
161
+               }
162
+          }
163
+     }
164
+
165
+     public function update_menu_order() {
166
+          check_ajax_referer( 'scporder', 'security' );
167
+
168
+          global $wpdb;
169
+
170
+          parse_str( sanitize_text_field( wp_unslash( $_POST['order'] ) ), $data );
171
+
172
+          if ( ! is_array( $data ) )
173
+               return false;
174
+
175
+          $id_arr = array();
176
+
177
+          foreach ( $data as $key => $values ) {
178
+               foreach ( $values as $position => $id ) {
179
+                    $id_arr[] = $id;
180
+               }
181
+          }
182
+
183
+          $menu_order_arr = array();
184
+
185
+          foreach ( $id_arr as $key => $id ) {
186
+               $results = $wpdb->get_results( "SELECT menu_order FROM $wpdb->posts WHERE ID = " . intval( $id ) );
187
+               foreach ( $results as $result ) {
188
+                    $menu_order_arr[] = $result->menu_order;
189
+               }
190
+          }
191
+
192
+          sort( $menu_order_arr );
193
+
194
+          foreach ( $data as $key => $values ) {
195
+               foreach ( $values as $position => $id ) {
196
+                    $wpdb->update( $wpdb->posts,
197
+                         array(
198
+                              'menu_order' => $menu_order_arr[ $position ],
199
+                         ),
200
+                         array(
201
+                              'ID' => intval( $id ),
202
+                         )
203
+                    );
204
+               }
205
+          }
206
+     }
207
+
208
+     public function update_menu_order_tags() {
209
+          check_ajax_referer( 'scporder', 'security' );
210
+
211
+          global $wpdb;
212
+
213
+          parse_str( sanitize_text_field( wp_unslash( $_POST['order'] ) ), $data );
214
+
215
+          if ( ! is_array( $data ) )
216
+               return false;
217
+
218
+          $id_arr = array();
219
+
220
+          foreach ( $data as $key => $values ) {
221
+               foreach ( $values as $position => $id ) {
222
+                    $id_arr[] = $id;
223
+               }
224
+          }
225
+
226
+          $menu_order_arr = array();
227
+
228
+          foreach ( $id_arr as $key => $id ) {
229
+               $results = $wpdb->get_results( "
230 230
 				SELECT lsx_team_term_order 
231 231
 				FROM $wpdb->terms 
232 232
 				WHERE term_id = " . intval( $id ) );
233
-			foreach ( $results as $result ) {
234
-				$menu_order_arr[] = $result->lsx_team_term_order;
235
-			}
236
-		}
237
-
238
-		sort( $menu_order_arr );
239
-
240
-		foreach ( $data as $key => $values ) {
241
-			foreach ( $values as $position => $id ) {
242
-				$wpdb->update( $wpdb->terms,
243
-					array(
244
-						'lsx_team_term_order' => $menu_order_arr[ $position ],
245
-					),
246
-					array(
247
-						'term_id' => intval( $id ),
248
-					)
249
-				);
250
-			}
251
-		}
252
-	}
253
-
254
-	public function lsx_team_scporder_previous_post_where( $where ) {
255
-		global $post;
256
-		$objects = $this->get_lsx_team_scporder_options_objects();
257
-
258
-		if ( empty( $objects ) )
259
-			return $where;
260
-
261
-		if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) {
262
-			$current_menu_order = $post->menu_order;
263
-			$where = "WHERE p.menu_order > '" . $current_menu_order . "' AND p.post_type = '" . $post->post_type . "' AND p.post_status = 'publish'";
264
-		}
265
-
266
-		return $where;
267
-	}
268
-
269
-	public function lsx_team_scporder_previous_post_sort( $orderby ) {
270
-		global $post;
271
-		$objects = $this->get_lsx_team_scporder_options_objects();
272
-
273
-		if ( empty( $objects ) )
274
-			return $orderby;
275
-
276
-		if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) {
277
-			$orderby = 'ORDER BY p.menu_order ASC LIMIT 1';
278
-		}
279
-
280
-		return $orderby;
281
-	}
282
-
283
-	public function lsx_team_scporder_next_post_where( $where ) {
284
-		global $post;
285
-		$objects = $this->get_lsx_team_scporder_options_objects();
286
-
287
-		if ( empty( $objects ) )
288
-			return $where;
289
-
290
-		if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) {
291
-			$current_menu_order = $post->menu_order;
292
-			$where = "WHERE p.menu_order < '" . $current_menu_order . "' AND p.post_type = '" . $post->post_type . "' AND p.post_status = 'publish'";
293
-		}
294
-
295
-		return $where;
296
-	}
297
-
298
-	public function lsx_team_scporder_next_post_sort( $orderby ) {
299
-		global $post;
300
-		$objects = $this->get_lsx_team_scporder_options_objects();
301
-
302
-		if ( empty( $objects ) )
303
-			return $orderby;
304
-
305
-		if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) {
306
-			$orderby = 'ORDER BY p.menu_order DESC LIMIT 1';
307
-		}
308
-
309
-		return $orderby;
310
-	}
311
-
312
-	public function lsx_team_scporder_pre_get_posts( $wp_query ) {
313
-		$objects = $this->get_lsx_team_scporder_options_objects();
314
-
315
-		if ( empty( $objects ) )
316
-			return false;
317
-
318
-		if ( is_admin() ) {
319
-			if ( isset( $wp_query->query['post_type'] ) && ! isset( $_GET['orderby'] ) ) {
320
-				if ( array_key_exists( $wp_query->query['post_type'], $objects ) ) {
321
-					$wp_query->set( 'orderby', 'menu_order' );
322
-					$wp_query->set( 'order', 'ASC' );
323
-				}
324
-			}
325
-		} else {
326
-			$active = false;
327
-
328
-			if ( isset( $wp_query->query['post_type'] ) ) {
329
-				if ( ! is_array( $wp_query->query['post_type'] ) ) {
330
-					if ( array_key_exists( $wp_query->query['post_type'], $objects ) ) {
331
-						$active = true;
332
-					}
333
-				}
334
-			} else {
335
-				if ( array_key_exists( 'post', $objects ) ) {
336
-					$active = true;
337
-				}
338
-			}
339
-
340
-			if ( ! $active )
341
-				return false;
342
-
343
-			if ( isset( $wp_query->query['suppress_filters'] ) ) {
344
-				if ( $wp_query->get( 'orderby' ) == 'date' )
345
-					$wp_query->set( 'orderby', 'menu_order' );
346
-				if ( $wp_query->get( 'order' ) == 'DESC' )
347
-					$wp_query->set( 'order', 'ASC' );
348
-			} else {
349
-				if ( ! $wp_query->get( 'orderby' ) )
350
-					$wp_query->set( 'orderby', 'menu_order' );
351
-				if ( ! $wp_query->get( 'order' ) )
352
-					$wp_query->set( 'order', 'ASC' );
353
-			}
354
-		}
355
-	}
356
-
357
-	public function lsx_team_scporder_get_terms_orderby( $orderby, $args ) {
358
-		if ( is_admin() )
359
-			return $orderby;
360
-
361
-		$tags = $this->get_lsx_team_scporder_options_tags();
362
-
363
-		if ( ! isset( $args['taxonomy'] ) )
364
-			return $orderby;
365
-
366
-		$taxonomy = $args['taxonomy'];
367
-		if ( is_array( $taxonomy ) && count( $taxonomy ) == 1 )
368
-			$taxonomy = $taxonomy[0];
369
-		if ( ! array_key_exists( $taxonomy[0], $tags ) )
370
-			return $orderby;
371
-
372
-		$orderby = 't.lsx_team_term_order';
373
-		return $orderby;
374
-	}
375
-
376
-	public function lsx_team_scporder_get_object_terms( $terms ) {
377
-		$tags = $this->get_lsx_team_scporder_options_tags();
378
-
379
-		if ( is_admin() && isset( $_GET['orderby'] ) )
380
-			return $terms;
381
-
382
-		foreach ( $terms as $key => $term ) {
383
-			if ( is_object( $term ) && isset( $term->taxonomy ) ) {
384
-				$taxonomy = $term->taxonomy;
385
-				if ( ! array_key_exists( $taxonomy, $tags ) )
386
-					return $terms;
387
-			} else {
388
-				return $terms;
389
-			}
390
-		}
391
-
392
-		usort( $terms, array( $this, 'taxcmp' ) );
393
-		return $terms;
394
-	}
395
-
396
-	public function taxcmp( $a, $b ) {
397
-		if ( $a->lsx_team_term_order == $b->lsx_team_term_order )
398
-			return 0;
399
-
400
-		return ( $a->lsx_team_term_order < $b->lsx_team_term_order ) ? -1 : 1;
401
-	}
402
-
403
-	public function get_lsx_team_scporder_options_objects() {
404
-		return array(
405
-			'team' => esc_html_x( 'Team Member', 'post type singular name', 'lsx-team' ),
406
-		);
407
-	}
408
-
409
-	public function get_lsx_team_scporder_options_tags() {
410
-		return array(
411
-			'team_role' => esc_html_x( 'Role', 'taxonomy singular name', 'lsx-team' ),
412
-		);
413
-	}
233
+               foreach ( $results as $result ) {
234
+                    $menu_order_arr[] = $result->lsx_team_term_order;
235
+               }
236
+          }
237
+
238
+          sort( $menu_order_arr );
239
+
240
+          foreach ( $data as $key => $values ) {
241
+               foreach ( $values as $position => $id ) {
242
+                    $wpdb->update( $wpdb->terms,
243
+                         array(
244
+                              'lsx_team_term_order' => $menu_order_arr[ $position ],
245
+                         ),
246
+                         array(
247
+                              'term_id' => intval( $id ),
248
+                         )
249
+                    );
250
+               }
251
+          }
252
+     }
253
+
254
+     public function lsx_team_scporder_previous_post_where( $where ) {
255
+          global $post;
256
+          $objects = $this->get_lsx_team_scporder_options_objects();
257
+
258
+          if ( empty( $objects ) )
259
+               return $where;
260
+
261
+          if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) {
262
+               $current_menu_order = $post->menu_order;
263
+               $where = "WHERE p.menu_order > '" . $current_menu_order . "' AND p.post_type = '" . $post->post_type . "' AND p.post_status = 'publish'";
264
+          }
265
+
266
+          return $where;
267
+     }
268
+
269
+     public function lsx_team_scporder_previous_post_sort( $orderby ) {
270
+          global $post;
271
+          $objects = $this->get_lsx_team_scporder_options_objects();
272
+
273
+          if ( empty( $objects ) )
274
+               return $orderby;
275
+
276
+          if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) {
277
+               $orderby = 'ORDER BY p.menu_order ASC LIMIT 1';
278
+          }
279
+
280
+          return $orderby;
281
+     }
282
+
283
+     public function lsx_team_scporder_next_post_where( $where ) {
284
+          global $post;
285
+          $objects = $this->get_lsx_team_scporder_options_objects();
286
+
287
+          if ( empty( $objects ) )
288
+               return $where;
289
+
290
+          if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) {
291
+               $current_menu_order = $post->menu_order;
292
+               $where = "WHERE p.menu_order < '" . $current_menu_order . "' AND p.post_type = '" . $post->post_type . "' AND p.post_status = 'publish'";
293
+          }
294
+
295
+          return $where;
296
+     }
297
+
298
+     public function lsx_team_scporder_next_post_sort( $orderby ) {
299
+          global $post;
300
+          $objects = $this->get_lsx_team_scporder_options_objects();
301
+
302
+          if ( empty( $objects ) )
303
+               return $orderby;
304
+
305
+          if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) {
306
+               $orderby = 'ORDER BY p.menu_order DESC LIMIT 1';
307
+          }
308
+
309
+          return $orderby;
310
+     }
311
+
312
+     public function lsx_team_scporder_pre_get_posts( $wp_query ) {
313
+          $objects = $this->get_lsx_team_scporder_options_objects();
314
+
315
+          if ( empty( $objects ) )
316
+               return false;
317
+
318
+          if ( is_admin() ) {
319
+               if ( isset( $wp_query->query['post_type'] ) && ! isset( $_GET['orderby'] ) ) {
320
+                    if ( array_key_exists( $wp_query->query['post_type'], $objects ) ) {
321
+                         $wp_query->set( 'orderby', 'menu_order' );
322
+                         $wp_query->set( 'order', 'ASC' );
323
+                    }
324
+               }
325
+          } else {
326
+               $active = false;
327
+
328
+               if ( isset( $wp_query->query['post_type'] ) ) {
329
+                    if ( ! is_array( $wp_query->query['post_type'] ) ) {
330
+                         if ( array_key_exists( $wp_query->query['post_type'], $objects ) ) {
331
+                              $active = true;
332
+                         }
333
+                    }
334
+               } else {
335
+                    if ( array_key_exists( 'post', $objects ) ) {
336
+                         $active = true;
337
+                    }
338
+               }
339
+
340
+               if ( ! $active )
341
+                    return false;
342
+
343
+               if ( isset( $wp_query->query['suppress_filters'] ) ) {
344
+                    if ( $wp_query->get( 'orderby' ) == 'date' )
345
+                         $wp_query->set( 'orderby', 'menu_order' );
346
+                    if ( $wp_query->get( 'order' ) == 'DESC' )
347
+                         $wp_query->set( 'order', 'ASC' );
348
+               } else {
349
+                    if ( ! $wp_query->get( 'orderby' ) )
350
+                         $wp_query->set( 'orderby', 'menu_order' );
351
+                    if ( ! $wp_query->get( 'order' ) )
352
+                         $wp_query->set( 'order', 'ASC' );
353
+               }
354
+          }
355
+     }
356
+
357
+     public function lsx_team_scporder_get_terms_orderby( $orderby, $args ) {
358
+          if ( is_admin() )
359
+               return $orderby;
360
+
361
+          $tags = $this->get_lsx_team_scporder_options_tags();
362
+
363
+          if ( ! isset( $args['taxonomy'] ) )
364
+               return $orderby;
365
+
366
+          $taxonomy = $args['taxonomy'];
367
+          if ( is_array( $taxonomy ) && count( $taxonomy ) == 1 )
368
+               $taxonomy = $taxonomy[0];
369
+          if ( ! array_key_exists( $taxonomy[0], $tags ) )
370
+               return $orderby;
371
+
372
+          $orderby = 't.lsx_team_term_order';
373
+          return $orderby;
374
+     }
375
+
376
+     public function lsx_team_scporder_get_object_terms( $terms ) {
377
+          $tags = $this->get_lsx_team_scporder_options_tags();
378
+
379
+          if ( is_admin() && isset( $_GET['orderby'] ) )
380
+               return $terms;
381
+
382
+          foreach ( $terms as $key => $term ) {
383
+               if ( is_object( $term ) && isset( $term->taxonomy ) ) {
384
+                    $taxonomy = $term->taxonomy;
385
+                    if ( ! array_key_exists( $taxonomy, $tags ) )
386
+                         return $terms;
387
+               } else {
388
+                    return $terms;
389
+               }
390
+          }
391
+
392
+          usort( $terms, array( $this, 'taxcmp' ) );
393
+          return $terms;
394
+     }
395
+
396
+     public function taxcmp( $a, $b ) {
397
+          if ( $a->lsx_team_term_order == $b->lsx_team_term_order )
398
+               return 0;
399
+
400
+          return ( $a->lsx_team_term_order < $b->lsx_team_term_order ) ? -1 : 1;
401
+     }
402
+
403
+     public function get_lsx_team_scporder_options_objects() {
404
+          return array(
405
+               'team' => esc_html_x( 'Team Member', 'post type singular name', 'lsx-team' ),
406
+          );
407
+     }
408
+
409
+     public function get_lsx_team_scporder_options_tags() {
410
+          return array(
411
+               'team_role' => esc_html_x( 'Role', 'taxonomy singular name', 'lsx-team' ),
412
+          );
413
+     }
414 414
 
415 415
 }
416 416
 
@@ -420,30 +420,30 @@  discard block
 block discarded – undo
420 420
 register_uninstall_hook( __FILE__, 'lsx_team_scporder_uninstall' );
421 421
 
422 422
 function lsx_team_scporder_uninstall() {
423
-	global $wpdb;
423
+     global $wpdb;
424 424
 
425
-	if ( function_exists( 'is_multisite' ) && is_multisite() ) {
426
-		$curr_blog = $wpdb->blogid;
427
-		$blogids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
425
+     if ( function_exists( 'is_multisite' ) && is_multisite() ) {
426
+          $curr_blog = $wpdb->blogid;
427
+          $blogids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
428 428
 
429
-		foreach ( $blogids as $blog_id ) {
430
-			switch_to_blog( $blog_id );
431
-			lsx_team_scporder_uninstall_db();
432
-		}
429
+          foreach ( $blogids as $blog_id ) {
430
+               switch_to_blog( $blog_id );
431
+               lsx_team_scporder_uninstall_db();
432
+          }
433 433
 
434
-		switch_to_blog( $curr_blog );
435
-	} else {
436
-		lsx_team_scporder_uninstall_db();
437
-	}
434
+          switch_to_blog( $curr_blog );
435
+     } else {
436
+          lsx_team_scporder_uninstall_db();
437
+     }
438 438
 }
439 439
 
440 440
 function lsx_team_scporder_uninstall_db() {
441
-	global $wpdb;
442
-	$result = $wpdb->query( "DESCRIBE $wpdb->terms `lsx_team_term_order`" );
441
+     global $wpdb;
442
+     $result = $wpdb->query( "DESCRIBE $wpdb->terms `lsx_team_term_order`" );
443 443
 
444
-	if ( $result ) {
445
-		$result = $wpdb->query( "ALTER TABLE $wpdb->terms DROP `lsx_team_term_order`" );
446
-	}
444
+     if ( $result ) {
445
+          $result = $wpdb->query( "ALTER TABLE $wpdb->terms DROP `lsx_team_term_order`" );
446
+     }
447 447
 
448
-	delete_option( 'lsx_team_scporder_install' );
448
+     delete_option( 'lsx_team_scporder_install' );
449 449
 }
Please login to merge, or discard this patch.
includes/functions.php 1 patch
Indentation   +89 added lines, -89 removed lines patch added patch discarded remove patch
@@ -13,7 +13,7 @@  discard block
 block discarded – undo
13 13
  * Add our action to init to set up our vars first.
14 14
  */
15 15
 function lsx_team_load_plugin_textdomain() {
16
-	load_plugin_textdomain( 'lsx-team', false, basename( LSX_TEAM_PATH ) . '/languages' );
16
+     load_plugin_textdomain( 'lsx-team', false, basename( LSX_TEAM_PATH ) . '/languages' );
17 17
 }
18 18
 add_action( 'init', 'lsx_team_load_plugin_textdomain' );
19 19
 
@@ -25,23 +25,23 @@  discard block
 block discarded – undo
25 25
  * @return mixed           Option value
26 26
  */
27 27
 function team_get_options() {
28
-	$options = array();
29
-	if ( function_exists( 'tour_operator' ) ) {
30
-		$options = get_option( '_lsx-to_settings', false );
31
-	} else {
32
-		$options = get_option( '_lsx_settings', false );
33
-
34
-		if ( false === $options ) {
35
-			$options = get_option( '_lsx_lsx-settings', false );
36
-		}
37
-	}
38
-
39
-	// If there are new CMB2 options available, then use those.
40
-	$new_options = get_option( 'lsx_team_options', false );
41
-	if ( false !== $new_options ) {
42
-		$options['display'] = $new_options;
43
-	}
44
-	return $options;
28
+     $options = array();
29
+     if ( function_exists( 'tour_operator' ) ) {
30
+          $options = get_option( '_lsx-to_settings', false );
31
+     } else {
32
+          $options = get_option( '_lsx_settings', false );
33
+
34
+          if ( false === $options ) {
35
+               $options = get_option( '_lsx_lsx-settings', false );
36
+          }
37
+     }
38
+
39
+     // If there are new CMB2 options available, then use those.
40
+     $new_options = get_option( 'lsx_team_options', false );
41
+     if ( false !== $new_options ) {
42
+          $options['display'] = $new_options;
43
+     }
44
+     return $options;
45 45
 }
46 46
 
47 47
 /**
@@ -52,44 +52,44 @@  discard block
 block discarded – undo
52 52
  * @return mixed           Option value
53 53
  */
54 54
 function team_get_option( $key = '', $default = false ) {
55
-	$options = array();
56
-	$value   = $default;
57
-	if ( function_exists( 'tour_operator' ) ) {
58
-		$options = get_option( '_lsx-to_settings', false );
59
-	} else {
60
-		$options = get_option( '_lsx_settings', false );
61
-
62
-		if ( false === $options ) {
63
-			$options = get_option( '_lsx_lsx-settings', false );
64
-		}
65
-	}
66
-
67
-	// If there are new CMB2 options available, then use those.
68
-	$new_options = get_option( 'lsx_team_options', false );
69
-	if ( false !== $new_options ) {
70
-		$options['display'] = $new_options;
71
-	}
72
-
73
-	if ( isset( $options['display'] ) && isset( $options['display'][ $key ] ) ) {
74
-		$value = $options['display'][ $key ];
75
-	}
76
-	return $value;
55
+     $options = array();
56
+     $value   = $default;
57
+     if ( function_exists( 'tour_operator' ) ) {
58
+          $options = get_option( '_lsx-to_settings', false );
59
+     } else {
60
+          $options = get_option( '_lsx_settings', false );
61
+
62
+          if ( false === $options ) {
63
+               $options = get_option( '_lsx_lsx-settings', false );
64
+          }
65
+     }
66
+
67
+     // If there are new CMB2 options available, then use those.
68
+     $new_options = get_option( 'lsx_team_options', false );
69
+     if ( false !== $new_options ) {
70
+          $options['display'] = $new_options;
71
+     }
72
+
73
+     if ( isset( $options['display'] ) && isset( $options['display'][ $key ] ) ) {
74
+          $value = $options['display'][ $key ];
75
+     }
76
+     return $value;
77 77
 }
78 78
 
79 79
 /**
80 80
  * Wraps the output class in a function to be called in templates
81 81
  */
82 82
 function lsx_team( $args ) {
83
-	$lsx_team = new LSX_Team;
84
-	echo wp_kses_post( $lsx_team->output( $args ) );
83
+     $lsx_team = new LSX_Team;
84
+     echo wp_kses_post( $lsx_team->output( $args ) );
85 85
 }
86 86
 
87 87
 /**
88 88
  * Shortcode
89 89
  */
90 90
 function lsx_team_shortcode( $atts ) {
91
-	$lsx_team = new LSX_Team;
92
-	return $lsx_team->output( $atts );
91
+     $lsx_team = new LSX_Team;
92
+     return $lsx_team->output( $atts );
93 93
 }
94 94
 add_shortcode( 'lsx_team', 'lsx_team_shortcode' );
95 95
 
@@ -101,16 +101,16 @@  discard block
 block discarded – undo
101 101
  * @param [type] $request request.
102 102
  */
103 103
 function lsx_team_get_images_urls( $object, $field_name, $request ) {
104
-	$medium     = wp_get_attachment_image_src( get_post_thumbnail_id( $object->id ), 'medium' );
105
-	$medium_url = $medium['0'];
104
+     $medium     = wp_get_attachment_image_src( get_post_thumbnail_id( $object->id ), 'medium' );
105
+     $medium_url = $medium['0'];
106 106
 
107
-	$large     = wp_get_attachment_image_src( get_post_thumbnail_id( $object->id ), 'large' );
108
-	$large_url = $large['0'];
107
+     $large     = wp_get_attachment_image_src( get_post_thumbnail_id( $object->id ), 'large' );
108
+     $large_url = $large['0'];
109 109
 
110
-	return array(
111
-		'medium' => $medium_url,
112
-		'large'  => $large_url,
113
-	);
110
+     return array(
111
+          'medium' => $medium_url,
112
+          'large'  => $large_url,
113
+     );
114 114
 }
115 115
 
116 116
 /**
@@ -119,15 +119,15 @@  discard block
 block discarded – undo
119 119
  * @return void
120 120
  */
121 121
 function lsx_team_register_images_field() {
122
-	register_rest_field(
123
-		'team',
124
-		'images',
125
-		array(
126
-			'get_callback'    => 'lsx_team_get_images_urls',
127
-			'update_callback' => null,
128
-			'schema'          => null,
129
-		)
130
-	);
122
+     register_rest_field(
123
+          'team',
124
+          'images',
125
+          array(
126
+               'get_callback'    => 'lsx_team_get_images_urls',
127
+               'update_callback' => null,
128
+               'schema'          => null,
129
+          )
130
+     );
131 131
 }
132 132
 add_action( 'rest_api_init', 'lsx_team_register_images_field' );
133 133
 
@@ -139,25 +139,25 @@  discard block
 block discarded – undo
139 139
  * @param [type] $request request.
140 140
  */
141 141
 function lsx_team_get_additional_meta( $object, $field_name, $request ) {
142
-	$role      = get_the_terms( get_the_ID(), 'team_role' );
143
-	$job_title = get_post_meta( get_the_ID(), 'lsx_job_title', true );
144
-	$email     = get_post_meta( get_the_ID(), 'lsx_email_contact', true );
145
-	$phone     = get_post_meta( get_the_ID(), 'lsx_tel', true );
146
-	$skype     = get_post_meta( get_the_ID(), 'lsx_skype', true );
147
-	$facebook  = get_post_meta( get_the_ID(), 'lsx_facebook', true );
148
-	$twitter   = get_post_meta( get_the_ID(), 'lsx_twitter', true );
149
-	$linkedin  = get_post_meta( get_the_ID(), 'lsx_linkedin', true );
150
-
151
-	return array(
152
-		'role'      => $role,
153
-		'job_title' => $job_title,
154
-		'email'     => $email,
155
-		'phone'     => $phone,
156
-		'skype'     => $skype,
157
-		'facebook'  => $facebook,
158
-		'twitter'   => $twitter,
159
-		'linkedin'  => $linkedin,
160
-	);
142
+     $role      = get_the_terms( get_the_ID(), 'team_role' );
143
+     $job_title = get_post_meta( get_the_ID(), 'lsx_job_title', true );
144
+     $email     = get_post_meta( get_the_ID(), 'lsx_email_contact', true );
145
+     $phone     = get_post_meta( get_the_ID(), 'lsx_tel', true );
146
+     $skype     = get_post_meta( get_the_ID(), 'lsx_skype', true );
147
+     $facebook  = get_post_meta( get_the_ID(), 'lsx_facebook', true );
148
+     $twitter   = get_post_meta( get_the_ID(), 'lsx_twitter', true );
149
+     $linkedin  = get_post_meta( get_the_ID(), 'lsx_linkedin', true );
150
+
151
+     return array(
152
+          'role'      => $role,
153
+          'job_title' => $job_title,
154
+          'email'     => $email,
155
+          'phone'     => $phone,
156
+          'skype'     => $skype,
157
+          'facebook'  => $facebook,
158
+          'twitter'   => $twitter,
159
+          'linkedin'  => $linkedin,
160
+     );
161 161
 }
162 162
 
163 163
 /**
@@ -166,14 +166,14 @@  discard block
 block discarded – undo
166 166
  * @return void
167 167
  */
168 168
 function lsx_team_register_additional_meta() {
169
-	register_rest_field(
170
-		'team',
171
-		'additional_meta',
172
-		array(
173
-			'get_callback'    => 'lsx_team_get_additional_meta',
174
-			'update_callback' => null,
175
-			'schema'          => null,
176
-		)
177
-	);
169
+     register_rest_field(
170
+          'team',
171
+          'additional_meta',
172
+          array(
173
+               'get_callback'    => 'lsx_team_get_additional_meta',
174
+               'update_callback' => null,
175
+               'schema'          => null,
176
+          )
177
+     );
178 178
 }
179 179
 add_action( 'rest_api_init', 'lsx_team_register_additional_meta' );
Please login to merge, or discard this patch.
lsx-team.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -14,7 +14,7 @@
 block discarded – undo
14 14
 
15 15
 // If this file is called directly, abort.
16 16
 if ( ! defined( 'WPINC' ) ) {
17
-	die;
17
+     die;
18 18
 }
19 19
 
20 20
 define( 'LSX_TEAM_PATH', plugin_dir_path( __FILE__ ) );
Please login to merge, or discard this patch.
templates/content-archive-team-careers-cta.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -6,12 +6,12 @@
 block discarded – undo
6 6
 
7 7
 <?php if ( ! empty( team_get_option( 'team_careers_cta_enable' ) ) ) : ?>
8 8
 	<?php
9
-		$thumbnail = '<img loading="lazy" class="img-responsive wp-post-image" src="https://www.gravatar.com/avatar/none?d=mm&s=170" width="170" />';
10
-		$title     = team_get_option( 'team_careers_cta_title' );
11
-		$tagline   = team_get_option( 'team_careers_cta_tagline' );
12
-		$link_text = team_get_option( 'team_careers_cta_link_text' );
13
-		$link      = team_get_option( 'team_careers_cta_link' );
14
-	?>
9
+          $thumbnail = '<img loading="lazy" class="img-responsive wp-post-image" src="https://www.gravatar.com/avatar/none?d=mm&s=170" width="170" />';
10
+          $title     = team_get_option( 'team_careers_cta_title' );
11
+          $tagline   = team_get_option( 'team_careers_cta_tagline' );
12
+          $link_text = team_get_option( 'team_careers_cta_link_text' );
13
+          $link      = team_get_option( 'team_careers_cta_link' );
14
+     ?>
15 15
 
16 16
 	<div class="col-xs-12 col-sm-6 col-md-3">
17 17
 		<article class="lsx-team-slot">
Please login to merge, or discard this patch.
templates/content-archive-team.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -5,11 +5,11 @@  discard block
 block discarded – undo
5 5
 ?>
6 6
 
7 7
 <?php
8
-	global $lsx_team;
8
+     global $lsx_team;
9 9
 
10
-	$thumbnail = $lsx_team->get_thumbnail( get_the_ID(), 'lsx-team-archive' );
10
+     $thumbnail = $lsx_team->get_thumbnail( get_the_ID(), 'lsx-team-archive' );
11 11
 
12
-	$job_title = get_post_meta( get_the_ID(), 'lsx_job_title', true );
12
+     $job_title = get_post_meta( get_the_ID(), 'lsx_job_title', true );
13 13
 ?>
14 14
 
15 15
 <?php lsx_entry_before(); ?>
@@ -44,4 +44,4 @@  discard block
 block discarded – undo
44 44
 </div>
45 45
 
46 46
 <?php
47
-	lsx_entry_after();
47
+     lsx_entry_after();
Please login to merge, or discard this patch.
templates/archive-team.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -23,13 +23,13 @@
 block discarded – undo
23 23
 				<div class="row row-flex">
24 24
 
25 25
 					<?php
26
-						while ( have_posts() ) {
27
-							the_post();
28
-							include( LSX_TEAM_PATH . '/templates/content-archive-team.php' );
29
-						}
26
+                              while ( have_posts() ) {
27
+                                   the_post();
28
+                                   include( LSX_TEAM_PATH . '/templates/content-archive-team.php' );
29
+                              }
30 30
 
31
-						include( LSX_TEAM_PATH . '/templates/content-archive-team-careers-cta.php' );
32
-					?>
31
+                              include( LSX_TEAM_PATH . '/templates/content-archive-team-careers-cta.php' );
32
+                         ?>
33 33
 
34 34
 				</div>
35 35
 			</div>
Please login to merge, or discard this patch.
classes/admin/class-settings.php 1 patch
Indentation   +179 added lines, -179 removed lines patch added patch discarded remove patch
@@ -9,184 +9,184 @@
 block discarded – undo
9 9
 
10 10
 class Settings {
11 11
 
12
-	/**
13
-	 * Holds class instance
14
-	 *
15
-	 * @since 1.0.0
16
-	 *
17
-	 * @var      object \lsx_team\classes\admin\Settings()
18
-	 */
19
-	protected static $instance = null;
20
-
21
-	/**
22
-	 * Option key, and option page slug
23
-	 *
24
-	 * @var string
25
-	 */
26
-	protected $screen_id = 'lsx_team_settings';
27
-
28
-	/**
29
-	 * Contructor
30
-	 */
31
-	public function __construct() {
32
-		add_action( 'cmb2_admin_init', array( $this, 'register_settings_page' ) );
33
-		add_action( 'lsx_team_settings_page', array( $this, 'general_settings' ), 1, 1 );
34
-		add_action( 'lsx_team_settings_page', array( $this, 'global_defaults' ), 3, 1 );
35
-	}
36
-
37
-	/**
38
-	 * Return an instance of this class.
39
-	 *
40
-	 * @since 1.0.0
41
-	 *
42
-	 * @return    object Settings()    A single instance of this class.
43
-	 */
44
-	public static function get_instance() {
45
-		// If the single instance hasn't been set, set it now.
46
-		if ( null === self::$instance ) {
47
-			self::$instance = new self();
48
-		}
49
-		return self::$instance;
50
-	}
51
-
52
-	/**
53
-	 * Hook in and register a submenu options page for the Page post-type menu.
54
-	 */
55
-	public function register_settings_page() {
56
-		$cmb = new_cmb2_box(
57
-			array(
58
-				'id'           => $this->screen_id,
59
-				'title'        => esc_html__( 'Settings', 'lsx-team' ),
60
-				'object_types' => array( 'options-page' ),
61
-				'option_key'   => 'lsx_team_options', // The option key and admin menu page slug.
62
-				'parent_slug'  => 'edit.php?post_type=team', // Make options page a submenu item of the themes menu.
63
-				'capability'   => 'manage_options', // Cap required to view options-page.
64
-			)
65
-		);
66
-		do_action( 'lsx_team_settings_page', $cmb );
67
-	}
68
-
69
-	/**
70
-	 * Registers the general settings.
71
-	 *
72
-	 * @param object $cmb new_cmb2_box().
73
-	 * @return void
74
-	 */
75
-	public function general_settings( $cmb ) {
76
-		$cmb->add_field(
77
-			array(
78
-				'id'      => 'settings_general_title',
79
-				'type'    => 'title',
80
-				'name'    => __( 'General', 'lsx-team' ),
81
-				'default' => __( 'General', 'lsx-team' ),
82
-			)
83
-		);
84
-		$cmb->add_field(
85
-			array(
86
-				'name'        => __( 'Disable Single Posts', 'lsx-team' ),
87
-				'id'          => 'team_disable_single',
88
-				'type'        => 'checkbox',
89
-				'value'       => 1,
90
-				'default'     => 0,
91
-				'description' => __( 'Disable Single Posts.', 'lsx-health-plan' ),
92
-			)
93
-		);
94
-
95
-		$cmb->add_field(
96
-			array(
97
-				'name'        => __( 'Group By Role', 'lsx-team' ),
98
-				'id'          => 'group_by_role',
99
-				'type'        => 'checkbox',
100
-				'value'       => 1,
101
-				'default'     => 0,
102
-				'description' => __( 'Groups the Team on the Team archive by the role assigned.', 'lsx-health-plan' ),
103
-			)
104
-		);
105
-		$cmb->add_field( array(
106
-			'name'    => 'Placeholder',
107
-			'desc'    => __( 'Upload an image.', 'lsx-health-plan' ),
108
-			'id'      => 'team_placeholder',
109
-			'type'    => 'file',
110
-			'options' => array(
111
-				'url' => false, // Hide the text input for the url.
112
-			),
113
-			'text'    => array(
114
-				'add_upload_file_text' => 'Choose Image',
115
-			),
116
-		) );
117
-		$cmb->add_field(
118
-			array(
119
-				'id'   => 'settings_general_closing',
120
-				'type' => 'tab_closing',
121
-			)
122
-		);
123
-	}
124
-
125
-	/**
126
-	 * Registers the global default settings.
127
-	 *
128
-	 * @param object $cmb new_cmb2_box().
129
-	 * @return void
130
-	 */
131
-	public function global_defaults( $cmb ) {
132
-		$cmb->add_field(
133
-			array(
134
-				'id'      => 'global_defaults_title',
135
-				'type'    => 'title',
136
-				'name'    => __( 'Careers CTA', 'lsx-team' ),
137
-				'default' => __( 'Careers CTA', 'lsx-team' ),
138
-			)
139
-		);
140
-
141
-		$cmb->add_field(
142
-			array(
143
-				'name'        => __( 'Enable careers CTA', 'lsx-team' ),
144
-				'id'          => 'team_careers_cta_enable',
145
-				'type'        => 'checkbox',
146
-				'value'       => 1,
147
-				'default'     => 0,
148
-				'description' => __( 'Displays careers CTA mystery man on team archive.', 'lsx-health-plan' ),
149
-			)
150
-		);
151
-
152
-		$cmb->add_field(
153
-			array(
154
-				'name' => __( 'Title', 'lsx-team' ),
155
-				'id'   => 'team_careers_cta_title',
156
-				'type' => 'text',
157
-			)
158
-		);
159
-
160
-		$cmb->add_field(
161
-			array(
162
-				'name' => __( 'Tagline', 'lsx-team' ),
163
-				'id'   => 'team_careers_cta_tagline',
164
-				'type' => 'text',
165
-			)
166
-		);
167
-
168
-		$cmb->add_field(
169
-			array(
170
-				'name' => __( 'Link Text', 'lsx-team' ),
171
-				'id'   => 'team_careers_cta_link_text',
172
-				'type' => 'text',
173
-			)
174
-		);
175
-
176
-		$cmb->add_field(
177
-			array(
178
-				'name' => __( 'Careers page link', 'lsx-team' ),
179
-				'id'   => 'team_careers_cta_link',
180
-				'type' => 'text',
181
-			)
182
-		);
183
-
184
-		$cmb->add_field(
185
-			array(
186
-				'id'   => 'settings_global_defaults_closing',
187
-				'type' => 'tab_closing',
188
-			)
189
-		);
190
-	}
12
+     /**
13
+      * Holds class instance
14
+      *
15
+      * @since 1.0.0
16
+      *
17
+      * @var      object \lsx_team\classes\admin\Settings()
18
+      */
19
+     protected static $instance = null;
20
+
21
+     /**
22
+      * Option key, and option page slug
23
+      *
24
+      * @var string
25
+      */
26
+     protected $screen_id = 'lsx_team_settings';
27
+
28
+     /**
29
+      * Contructor
30
+      */
31
+     public function __construct() {
32
+          add_action( 'cmb2_admin_init', array( $this, 'register_settings_page' ) );
33
+          add_action( 'lsx_team_settings_page', array( $this, 'general_settings' ), 1, 1 );
34
+          add_action( 'lsx_team_settings_page', array( $this, 'global_defaults' ), 3, 1 );
35
+     }
36
+
37
+     /**
38
+      * Return an instance of this class.
39
+      *
40
+      * @since 1.0.0
41
+      *
42
+      * @return    object Settings()    A single instance of this class.
43
+      */
44
+     public static function get_instance() {
45
+          // If the single instance hasn't been set, set it now.
46
+          if ( null === self::$instance ) {
47
+               self::$instance = new self();
48
+          }
49
+          return self::$instance;
50
+     }
51
+
52
+     /**
53
+      * Hook in and register a submenu options page for the Page post-type menu.
54
+      */
55
+     public function register_settings_page() {
56
+          $cmb = new_cmb2_box(
57
+               array(
58
+                    'id'           => $this->screen_id,
59
+                    'title'        => esc_html__( 'Settings', 'lsx-team' ),
60
+                    'object_types' => array( 'options-page' ),
61
+                    'option_key'   => 'lsx_team_options', // The option key and admin menu page slug.
62
+                    'parent_slug'  => 'edit.php?post_type=team', // Make options page a submenu item of the themes menu.
63
+                    'capability'   => 'manage_options', // Cap required to view options-page.
64
+               )
65
+          );
66
+          do_action( 'lsx_team_settings_page', $cmb );
67
+     }
68
+
69
+     /**
70
+      * Registers the general settings.
71
+      *
72
+      * @param object $cmb new_cmb2_box().
73
+      * @return void
74
+      */
75
+     public function general_settings( $cmb ) {
76
+          $cmb->add_field(
77
+               array(
78
+                    'id'      => 'settings_general_title',
79
+                    'type'    => 'title',
80
+                    'name'    => __( 'General', 'lsx-team' ),
81
+                    'default' => __( 'General', 'lsx-team' ),
82
+               )
83
+          );
84
+          $cmb->add_field(
85
+               array(
86
+                    'name'        => __( 'Disable Single Posts', 'lsx-team' ),
87
+                    'id'          => 'team_disable_single',
88
+                    'type'        => 'checkbox',
89
+                    'value'       => 1,
90
+                    'default'     => 0,
91
+                    'description' => __( 'Disable Single Posts.', 'lsx-health-plan' ),
92
+               )
93
+          );
94
+
95
+          $cmb->add_field(
96
+               array(
97
+                    'name'        => __( 'Group By Role', 'lsx-team' ),
98
+                    'id'          => 'group_by_role',
99
+                    'type'        => 'checkbox',
100
+                    'value'       => 1,
101
+                    'default'     => 0,
102
+                    'description' => __( 'Groups the Team on the Team archive by the role assigned.', 'lsx-health-plan' ),
103
+               )
104
+          );
105
+          $cmb->add_field( array(
106
+               'name'    => 'Placeholder',
107
+               'desc'    => __( 'Upload an image.', 'lsx-health-plan' ),
108
+               'id'      => 'team_placeholder',
109
+               'type'    => 'file',
110
+               'options' => array(
111
+                    'url' => false, // Hide the text input for the url.
112
+               ),
113
+               'text'    => array(
114
+                    'add_upload_file_text' => 'Choose Image',
115
+               ),
116
+          ) );
117
+          $cmb->add_field(
118
+               array(
119
+                    'id'   => 'settings_general_closing',
120
+                    'type' => 'tab_closing',
121
+               )
122
+          );
123
+     }
124
+
125
+     /**
126
+      * Registers the global default settings.
127
+      *
128
+      * @param object $cmb new_cmb2_box().
129
+      * @return void
130
+      */
131
+     public function global_defaults( $cmb ) {
132
+          $cmb->add_field(
133
+               array(
134
+                    'id'      => 'global_defaults_title',
135
+                    'type'    => 'title',
136
+                    'name'    => __( 'Careers CTA', 'lsx-team' ),
137
+                    'default' => __( 'Careers CTA', 'lsx-team' ),
138
+               )
139
+          );
140
+
141
+          $cmb->add_field(
142
+               array(
143
+                    'name'        => __( 'Enable careers CTA', 'lsx-team' ),
144
+                    'id'          => 'team_careers_cta_enable',
145
+                    'type'        => 'checkbox',
146
+                    'value'       => 1,
147
+                    'default'     => 0,
148
+                    'description' => __( 'Displays careers CTA mystery man on team archive.', 'lsx-health-plan' ),
149
+               )
150
+          );
151
+
152
+          $cmb->add_field(
153
+               array(
154
+                    'name' => __( 'Title', 'lsx-team' ),
155
+                    'id'   => 'team_careers_cta_title',
156
+                    'type' => 'text',
157
+               )
158
+          );
159
+
160
+          $cmb->add_field(
161
+               array(
162
+                    'name' => __( 'Tagline', 'lsx-team' ),
163
+                    'id'   => 'team_careers_cta_tagline',
164
+                    'type' => 'text',
165
+               )
166
+          );
167
+
168
+          $cmb->add_field(
169
+               array(
170
+                    'name' => __( 'Link Text', 'lsx-team' ),
171
+                    'id'   => 'team_careers_cta_link_text',
172
+                    'type' => 'text',
173
+               )
174
+          );
175
+
176
+          $cmb->add_field(
177
+               array(
178
+                    'name' => __( 'Careers page link', 'lsx-team' ),
179
+                    'id'   => 'team_careers_cta_link',
180
+                    'type' => 'text',
181
+               )
182
+          );
183
+
184
+          $cmb->add_field(
185
+               array(
186
+                    'id'   => 'settings_global_defaults_closing',
187
+                    'type' => 'tab_closing',
188
+               )
189
+          );
190
+     }
191 191
 
192 192
 }
Please login to merge, or discard this patch.
classes/class-lsx-team-schema.php 1 patch
Indentation   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -10,56 +10,56 @@
 block discarded – undo
10 10
  * @since 10.2
11 11
  */
12 12
 class LSX_Team_Schema extends LSX_Schema_Graph_Piece {
13
-	/**
14
-	 * Constructor.
15
-	 *
16
-	 * @param \WPSEO_Schema_Context $context A value object with context variables.
17
-	 */
18
-	public function __construct( WPSEO_Schema_Context $context ) {
19
-		$this->post_type = 'team';
20
-		parent::__construct( $context );
21
-	}
22
-	/**
23
-	 * Returns Review data.
24
-	 *
25
-	 * @return array $data Review data.
26
-	 */
27
-	public function generate() {
28
-		$data = array(
29
-			'@type'            => array(
30
-				'Person',
31
-			),
32
-			'@id'              => $this->context->canonical . '#person',
33
-			'name'             => $this->post->post_title,
34
-			'description'      => wp_strip_all_tags( $this->post->post_content ),
35
-			'url'              => $this->post_url,
36
-			'mainEntityOfPage' => array(
37
-				'@id' => $this->context->canonical . WPSEO_Schema_IDs::WEBPAGE_HASH,
38
-			),
39
-		);
40
-		if ( $this->context->site_represents_reference ) {
41
-			$data['worksFor'] = $this->context->site_represents_reference;
42
-			$data['memberOf'] = $this->context->site_represents_reference;
43
-		}
44
-		$data = $this->add_custom_field( $data, 'jobTitle', 'lsx_job_title' );
45
-		$data = $this->add_custom_field( $data, 'email', 'lsx_email_contact' );
46
-		$data = $this->add_custom_field( $data, 'telephone', 'lsx_tel' );
47
-		$data = LSX_Schema_Utils::add_image( $data, $this->context );
48
-		return $data;
49
-	}
50
-	/**
51
-	 * Adds the projects and testimonials under the 'owns' parameter
52
-	 *
53
-	 * @param array $data
54
-	 * @return array
55
-	 */
56
-	public function add_products( $data ) {
57
-		$connections_array = array();
58
-		$connections_array = $this->add_project( $connections_array );
59
-		$connections_array = $this->add_testimonial( $connections_array );
60
-		if ( ! empty( $connections_array ) ) {
61
-			$data['owns'] = $connections_array;
62
-		}
63
-		return $data;
64
-	}
13
+     /**
14
+      * Constructor.
15
+      *
16
+      * @param \WPSEO_Schema_Context $context A value object with context variables.
17
+      */
18
+     public function __construct( WPSEO_Schema_Context $context ) {
19
+          $this->post_type = 'team';
20
+          parent::__construct( $context );
21
+     }
22
+     /**
23
+      * Returns Review data.
24
+      *
25
+      * @return array $data Review data.
26
+      */
27
+     public function generate() {
28
+          $data = array(
29
+               '@type'            => array(
30
+                    'Person',
31
+               ),
32
+               '@id'              => $this->context->canonical . '#person',
33
+               'name'             => $this->post->post_title,
34
+               'description'      => wp_strip_all_tags( $this->post->post_content ),
35
+               'url'              => $this->post_url,
36
+               'mainEntityOfPage' => array(
37
+                    '@id' => $this->context->canonical . WPSEO_Schema_IDs::WEBPAGE_HASH,
38
+               ),
39
+          );
40
+          if ( $this->context->site_represents_reference ) {
41
+               $data['worksFor'] = $this->context->site_represents_reference;
42
+               $data['memberOf'] = $this->context->site_represents_reference;
43
+          }
44
+          $data = $this->add_custom_field( $data, 'jobTitle', 'lsx_job_title' );
45
+          $data = $this->add_custom_field( $data, 'email', 'lsx_email_contact' );
46
+          $data = $this->add_custom_field( $data, 'telephone', 'lsx_tel' );
47
+          $data = LSX_Schema_Utils::add_image( $data, $this->context );
48
+          return $data;
49
+     }
50
+     /**
51
+      * Adds the projects and testimonials under the 'owns' parameter
52
+      *
53
+      * @param array $data
54
+      * @return array
55
+      */
56
+     public function add_products( $data ) {
57
+          $connections_array = array();
58
+          $connections_array = $this->add_project( $connections_array );
59
+          $connections_array = $this->add_testimonial( $connections_array );
60
+          if ( ! empty( $connections_array ) ) {
61
+               $data['owns'] = $connections_array;
62
+          }
63
+          return $data;
64
+     }
65 65
 }
Please login to merge, or discard this patch.
classes/class-lsx-team.php 1 patch
Indentation   +279 added lines, -279 removed lines patch added patch discarded remove patch
@@ -10,268 +10,268 @@  discard block
 block discarded – undo
10 10
  */
11 11
 class LSX_Team {
12 12
 
13
-	public $options;
14
-
15
-	public function __construct() {
16
-		$this->options = team_get_options();
17
-
18
-		add_action( 'init', array( $this, 'custom_image_sizes' ) );
19
-		add_filter( 'lsx_banner_allowed_post_types', array( $this, 'lsx_banner_allowed_post_types' ) );
20
-
21
-	}
22
-
23
-	/**
24
-	 * Enable project custom post type on LSX Banners.
25
-	 */
26
-	public function custom_image_sizes( $post_types ) {
27
-		add_image_size( 'lsx-team-archive', 170, 170, true );
28
-		add_image_size( 'lsx-team-single', 320, 320, true );
29
-	}
30
-
31
-	/**
32
-	 * Enable project custom post type on LSX Banners.
33
-	 */
34
-	public function lsx_banner_allowed_post_types( $post_types ) {
35
-		$post_types[] = 'team';
36
-		return $post_types;
37
-	}
38
-
39
-	/**
40
-	 * Return the team thumbnail.
41
-	 */
42
-	public function get_thumbnail( $post_id, $size ) {
43
-		add_filter( 'lsx_placeholder_url', array( $this, 'placeholder' ), 10, 1 );
44
-		add_filter( 'lsx_to_placeholder_url', array( $this, 'placeholder' ), 10, 1 );
45
-
46
-		if ( is_numeric( $size ) ) {
47
-			$thumb_size = array( $size, $size );
48
-		} else {
49
-			$thumb_size = $size;
50
-		}
51
-
52
-		$thumbnail_class = 'img-responsive';
53
-
54
-		if ( ! empty( get_the_post_thumbnail( $post_id ) ) || ! empty( get_post_meta( $post_id, 'lsx_email_gravatar', true ) ) ) {
55
-			if ( ! empty( get_the_post_thumbnail( $post_id ) ) ) {
56
-				$thumbnail = get_the_post_thumbnail( $post_id, $thumb_size, array(
57
-					'class' => $thumbnail_class,
58
-				) );
59
-			} else {
60
-				$thumbnail = get_avatar( get_post_meta( $post_id, 'lsx_email_gravatar', true ), $size, $this->options['display']['team_placeholder'], false, array(
61
-					'class' => $thumbnail_class,
62
-				) );
63
-			}
64
-		}
65
-		if ( empty( $thumbnail ) ) {
66
-			if ( $this->options['display'] && ! empty( $this->options['display']['team_placeholder'] ) ) {
67
-				$thumbnail = '<img loading="lazy" class="img-responsive wp-post-image" src="' . $this->options['display']['team_placeholder'] . '" width="' . $size . '" />';
68
-			} else {
69
-				$thumbnail = '<img loading="lazy" class="img-responsive wp-post-image" src="https://www.gravatar.com/avatar/none?d=mm&s=' . $size . '" width="' . $size . '" />';
70
-			}
71
-		}
72
-
73
-		remove_filter( 'lsx_placeholder_url', array( $this, 'placeholder' ), 10, 1 );
74
-		remove_filter( 'lsx_to_placeholder_url', array( $this, 'placeholder' ), 10, 1 );
75
-
76
-		return $thumbnail;
77
-	}
78
-
79
-	/**
80
-	 * Replaces the widget with Mystery Man
81
-	 */
82
-	public function placeholder( $image ) {
83
-		$image = array(
84
-			LSX_TEAM_URL . 'assets/img/mystery-man-square.png',
85
-			512,
86
-			512,
87
-			true,
88
-		);
89
-
90
-		return $image;
91
-	}
92
-
93
-	/**
94
-	 * Returns the shortcode output markup
95
-	 */
96
-	public function output( $atts ) {
97
-		extract( shortcode_atts(array(
98
-			'columns' => 4,
99
-			'orderby' => 'name',
100
-			'order' => 'ASC',
101
-			'role' => '',
102
-			'limit' => '99',
103
-			'include' => '',
104
-			'display' => 'excerpt',
105
-			'size' => 'lsx-team-archive',
106
-			'show_link' => false,
107
-			'show_email' => false,
108
-			'show_image' => true,
109
-			'show_roles' => false,
110
-			'show_job_title' => true,
111
-			'show_desc' => true,
112
-			'show_social' => true,
113
-			'carousel' => true,
114
-			'featured' => false,
115
-		), $atts ) );
116
-
117
-		$output = '';
118
-
119
-		if ( ! empty( $include ) ) {
120
-			$include = explode( ',', $include );
121
-
122
-			$args = array(
123
-				'post_type' => 'team',
124
-				'posts_per_page' => $limit,
125
-				'post__in' => $include,
126
-				'orderby' => 'post__in',
127
-				'order' => $order,
128
-			);
129
-		} else {
130
-			$args = array(
131
-				'post_type' => 'team',
132
-				'posts_per_page' => $limit,
133
-				'orderby' => $orderby,
134
-				'order' => $order,
135
-			);
136
-
137
-			if ( 'true' === $featured || true === $featured ) {
138
-				$args['meta_key'] = 'lsx_featured';
139
-				$args['meta_value'] = 1;
140
-			}
141
-		}
142
-
143
-		if ( ! empty( $role ) ) {
144
-			$args['tax_query'] = array(
145
-				array(
146
-					'taxonomy' => 'team_role',
147
-					'field' => 'id',
148
-					'terms' => $role,
149
-				),
150
-			);
151
-		}
152
-
153
-		$team = new \WP_Query( $args );
154
-
155
-		if ( $team->have_posts() ) {
156
-			global $post;
157
-
158
-			$count = 0;
159
-			$count_global = 0;
160
-
161
-			$column_size = intval( 12 / $columns );
162
-
163
-			$carousel = true === $carousel || 'true' === $carousel ? true : false;
164
-
165
-			if ( $carousel ) {
166
-				$output .= "<div class='lsx-team-shortcode' id='lsx-team-slider' data-slick='{\"slidesToShow\": $columns, \"slidesToScroll\": $columns }'>";
167
-			} else {
168
-				$output .= "<div class='lsx-team-shortcode'><div class='row'>";
169
-			}
170
-
171
-			while ( $team->have_posts() ) {
172
-				$team->the_post();
173
-
174
-				// Count
175
-				$count++;
176
-				$count_global++;
177
-
178
-				$member_name = apply_filters( 'the_title', $post->post_title );
179
-				$member_roles = '';
180
-				$member_description = '';
181
-				$member_avatar = '';
182
-				$member_socials = '';
183
-				$member_job_title = '';
184
-				$member_email = '';
185
-				$bottom_link = '';
186
-				$facebook = get_post_meta( $post->ID, 'lsx_facebook', true );
187
-				$twitter = get_post_meta( $post->ID, 'lsx_twitter', true );
188
-				$linkedin = get_post_meta( $post->ID, 'lsx_linkedin', true );
189
-
190
-				// Link to single
191
-				if ( ( true === $show_link || 'true' === $show_link ) && ( empty( team_get_option( 'team_disable_single' ) ) ) ) {
192
-					$bottom_link = '<a href="' . get_permalink( $post->ID ) . '" class="lsx-team-show-more">More about ' . strtok( $member_name, ' ' ) . '<i class="fa fa-long-arrow-right" aria-hidden="true"></i></a>';
193
-				}
194
-
195
-				if ( true === $show_email || 'true' === $show_email ) {
196
-					$email = get_post_meta( $post->ID, 'lsx_email_contact', true );
197
-
198
-					$member_email = '<a href="mailto:' . sanitize_email( $email ) . '" class="lsx-team-email">' . sanitize_email( $email ) . '</a>';
199
-				}
200
-
201
-				if ( ( true === $show_link || 'true' === $show_link ) && ( empty( team_get_option( 'team_disable_single' ) ) ) ) {
202
-					$member_name = '<h5 class="lsx-team-name"><a href="' . get_permalink() . '">' . $member_name . '</a></h5>';
203
-				} else {
204
-					$member_name = '<h5 class="lsx-team-name">' . $member_name . '</h5>';
205
-				}
206
-
207
-				// Member roles
208
-				if ( true === $show_roles || 'true' === $show_roles ) {
209
-					$roles = '';
210
-					$terms = get_the_terms( $post->ID, 'team_role' );
211
-
212
-					if ( $terms && ! is_wp_error( $terms ) ) {
213
-						$roles = array();
214
-
215
-						foreach ( $terms as $term ) {
216
-							$roles[] = $term->name;
217
-						}
218
-
219
-						$roles = join( ', ', $roles );
220
-					}
221
-
222
-					$member_roles = '' !== $roles ? "<small class='lsx-team-roles'>$roles</small>" : '';
223
-				}
224
-
225
-				if ( true === $show_job_title || 'true' === $show_job_title ) {
226
-					$job_title = get_post_meta( $post->ID, 'lsx_job_title', true );
227
-					$member_job_title = ! empty( $job_title ) ? "<small class='lsx-team-job-title'>$job_title</small>" : '';
228
-				}
229
-
230
-				// Member description
231
-				if ( true === $show_desc || 'true' === $show_desc ) {
232
-					if ( 'full' === $display ) {
233
-						$member_description = apply_filters( 'the_content', get_the_content( esc_html__( 'Read More', 'lsx-team' ) ) );
234
-						$member_description = str_replace( ']]>', ']]&gt;', $member_description );
235
-					} elseif ( 'excerpt' === $display ) {
236
-						$member_description = apply_filters( 'the_excerpt', get_the_excerpt() );
237
-					}
238
-
239
-					$member_description = ! empty( $member_description ) ? "<div class='lsx-team-description'>$member_description</div>" : '';
240
-				}
241
-
242
-				// Member avatar
243
-				if ( true === $show_image || 'true' === $show_image ) {
244
-					$member_avatar = $this->get_thumbnail( $post->ID, $size );
245
-
246
-					if ( ( true === $show_link || 'true' === $show_link ) && ( empty( $this->options['display'] ) || empty( team_get_option( 'team_disable_single' ) ) ) ) {
247
-						$member_avatar = "<figure class='lsx-team-avatar'><a href='" . get_permalink() . "'>$member_avatar</a></figure>";
248
-					} else {
249
-						$member_avatar = "<figure class='lsx-team-avatar'>$member_avatar</figure>";
250
-					}
251
-				}
252
-
253
-				// Member socials
254
-				if ( true === $show_social || 'true' === $show_social ) {
255
-					$links = array(
256
-						'facebook' => $facebook,
257
-						'twitter' => $twitter,
258
-						'linkedin' => $linkedin,
259
-					);
260
-
261
-					foreach ( $links as $sm => $sm_link ) {
262
-						if ( ! empty( $sm_link ) ) {
263
-							$member_socials .= "<li><a href='$sm_link' target='_blank'><i class='fa fa-$sm' aria-hidden='true'></i></a></li>";
264
-						}
265
-					}
266
-
267
-					$member_socials = ! empty( $member_socials ) ? "<ul class='lsx-team-socials list-inline'>$member_socials</ul>" : '';
268
-				}
269
-
270
-				if ( ! $carousel ) {
271
-					$output .= "<div class='col-xs-12 col-md-$column_size'>";
272
-				}
273
-
274
-				$output .= "
13
+     public $options;
14
+
15
+     public function __construct() {
16
+          $this->options = team_get_options();
17
+
18
+          add_action( 'init', array( $this, 'custom_image_sizes' ) );
19
+          add_filter( 'lsx_banner_allowed_post_types', array( $this, 'lsx_banner_allowed_post_types' ) );
20
+
21
+     }
22
+
23
+     /**
24
+      * Enable project custom post type on LSX Banners.
25
+      */
26
+     public function custom_image_sizes( $post_types ) {
27
+          add_image_size( 'lsx-team-archive', 170, 170, true );
28
+          add_image_size( 'lsx-team-single', 320, 320, true );
29
+     }
30
+
31
+     /**
32
+      * Enable project custom post type on LSX Banners.
33
+      */
34
+     public function lsx_banner_allowed_post_types( $post_types ) {
35
+          $post_types[] = 'team';
36
+          return $post_types;
37
+     }
38
+
39
+     /**
40
+      * Return the team thumbnail.
41
+      */
42
+     public function get_thumbnail( $post_id, $size ) {
43
+          add_filter( 'lsx_placeholder_url', array( $this, 'placeholder' ), 10, 1 );
44
+          add_filter( 'lsx_to_placeholder_url', array( $this, 'placeholder' ), 10, 1 );
45
+
46
+          if ( is_numeric( $size ) ) {
47
+               $thumb_size = array( $size, $size );
48
+          } else {
49
+               $thumb_size = $size;
50
+          }
51
+
52
+          $thumbnail_class = 'img-responsive';
53
+
54
+          if ( ! empty( get_the_post_thumbnail( $post_id ) ) || ! empty( get_post_meta( $post_id, 'lsx_email_gravatar', true ) ) ) {
55
+               if ( ! empty( get_the_post_thumbnail( $post_id ) ) ) {
56
+                    $thumbnail = get_the_post_thumbnail( $post_id, $thumb_size, array(
57
+                         'class' => $thumbnail_class,
58
+                    ) );
59
+               } else {
60
+                    $thumbnail = get_avatar( get_post_meta( $post_id, 'lsx_email_gravatar', true ), $size, $this->options['display']['team_placeholder'], false, array(
61
+                         'class' => $thumbnail_class,
62
+                    ) );
63
+               }
64
+          }
65
+          if ( empty( $thumbnail ) ) {
66
+               if ( $this->options['display'] && ! empty( $this->options['display']['team_placeholder'] ) ) {
67
+                    $thumbnail = '<img loading="lazy" class="img-responsive wp-post-image" src="' . $this->options['display']['team_placeholder'] . '" width="' . $size . '" />';
68
+               } else {
69
+                    $thumbnail = '<img loading="lazy" class="img-responsive wp-post-image" src="https://www.gravatar.com/avatar/none?d=mm&s=' . $size . '" width="' . $size . '" />';
70
+               }
71
+          }
72
+
73
+          remove_filter( 'lsx_placeholder_url', array( $this, 'placeholder' ), 10, 1 );
74
+          remove_filter( 'lsx_to_placeholder_url', array( $this, 'placeholder' ), 10, 1 );
75
+
76
+          return $thumbnail;
77
+     }
78
+
79
+     /**
80
+      * Replaces the widget with Mystery Man
81
+      */
82
+     public function placeholder( $image ) {
83
+          $image = array(
84
+               LSX_TEAM_URL . 'assets/img/mystery-man-square.png',
85
+               512,
86
+               512,
87
+               true,
88
+          );
89
+
90
+          return $image;
91
+     }
92
+
93
+     /**
94
+      * Returns the shortcode output markup
95
+      */
96
+     public function output( $atts ) {
97
+          extract( shortcode_atts(array(
98
+               'columns' => 4,
99
+               'orderby' => 'name',
100
+               'order' => 'ASC',
101
+               'role' => '',
102
+               'limit' => '99',
103
+               'include' => '',
104
+               'display' => 'excerpt',
105
+               'size' => 'lsx-team-archive',
106
+               'show_link' => false,
107
+               'show_email' => false,
108
+               'show_image' => true,
109
+               'show_roles' => false,
110
+               'show_job_title' => true,
111
+               'show_desc' => true,
112
+               'show_social' => true,
113
+               'carousel' => true,
114
+               'featured' => false,
115
+          ), $atts ) );
116
+
117
+          $output = '';
118
+
119
+          if ( ! empty( $include ) ) {
120
+               $include = explode( ',', $include );
121
+
122
+               $args = array(
123
+                    'post_type' => 'team',
124
+                    'posts_per_page' => $limit,
125
+                    'post__in' => $include,
126
+                    'orderby' => 'post__in',
127
+                    'order' => $order,
128
+               );
129
+          } else {
130
+               $args = array(
131
+                    'post_type' => 'team',
132
+                    'posts_per_page' => $limit,
133
+                    'orderby' => $orderby,
134
+                    'order' => $order,
135
+               );
136
+
137
+               if ( 'true' === $featured || true === $featured ) {
138
+                    $args['meta_key'] = 'lsx_featured';
139
+                    $args['meta_value'] = 1;
140
+               }
141
+          }
142
+
143
+          if ( ! empty( $role ) ) {
144
+               $args['tax_query'] = array(
145
+                    array(
146
+                         'taxonomy' => 'team_role',
147
+                         'field' => 'id',
148
+                         'terms' => $role,
149
+                    ),
150
+               );
151
+          }
152
+
153
+          $team = new \WP_Query( $args );
154
+
155
+          if ( $team->have_posts() ) {
156
+               global $post;
157
+
158
+               $count = 0;
159
+               $count_global = 0;
160
+
161
+               $column_size = intval( 12 / $columns );
162
+
163
+               $carousel = true === $carousel || 'true' === $carousel ? true : false;
164
+
165
+               if ( $carousel ) {
166
+                    $output .= "<div class='lsx-team-shortcode' id='lsx-team-slider' data-slick='{\"slidesToShow\": $columns, \"slidesToScroll\": $columns }'>";
167
+               } else {
168
+                    $output .= "<div class='lsx-team-shortcode'><div class='row'>";
169
+               }
170
+
171
+               while ( $team->have_posts() ) {
172
+                    $team->the_post();
173
+
174
+                    // Count
175
+                    $count++;
176
+                    $count_global++;
177
+
178
+                    $member_name = apply_filters( 'the_title', $post->post_title );
179
+                    $member_roles = '';
180
+                    $member_description = '';
181
+                    $member_avatar = '';
182
+                    $member_socials = '';
183
+                    $member_job_title = '';
184
+                    $member_email = '';
185
+                    $bottom_link = '';
186
+                    $facebook = get_post_meta( $post->ID, 'lsx_facebook', true );
187
+                    $twitter = get_post_meta( $post->ID, 'lsx_twitter', true );
188
+                    $linkedin = get_post_meta( $post->ID, 'lsx_linkedin', true );
189
+
190
+                    // Link to single
191
+                    if ( ( true === $show_link || 'true' === $show_link ) && ( empty( team_get_option( 'team_disable_single' ) ) ) ) {
192
+                         $bottom_link = '<a href="' . get_permalink( $post->ID ) . '" class="lsx-team-show-more">More about ' . strtok( $member_name, ' ' ) . '<i class="fa fa-long-arrow-right" aria-hidden="true"></i></a>';
193
+                    }
194
+
195
+                    if ( true === $show_email || 'true' === $show_email ) {
196
+                         $email = get_post_meta( $post->ID, 'lsx_email_contact', true );
197
+
198
+                         $member_email = '<a href="mailto:' . sanitize_email( $email ) . '" class="lsx-team-email">' . sanitize_email( $email ) . '</a>';
199
+                    }
200
+
201
+                    if ( ( true === $show_link || 'true' === $show_link ) && ( empty( team_get_option( 'team_disable_single' ) ) ) ) {
202
+                         $member_name = '<h5 class="lsx-team-name"><a href="' . get_permalink() . '">' . $member_name . '</a></h5>';
203
+                    } else {
204
+                         $member_name = '<h5 class="lsx-team-name">' . $member_name . '</h5>';
205
+                    }
206
+
207
+                    // Member roles
208
+                    if ( true === $show_roles || 'true' === $show_roles ) {
209
+                         $roles = '';
210
+                         $terms = get_the_terms( $post->ID, 'team_role' );
211
+
212
+                         if ( $terms && ! is_wp_error( $terms ) ) {
213
+                              $roles = array();
214
+
215
+                              foreach ( $terms as $term ) {
216
+                                   $roles[] = $term->name;
217
+                              }
218
+
219
+                              $roles = join( ', ', $roles );
220
+                         }
221
+
222
+                         $member_roles = '' !== $roles ? "<small class='lsx-team-roles'>$roles</small>" : '';
223
+                    }
224
+
225
+                    if ( true === $show_job_title || 'true' === $show_job_title ) {
226
+                         $job_title = get_post_meta( $post->ID, 'lsx_job_title', true );
227
+                         $member_job_title = ! empty( $job_title ) ? "<small class='lsx-team-job-title'>$job_title</small>" : '';
228
+                    }
229
+
230
+                    // Member description
231
+                    if ( true === $show_desc || 'true' === $show_desc ) {
232
+                         if ( 'full' === $display ) {
233
+                              $member_description = apply_filters( 'the_content', get_the_content( esc_html__( 'Read More', 'lsx-team' ) ) );
234
+                              $member_description = str_replace( ']]>', ']]&gt;', $member_description );
235
+                         } elseif ( 'excerpt' === $display ) {
236
+                              $member_description = apply_filters( 'the_excerpt', get_the_excerpt() );
237
+                         }
238
+
239
+                         $member_description = ! empty( $member_description ) ? "<div class='lsx-team-description'>$member_description</div>" : '';
240
+                    }
241
+
242
+                    // Member avatar
243
+                    if ( true === $show_image || 'true' === $show_image ) {
244
+                         $member_avatar = $this->get_thumbnail( $post->ID, $size );
245
+
246
+                         if ( ( true === $show_link || 'true' === $show_link ) && ( empty( $this->options['display'] ) || empty( team_get_option( 'team_disable_single' ) ) ) ) {
247
+                              $member_avatar = "<figure class='lsx-team-avatar'><a href='" . get_permalink() . "'>$member_avatar</a></figure>";
248
+                         } else {
249
+                              $member_avatar = "<figure class='lsx-team-avatar'>$member_avatar</figure>";
250
+                         }
251
+                    }
252
+
253
+                    // Member socials
254
+                    if ( true === $show_social || 'true' === $show_social ) {
255
+                         $links = array(
256
+                              'facebook' => $facebook,
257
+                              'twitter' => $twitter,
258
+                              'linkedin' => $linkedin,
259
+                         );
260
+
261
+                         foreach ( $links as $sm => $sm_link ) {
262
+                              if ( ! empty( $sm_link ) ) {
263
+                                   $member_socials .= "<li><a href='$sm_link' target='_blank'><i class='fa fa-$sm' aria-hidden='true'></i></a></li>";
264
+                              }
265
+                         }
266
+
267
+                         $member_socials = ! empty( $member_socials ) ? "<ul class='lsx-team-socials list-inline'>$member_socials</ul>" : '';
268
+                    }
269
+
270
+                    if ( ! $carousel ) {
271
+                         $output .= "<div class='col-xs-12 col-md-$column_size'>";
272
+                    }
273
+
274
+                    $output .= "
275 275
 					<div class='lsx-team-slot'>
276 276
 						$member_avatar
277 277
 						$member_name
@@ -284,28 +284,28 @@  discard block
 block discarded – undo
284 284
 					</div>
285 285
 				";
286 286
 
287
-				if ( ! $carousel ) {
288
-					$output .= '</div>';
287
+                    if ( ! $carousel ) {
288
+                         $output .= '</div>';
289 289
 
290
-					if ( $count == $columns && $team->post_count > $count_global ) {
291
-						$output .= '</div>';
292
-						$output .= '<div class="row">';
293
-						$count = 0;
294
-					}
295
-				}
290
+                         if ( $count == $columns && $team->post_count > $count_global ) {
291
+                              $output .= '</div>';
292
+                              $output .= '<div class="row">';
293
+                              $count = 0;
294
+                         }
295
+                    }
296 296
 
297
-				wp_reset_postdata();
298
-			}
297
+                    wp_reset_postdata();
298
+               }
299 299
 
300
-			if ( ! $carousel ) {
301
-				$output .= '</div>';
302
-			}
300
+               if ( ! $carousel ) {
301
+                    $output .= '</div>';
302
+               }
303 303
 
304
-			$output .= '</div>';
304
+               $output .= '</div>';
305 305
 
306
-			return $output;
307
-		}
308
-	}
306
+               return $output;
307
+          }
308
+     }
309 309
 
310 310
 }
311 311
 
Please login to merge, or discard this patch.