From 9d4123cee1867ee7199b06bdc92d40611f547ecc Mon Sep 17 00:00:00 2001 From: Zach van Rijn Date: Wed, 21 Jul 2021 14:54:07 -0500 Subject: Initial unmodified import from Astra (Version: 3.6.5) @ /wp-content/themes/astra/. --- inc/builder/markup/class-astra-builder-footer.php | 284 ++++++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 inc/builder/markup/class-astra-builder-footer.php (limited to 'inc/builder/markup/class-astra-builder-footer.php') diff --git a/inc/builder/markup/class-astra-builder-footer.php b/inc/builder/markup/class-astra-builder-footer.php new file mode 100644 index 0000000..f90d239 --- /dev/null +++ b/inc/builder/markup/class-astra-builder-footer.php @@ -0,0 +1,284 @@ +remove_existing_actions(); + + // Footer Builder. + add_action( 'astra_footer', array( $this, 'footer_markup' ), 10 ); + + add_action( 'astra_above_footer', array( $this, 'above_footer' ), 10 ); + add_action( 'astra_primary_footer', array( $this, 'primary_footer' ), 10 ); + add_action( 'astra_below_footer', array( $this, 'below_footer' ), 10 ); + + add_action( 'astra_render_footer_column', array( $this, 'render_column' ), 10, 2 ); + + // Core Components. + add_action( 'astra_footer_copyright', array( $this, 'footer_copyright' ), 10 ); + + for ( $index = 1; $index <= Astra_Builder_Helper::$component_limit; $index++ ) { + + // Buttons. + add_action( 'astra_footer_button_' . $index, array( $this, 'button_' . $index ) ); + self::$methods[] = 'button_' . $index; + + // Htmls. + add_action( 'astra_footer_html_' . $index, array( $this, 'footer_html_' . $index ) ); + self::$methods[] = 'footer_html_' . $index; + + // Social Icons. + add_action( 'astra_footer_social_' . $index, array( $this, 'footer_social_' . $index ) ); + self::$methods[] = 'footer_social_' . $index; + + } + + // Navigation menu. + add_action( 'astra_footer_menu', array( $this, 'footer_menu' ) ); + } + } + + /** + * Callback when method not exists. + * + * @param string $func function name. + * @param array $params function parameters. + */ + public function __call( $func, $params ) { + + if ( in_array( $func, self::$methods, true ) ) { + + if ( 0 === strpos( $func, 'footer_html_' ) ) { + Astra_Builder_UI_Controller::render_html_markup( str_replace( '_', '-', $func ) ); + } elseif ( 0 === strpos( $func, 'button_' ) ) { + $index = (int) substr( $func, strrpos( $func, '_' ) + 1 ); + + if ( $index ) { + Astra_Builder_UI_Controller::render_button( $index, 'footer' ); + } + } elseif ( 0 === strpos( $func, 'footer_social_' ) ) { + $index = (int) substr( $func, strrpos( $func, '_' ) + 1 ); + + if ( $index ) { + Astra_Builder_UI_Controller::render_social_icon( $index, 'footer' ); + } + } + } + } + + + /** + * Remove existing Footer to load Footer Builder. + * + * @since 3.0.0 + * @return void + */ + public function remove_existing_actions() { + remove_action( 'astra_footer_content_top', 'astra_footer_content_top' ); + remove_action( 'astra_footer_content', 'astra_advanced_footer_markup', 1 ); + remove_action( 'astra_footer_content', 'astra_footer_small_footer_template', 5 ); + remove_action( 'astra_footer_content_bottom', 'astra_footer_content_bottom' ); + remove_action( 'astra_footer', 'astra_footer_markup' ); + } + + /** + * Astra Footer Markup. + */ + public function footer_markup() { + + $display_footer = get_post_meta( get_the_ID(), 'footer-sml-layout', true ); + + $display_footer = apply_filters( 'ast_footer_bar_display', $display_footer ); + + if ( 'disabled' !== $display_footer ) { + + get_template_part( 'template-parts/footer/builder/desktop-builder-layout' ); + } + } + + /** + * Call above footer UI. + */ + public function above_footer() { + + if ( astra_wp_version_compare( '5.4.99', '>=' ) ) { + + get_template_part( + 'template-parts/footer/builder/footer', + 'row', + array( + 'row' => 'above', + ) + ); + } else { + + set_query_var( 'row', 'above' ); + get_template_part( 'template-parts/footer/builder/footer', 'row' ); + } + + } + + /** + * Call primary footer UI. + */ + public function primary_footer() { + + if ( astra_wp_version_compare( '5.4.99', '>=' ) ) { + + get_template_part( + 'template-parts/footer/builder/footer', + 'row', + array( + 'row' => 'primary', + ) + ); + } else { + + set_query_var( 'row', 'primary' ); + get_template_part( 'template-parts/footer/builder/footer', 'row' ); + } + + } + + /** + * Call below footer UI. + */ + public function below_footer() { + + if ( astra_wp_version_compare( '5.4.99', '>=' ) ) { + + get_template_part( + 'template-parts/footer/builder/footer', + 'row', + array( + 'row' => 'below', + ) + ); + } else { + + set_query_var( 'row', 'below' ); + get_template_part( 'template-parts/footer/builder/footer', 'row' ); + } + + } + + /** + * Call component footer UI. + * + * @param string $row row. + * @param string $column column. + */ + public function render_column( $row, $column ) { + + Astra_Builder_Helper::render_builder_markup( $row, $column, 'desktop', 'footer' ); + } + + /** + * Render Footer Copyright Markup! + */ + public function footer_copyright() { + + $theme_author = astra_get_theme_author_details(); + + $content = astra_get_option( 'footer-copyright-editor' ); + if ( $content || is_customize_preview() ) { + echo ''; + } + + } + + /** + * Render HTML 1. + */ + public function footer_html_1() { + Astra_Builder_UI_Controller::render_html_markup( 'footer-html-1' ); + } + + /** + * Render HTML 2. + */ + public function footer_html_2() { + Astra_Builder_UI_Controller::render_html_markup( 'footer-html-2' ); + } + + /** + * Render HTML 3. + */ + public function footer_html_3() { + Astra_Builder_UI_Controller::render_html_markup( 'footer-html-3' ); + } + + /** + * Render HTML 4. + */ + public function footer_html_4() { + Astra_Builder_UI_Controller::render_html_markup( 'footer-html-4' ); + } + + /** + * Render Menu. + */ + public function footer_menu() { + Astra_Footer_Menu_Component::menu_markup(); + } + } + + /** + * Prepare if class 'Astra_Builder_Footer' exist. + * Kicking this off by calling 'get_instance()' method + */ + Astra_Builder_Footer::get_instance(); +} -- cgit v1.2.3-60-g2f50