File: /var/www/html/wptrinityconsulting/wp-content/plugins/finbuzz-core/elementor/widgets/post-grid.php
<?php
/**
* @author RadiusTheme
* @since 1.0
* @version 1.0
*/
namespace radiustheme\Finbuzz_Core;
use Elementor\Controls_Manager;
if ( ! defined( 'ABSPATH' ) ) exit;
class Post_Grid extends Custom_Widget_Base {
public function __construct( $data = [], $args = null ){
$this->rt_name = esc_html__( 'RT Post Grid', 'finbuzz-core' );
$this->rt_base = 'rt-post-grid';
$this->rt_translate = array(
'cols' => array(
'12' => esc_html__( '1 Col', 'finbuzz-core' ),
'6' => esc_html__( '2 Col', 'finbuzz-core' ),
'4' => esc_html__( '3 Col', 'finbuzz-core' ),
'3' => esc_html__( '4 Col', 'finbuzz-core' ),
'2' => esc_html__( '6 Col', 'finbuzz-core' ),
),
);
parent::__construct( $data, $args );
}
public function rt_fields(){
$categories = get_categories();
$category_dropdown = array( '0' => esc_html__( 'All Categories', 'finbuzz-core' ) );
foreach ( $categories as $category ) {
$category_dropdown[$category->term_id] = $category->name;
}
$fields = array(
array(
'mode' => 'section_start',
'id' => 'sec_general',
'label' => esc_html__( 'General', 'finbuzz-core' ),
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'layout',
'label' => esc_html__( 'Layout', 'finbuzz-core' ),
'options' => array(
'layout1' => esc_html__( 'Post Grid Style 1', 'finbuzz-core' ),
'layout2' => esc_html__( 'Post Grid Style 2', 'finbuzz-core' ),
'layout3' => esc_html__( 'Post Grid Style 3', 'finbuzz-core' ),
'layout4' => esc_html__( 'Post Grid Style 4', 'finbuzz-core' ),
'layout5' => esc_html__( 'Post Grid Style 5', 'finbuzz-core' ),
'layout6' => esc_html__( 'Post Grid Style 6', 'finbuzz-core' ),
),
'default' => 'layout1',
),
/*Post Order*/
array(
'type' => Controls_Manager::SELECT2,
'id' => 'post_ordering',
'label' => esc_html__( 'Post Ordering', 'finbuzz-core' ),
'options' => array(
'DESC' => esc_html__( 'Desecending', 'finbuzz-core' ),
'ASC' => esc_html__( 'Ascending', 'finbuzz-core' ),
),
'default' => 'DESC',
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'post_orderby',
'label' => esc_html__( 'Post Sorting', 'finbuzz-core' ),
'options' => array(
'recent' => esc_html__( 'Recent Post', 'finbuzz-core' ),
'rand' => esc_html__( 'Random Post', 'finbuzz-core' ),
'menu_order' => esc_html__( 'Custom Order', 'finbuzz-core' ),
'title' => esc_html__( 'By Name', 'finbuzz-core' ),
),
'default' => 'recent',
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'cat',
'label' => esc_html__( 'Categories', 'finbuzz-core' ),
'options' => $category_dropdown,
'default' => '0',
),
array(
'type' => Controls_Manager::NUMBER,
'id' => 'count',
'label' => esc_html__( 'Word count', 'finbuzz-core' ),
'default' => 20,
'description' => esc_html__( 'Maximum number of words', 'finbuzz-core' ),
),
array(
'type' => Controls_Manager::NUMBER,
'id' => 'itemlimit',
'label' => esc_html__( 'Item Limit', 'finbuzz-core' ),
'default' => 4,
'description' => esc_html__( 'Maximum number of words', 'finbuzz-core' ),
),
array(
'type' => Controls_Manager::NUMBER,
'id' => 'title_count',
'label' => esc_html__( 'Title count', 'finbuzz-core' ),
'default' => 15,
'description' => esc_html__( 'Maximum number of words', 'finbuzz-core' ),
),
array (
'type' => Controls_Manager::SWITCHER,
'id' => 'content_display',
'label' => esc_html__( 'Content Display', 'finbuzz-core' ),
'label_on' => esc_html__( 'Show', 'finbuzz-core' ),
'label_off' => esc_html__( 'Hide', 'finbuzz-core' ),
'default' => 'no',
),
array (
'type' => Controls_Manager::SWITCHER,
'id' => 'read_display',
'label' => esc_html__( 'Read More Display', 'finbuzz-core' ),
'label_on' => esc_html__( 'Show', 'finbuzz-core' ),
'label_off' => esc_html__( 'Hide', 'finbuzz-core' ),
'default' => 'no',
),
array(
'type' => Controls_Manager::TEXT,
'id' => 'buttontext',
'label' => esc_html__( 'Button Text', 'finbuzz-core' ),
'default' => esc_html__( 'READ MORE', 'finbuzz-core' ),
'condition'=>array('layout'=>'layout1','layout2','layout3','layout4','layout6')
),
array(
'mode' => 'section_end',
),
// Option
array(
'mode' => 'section_start',
'id' => 'sec_style',
'label' => esc_html__( 'Option', 'finbuzz-core' ),
'tab' => Controls_Manager::TAB_STYLE,
),
array (
'type' => Controls_Manager::SWITCHER,
'id' => 'post_grid_author',
'label' => esc_html__( 'Show Author Name', 'finbuzz-core' ),
'label_on' => esc_html__( 'Show', 'finbuzz-core' ),
'label_off' => esc_html__( 'Hide', 'finbuzz-core' ),
'default' => 'yes',
),
array (
'type' => Controls_Manager::SWITCHER,
'id' => 'post_grid_date',
'label' => esc_html__( 'Show Date', 'finbuzz-core' ),
'label_on' => esc_html__( 'Show', 'finbuzz-core' ),
'label_off' => esc_html__( 'Hide', 'finbuzz-core' ),
'default' => 'yes',
),
array (
'type' => Controls_Manager::SWITCHER,
'id' => 'post_grid_category',
'label' => esc_html__( 'Show Categories', 'finbuzz-core' ),
'label_on' => esc_html__( 'Show', 'finbuzz-core' ),
'label_off' => esc_html__( 'Hide', 'finbuzz-core' ),
'default' => 'yes',
),
array (
'type' => Controls_Manager::SWITCHER,
'id' => 'post_grid_comment',
'label' => esc_html__( 'Show Comment Number', 'finbuzz-core' ),
'label_on' => esc_html__( 'Show', 'finbuzz-core' ),
'label_off' => esc_html__( 'Hide', 'finbuzz-core' ),
'default' => 'no',
),
array (
'type' => Controls_Manager::SWITCHER,
'id' => 'post_grid_view',
'label' => esc_html__( 'Show Views', 'finbuzz-core' ),
'label_on' => esc_html__( 'Show', 'finbuzz-core' ),
'label_off' => esc_html__( 'Hide', 'finbuzz-core' ),
'default' => 'no',
),
array (
'type' => Controls_Manager::SWITCHER,
'id' => 'post_grid_read',
'label' => esc_html__( 'Show Reading Length', 'finbuzz-core' ),
'label_on' => esc_html__( 'Show', 'finbuzz-core' ),
'label_off' => esc_html__( 'Hide', 'finbuzz-core' ),
'default' => 'no',
),
array(
'mode' => 'section_end',
),
// Animation style
array(
'mode' => 'section_start',
'id' => 'sec_animation_style',
'label' => esc_html__( 'Animation', 'finbuzz-core' ),
'tab' => Controls_Manager::TAB_STYLE,
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'animation',
'label' => esc_html__( 'Animation', 'finbuzz-core' ),
'options' => array(
'wow' => esc_html__( 'On', 'finbuzz-core' ),
'hide' => esc_html__( 'Off', 'finbuzz-core' ),
),
'default' => 'wow',
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'animation_effect',
'label' => esc_html__( 'Entrance Animation', 'finbuzz-core' ),
'options' => array(
'none' => esc_html__( 'none', 'finbuzz-core' ),
'bounce' => esc_html__( 'bounce', 'finbuzz-core' ),
'flash' => esc_html__( 'flash', 'finbuzz-core' ),
'pulse' => esc_html__( 'pulse', 'finbuzz-core' ),
'rubberBand' => esc_html__( 'rubberBand', 'finbuzz-core' ),
'shakeX' => esc_html__( 'shakeX', 'finbuzz-core' ),
'shakeY' => esc_html__( 'shakeY', 'finbuzz-core' ),
'headShake' => esc_html__( 'headShake', 'finbuzz-core' ),
'swing' => esc_html__( 'swing', 'finbuzz-core' ),
'fadeIn' => esc_html__( 'fadeIn', 'finbuzz-core' ),
'fadeInDown' => esc_html__( 'fadeInDown', 'finbuzz-core' ),
'fadeInLeft' => esc_html__( 'fadeInLeft', 'finbuzz-core' ),
'fadeInRight' => esc_html__( 'fadeInRight', 'finbuzz-core' ),
'fadeInUp' => esc_html__( 'fadeInUp', 'finbuzz-core' ),
'bounceIn' => esc_html__( 'bounceIn', 'finbuzz-core' ),
'bounceInDown' => esc_html__( 'bounceInDown', 'finbuzz-core' ),
'bounceInLeft' => esc_html__( 'bounceInLeft', 'finbuzz-core' ),
'bounceInRight' => esc_html__( 'bounceInRight', 'finbuzz-core' ),
'bounceInUp' => esc_html__( 'bounceInUp', 'finbuzz-core' ),
'slideInDown' => esc_html__( 'slideInDown', 'finbuzz-core' ),
'slideInLeft' => esc_html__( 'slideInLeft', 'finbuzz-core' ),
'slideInRight' => esc_html__( 'slideInRight', 'finbuzz-core' ),
'slideInUp' => esc_html__( 'slideInUp', 'finbuzz-core' ),
),
'default' => 'fadeInUp',
'condition' => array('animation' => array( 'wow' ) ),
),
array(
'type' => Controls_Manager::TEXT,
'id' => 'delay',
'label' => esc_html__( 'Delay', 'finbuzz-core' ),
'default' => '0.3',
'condition' => array( 'animation' => array( 'wow' ) ),
),
array(
'type' => Controls_Manager::TEXT,
'id' => 'duration',
'label' => esc_html__( 'Duration', 'finbuzz-core' ),
'default' => '0.8',
'condition' => array( 'animation' => array( 'wow' ) ),
),
array(
'mode' => 'section_end',
),
// Responsive Columns
array(
'mode' => 'section_start',
'id' => 'sec_responsive',
'label' => esc_html__( 'Number of Responsive Columns', 'finbuzz-core' ),
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'col_xl',
'label' => esc_html__( 'Desktops: > 1199px', 'finbuzz-core' ),
'options' => $this->rt_translate['cols'],
'default' => '6',
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'col_lg',
'label' => esc_html__( 'Desktops: > 991px', 'finbuzz-core' ),
'options' => $this->rt_translate['cols'],
'default' => '6',
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'col_md',
'label' => esc_html__( 'Tablets: > 767px', 'finbuzz-core' ),
'options' => $this->rt_translate['cols'],
'default' => '6',
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'col_sm',
'label' => esc_html__( 'Phones: > 576px', 'finbuzz-core' ),
'options' => $this->rt_translate['cols'],
'default' => '12',
),
array(
'type' => Controls_Manager::SELECT2,
'id' => 'col',
'label' => esc_html__( 'Phones: < 576px', 'finbuzz-core' ),
'options' => $this->rt_translate['cols'],
'default' => '12',
),
array(
'mode' => 'section_end',
),
);
return $fields;
}
protected function render() {
$data = $this->get_settings();
switch ( $data['layout'] ) {
case 'layout6':
$template = 'post-grid-6';
break;
case 'layout5':
$template = 'post-grid-5';
break;
case 'layout4':
$template = 'post-grid-4';
break;
case 'layout3':
$template = 'post-grid-3';
break;
case 'layout2':
$template = 'post-grid-2';
break;
default:
$template = 'post-grid-1';
break;
}
return $this->rt_template( $template, $data );
}
}