246 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			246 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Footer elements.
 | |
|  *
 | |
|  * @package GeneratePress
 | |
|  */
 | |
| 
 | |
| if ( ! defined( 'ABSPATH' ) ) {
 | |
| 	exit; // Exit if accessed directly.
 | |
| }
 | |
| 
 | |
| if ( ! function_exists( 'generate_construct_footer' ) ) {
 | |
| 	add_action( 'generate_footer', 'generate_construct_footer' );
 | |
| 	/**
 | |
| 	 * Build our footer.
 | |
| 	 *
 | |
| 	 * @since 1.3.42
 | |
| 	 */
 | |
| 	function generate_construct_footer() {
 | |
| 		$inside_site_info_class = '';
 | |
| 
 | |
| 		if ( 'full-width' !== generate_get_option( 'footer_inner_width' ) ) {
 | |
| 			$inside_site_info_class = ' grid-container grid-parent';
 | |
| 
 | |
| 			if ( generate_is_using_flexbox() ) {
 | |
| 				$inside_site_info_class = ' grid-container';
 | |
| 			}
 | |
| 		}
 | |
| 		?>
 | |
| 		<footer <?php generate_do_element_classes( 'site-info', 'site-info' ); ?>>
 | |
| 			<div class="inside-site-info<?php echo $inside_site_info_class; // phpcs:ignore ?>">
 | |
| 				<?php
 | |
| 				/**
 | |
| 				 * generate_before_copyright hook.
 | |
| 				 *
 | |
| 				 * @since 0.1
 | |
| 				 *
 | |
| 				 * @hooked generate_footer_bar - 15
 | |
| 				 */
 | |
| 				do_action( 'generate_before_copyright' );
 | |
| 				?>
 | |
| 				<div class="copyright-bar">
 | |
| 					<?php
 | |
| 					/**
 | |
| 					 * generate_credits hook.
 | |
| 					 *
 | |
| 					 * @since 0.1
 | |
| 					 *
 | |
| 					 * @hooked generate_add_footer_info - 10
 | |
| 					 */
 | |
| 					do_action( 'generate_credits' );
 | |
| 					?>
 | |
| 				</div>
 | |
| 			</div>
 | |
| 		</footer>
 | |
| 		<?php
 | |
| 	}
 | |
| }
 | |
| 
 | |
| if ( ! function_exists( 'generate_footer_bar' ) ) {
 | |
| 	add_action( 'generate_before_copyright', 'generate_footer_bar', 15 );
 | |
| 	/**
 | |
| 	 * Build our footer bar
 | |
| 	 *
 | |
| 	 * @since 1.3.42
 | |
| 	 */
 | |
| 	function generate_footer_bar() {
 | |
| 		if ( ! is_active_sidebar( 'footer-bar' ) ) {
 | |
| 			return;
 | |
| 		}
 | |
| 		?>
 | |
| 		<div class="footer-bar">
 | |
| 			<?php dynamic_sidebar( 'footer-bar' ); ?>
 | |
| 		</div>
 | |
| 		<?php
 | |
| 	}
 | |
| }
 | |
| 
 | |
| if ( ! function_exists( 'generate_add_footer_info' ) ) {
 | |
| 	add_action( 'generate_credits', 'generate_add_footer_info' );
 | |
| 	/**
 | |
| 	 * Add the copyright to the footer
 | |
| 	 *
 | |
| 	 * @since 0.1
 | |
| 	 */
 | |
| 	function generate_add_footer_info() {
 | |
| 		$copyright = sprintf(
 | |
| 			'<span class="copyright">© %1$s %2$s</span> • %4$s <a href="%3$s"%6$s>%5$s</a>',
 | |
| 			date( 'Y' ), // phpcs:ignore
 | |
| 			get_bloginfo( 'name' ),
 | |
| 			esc_url( 'https://generatepress.com' ),
 | |
| 			_x( 'Built with', 'GeneratePress', 'generatepress' ),
 | |
| 			__( 'GeneratePress', 'generatepress' ),
 | |
| 			'microdata' === generate_get_schema_type() ? ' itemprop="url"' : ''
 | |
| 		);
 | |
| 
 | |
| 		echo apply_filters( 'generate_copyright', $copyright ); // phpcs:ignore
 | |
| 	}
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Build our individual footer widgets.
 | |
|  * Displays a sample widget if no widget is found in the area.
 | |
|  *
 | |
|  * @since 2.0
 | |
|  *
 | |
|  * @param int $widget_width The width class of our widget.
 | |
|  * @param int $widget The ID of our widget.
 | |
|  */
 | |
| function generate_do_footer_widget( $widget_width, $widget ) {
 | |
| 	$widget_classes = sprintf(
 | |
| 		'footer-widget-%s',
 | |
| 		absint( $widget )
 | |
| 	);
 | |
| 
 | |
| 	if ( ! generate_is_using_flexbox() ) {
 | |
| 		$widget_width = apply_filters( "generate_footer_widget_{$widget}_width", $widget_width );
 | |
| 		$tablet_widget_width = apply_filters( "generate_footer_widget_{$widget}_tablet_width", '50' );
 | |
| 
 | |
| 		$widget_classes = sprintf(
 | |
| 			'footer-widget-%1$s grid-parent grid-%2$s tablet-grid-%3$s mobile-grid-100',
 | |
| 			absint( $widget ),
 | |
| 			absint( $widget_width ),
 | |
| 			absint( $tablet_widget_width )
 | |
| 		);
 | |
| 	}
 | |
| 	?>
 | |
| 	<div class="<?php echo $widget_classes; // phpcs:ignore ?>">
 | |
| 		<?php dynamic_sidebar( 'footer-' . absint( $widget ) ); ?>
 | |
| 	</div>
 | |
| 	<?php
 | |
| }
 | |
| 
 | |
| if ( ! function_exists( 'generate_construct_footer_widgets' ) ) {
 | |
| 	add_action( 'generate_footer', 'generate_construct_footer_widgets', 5 );
 | |
| 	/**
 | |
| 	 * Build our footer widgets.
 | |
| 	 *
 | |
| 	 * @since 1.3.42
 | |
| 	 */
 | |
| 	function generate_construct_footer_widgets() {
 | |
| 		// Get how many widgets to show.
 | |
| 		$widgets = generate_get_footer_widgets();
 | |
| 
 | |
| 		if ( ! empty( $widgets ) && 0 !== $widgets ) :
 | |
| 
 | |
| 			// If no footer widgets exist, we don't need to continue.
 | |
| 			if ( ! is_active_sidebar( 'footer-1' ) && ! is_active_sidebar( 'footer-2' ) && ! is_active_sidebar( 'footer-3' ) && ! is_active_sidebar( 'footer-4' ) && ! is_active_sidebar( 'footer-5' ) ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			// Set up the widget width.
 | |
| 			$widget_width = '';
 | |
| 
 | |
| 			if ( 1 === (int) $widgets ) {
 | |
| 				$widget_width = '100';
 | |
| 			}
 | |
| 
 | |
| 			if ( 2 === (int) $widgets ) {
 | |
| 				$widget_width = '50';
 | |
| 			}
 | |
| 
 | |
| 			if ( 3 === (int) $widgets ) {
 | |
| 				$widget_width = '33';
 | |
| 			}
 | |
| 
 | |
| 			if ( 4 === (int) $widgets ) {
 | |
| 				$widget_width = '25';
 | |
| 			}
 | |
| 
 | |
| 			if ( 5 === (int) $widgets ) {
 | |
| 				$widget_width = '20';
 | |
| 			}
 | |
| 			?>
 | |
| 			<div id="footer-widgets" class="site footer-widgets">
 | |
| 				<div <?php generate_do_element_classes( 'inside_footer' ); ?>>
 | |
| 					<div class="inside-footer-widgets">
 | |
| 						<?php
 | |
| 						if ( $widgets >= 1 ) {
 | |
| 							generate_do_footer_widget( $widget_width, 1 );
 | |
| 						}
 | |
| 
 | |
| 						if ( $widgets >= 2 ) {
 | |
| 							generate_do_footer_widget( $widget_width, 2 );
 | |
| 						}
 | |
| 
 | |
| 						if ( $widgets >= 3 ) {
 | |
| 							generate_do_footer_widget( $widget_width, 3 );
 | |
| 						}
 | |
| 
 | |
| 						if ( $widgets >= 4 ) {
 | |
| 							generate_do_footer_widget( $widget_width, 4 );
 | |
| 						}
 | |
| 
 | |
| 						if ( $widgets >= 5 ) {
 | |
| 							generate_do_footer_widget( $widget_width, 5 );
 | |
| 						}
 | |
| 						?>
 | |
| 					</div>
 | |
| 				</div>
 | |
| 			</div>
 | |
| 			<?php
 | |
| 		endif;
 | |
| 
 | |
| 		/**
 | |
| 		 * generate_after_footer_widgets hook.
 | |
| 		 *
 | |
| 		 * @since 0.1
 | |
| 		 */
 | |
| 		do_action( 'generate_after_footer_widgets' );
 | |
| 	}
 | |
| }
 | |
| 
 | |
| if ( ! function_exists( 'generate_back_to_top' ) ) {
 | |
| 	add_action( 'generate_after_footer', 'generate_back_to_top' );
 | |
| 	/**
 | |
| 	 * Build the back to top button
 | |
| 	 *
 | |
| 	 * @since 1.3.24
 | |
| 	 */
 | |
| 	function generate_back_to_top() {
 | |
| 		$generate_settings = wp_parse_args(
 | |
| 			get_option( 'generate_settings', array() ),
 | |
| 			generate_get_defaults()
 | |
| 		);
 | |
| 
 | |
| 		if ( 'enable' !== $generate_settings['back_to_top'] ) {
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		echo apply_filters( // phpcs:ignore
 | |
| 			'generate_back_to_top_output',
 | |
| 			sprintf(
 | |
| 				'<a title="%1$s" aria-label="%1$s" rel="nofollow" href="#" class="generate-back-to-top" style="opacity:0;visibility:hidden;" data-scroll-speed="%2$s" data-start-scroll="%3$s">
 | |
| 					%5$s
 | |
| 				</a>',
 | |
| 				esc_attr__( 'Scroll back to top', 'generatepress' ),
 | |
| 				absint( apply_filters( 'generate_back_to_top_scroll_speed', 400 ) ),
 | |
| 				absint( apply_filters( 'generate_back_to_top_start_scroll', 300 ) ),
 | |
| 				esc_attr( apply_filters( 'generate_back_to_top_icon', 'fa-angle-up' ) ),
 | |
| 				generate_get_svg_icon( 'arrow-up' )
 | |
| 			)
 | |
| 		);
 | |
| 	}
 | |
| }
 |