Advertisement
arie_cristianD

Post_Related_View

Oct 3rd, 2023
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.09 KB | None | 0 0
  1. <?php
  2. /**
  3.  * @author : Jegtheme
  4.  */
  5. namespace JNews\Module\Post;
  6.  
  7. use JNews\Module\Block\BlockViewAbstract;
  8. use JNews\Single\SinglePost;
  9.  
  10. class Post_Related_View extends PostViewAbstract {
  11.  
  12.     public function render_module_back( $attr, $column_class ) {
  13.         $attribute = array(
  14.             'first_title'             => get_theme_mod( 'jnews_single_post_related_override_title', false ) ? get_theme_mod( 'jnews_single_post_related_ftitle', 'Related' ) : jnews_return_translation( 'Related', 'jnews', 'related' ),
  15.             'second_title'            => get_theme_mod( 'jnews_single_post_related_override_title', false ) ? get_theme_mod( 'jnews_single_post_related_stitle', 'Posts' ) : jnews_return_translation( ' Posts', 'jnews', 'posts' ),
  16.             'header_type'             => $attr['header_type'],
  17.             'date_format'             => $attr['date'],
  18.             'date_format_custom'      => $attr['date_custom'],
  19.             'excerpt_length'          => $attr['excerpt'],
  20.             'pagination_number_post'  => $attr['number'],
  21.             'number_post'             => $attr['number'],
  22.             'unique_content'          => $attr['unique_content'],
  23.             'include_category'        => '',
  24.             'include_tag'             => '',
  25.             'sort_by'                 => $attr['sort_by'],
  26.             'pagination_mode'         => $attr['pagination'],
  27.             'pagination_scroll_limit' => $attr['auto_load'],
  28.             'paged'                   => 1,
  29.             'column_width'            => $attr['column_width'],
  30.         );
  31.  
  32.         $name = 'JNews_Block_' . str_replace( 'template_', '', $attr['template'] );
  33.         $name = jnews_get_view_class_from_shortcode( $name );
  34.  
  35.         /** @var $content_instance BlockViewAbstract */
  36.         $content_instance = jnews_get_module_instance( $name );
  37.         $result           = $content_instance->build_module( $attribute );
  38.  
  39.         return "<div {$this->element_id($attr)} class='jeg_custom_related_wrapper {$attr['scheme']} {$attr['el_class']} {$this->get_vc_class_name()}'>" .
  40.                 $result .
  41.             '</div>';
  42.     }
  43.  
  44.     public function render_module_front( $attr, $column_class ) {
  45.         $match    = $attr['match'];
  46.         $category = $tag = $result = array();
  47.         if ( $match === 'category' ) {
  48.             SinglePost::getInstance()->recursive_category( get_the_category(), $result );
  49.  
  50.             if ( $result ) {
  51.                 foreach ( $result as $cat ) {
  52.                     $category[] = $cat->term_id;
  53.                 }
  54.             }
  55.         } elseif ( $match === 'tag' ) {
  56.             $tags = get_the_tags();
  57.             if ( $tags ) {
  58.                 foreach ( $tags as $cat ) {
  59.                     $tag[] = $cat->term_id;
  60.                 }
  61.             }
  62.         }
  63.  
  64.         $attribute = array(
  65.             'first_title'             => get_theme_mod( 'jnews_single_post_related_override_title', false ) ? get_theme_mod( 'jnews_single_post_related_ftitle', 'Related' ) : jnews_return_translation( 'Related', 'jnews', 'related' ),
  66.             'second_title'            => get_theme_mod( 'jnews_single_post_related_override_title', false ) ? get_theme_mod( 'jnews_single_post_related_stitle', 'Posts' ) : jnews_return_translation( ' Posts', 'jnews', 'posts' ),
  67.             'header_type'             => $attr['header_type'],
  68.             'date_format'             => $attr['date'],
  69.             'date_format_custom'      => $attr['date_custom'],
  70.             'excerpt_length'          => $attr['excerpt'],
  71.             'pagination_number_post'  => $attr['number'],
  72.             'number_post'             => $attr['number'],
  73.             'include_category'        => implode( ',', $category ),
  74.             'include_tag'             => implode( ',', $tag ),
  75.             'exclude_post'            => get_the_ID(),
  76.             'sort_by'                 => $attr['sort_by'],
  77.             'pagination_mode'         => $attr['pagination'],
  78.             'pagination_scroll_limit' => $attr['auto_load'],
  79.             'paged'                   => 1,
  80.             'column_width'            => $attr['column_width'],
  81.         );
  82.  
  83.         $name = 'JNews_Block_' . str_replace( 'template_', '', $attr['template'] );
  84.         $name = jnews_get_view_class_from_shortcode( $name );
  85.  
  86.         /** @var $content_instance BlockViewAbstract */
  87.         $content_instance = jnews_get_module_instance( $name );
  88.         $result           = $content_instance->build_module( $attribute );
  89.  
  90.         return "<div {$this->element_id($attr)} class='jnews_related_post_container jeg_custom_related_wrapper {$attr['scheme']} {$attr['el_class']} {$this->get_vc_class_name()}'>" .
  91.                 $result .
  92.             '</div>';
  93.     }
  94. }
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement