Your IP : 216.73.216.95


Current Path : /var/test/www/html/wp-content/themes/NativeChurch/imic-framework/widgets/
Upload File :
Current File : /var/test/www/html/wp-content/themes/NativeChurch/imic-framework/widgets/selected_post.php

<?php
/*** Widget code for Selected Post ***/
class selected_post extends WP_Widget {
	// constructor
	public function __construct() {
		 $widget_ops = array('description' => __( 'Display latest and selected post of different post type.','framework') );
         parent::__construct(false, $name = __('Selected Post','framework'), $widget_ops);
	}
	// widget form creation
	public function form($instance) {
		// Check values
		if( $instance) {
			 $title = esc_attr($instance['title']);
			 $type = esc_attr($instance['type']);
			 $number = esc_attr($instance['number']);
			 $category     = isset( $instance['category'] ) ? esc_attr( $instance['category'] ) : '';
		} else {
			 $title = '';
			 $type = '';
			 $number = '';
			  $category  = '';
		}
	?>
        <p>
            <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title', 'framework'); ?></label>
            <input class="spTitle" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" />
        </p>
       <p>
            <label for="<?php echo $this->get_field_id('type'); ?>"><?php _e('Select Post Type', 'framework'); ?></label>
            <select class="spType dynamic_cpt" id="<?php echo $this->get_field_id('type'); ?>" name="<?php echo $this->get_field_name('type'); ?>">
            <option value="post"><?php _e('Post','framework'); ?></option>
                <?php
           $post_types = get_post_types( array('_builtin' => false,'public'=> true), 'names' ); 
               if(($key = array_search('post', $post_types)) !== false){
				unset($post_types[$key]);
				}
             
                if(!empty($post_types)){
                    foreach ( $post_types as $post_type ) {
                        $activePost = ($type == $post_type)? 'selected' : '';
                       echo '<option value="'. $post_type .'" '.$activePost.'>' . $post_type . '</p>';
                    }
                }else{
                    echo '<option value="no">'.__('No Post Type Found.','framework').'</option>';
                }
                ?>
            </select> 
        </p>
        <p>
        <label for="<?php echo $this->get_field_id('category'); ?>"><?php _e('Post Category', 'framework'); ?></label>
        <input type="hidden" id="selected_cat" value="<?php echo $category; ?>">
            <select class="post_cat dynamic_cat" id="<?php echo $this->get_field_id('event'); ?>" name="<?php echo $this->get_field_name('category'); ?>">
                <option value=""><?php _e('Select Post Category','framework'); ?></option>
                <?php
								switch($type)
								{
									case 'product':
									$cat = 'product_cat';
									break;
									case 'causes':
									$cat = 'causes-category';
									break;
									case 'gallery':
									$cat = 'gallery-category';
									break;
									case 'staff':
									$cat = 'staff-category';
									break;
									case 'sermons':
									$cat = 'sermons-category';
									break;
									case 'event':
									$cat = 'event-category';
									break;
									default:
									$cat = 'category';
								}
                 $post_cats = get_terms($cat);
                if(!empty($post_cats)){
                      foreach ($post_cats as $post_cat) {                        
                        $name = $post_cat->name;
                        $id = $post_cat->term_id;
                        $activePost = ($id == $category)? 'selected' : '';
                        echo '<option value="'. $id .'" '.$activePost.'>' . $name . '</option>';
                    }
                }
                ?>
            </select>
        </p> 
        <p>
            <label for="<?php echo $this->get_field_id('number'); ?>"><?php _e('Number of posts to show', 'framework'); ?></label>
            <input id="<?php echo $this->get_field_id('number'); ?>" name="<?php echo $this->get_field_name('number'); ?>" type="text" value="<?php echo $number; ?>" />
        </p> 
	<?php
	}
	// update widget
	public function update($new_instance, $old_instance) {
		  $instance = $old_instance;
		  // Fields
		  $instance['title'] = strip_tags($new_instance['title']);
		  $instance['type'] = strip_tags($new_instance['type']);
		  $instance['number'] = strip_tags($new_instance['number']);
		  $instance['category'] = (int) $new_instance['category'];
		  
		 return $instance;
	}
	// display widget
	public function widget($args, $instance) {
             global $wp_query;
            $temp_wp_query = clone $wp_query;
	   extract( $args );
	   // these are the widget options
	   $post_title = apply_filters('widget_title', $instance['title']);
	   $type = apply_filters('widget_type', $instance['type']);
	   $number = apply_filters('widget_number', $instance['number']);
	   $category = ( ! empty( $instance['category'] ) ) ? $instance['category']  : '';
	   
	   $numberPost = (!empty($number))? $number : 3 ;	
	   	   
	   echo $args['before_widget'];
		
		if( !empty($instance['title']) ){
			echo $args['before_title'];
			echo apply_filters('widget_title',$instance['title'], $instance, $this->id_base);
			echo $args['after_title'];
		}
		switch($type)
		{
			case 'product':
			$cat = 'product_cat';
			break;
			case 'causes':
			$cat = 'causes-category';
			break;
			case 'gallery':
			$cat = 'gallery-category';
			break;
			case 'staff':
			$cat = 'staff-category';
			break;
			case 'sermons':
			$cat = 'sermons-category';
			break;
			case 'event':
			$cat = 'event-category';
			break;
			default:
			$cat = 'category';
		}
		
		$post_args = array('post_type'=>$type, 'posts_per_page'=>$number, 'paged' => get_query_var('paged'));
		if($category!='')
		{
			$post_args['tax_query'] = [
				[
					'taxonomy' => $cat,
					'terms' => $category,
					'field' => 'term_id',
					'operator'=>'IN'
				]
			];
		}
		$posts = new WP_Query($post_args);
		echo '<ul>';
		if($posts->have_posts()):while($posts->have_posts()):$posts->the_post();
			$id = get_the_ID();
			if($type!='event'){
			 	$postDate =  esc_html(get_the_date(get_option('date_format'), $id));
			}else{
				$event_post = get_post_custom($id);
				$postDateRaw = strtotime($event_post['imic_event_start_dt'][0]);
				$postDate = date(get_option('date_format'),$postDateRaw);
			}
			$postImage = get_the_post_thumbnail( $id, 'full', array('class' => "img-thumbnail") );
				echo '<li class="clearfix">';
							if ( !empty($postImage)) :
						  		echo '<a href="'.get_permalink($id).'" class="media-box post-image">';
						  		echo $postImage;
							echo '</a>';
						 	endif;
						echo '<div class="widget-blog-content"><a href="'.get_permalink($id).'">'.get_the_title($id).'</a>
						<span class="meta-data"><i class="fa fa-calendar"></i>'.__(' on ', 'framework') . $postDate .'</span>
						</div>
					</li>';					
					
		endwhile;
		echo '</ul>';
		else:
			echo __('No ','framework').$type.__(' Found','framework');		
		endif;
   
	   echo $args['after_widget'];
	}
}
// register widget
add_action( 'widgets_init', function(){
	register_widget( 'selected_post' );
});
?>