Advertisement
arie_cristianD

override author archive

Nov 16th, 2023
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.04 KB | None | 0 0
  1. <?php
  2. /**
  3.  * @author : Jegtheme
  4.  */
  5.  
  6. namespace JNews\Archive;
  7.  
  8. use JNews\Module\ModuleManager;
  9.  
  10. /**
  11.  * Class AuthorArchive
  12.  *
  13.  * @package JNews\Archive
  14.  */
  15. class AuthorArchive extends ArchiveAbstract {
  16.     /**
  17.      * @var \WP_Term
  18.      */
  19.     protected $author;
  20.  
  21.     /**
  22.      * @var String
  23.      */
  24.     protected $section;
  25.  
  26.     public function __construct() {
  27.         $this->author  = get_queried_object()->ID;
  28.         $this->section = isset( $_REQUEST['section'] ) ? sanitize_text_field( $_REQUEST['section'] ) : '';
  29.     }
  30.  
  31.     public function render_content() {
  32.         $content_width = array( $this->get_content_width() );
  33.         ModuleManager::getInstance()->set_width( $content_width );
  34.  
  35.         $post_per_page = get_option( 'posts_per_page' );
  36.  
  37.         $attr = array(
  38.             'content_type'            => $this->section,
  39.             'date_format'             => $this->get_content_date(),
  40.             'date_format_custom'      => $this->get_content_date_custom(),
  41.             'excerpt_length'          => $this->get_content_excerpt(),
  42.             'pagination_number_post'  => $post_per_page,
  43.             'number_post'             => $post_per_page,
  44.             'post_offset'             => $this->offset,
  45.             'include_author'          => $this->author,
  46.             'sort_by'                 => 'latest',
  47.             'pagination_mode'         => $this->get_content_pagination(),
  48.             'pagination_scroll_limit' => $this->get_content_pagination_limit(),
  49.             'paged'                   => jnews_get_post_current_page(),
  50.             'pagination_align'        => $this->get_content_pagination_align(),
  51.             'pagination_navtext'      => $this->get_content_pagination_navtext(),
  52.             'pagination_pageinfo'     => $this->get_content_pagination_pageinfo(),
  53.             'boxed'                   => $this->get_boxed(),
  54.             'boxed_shadow'            => $this->get_boxed_shadow(),
  55.             'box_shadow'              => $this->get_box_shadow(),
  56.             'push_archive'            => true,
  57.             'exclude_category'        => '1',
  58.         );
  59.  
  60.         $attr                   = apply_filters( 'jnews_get_content_attr', $attr, 'jnews_author_', '_' . $this->author );
  61.         $name                   = apply_filters( 'jnews_get_content_layout', 'JNews_Block_' . $this->get_content_type(), 'jnews_author_' );
  62.         $name                   = jnews_get_view_class_from_shortcode( $name );
  63.         $this->content_instance = jnews_get_module_instance( $name );
  64.  
  65.         return null !== $this->content_instance ? $this->content_instance->build_module( $attr ) : '';
  66.     }
  67.  
  68.     public function get_content_width() {
  69.         $width = parent::get_content_width();
  70.  
  71.         if ( in_array( $this->get_page_layout(), array( 'right-sidebar', 'left-sidebar' ) ) ) {
  72.             $sidebar = $this->get_content_sidebar();
  73.             if ( ! is_active_sidebar( $sidebar ) ) {
  74.                 return 12;
  75.             }
  76.         }
  77.  
  78.         return $width;
  79.     }
  80.  
  81.     // content
  82.     public function get_content_type() {
  83.         return apply_filters( 'jnews_author_content', get_theme_mod( 'jnews_author_content', '3' ), $this->author );
  84.     }
  85.  
  86.     public function get_content_excerpt() {
  87.         return apply_filters( 'jnews_author_content_excerpt', get_theme_mod( 'jnews_author_content_excerpt', 20 ), $this->author );
  88.     }
  89.  
  90.     public function get_content_date() {
  91.         return apply_filters( 'jnews_author_content_date', get_theme_mod( 'jnews_author_content_date', 'default' ), $this->author );
  92.     }
  93.  
  94.     public function get_content_date_custom() {
  95.         return apply_filters( 'jnews_author_content_date_custom', get_theme_mod( 'jnews_author_content_date_custom', 'Y/m/d' ), $this->author );
  96.     }
  97.  
  98.     public function get_content_pagination() {
  99.         return apply_filters( 'jnews_author_content_pagination', get_theme_mod( 'jnews_author_content_pagination', 'nav_1' ), $this->author );
  100.     }
  101.  
  102.     public function get_content_pagination_limit() {
  103.         return apply_filters( 'jnews_author_content_pagination_limit', get_theme_mod( 'jnews_author_content_pagination_limit' ), $this->author );
  104.     }
  105.  
  106.     public function get_content_pagination_align() {
  107.         return apply_filters( 'jnews_author_content_pagination_align', get_theme_mod( 'jnews_author_content_pagination_align', 'center' ), $this->author );
  108.     }
  109.  
  110.     public function get_content_pagination_navtext() {
  111.         return apply_filters( 'jnews_author_content_pagination_show_navtext', get_theme_mod( 'jnews_author_content_pagination_show_navtext', false ), $this->author );
  112.     }
  113.  
  114.     public function get_content_pagination_pageinfo() {
  115.         return apply_filters( 'jnews_author_content_pagination_show_pageinfo', get_theme_mod( 'jnews_author_content_pagination_show_pageinfo', false ), $this->author );
  116.     }
  117.  
  118.     public function get_page_layout() {
  119.         return apply_filters( 'jnews_author_page_layout', get_theme_mod( 'jnews_author_page_layout', 'right-sidebar' ), $this->author );
  120.     }
  121.  
  122.     public function get_content_sidebar() {
  123.         return apply_filters( 'jnews_author_sidebar', get_theme_mod( 'jnews_author_sidebar', 'default-sidebar' ), $this->author );
  124.     }
  125.  
  126.     public function get_second_sidebar() {
  127.         return apply_filters( 'jnews_author_second_sidebar', get_theme_mod( 'jnews_author_second_sidebar', 'default-sidebar' ), $this->author );
  128.     }
  129.  
  130.     public function sticky_sidebar() {
  131.         return apply_filters( 'jnews_author_sticky_sidebar', get_theme_mod( 'jnews_author_sticky_sidebar', true ), $this->author );
  132.     }
  133.  
  134.     public function get_boxed() {
  135.         if ( ! in_array(
  136.             $this->get_content_type(),
  137.             array(
  138.                 '3',
  139.                 '4',
  140.                 '5',
  141.                 '6',
  142.                 '7',
  143.                 '9',
  144.                 '10',
  145.                 '14',
  146.                 '18',
  147.                 '22',
  148.                 '23',
  149.                 '25',
  150.                 '26',
  151.                 '27',
  152.                 '39',
  153.             )
  154.         ) ) {
  155.             return false;
  156.         }
  157.  
  158.         return apply_filters( 'jnews_author_boxed', get_theme_mod( 'jnews_author_boxed', false ), $this->author );
  159.     }
  160.  
  161.     public function get_boxed_shadow() {
  162.         if ( ! $this->get_boxed() ) {
  163.             return false;
  164.         }
  165.  
  166.         return apply_filters( 'jnews_author_boxed_shadow', get_theme_mod( 'jnews_author_boxed_shadow', false ), $this->author );
  167.     }
  168.  
  169.     public function get_box_shadow() {
  170.         if ( ! in_array( $this->get_content_type(), array( '37', '35', '33', '36', '32', '38' ) ) ) {
  171.             return false;
  172.         }
  173.  
  174.         return apply_filters( 'jnews_author_box_shadow', get_theme_mod( 'jnews_author_box_shadow', false ), $this->author );
  175.     }
  176.  
  177.     public function get_header_title() {
  178.     }
  179.  
  180.     public function get_header_description() {
  181.     }
  182. }
  183.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement