1 | <?php |
||||||||
0 ignored issues
–
show
Coding Style
introduced
by
![]() |
|||||||||
2 | /** |
||||||||
3 | * LSX Projects Frontend Class |
||||||||
4 | * |
||||||||
5 | * @package LSX Projects |
||||||||
6 | * @author LightSpeed |
||||||||
7 | * @license GPL3 |
||||||||
8 | * @link |
||||||||
9 | * @copyright 2017 LightSpeed |
||||||||
10 | */ |
||||||||
11 | class LSX_Projects_Frontend { |
||||||||
12 | |||||||||
13 | public function __construct() { |
||||||||
0 ignored issues
–
show
|
|||||||||
14 | $this->options = projects_get_options(); |
||||||||
0 ignored issues
–
show
|
|||||||||
15 | |||||||||
16 | add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 5 ); |
||||||||
17 | add_filter( 'wp_kses_allowed_html', array( $this, 'wp_kses_allowed_html' ), 10, 2 ); |
||||||||
18 | add_filter( 'template_include', array( $this, 'single_template_include' ), 99 ); |
||||||||
19 | add_filter( 'template_include', array( $this, 'archive_template_include' ), 99 ); |
||||||||
20 | |||||||||
21 | if ( ! empty( $this->options['display']['projects_disable_single'] ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
22 | add_action( 'template_redirect', array( $this, 'disable_single' ) ); |
||||||||
23 | } |
||||||||
24 | |||||||||
25 | if ( is_admin() ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
26 | add_filter( 'lsx_customizer_colour_selectors_body', array( $this, 'customizer_body_colours_handler' ), 15, 2 ); |
||||||||
27 | } |
||||||||
28 | |||||||||
29 | add_filter( 'lsx_banner_title', array( $this, 'lsx_banner_archive_title' ), 15 ); |
||||||||
30 | |||||||||
31 | add_filter( 'excerpt_more_p', array( $this, 'change_excerpt_more' ) ); |
||||||||
32 | add_filter( 'excerpt_length', array( $this, 'change_excerpt_length' ) ); |
||||||||
33 | add_filter( 'excerpt_strip_tags', array( $this, 'change_excerpt_strip_tags' ) ); |
||||||||
34 | |||||||||
35 | add_filter( 'pre_get_posts', array( $this, 'posts_per_page' ) ); |
||||||||
36 | add_action( 'wp_footer', array( $this, 'add_form_modal' ) ); |
||||||||
37 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
38 | |||||||||
39 | public function enqueue_scripts() { |
||||||||
0 ignored issues
–
show
|
|||||||||
40 | $has_slick = wp_script_is( 'slick', 'queue' ); |
||||||||
41 | |||||||||
42 | if ( ! $has_slick ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
43 | wp_enqueue_style( 'slick', LSX_PROJECTS_URL . 'assets/css/vendor/slick.css', array(), LSX_PROJECTS_VER, null ); |
||||||||
44 | wp_enqueue_script( 'slick', LSX_PROJECTS_URL . 'assets/js/vendor/slick.min.js', array( 'jquery' ), null, LSX_PROJECTS_VER, true ); |
||||||||
0 ignored issues
–
show
LSX_PROJECTS_VER of type string is incompatible with the type boolean expected by parameter $in_footer of wp_enqueue_script() .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() The call to
wp_enqueue_script() has too many arguments starting with true .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue. If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above. ![]() |
|||||||||
45 | } |
||||||||
46 | |||||||||
47 | $has_scrolltofixed = wp_script_is( 'scrolltofixed', 'queue' ); |
||||||||
48 | |||||||||
49 | if ( ! $has_scrolltofixed ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
50 | wp_enqueue_script( 'scrolltofixed', LSX_PROJECTS_URL . 'assets/js/vendor/jquery-scrolltofixed-min.js', array( 'jquery' ), null, LSX_PROJECTS_VER, true ); |
||||||||
0 ignored issues
–
show
|
|||||||||
51 | } |
||||||||
52 | |||||||||
53 | $has_isotope = wp_script_is( 'isotope', 'queue' ); |
||||||||
54 | |||||||||
55 | if ( ! $has_isotope ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
56 | wp_enqueue_script( 'isotope', LSX_PROJECTS_URL . 'assets/js/vendor/isotope.pkgd.min.js', array( 'jquery' ), null, LSX_PROJECTS_VER, true ); |
||||||||
0 ignored issues
–
show
|
|||||||||
57 | } |
||||||||
58 | |||||||||
59 | wp_enqueue_script( 'lsx-projects', LSX_PROJECTS_URL . 'assets/js/lsx-projects.min.js', array( 'jquery', 'slick', 'scrolltofixed', 'isotope' ), LSX_PROJECTS_VER, true ); |
||||||||
60 | |||||||||
61 | $params = apply_filters( 'lsx_projects_js_params', array( |
||||||||
0 ignored issues
–
show
|
|||||||||
62 | 'ajax_url' => admin_url( 'admin-ajax.php' ), |
||||||||
63 | )); |
||||||||
0 ignored issues
–
show
For multi-line function calls, the closing parenthesis should be on a new line.
If a function call spawns multiple lines, the coding standard suggests to move the closing parenthesis to a new line: someFunctionCall(
$firstArgument,
$secondArgument,
$thirdArgument
); // Closing parenthesis on a new line.
![]() |
|||||||||
64 | |||||||||
65 | wp_localize_script( 'lsx-projects', 'lsx_customizer_params', $params ); |
||||||||
66 | |||||||||
67 | wp_enqueue_style( 'lsx-projects', LSX_PROJECTS_URL . 'assets/css/lsx-projects.css', array(), LSX_PROJECTS_VER ); |
||||||||
68 | wp_style_add_data( 'lsx-projects', 'rtl', 'replace' ); |
||||||||
69 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
70 | |||||||||
71 | /** |
||||||||
0 ignored issues
–
show
|
|||||||||
72 | * Allow data params for Slick slider addon. |
||||||||
73 | */ |
||||||||
74 | public function wp_kses_allowed_html( $allowedtags, $context ) { |
||||||||
75 | $allowedtags['div']['data-slick'] = true; |
||||||||
76 | return $allowedtags; |
||||||||
77 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
78 | |||||||||
79 | /** |
||||||||
0 ignored issues
–
show
|
|||||||||
80 | * Single template. |
||||||||
81 | */ |
||||||||
82 | public function single_template_include( $template ) { |
||||||||
83 | if ( is_main_query() && is_singular( 'project' ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
84 | if ( empty( locate_template( array( 'single-projects.php' ) ) ) && file_exists( LSX_PROJECTS_PATH . 'templates/single-projects.php' ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
85 | $template = LSX_PROJECTS_PATH . 'templates/single-projects.php'; |
||||||||
86 | } |
||||||||
87 | } |
||||||||
88 | |||||||||
89 | return $template; |
||||||||
90 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
91 | |||||||||
92 | /** |
||||||||
0 ignored issues
–
show
|
|||||||||
93 | * Archive template. |
||||||||
94 | */ |
||||||||
95 | public function archive_template_include( $template ) { |
||||||||
96 | if ( is_main_query() && ( is_post_type_archive( 'project' ) || is_tax( 'project-group' ) ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
97 | if ( empty( locate_template( array( 'archive-projects.php' ) ) ) && file_exists( LSX_PROJECTS_PATH . 'templates/archive-projects.php' ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
98 | $template = LSX_PROJECTS_PATH . 'templates/archive-projects.php'; |
||||||||
99 | } |
||||||||
100 | } |
||||||||
101 | |||||||||
102 | return $template; |
||||||||
103 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
104 | |||||||||
105 | /** |
||||||||
106 | * Removes access to single project member posts. |
||||||||
107 | */ |
||||||||
108 | public function disable_single() { |
||||||||
109 | $queried_post_type = get_query_var( 'post_type' ); |
||||||||
110 | |||||||||
111 | if ( is_single() && 'project' === $queried_post_type ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
112 | wp_redirect( home_url(), 301 ); |
||||||||
0 ignored issues
–
show
|
|||||||||
113 | exit; |
||||||||
0 ignored issues
–
show
|
|||||||||
114 | } |
||||||||
115 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
116 | |||||||||
117 | /** |
||||||||
0 ignored issues
–
show
|
|||||||||
118 | * Handle body colours that might be change by LSX Customiser |
||||||||
119 | */ |
||||||||
120 | public function customizer_body_colours_handler( $css, $colors ) { |
||||||||
121 | $css .= ' |
||||||||
122 | @import "' . LSX_PROJECTS_PATH . '/assets/css/scss/customizer-projects-body-colours"; |
||||||||
123 | |||||||||
124 | /** |
||||||||
125 | * LSX Customizer - Body (LSX Projects) |
||||||||
126 | */ |
||||||||
127 | @include customizer-projects-body-colours ( |
||||||||
128 | $bg: ' . $colors['background_color'] . ', |
||||||||
129 | $breaker: ' . $colors['body_line_color'] . ', |
||||||||
130 | $color: ' . $colors['body_text_color'] . ', |
||||||||
131 | $link: ' . $colors['body_link_color'] . ', |
||||||||
132 | $hover: ' . $colors['body_link_hover_color'] . ', |
||||||||
133 | $small: ' . $colors['body_text_small_color'] . ' |
||||||||
134 | ); |
||||||||
135 | '; |
||||||||
136 | |||||||||
137 | return $css; |
||||||||
138 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
139 | |||||||||
140 | /** |
||||||||
0 ignored issues
–
show
|
|||||||||
141 | * Change the LSX Banners title for project archive. |
||||||||
142 | */ |
||||||||
143 | public function lsx_banner_archive_title( $title ) { |
||||||||
144 | if ( is_main_query() && is_post_type_archive( 'project' ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
145 | $title = '<h1 class="page-title">' . esc_html__( 'Portfolio', 'lsx-projects' ) . '</h1>'; |
||||||||
146 | } |
||||||||
147 | |||||||||
148 | if ( is_main_query() && is_tax( 'project-group' ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
149 | $tax = get_queried_object(); |
||||||||
0 ignored issues
–
show
Equals sign not aligned with surrounding assignments; expected 3 spaces but found 1 space
This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line. To visualize $a = "a";
$ab = "ab";
$abc = "abc";
will produce issues in the first and second line, while this second example $a = "a";
$ab = "ab";
$abc = "abc";
will produce no issues. ![]() |
|||||||||
150 | $title = '<h1 class="page-title">' . esc_html__( 'Project Type', 'lsx-projects' ) . ': ' . apply_filters( 'the_title', $tax->name ) . '</h1>'; |
||||||||
151 | } |
||||||||
152 | |||||||||
153 | return $title; |
||||||||
154 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
155 | |||||||||
156 | /** |
||||||||
0 ignored issues
–
show
|
|||||||||
157 | * Remove the "continue reading" when the single is disabled. |
||||||||
158 | */ |
||||||||
159 | public function change_excerpt_more( $excerpt_more ) { |
||||||||
160 | global $post; |
||||||||
161 | |||||||||
162 | if ( 'project' === $post->post_type ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
163 | if ( ! empty( $this->options['display']['projects_disable_single'] ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
164 | $excerpt_more = ''; |
||||||||
165 | } |
||||||||
166 | } |
||||||||
167 | |||||||||
168 | return $excerpt_more; |
||||||||
169 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
170 | |||||||||
171 | /** |
||||||||
0 ignored issues
–
show
|
|||||||||
172 | * Change the word count when crop the content to excerpt (homepage widget). |
||||||||
173 | */ |
||||||||
174 | public function change_excerpt_length( $excerpt_word_count ) { |
||||||||
175 | global $post; |
||||||||
176 | |||||||||
177 | if ( is_front_page() && 'project' === $post->post_type ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
178 | $excerpt_word_count = 20; |
||||||||
179 | } |
||||||||
180 | |||||||||
181 | if ( is_singular( 'project' ) && ( 'team' === $post->post_type || 'testimonial' === $post->post_type ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
182 | $excerpt_word_count = 20; |
||||||||
183 | } |
||||||||
184 | |||||||||
185 | return $excerpt_word_count; |
||||||||
186 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
187 | |||||||||
188 | /** |
||||||||
0 ignored issues
–
show
|
|||||||||
189 | * Change the allowed tags crop the content to excerpt (homepage widget). |
||||||||
190 | */ |
||||||||
191 | public function change_excerpt_strip_tags( $allowed_tags ) { |
||||||||
192 | global $post; |
||||||||
193 | |||||||||
194 | if ( is_front_page() && 'project' === $post->post_type ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
195 | $allowed_tags = '<p>,<br>,<b>,<strong>,<i>,<u>,<ul>,<ol>,<li>,<span>'; |
||||||||
196 | } |
||||||||
197 | |||||||||
198 | if ( is_singular( 'project' ) && ( 'team' === $post->post_type || 'testimonial' === $post->post_type ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
199 | $allowed_tags = '<p>,<br>,<b>,<strong>,<i>,<u>,<ul>,<ol>,<li>,<span>'; |
||||||||
200 | } |
||||||||
201 | |||||||||
202 | return $allowed_tags; |
||||||||
203 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
204 | |||||||||
205 | /** |
||||||||
0 ignored issues
–
show
|
|||||||||
206 | * Change posts per page counter for archive. |
||||||||
207 | */ |
||||||||
208 | public function posts_per_page( $query ) { |
||||||||
209 | if ( ! is_admin() && $query->is_main_query() ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
210 | if ( $query->is_post_type_archive( 'project' ) || $query->is_tax( 'project-group' ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
211 | if ( ! function_exists( 'lsx_search' ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
212 | $query->set( 'posts_per_page', -1 ); |
||||||||
213 | } else { |
||||||||
214 | $query->set( 'posts_per_page', '12' ); |
||||||||
215 | } |
||||||||
216 | } |
||||||||
217 | } |
||||||||
218 | |||||||||
219 | return $query; |
||||||||
220 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
221 | |||||||||
222 | /** |
||||||||
223 | * Add form modal |
||||||||
224 | */ |
||||||||
225 | public function add_form_modal() { |
||||||||
0 ignored issues
–
show
|
|||||||||
226 | |||||||||
227 | if ( empty( $this->options['display']['projects_modal_enable'] ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
228 | return ''; |
||||||||
229 | } |
||||||||
230 | |||||||||
231 | if ( empty( $this->options['display']['projects_modal_cta_label'] ) || empty( $this->options['display']['projects_modal_form_id'] ) || empty( $this->options['display']['projects_wpform_modal_form_id'] ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
232 | return ''; |
||||||||
233 | } |
||||||||
234 | |||||||||
235 | if ( ! is_singular( 'project' ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
236 | return ''; |
||||||||
237 | } |
||||||||
238 | ?> |
||||||||
239 | <div class="lsx-modal modal fade" id="lsx-project-contact" role="dialog"> |
||||||||
240 | <div class="modal-dialog"> |
||||||||
241 | <div class="modal-content"> |
||||||||
242 | <button type="button" class="close" data-dismiss="modal">×</button> |
||||||||
243 | |||||||||
244 | <div class="modal-header"> |
||||||||
245 | <h4 class="modal-title"><?php echo esc_html( $this->options['display']['projects_modal_cta_label'] ); ?></h4> |
||||||||
246 | </div> |
||||||||
247 | |||||||||
248 | <div class="modal-body"> |
||||||||
249 | <?php |
||||||||
250 | if ( ! empty( $this->options['display']['projects_modal_form_id'] ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
251 | echo do_shortcode( '[caldera_form id="' . $this->options['display']['projects_modal_form_id'] . '"]' ); |
||||||||
252 | } elseif ( ! empty( $this->options['display']['projects_wpform_modal_form_id'] ) ) { |
||||||||
0 ignored issues
–
show
|
|||||||||
253 | echo do_shortcode( '[wpforms id="' . $this->options['display']['projects_wpform_modal_form_id'] . '"]' ); |
||||||||
254 | } ?> |
||||||||
0 ignored issues
–
show
|
|||||||||
255 | </div> |
||||||||
256 | </div> |
||||||||
257 | </div> |
||||||||
258 | </div> |
||||||||
259 | <?php |
||||||||
260 | } |
||||||||
0 ignored issues
–
show
|
|||||||||
261 | |||||||||
262 | } |
||||||||
263 | |||||||||
264 | global $lsx_projects_frontend; |
||||||||
265 | $lsx_projects_frontend = new LSX_Projects_Frontend(); |
||||||||
266 |