Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * @author : Jegtheme
- */
- namespace JNews\Category;
- use JNews\Archive\ArchiveAbstract;
- use JNews\Module\ModuleManager;
- use JNews\Module\Hero;
- /**
- * Abstract Class TermAbstract
- */
- abstract class CategoryAbstract extends ArchiveAbstract {
- /**
- * @var \WP_Term
- */
- protected $term;
- public function __construct( $term = null ) {
- if ( $term === null ) {
- $term = get_queried_object();
- }
- $this->term = $term;
- $this->set_hero_class();
- }
- public function render_hero() {
- if ( $this->show_hero() ) {
- ModuleManager::getInstance()->set_width( array( 12 ) );
- $attr = array(
- 'hero_style' => $this->get_hero_style(),
- 'hero_margin' => $this->get_hero_margin(),
- 'date_format' => $this->get_hero_date(),
- 'date_format_custom' => $this->get_hero_date_custom(),
- 'paged' => 1,
- 'number_post' => $this->hero_instance->get_number_post(),
- 'include_category' => $this->term->term_id,
- 'sort_by' => 'alphabet_asc',
- 'push_archive' => true,
- );
- /** @var Hero\HeroViewAbstract */
- $this->hero_instance->set_attribute( $attr );
- $this->offset = $this->hero_instance->get_number_post();
- /** Render Item */
- return $this->hero_instance->build_module( $attr );
- }
- return null;
- }
- public function render_content() {
- $content_width = array( $this->get_content_width() );
- ModuleManager::getInstance()->set_width( $content_width );
- $post_per_page = get_option( 'posts_per_page' );
- $attr = array(
- 'date_format' => $this->get_content_date(),
- 'date_format_custom' => $this->get_content_date_custom(),
- 'excerpt_length' => $this->get_content_excerpt(),
- 'pagination_number_post' => $post_per_page,
- 'number_post' => $post_per_page,
- 'post_offset' => $this->offset,
- 'include_category' => $this->term->term_id,
- 'sort_by' => 'alphabet_asc',
- 'pagination_mode' => $this->get_content_pagination(),
- 'pagination_scroll_limit' => $this->get_content_pagination_limit(),
- 'paged' => jnews_get_post_current_page(),
- 'pagination_align' => $this->get_content_pagination_align(),
- 'pagination_navtext' => $this->get_content_pagination_navtext(),
- 'pagination_pageinfo' => $this->get_content_pagination_pageinfo(),
- 'boxed' => $this->get_boxed(),
- 'boxed_shadow' => $this->get_boxed_shadow(),
- 'box_shadow' => $this->get_box_shadow(),
- 'push_archive' => true,
- );
- if ( get_theme_mod( 'jnews_ads_inline_module_enable', false ) ) {
- $ads_option = array(
- 'ads_type' => get_theme_mod( 'jnews_ads_inline_module_type', 'googleads' ),
- 'ads_position' => get_theme_mod( 'jnews_ads_inline_module_paragraph', 2 ),
- 'ads_random' => get_theme_mod( 'jnews_ads_inline_module_paragraph_random', false ),
- 'ads_image' => get_theme_mod( 'jnews_ads_inline_module_image', '' ),
- 'ads_image_tablet' => get_theme_mod( 'jnews_ads_inline_module_image_tablet', '' ),
- 'ads_image_phone' => get_theme_mod( 'jnews_ads_inline_module_image_phone', '' ),
- 'ads_image_link' => get_theme_mod( 'jnews_ads_inline_module_link', '' ),
- 'ads_image_alt' => get_theme_mod( 'jnews_ads_inline_module_text', '' ),
- 'ads_image_new_tab' => get_theme_mod( 'jnews_ads_inline_module_open_tab', true ),
- 'google_publisher_id' => get_theme_mod( 'jnews_ads_inline_module_google_publisher', '' ),
- 'google_slot_id' => get_theme_mod( 'jnews_ads_inline_module_google_id', '' ),
- 'google_desktop' => get_theme_mod( 'jnews_ads_inline_module_google_desktop', 'auto' ),
- 'google_tab' => get_theme_mod( 'jnews_ads_inline_module_google_tab', 'auto' ),
- 'google_phone' => get_theme_mod( 'jnews_ads_inline_module_google_phone', 'auto' ),
- 'code' => get_theme_mod( 'jnews_ads_inline_module_code', '' ),
- 'ads_class' => 'inline_module',
- );
- if ( 'shortcode' === $ads_option['ads_type'] ) {
- $ads_option['shortcode'] = get_theme_mod( 'jnews_ads_inline_module_shortcode', null );
- }
- $attr = array_merge( $attr, $ads_option );
- }
- $attr = apply_filters( 'jnews_get_content_attr', $attr, 'jnews_category_', '_' . $this->term->term_id );
- $name = apply_filters( 'jnews_get_content_layout', 'JNews_Block_' . $this->get_content_type(), 'jnews_category_' );
- $name = jnews_get_view_class_from_shortcode( $name );
- $this->content_instance = jnews_get_module_instance( $name );
- return null !== $this->content_instance ? $this->content_instance->build_module( $attr ) : '';
- }
- public function header_style() {
- $image = $this->get_header_image();
- $background = $this->get_header_background();
- $style = '';
- if ( ! empty( $image ) ) {
- $style .= "background-image: url('{$image}');";
- }
- if ( ! empty( $background ) ) {
- $style .= "background-color: {$background};";
- }
- return $style;
- }
- public function archive_header_1() {
- $subtitle = ! empty( $this->term->description ) ? '<h2 class="jeg_cat_subtitle">' . do_shortcode( $this->term->description ) . '</h2>' : '';
- $breadcrumb = ( jnews_can_render_breadcrumb() && jnews_show_breadcrumb() ) ? "<div class=\"jeg_breadcrumbs jeg_breadcrumb_category jeg_breadcrumb_container\">{$this->render_breadcrumb()}</div>" : '';
- $subscribe = apply_filters( 'jnews_push_notification_single_category', '', $this->term );
- $output =
- "<div class=\"jeg_cat_header jeg_cat_header_1\">
- {$breadcrumb}
- <h1 class=\"jeg_cat_title\">{$this->term->name}</h1>
- {$subtitle}
- {$subscribe}
- </div>";
- return $output;
- }
- public function archive_header_2() {
- $subtitle = ! empty( $this->term->description ) ? '<h2 class="jeg_cat_subtitle">' . do_shortcode( $this->term->description ) . '</h2>' : '';
- $breadcrumb = ( jnews_can_render_breadcrumb() && jnews_show_breadcrumb() ) ? "<div class=\"jeg_breadcrumbs jeg_breadcrumb_category jeg_breadcrumb_container\">{$this->render_breadcrumb()}</div>" : '';
- $subscribe = apply_filters( 'jnews_push_notification_single_category', '', $this->term );
- if ( ! empty( $subscribe ) ) {
- $subscribe = "<div class=\"container\">
- {$subscribe}
- </div>";
- }
- $output =
- "<div class=\"jeg_cat_header jeg_cat_header_2\">
- <div class=\"container\">
- {$breadcrumb}
- <h1 class=\"jeg_cat_title\">{$this->term->name}</h1>
- {$subtitle}
- </div>
- </div>
- {$subscribe}";
- return $output;
- }
- public function archive_header_3() {
- $style = $this->get_header_style();
- $subtitle = ! empty( $this->term->description ) ? '<h2 class="jeg_cat_subtitle">' . do_shortcode( $this->term->description ) . '</h2>' : '';
- $breadcrumb = jnews_can_render_breadcrumb() ? "<div class=\"jeg_breadcrumbs jeg_breadcrumb_category jeg_breadcrumb_container\"> {$this->render_breadcrumb()} </div>" : '';
- $subscribe = apply_filters( 'jnews_push_notification_single_category', '', $this->term );
- if ( ! empty( $subscribe ) ) {
- $subscribe = "<div class=\"container\">
- {$subscribe}
- </div>";
- }
- $output =
- "<div class=\"jeg_cat_header jeg_cat_header_3\">
- <div class=\"jeg_cat_overlay {$style}\">
- <div class=\"jeg_cat_bg\" style=\"{$this->header_style()}\"></div>
- <div class=\"container\">
- {$breadcrumb}
- <div class=\"jeg_title_wrap\">
- <h1 class=\"jeg_cat_title\">{$this->term->name}</h1>
- {$subtitle}
- </div>
- </div>
- </div>
- </div>
- {$subscribe}";
- return $output;
- }
- public function archive_header_4() {
- $style = $this->get_header_style();
- $subtitle = ! empty( $this->term->description ) ? '<h2 class="jeg_cat_subtitle">' . do_shortcode( $this->term->description ) . '</h2>' : '';
- $breadcrumb = jnews_can_render_breadcrumb() ?
- "<div class=\"jeg_breadcrumbs\">
- <div class=\"container jeg_breadcrumb_category jeg_breadcrumb_container\">
- {$this->render_breadcrumb()}
- </div>
- </div>" : '';
- $subscribe = apply_filters( 'jnews_push_notification_single_category', '', $this->term );
- if ( ! empty( $subscribe ) ) {
- $subscribe = "<div class=\"container\">
- {$subscribe}
- </div>";
- }
- $output =
- "<div class=\"jeg_cat_header jeg_cat_header_4\">
- <div class=\"jeg_cat_overlay {$style}\">
- <div class=\"jeg_cat_bg jeg_parallax_bg\" style=\"{$this->header_style()}\"></div>
- <div class=\"container\">
- <div class=\"jeg_title_wrap\">
- <h1 class=\"jeg_cat_title\">{$this->term->name}</h1>
- {$subtitle}
- </div>
- </div>
- </div>
- {$breadcrumb}
- </div>
- {$subscribe}";
- return $output;
- }
- public function render_header( $position ) {
- $header_type = $this->get_header_type();
- if ( $position === 'top' && ( $header_type === '2' || $header_type === '3' || $header_type === '4' ) ) {
- switch ( $header_type ) {
- case '2':
- return $this->archive_header_2();
- case '3':
- return $this->archive_header_3();
- case '4':
- return $this->archive_header_4();
- }
- } elseif ( $position === 'bottom' && $header_type === '1' ) {
- return $this->archive_header_1();
- }
- return null;
- }
- public function set_hero_class() {
- $name = jnews_get_view_class_from_shortcode( 'JNews_Hero_' . $this->get_hero_type() );
- $this->hero_instance = jnews_get_module_instance( $name );
- }
- // header
- abstract public function get_header_type();
- abstract public function get_header_background();
- abstract public function get_header_image();
- abstract public function get_header_style();
- // hero
- abstract public function show_hero();
- abstract public function get_hero_type();
- abstract public function get_hero_style();
- abstract public function get_hero_margin();
- abstract public function get_hero_date();
- abstract public function get_hero_date_custom();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement