File: /home/dailygoldindex/public_html/wp-content/themes/jnews/class/Category/CategoryAbstract.php
<?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' => 'latest',
'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' => 'latest',
'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'
);
$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() ? "<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() ? "<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();
}
} else if($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();
}