HEX
Server: Apache/2.4.65 (Debian)
System: Linux 744648315b55 6.8.0-84-generic #84-Ubuntu SMP PREEMPT_DYNAMIC Fri Sep 5 22:36:38 UTC 2025 x86_64
User: (1000)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/themes/newsmunch/inc/widgets/latest-post-grid.php
<?php
if (!class_exists('newsmunch_Latest_Post_Grid_Widget')) :
    /**
     * Adds newsmunch_Latest_Post_Grid_Widget widget.
     */
    class newsmunch_Latest_Post_Grid_Widget extends Newsmunch_Widget_Base
    {
        /**
         * Sets up a new widget instance.
         *
         * @since 1.0.0
         */
        function __construct()
        {
            $this->text_fields = array('title', 'count-posts', 'count_posts_limit', 'load_more_btn_lbl');
            $this->select_fields = array('select-cat');

            $widget_ops = array(
                'classname' => 'newsmunch_Latest_Post_grid_Widget',
                'description' => __('Displays posts from selected category.', 'newsmunch'),
                'customize_selective_refresh' => true,
            );

            parent::__construct('newsmunch_Latest_Post_grid_Widget', __('DT: Latest Post Grid', 'newsmunch'), $widget_ops);
        }

        /**
         * Front-end display of widget.
         *
         * @see WP_Widget::widget()
         *
         * @param array $args Widget arguments.
         * @param array $instance Saved values from database.
         */

        public function widget($args, $instance)
        {

            $instance = parent::newsmunch_sanitize_data($instance, $instance);


            /** This filter is documented in wp-includes/default-widgets.php */

            $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);
            $category = isset($instance['select-cat']) ? $instance['select-cat'] : '0';
            $newsmunch_count_posts = isset($instance['count-posts']) ? $instance['count-posts'] : '6';
			$count_posts_limit = isset($instance['count_posts_limit']) ? $instance['count_posts_limit'] : '3';
			$load_more_btn_lbl = isset($instance['load_more_btn_lbl']) ? $instance['load_more_btn_lbl'] : 'Load More';
			$enable_bg_pd = isset($instance['enable_bg_pd']) ? $instance['enable_bg_pd'] :true;
            // open the widget container
            echo $args['before_widget'];
            ?>
			 <div class="widget dt_widget_post_single_grid" <?php if($enable_bg_pd==true):?> style="background: #fff;padding: 20px;box-shadow: 0 1px 3px rgba(0,0,0,0.12);";<?php endif;?>>
					<div class="widget-header">
						<?php if (!empty($title)): ?>
							<h4 class="widget-title"><?php echo esc_html($title); ?></h4>
						<?php endif; ?>
					</div>
					<div class="widget-content dt-posts-module loadon">
						<div class="dt-row dt-g-4 dt-posts" data-col="<?php echo esc_attr($count_posts_limit); ?>" data-loadname="<?php echo esc_attr($load_more_btn_lbl); ?>">
							<?php 
							$all_posts = newsmunch_get_posts($newsmunch_count_posts, $category);
							$newsmunch_hs_latest_post_title		= get_theme_mod('newsmunch_hs_latest_post_title','1');
							$newsmunch_hs_latest_post_cat_meta	= get_theme_mod('newsmunch_hs_latest_post_cat_meta','1');
							$newsmunch_hs_latest_post_date_meta	= get_theme_mod('newsmunch_hs_latest_post_date_meta','1');
							$newsmunch_hs_latest_post_view_meta	= get_theme_mod('newsmunch_hs_latest_post_view_meta','1');
							$newsmunch_hs_latest_post_auth_meta	= get_theme_mod('newsmunch_hs_latest_post_auth_meta','1');
							$newsmunch_hs_latest_post_content_meta= get_theme_mod('newsmunch_hs_latest_post_content_meta','1');
							$newsmunch_hs_latest_post_social_share= get_theme_mod('newsmunch_hs_latest_post_social_share');
							$newsmunch_hs_latest_post_reading_meta= get_theme_mod('newsmunch_hs_latest_post_reading_meta');
							$newsmunch_latest_post_rm_type= get_theme_mod('newsmunch_latest_post_rm_type','style-1');
							$newsmunch_latest_post_rm_lbl= get_theme_mod('newsmunch_latest_post_rm_lbl','Continue reading');
							$newsmunch_hs_latest_post_format_icon	= get_theme_mod('newsmunch_hs_latest_post_format_icon','1');
							 if ($all_posts->have_posts()) :
							while ($all_posts->have_posts()) : $all_posts->the_post();
								global $post;
								$format = get_post_format() ? : 'standard';	
						 ?>	
							<div class="dt-col-md-4 dt-col-sm-6">
								<div class="post">
									<?php if ( has_post_thumbnail() ) : ?>
										<div class="thumb">
											<?php if($newsmunch_hs_latest_post_cat_meta=='1'): newsmunch_getpost_categories('','position-absolute');  endif; ?>
											<?php if ( $format !== 'standard' && $newsmunch_hs_latest_post_format_icon=='1'): ?>
												<span class="post-format-sm">
													<?php do_action('newsmunch_post_format_icon_type'); ?>
												</span>
											<?php endif; ?>
											<a href="<?php echo esc_url(get_permalink()); ?>">
												<?php if ( has_post_thumbnail() ) : ?>
													<div class="inner"> <img src="<?php echo esc_url(get_the_post_thumbnail_url()); ?>" alt="<?php echo esc_attr(the_title()); ?>"></div>
												<?php else: ?>
													<div class="inner"></div>
												<?php endif; ?>
											</a>
										</div>
									<?php endif; ?>
									<div class="details bg-white shadow dt-p-3 clearfix">
										<?php if($newsmunch_hs_latest_post_title=='1'): newsmunch_common_post_title('h6','post-title dt-mb-0 dt-mt-0'); endif; ?> 
										<ul class="meta list-inline dt-mt-2 dt-mb-0">
											<?php if($newsmunch_hs_latest_post_auth_meta=='1'): ?>
												<?php do_action('newsmunch_common_post_author'); ?>
											<?php endif; ?>	
											<?php if($newsmunch_hs_latest_post_date_meta=='1'): ?>
												<?php do_action('newsmunch_common_post_date'); ?>
											<?php endif; ?>	 
											<?php newsmunch_edit_post_link(); ?>
										</ul>
										<?php  if($newsmunch_hs_latest_post_content_meta=='1'):	?> 
											<p class="excerpt dt-mb-0"><?php do_action('newsmunch_post_format_content'); ?></p>
										<?php endif; ?>
										<div class="post-bottom clearfix dt-mt-2">
											<a href="<?php echo esc_url(get_permalink()); ?>" class="more-link"><?php echo wp_kses_post($newsmunch_latest_post_rm_lbl); ?> <i class="fas fa-arrow-right"></i></a>
										</div>
									</div>
								</div>
							</div>   
							<?php endwhile; endif; wp_reset_postdata(); ?>
						</div>
					</div>
				</div>
            <?php
            // close the widget container
            echo $args['after_widget'];
        }

        /**
         * Back-end widget form.
         *
         * @see WP_Widget::form()
         *
         * @param array $instance Previously saved values from database.
         */
        public function form($instance)
        {
            $this->form_instance = $instance;
           

            $categories = newsmunch_get_cat_terms();
            $newsmunch_count_posts = isset($instance['count-posts']) ? $instance['count-posts'] : '6';
			$count_posts_limit = isset($instance['count_posts_limit']) ? $instance['count_posts_limit'] : '3';
			$load_more_btn_lbl = isset($instance['load_more_btn_lbl']) ? $instance['load_more_btn_lbl'] : 'Load More';
			$enable_bg_pd = isset($instance['enable_bg_pd']) ? $instance['enable_bg_pd'] :true;
         
          

            
                // generate the text input for the title of the widget. Note that the first parameter matches text_fields array entry
                echo parent::newsmunch_generate_text_input('title', 'Title', 'Latest Posts');
				
				if (isset($categories) && !empty($categories)) {
					echo parent::newsmunch_generate_select_options('select-cat', __('Select Blog Category', 'newsmunch'), $categories);
				}
                echo parent::newsmunch_generate_text_input('count-posts', __('Number of Post to Show', 'newsmunch'), $newsmunch_count_posts);
				echo parent::newsmunch_generate_text_input('count_posts_limit', __('Number of Post to Show Before Load More Button', 'newsmunch'), $count_posts_limit);
				echo parent::newsmunch_generate_text_input('load_more_btn_lbl', __('Load More Button Label', 'newsmunch'), $load_more_btn_lbl);
               ?>
			   <p>
					<label for="<?php echo $this->get_field_id( 'enable_bg_pd' ); ?>"><?php _e( 'Enable Background & Padding','newsmunch' ); ?></label> 
					<input type="checkbox" class="widefat" id="<?php echo $this->get_field_id( 'enable_bg_pd' ); ?>" name="<?php echo $this->get_field_name( 'enable_bg_pd' ); ?>" <?php if($enable_bg_pd==true) echo 'checked'; ?> >
			   </p>
			   <?php 
          
            //print_pre($terms);


        }
		
		public function update( $new_instance, $old_instance ) {
		
		$instance = array();
		$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? $new_instance['title'] : '';
		$instance['select-cat'] = ( ! empty( $new_instance['select-cat'] ) ) ? $new_instance['select-cat'] : '';
		$instance['count-posts'] = ( ! empty( $new_instance['count-posts'] ) ) ? $new_instance['count-posts'] : '';
		$instance['count_posts_limit'] = ( ! empty( $new_instance['count_posts_limit'] ) ) ? $new_instance['count_posts_limit'] : '';
		$instance['load_more_btn_lbl'] = ( ! empty( $new_instance['load_more_btn_lbl'] ) ) ? $new_instance['load_more_btn_lbl'] : '';
		$instance['enable_bg_pd'] = ( ! empty( $new_instance['enable_bg_pd'] ) ) ? $new_instance['enable_bg_pd'] : '';
		
		return $instance;
	}

    }
endif;