Passed
Push — add/cover-template-update ( ca0bef...ba8c8e )
by Virginia
09:49 queued 04:07
created

includes/layout.php (13 issues)

1
<?php
2
/**
3
 * LSX functions and definitions - Layout.
4
 *
5
 * @package    lsx
6
 * @subpackage layout
7
 */
8
9
if ( ! defined( 'ABSPATH' ) ) {
10
	exit;
11
}
12
13
if ( ! function_exists( 'lsx_layout_selector' ) ) :
14
	/**
15
	 * Layout selector.
16
	 *
17
	 * @package    lsx
18
	 * @subpackage layout
19
	 */
20
	function lsx_layout_selector( $class, $area = 'site' ) {
21
		$return_class = '';
22
		$layout       = get_theme_mod( 'lsx_layout', '1c' );
23
		$layout       = apply_filters( 'lsx_layout', $layout );
24
		$default_size = 'sm';
25
		$size         = apply_filters( 'lsx_bootstrap_column_size', $default_size );
26
27
		switch ( $layout ) {
28
			case '1c':
29
				$main_class    = 'col-' . $size . '-12';
30
				$sidebar_class = 'col-' . $size . '-12';
31
				break;
32
			case '2cr':
33
				$main_class    = 'col-' . $size . '-8';
34
				$sidebar_class = 'col-' . $size . '-4';
35
				break;
36
			case '2cl':
37
				$main_class    = 'col-' . $size . '-8 col-' . $size . '-push-4';
38
				$sidebar_class = 'col-' . $size . '-4 col-' . $size . '-pull-8';
39
				break;
40
			default:
41
				$main_class    = 'col-' . $size . '-8';
42
				$sidebar_class = 'col-' . $size . '-4';
43
				break;
44
		}
45
46
		if ( 'main' === $class ) {
47
			$return_class = apply_filters( 'lsx_layout_selector', $main_class, $class, $layout, $size );
48
		}
49
50
		if ( 'sidebar' === $class ) {
51
			$return_class = apply_filters( 'lsx_layout_selector', $sidebar_class, $class, $layout, $size );
52
		}
53
54
		return $return_class;
55
	}
56
endif;
57
58
if ( ! function_exists( 'lsx_main_class' ) ) :
59
	/**
60
	 * .main classes.
61
	 *
62
	 * @package    lsx
63
	 * @subpackage layout
64
	 */
65
	function lsx_main_class() {
66
		return lsx_layout_selector( 'main' );
67
	}
68
endif;
69
70
if ( ! function_exists( 'lsx_sidebar_class' ) ) :
71
	/**
72
	 * .sidebar classes.
73
	 *
74
	 * @package    lsx
75
	 * @subpackage layout
76
	 */
77
	function lsx_sidebar_class() {
78
		return lsx_layout_selector( 'sidebar' );
79
	}
80
endif;
81
82
if ( ! function_exists( 'lsx_header_classes' ) ) :
83
	/**
84
	 * Output the classes for the header.
85
	 *
86
	 * @package    lsx
87
	 * @subpackage layout
88
	 */
89
	function lsx_header_classes( $additional = false ) {
90
		$classes = 'banner navbar navbar-default';
91
92
		if ( false !== $additional ) {
93
			$classes .= ' ' . $additional;
94
		}
95
96
		echo esc_attr( $classes );
97
	}
98
endif;
99
100
if ( ! function_exists( 'lsx_top_menu_classes' ) ) :
101
	/**
102
	 * Output the classes for the top-menu.
103
	 *
104
	 * @package    lsx
105
	 * @subpackage layout
106
	 */
107
	function lsx_top_menu_classes( $additional = false ) {
108
		$classes = 'top-menu-default';
109
110
		if ( false !== $additional ) {
111
			$classes .= ' ' . $additional;
112
		}
113
114
		echo esc_attr( $classes );
115
	}
116
endif;
117
118
if ( ! function_exists( 'lsx_post_wrapper_class' ) ) :
119
	/**
120
	 * Output the classes for the top-menu.
121
	 *
122
	 * @package    lsx
123
	 * @subpackage layout
124
	 */
125
	function lsx_post_wrapper_class() {
126
		return apply_filters( 'lsx_post_wrapper_class', '' );
127
	}
128
endif;
129
130
131
132
if ( ! function_exists( 'lsx_add_footer_sidebar_area' ) ) :
133
	/**
134
	 * Output the Footer CTA and/pr Footer Widgets.
135
	 *
136
	 * @package    lsx
137
	 * @subpackage layout
138
	 */
139
	function lsx_add_footer_sidebar_area() {
140
		if ( is_active_sidebar( 'sidebar-footer-cta' ) ) : ?>
141
			<div id="footer-cta">
142
				<div class="container">
143
					<div class="lsx-full-width">
144
						<div class="lsx-hero-unit">
145
							<?php dynamic_sidebar( 'sidebar-footer-cta' ); ?>
146
						</div>
147
					</div>
148
				</div>
149
			</div>
150
		<?php endif; ?>
151
152
		<?php if ( is_active_sidebar( 'sidebar-footer' ) ) : ?>
153
			<div id="footer-widgets">
154
				<div class="container">
155
					<div class="row">
156
						<?php dynamic_sidebar( 'sidebar-footer' ); ?>
157
					</div>
158
				</div>
159
			</div>
160
			<?php
161
		endif;
162
	}
163
	add_action( 'lsx_footer_before', 'lsx_add_footer_sidebar_area' );
164
endif;
165
166
if ( ! function_exists( 'lsx_global_header' ) ) :
167
	/**
168
	 * Displays the global header.
169
	 *
170
	 * @package    lsx
171
	 * @subpackage layout
172
	 */
173
	function lsx_global_header() {
174
		$show_on_front  = get_option( 'show_on_front' );
175
		$queried_object = get_queried_object();
176
		$default_size   = 'sm';
177
		$size           = apply_filters( 'lsx_bootstrap_column_size', $default_size );
178
179
		// Cart and Checkout won't have banners of any kind.
180
		if ( function_exists( 'is_woocommerce' ) && ( is_checkout() || is_cart() ) ) {
181
			return;
182
		}
183
184
		// Product pages have their own banner function 'lsx_page_banner()'.
185
		if ( function_exists( 'is_woocommerce' ) && ( is_product() ) ) {
186
			return;
187
		}
188
189
		// Events wont have banners.
190
		if ( function_exists( 'tribe_is_event' ) && ( tribe_is_event() || tribe_is_organizer() || tribe_is_venue() ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
191
			return;
192
		}
193
194
		if ( function_exists( 'lsx_is_rest_api_request' ) && lsx_is_rest_api_request() ) {
195
			return;
196
		}
197
198
		if ( is_page() && ( 'page' !== $show_on_front || ! is_front_page() ) ) :
199
			if ( class_exists( 'LSX_Banners' ) && empty( apply_filters( 'lsx_banner_plugin_disable', false ) && ( ! has_post_thumbnail() ) ) ) {
200
				return;
201
			}
202
				?>
203
			<div class="archive-header-wrapper banner-page col-<?php echo esc_attr( $size ); ?>-12">
204
				<?php lsx_global_header_inner_bottom(); ?>
205
				<header class="archive-header">
206
					<h1 class="archive-title"><?php the_title(); ?></h1>
207
				</header>
208
209
			</div>
210
			<?php
211
212
		elseif ( is_single() && ! is_singular( 'post' ) ) :
213
			?>
214
			<div class="archive-header-wrapper banner-single col-<?php echo esc_attr( $size ); ?>-12">
215
				<?php lsx_global_header_inner_bottom(); ?>
216
				<header class="archive-header">
217
					<h1 class="archive-title"><?php echo wp_kses_post( apply_filters( 'lsx_global_header_title', get_the_title() ) ); ?></h1>
218
				</header>
219
220
			</div>
221
			<?php
222
		elseif ( is_search() ) :
223
			?>
224
			<div class="archive-header-wrapper banner-search col-<?php echo esc_attr( $size ); ?>-12">
225
				<?php lsx_global_header_inner_bottom(); ?>
226
				<header class="archive-header">
227
					<h1 class="archive-title">
228
						<?php
229
							printf(
230
								/* Translators: %s: search term/query */
231
								esc_html__( 'Search Results for: %s', 'lsx' ),
232
								'<span>' . get_search_query() . '</span>'
233
							);
234
						?>
235
					</h1>
236
				</header>
237
238
			</div>
239
			<?php
240
		elseif ( is_author() ) :
241
			$author        = get_the_author();
242
			$author_avatar = get_avatar( get_the_author_meta( 'ID' ), 256 );
243
			$author_bio    = get_the_archive_description();
244
			?>
245
			<div class="archive-header-wrapper banner-archive-author col-<?php echo esc_attr( $size ); ?>-12">
246
				<?php lsx_global_header_inner_bottom(); ?>
247
				<header class="archive-header">
248
					<h1 class="archive-title"><?php the_archive_title(); ?></h1>
249
				</header>
250
251
			</div>
252
			<?php
253
		elseif ( is_archive() ) :
254
			?>
255
			<div class="archive-header-wrapper banner-archive col-<?php echo esc_attr( $size ); ?>-12">
256
				<?php lsx_global_header_inner_bottom(); ?>
257
				<header class="archive-header">
258
					<h1 class="archive-title">
259
						<?php if ( has_post_format() && ! is_category() && ! is_tag() && ! is_date() && ! is_tax( 'post_format' ) ) { ?>
260
							<?php the_archive_title( esc_html__( 'Type:', 'lsx' ) ); ?>
261
						<?php } else { ?>
262
							<?php echo wp_kses_post( apply_filters( 'lsx_global_header_title', get_the_archive_title() ) ); ?>
263
						<?php } ?>
264
					</h1>
265
266
					<?php
267
					if ( false === apply_filters( 'lsx_display_global_header_description', false ) ) {
268
						the_archive_description();
269
					}
270
					?>
271
				</header>
272
			</div>
273
			<?php
274
		elseif ( 'page' === $show_on_front && (int) get_option( 'page_for_posts' ) === $queried_object->ID ) :
275
			?>
276
			<div class="archive-header-wrapper banner-page col-<?php echo esc_attr( $size ); ?>-12">
277
				<?php lsx_global_header_inner_bottom(); ?>
278
				<header class="archive-header">
279
					<h1 class="archive-title"><?php esc_html_e( 'Blog', 'lsx' ); ?></h1>
280
				</header>
281
282
			</div>
283
			<?php
284
		elseif ( ! is_singular( 'post' ) ) :
285
			// Display only the breadcrumbs.
286
			?>
287
			<div class="archive-header-wrapper banner-singular col-<?php echo esc_attr( $size ); ?>-12">
288
				<?php lsx_global_header_inner_bottom(); ?>
289
			</div>
290
			<?php
291
		elseif ( ( true === apply_filters( 'lsx_global_header_disable', false ) ) && ( ! is_search() ) ) :
292
			// Display only the breadcrumbs.
293
			?>
294
			<div class="archive-header-wrapper banner-global col-<?php echo esc_attr( $size ); ?>-12">
295
				<?php lsx_global_header_inner_bottom(); ?>
296
			</div>
297
			<?php
298
		endif;
299
	}
300
	add_action( 'lsx_content_wrap_before', 'lsx_global_header' );
301
endif;
302
303
if ( ! function_exists( 'lsx_author_extra_info' ) ) :
304
	/**
305
	 * Displays the author extra info.
306
	 *
307
	 * @package    lsx
308
	 * @subpackage layout
309
	 */
310
	function lsx_author_extra_info() {
311
		$default_size = 'sm';
312
		$size         = apply_filters( 'lsx_bootstrap_column_size', $default_size );
313
314
		if ( is_author() ) :
315
			$author_id         = get_the_author_meta( 'ID' );
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 7 spaces but found 9 spaces

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.

Loading history...
316
			$author            = get_the_author();
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 10 spaces but found 12 spaces

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.

Loading history...
317
			$author_avatar     = get_avatar( $author_id, 400 );
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 3 spaces but found 5 spaces

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.

Loading history...
318
			$author_bio        = get_the_archive_description();
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 6 spaces but found 8 spaces

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.

Loading history...
319
			$author_url        = get_the_author_meta( 'url', $author_id );
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 6 spaces but found 8 spaces

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.

Loading history...
320
			$author_email      = get_the_author_meta( 'email', $author_id );
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 4 spaces but found 6 spaces

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.

Loading history...
321
			$author_facebook   = get_the_author_meta( 'facebook', $author_id );
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 1 space but found 3 spaces

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.

Loading history...
322
			$author_linkedin   = get_the_author_meta( 'linkedin', $author_id );
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 1 space but found 3 spaces

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.

Loading history...
323
			$author_twitter    = get_the_author_meta( 'twitter', $author_id );
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 2 spaces but found 4 spaces

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.

Loading history...
324
			?>
325
			<div class="col-<?php echo esc_attr( $size ); ?>-12">
326
				<div class="archive-author-data">
327
					<div class="row">
328
						<?php if ( ! empty( $author_avatar ) ) : ?>
329
							<div class="col-xs-12 col-sm-4 col-md-3">
330
							<figure class="archive-author-avatar"><?php echo wp_kses_post( $author_avatar ); ?></figure>
331
							</div>
332
						<?php endif; ?>
333
						<div class="col-xs-12 col-sm-8 col-md-9">
334
							<a class="back-to-blog" href="<?php echo ( esc_url( get_post_type_archive_link( 'post' ) ) ); ?>"><?php echo esc_html__( 'Back To Blog', 'lsx' ); ?></a>
335
							<!-- Name -->
336
							<h2 class="archive-author-title">
337
								<?php
338
								if ( '' !== $author ) {
339
									echo esc_html( $author );
340
								}
341
								?>
342
							</h2>
343
							<!-- Social -->
344
							<?php if ( ! empty( $author_url ) || ! empty( $author_email ) || ! empty( $author_facebook ) || ! empty( $author_twitter ) ) : ?>
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
345
								<div class="archive-author-social-links">
346
									<?php if ( ! empty( $author_url ) ) : ?>
347
										<a href="<?php echo esc_url( $author_url ); ?>" target="_blank" rel="nofollow noreferrer noopener" class="archive-author-social-link archive-author-social-link-url"><i class="fa fa-link" aria-hidden="true"></i></a>
348
									<?php endif; ?>
349
350
									<?php if ( ! empty( $author_email ) ) : ?>
351
										<a href="mailto:<?php echo esc_attr( $author_email ); ?>" class="archive-author-social-link archive-author-social-link-email"><i class="fa fa-envelope" aria-hidden="true"></i></a>
352
									<?php endif; ?>
353
354
									<?php if ( ! empty( $author_facebook ) ) : ?>
355
										<a href="<?php echo esc_url( $author_facebook ); ?>" target="_blank" rel="nofollow noreferrer noopener" class="archive-author-social-link archive-author-social-link-facebook"><i class="fa fa-facebook" aria-hidden="true"></i></a>
356
									<?php endif; ?>
357
358
									<?php if ( ! empty( $author_twitter ) ) : ?>
359
										<a href="https://twitter.com/<?php echo esc_attr( $author_twitter ); ?>" target="_blank" rel="nofollow noreferrer noopener" class="archive-author-social-link archive-author-social-link-twitter"><i class="fa fa-twitter" aria-hidden="true"></i></a>
360
									<?php endif; ?>
361
362
									<?php if ( ! empty( $author_linkedin ) ) : ?>
363
										<a href="<?php echo esc_url( $author_linkedin ); ?>" target="_blank" rel="nofollow noreferrer noopener" class="archive-author-social-link archive-author-social-link-linkedin"><i class="fa fa-linkedin" aria-hidden="true"></i></a>
364
									<?php endif; ?>
365
								</div>
366
							<?php endif; ?>
367
368
							<!-- Bio -->
369
							<?php if ( ! empty( $author_bio ) ) : ?>
370
								<p class="archive-author-bio"><?php echo wp_kses_post( $author_bio ); ?></p>
371
							<?php endif; ?>
372
						</div>
373
					</div>
374
				</div>
375
				<h2><?php echo esc_html__( 'Posts', 'lsx' ); ?></h2>
376
			</div>
377
			<?php
378
		endif;
379
	}
380
	add_action( 'lsx_content_wrap_before', 'lsx_author_extra_info', 11 );
381
endif;
382
383
if ( ! function_exists( 'lsx_post_header' ) ) :
384
	/**
385
	 * Displays the post header.
386
	 *
387
	 * @package    lsx
388
	 * @subpackage layout
389
	 */
390
	function lsx_post_header() {
391
		$default_size = 'sm';
392
		$size         = apply_filters( 'lsx_bootstrap_column_size', $default_size );
393
394
		$disable_title = get_post_meta( get_the_ID(), 'lsx_disable_title', true );
395
		if ( 'yes' === $disable_title && is_singular( 'post' ) ) {
396
			return;
397
		}
398
399
		if ( is_singular( 'post' ) ) :
400
			$format = get_post_format();
401
402
			if ( false === $format ) {
403
				$format = 'standard';
404
			}
405
406
			$format = lsx_translate_format_to_fontawesome( $format );
407
			?>
408
			<div class="archive-header-wrapper banner-post-header col-<?php echo esc_attr( $size ); ?>-12">
409
				<header class="archive-header">
410
					<h1 class="archive-title">
411
						<i class="format-link fa fa-<?php echo esc_attr( $format ); ?>"></i>
412
						<span><?php the_title(); ?></span>
413
					</h1>
414
				</header>
415
			</div>
416
			<?php
417
		endif;
418
	}
419
	add_action( 'lsx_entry_top', 'lsx_post_header' );
420
endif;
421
422
if ( ! function_exists( 'lsx_add_viewport_meta_tag' ) ) :
423
	/**
424
	 * Add Viewport Meta Tag to head.
425
	 *
426
	 * @package    lsx
427
	 * @subpackage layout
428
	 */
429
	function lsx_add_viewport_meta_tag() {
430
		?>
431
		<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0">
432
		<?php
433
	}
434
	add_action( 'wp_head', 'lsx_add_viewport_meta_tag' );
435
endif;
436
437
if ( ! function_exists( 'lsx_header_search_form' ) ) :
438
	/**
439
	 * Add a search form to just above the nav menu.
440
	 *
441
	 * @package    lsx
442
	 * @subpackage layout
443
	 */
444
	function lsx_header_search_form() {
445
		$search_form = get_theme_mod( 'lsx_header_search', false );
446
447
		if ( false !== $search_form || is_customize_preview() ) {
448
			get_search_form( true );
449
		}
450
	}
451
	$mobile_header_layout = get_theme_mod( 'lsx_header_mobile_layout', 'navigation-bar' );
452
	add_action( 'lsx_nav_before', 'lsx_header_search_form', 0 );
453
endif;
454
455
// Add entry meta to single post if active.
456
if ( ! function_exists( 'lsx_add_entry_meta' ) ) :
457
	function lsx_add_entry_meta() {
458
		$disable_title = get_post_meta( get_the_ID(), 'lsx_disable_title', true );
459
		if ( 'yes' === $disable_title && is_singular( 'post' ) ) {
460
			return;
461
		}
462
		if ( is_single() && is_singular( 'post' ) ) {
463
			?>
464
			<div class="entry-meta">
465
				<?php lsx_post_meta_single_top(); ?>
466
			</div><!-- .entry-meta -->
467
			<?php
468
		}
469
	}
470
	add_action( 'lsx_entry_top', 'lsx_add_entry_meta', 999 );
471
endif;
472