Viewing File: /home/maglabs/exclusive/wp-content/plugins/g5-ere/inc/widgets/property.class.php
<?php
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
if (!class_exists('G5ERE_Widget_Property')) {
class G5ERE_Widget_Property extends GSF_Widget {
public function __construct() {
$this->widget_cssclass = 'g5ere__widget-property';
$this->widget_id = 'g5ere_widget_property';
$this->widget_name = esc_html__('G5Plus: Property', 'g5-ere');
$this->widget_description = esc_html__( 'Display list property', 'g5-ere' );
$this->settings = array(
'fields' => array(
array(
'id' => 'title',
'title' => esc_html__('Title', 'g5-ere'),
'type' => 'text',
'default' => esc_html__( 'Recent Property', 'g5-ere' ),
),
array(
'id' => 'source',
'type' => 'select',
'title' => esc_html__('Source', 'g5-ere'),
'default' => 'recent',
'options' => array(
'random' => esc_html__('Random', 'g5-ere'),
'featured' => esc_html__('Featured', 'g5-ere'),
'recent' => esc_html__('Recent', 'g5-ere'),
'oldest' => esc_html__('Oldest', 'g5-ere'),
)
),
array(
'id' => 'posts_per_page',
'type' => 'text',
'input_type' => 'number',
'title' => esc_html__('Number of property to show:', 'g5-ere'),
'default' => '4',
),
'item_skin' => array(
'id' => 'item_skin',
'title' => esc_html__( 'Item Skin', 'g5-ere' ),
'subtitle' => esc_html__( 'Specify your property item skin', 'g5-ere' ),
'type' => 'image_set',
'options' => G5ERE()->settings()->get_widget_property_skins(),
'default' => 'skin-01',
),
array(
'id' => 'post_image_size',
'title' => esc_html__('Image size', 'g5-ere'),
'subtitle' => esc_html__('Enter your image size', 'g5-ere'),
'desc' => esc_html__('Enter image size (Example: "thumbnail", "medium", "large", "full" or other sizes defined by theme). Alternatively enter size in pixels (Example: 200x100 (Width x Height)).', 'g5-ere'),
'type' => 'text',
'default' => 'thumbnail',
),
G5CORE()->fields()->get_config_toggle(array(
'id' => 'carousel_enable',
'title' => esc_html__('Carousel Mode', 'g5-ere'),
'subtitle' => esc_html__('Turn On this option if you want to enable carousel mode', 'g5-ere'),
'default' => '',
)),
)
);
parent::__construct();
}
public function widget( $args, $instance ) {
if ($this->get_cached_widget($instance)) {
return;
}
extract($args, EXTR_SKIP);
$source = (!empty($instance['source'])) ? $instance['source'] : 'recent';
$posts_per_page = (!empty($instance['posts_per_page'])) ? absint($instance['posts_per_page']) : 4;
$item_skin = (!empty($instance['item_skin'])) ? $instance['item_skin'] : 'skin-01';
$post_image_size = (!empty($instance['post_image_size'])) ? $instance['post_image_size'] : 'thumbnail';
$carousel_enable = (!empty($instance['carousel_enable'])) ? $instance['carousel_enable'] : '';
$query_args = array(
'posts_per_page' => $posts_per_page,
'no_found_rows' => true,
'post_status' => 'publish',
'ignore_sticky_posts' => true,
'post_type' => 'property',
'tax_query' => array(
'relation' => 'AND',
),
'meta_query' => array()
);
switch ($source) {
case 'random' :
$query_args['orderby'] = 'rand';
$query_args['order'] = 'DESC';
break;
case 'featured':
$query_args['meta_query'][] = array(
'key' => ERE_METABOX_PREFIX . 'property_featured',
'value' => 1,
'compare' => '=',
);
break;
case 'recent':
$query_args['orderby'] = 'date';
$query_args['order'] = 'DESC';
break;
case 'oldest':
$query_args['orderby'] = 'date';
$query_args['order'] = 'ASC';
break;
}
$the_query = new WP_Query($query_args);
$slick_options = array(
'slidesToShow' => 1,
'slidesToScroll' => 1,
'arrows' => false,
'dots' => true,
'draggable' => true,
);
$wrapper_classes = array(
'g5ere__widget-property-list'
);
$wrapper_attributes = array();
if ($carousel_enable === 'on') {
$wrapper_classes[] = 'slick-slider';
$wrapper_classes[] = 'g5core__gutter-0';
$wrapper_attributes[] = "data-slick-options='" . esc_attr(json_encode($slick_options)) . "'";
}
$wrapper_class = implode(' ', $wrapper_classes);
ob_start();
$this->widget_start($args,$instance);
?>
<div class="<?php echo esc_attr($wrapper_class)?>" <?php echo join(' ', $wrapper_attributes)?>>
<?php
while ($the_query->have_posts()) {
$the_query->the_post();
G5ERE()->get_template("widgets/property/{$item_skin}.php",array(
'image_size' => $post_image_size
));
}
?>
</div>
<?php
wp_reset_postdata();
$this->widget_end($args);
echo $this->cache_widget( $instance, ob_get_clean() ); // WPCS: XSS ok.
}
}
}
Back to Directory
File Manager