File "blog-posts.php"

Full Path: /home/flipjqml/onlinebetsolution.com/wp-content/plugins/cyarb-toolkit/widgets/blog-posts.php
File size: 11.36 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * Posts Widget
 */

namespace Elementor;

// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class Cyarb_Posts extends Widget_Base {

	public function get_name() {
        return 'Cyarb_Posts';
    }

	public function get_title() {
        return __( 'Posts', 'cyarb-toolkit' );
    }

	public function get_icon() {
        return 'eicon-post-slider';
    }

	public function get_categories() {
        return [ 'cyarb-elements' ];
	}
	protected function register_controls() {

        $this->start_controls_section(
			'Cyarb_Posts',
			[
				'label' => __( 'Cyarb Posts', 'cyarb-toolkit' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
        );        

            $this->add_control(
                'title',
                [
                    'label' => esc_html__( 'Title', 'cyarb-toolkit' ),
                    'type' => Controls_Manager::TEXT,
                ]
            );

            $this->add_control(
                'title_tag',
                [
                    'label' => esc_html__( 'Title Tag', 'cyarb-toolkit' ),
                    'type' => Controls_Manager::SELECT,
                    'options' => [
                        'h1'         => esc_html__( 'h1', 'cyarb-toolkit' ),
                        'h2'         => esc_html__( 'h2', 'cyarb-toolkit' ),
                        'h3'         => esc_html__( 'h3', 'cyarb-toolkit' ),
                        'h4'         => esc_html__( 'h4', 'cyarb-toolkit' ),
                        'h5'         => esc_html__( 'h5', 'cyarb-toolkit' ),
                        'h6'         => esc_html__( 'h6', 'cyarb-toolkit' ),
                    ],
                    'default' => 'h2',
                ]
            );

            $this->add_control(
                'desc',
                [
                    'label'=>__('Add Description', 'cyarb-toolkit'),
                    'type'=>Controls_Manager:: WYSIWYG,
                    'description' => __('This text editor for p','cyarb-toolkit'),
                ]
            );

            $this->add_control(
                'cat_name', [
                    'label' => esc_html__( 'Category', 'cyarb-toolkit' ),
                    'description' => esc_html__( 'Enter the category slugs separated by commas (Eg. cat1, cat2)', 'cyarb-toolkit' ),
                    'type' => Controls_Manager::TEXT,
                    'label_block' => true,
                ]
            );

            $this->add_control(
                'order',
                [
                    'label' => __( 'Posts Order By', 'cyarb-toolkit' ),
                    'type' => Controls_Manager::SELECT,
                    'options' => [
                        'DESC'      => __( 'DESC', 'cyarb-toolkit' ),
                        'ASC'       => __( 'ASC', 'cyarb-toolkit' ),
                    ],
                    'default' => 'DESC',
                ]
            );

            $this->add_control(
                'count',
                [
                    'label' => __( 'Item', 'cyarb-toolkit' ),
                    'type' => Controls_Manager::NUMBER,
                    'default' => 3,
                ]
            );

            //Shape Images
            $this->add_control(
                'image_shape',
                [
                    'label' => esc_html__( 'Hide Shapes?', 'cyarb-toolkit' ),
                    'type' => Controls_Manager::SWITCHER,
                    'label_on' => esc_html__( 'Show', 'cyarb-toolkit' ),
                    'label_off' => esc_html__( 'Hide', 'cyarb-toolkit' ),
                    'return_value' => 'yes',
                    'default' => 'yes',
                ]
            );
        
        $this->end_controls_section();

        $this->start_controls_section(
			'blog_style',
			[
				'label' => __( 'Color Controls', 'cyarb-toolkit' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
        );
        
            $this->add_control(
                'title_color',
                [
                    'label' => esc_html__( 'Title Color', 'cyarb-toolkit' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .section-title h2, .section-title h3, .section-title h4, .section-title h5, .section-title h5, .section-title h6, .section-title h1' => 'color: {{VALUE}}',
                    ],
                ]
            );

            $this->add_group_control(
                Group_Control_Typography::get_type(),
                [
                    'name' => 'title_typography',
                    'label' => __( 'Title Typography', 'cyarb-toolkit' ),
                    'selector' => '{{WRAPPER}} .section-title h2, .section-title h3, .section-title h4, .section-title h5, .section-title h5, .section-title h6, .section-title h1',
                ]
            );

            $this->add_control(
                'desc_color',
                [
                    'label' => esc_html__( 'Description Color', 'cyarb-toolkit' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} p' => 'color: {{VALUE}}',
                    ],
                ]
            );

            $this->add_group_control(
                Group_Control_Typography::get_type(),
                [
                    'name' => 'desc_typography',
                    'label' => __( 'Description Typography', 'cyarb-toolkit' ),
                    'selector' => '{{WRAPPER}} p',
                ]
            );

            $this->add_control(
                'tag_color',
                [
                    'label' => esc_html__( 'Tag Color', 'cyarb-toolkit' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .single-blog-post .content .meta li a, .single-blog-post .content .meta li' => 'color: {{VALUE}}',
                    ],
                ]
            );

            $this->add_group_control(
                Group_Control_Typography::get_type(),
                [
                    'name' => 'tag_typography',
                    'label' => __( 'Tag Typography', 'cyarb-toolkit' ),
                    'selector' => '{{WRAPPER}} .single-blog-post .content .meta li a, .single-blog-post .content .meta li',
                ]
            );
            $this->add_control(
                'post_title_color',
                [
                    'label' => esc_html__( 'Post Title Color', 'cyarb-toolkit' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .single-blog-post .content h3 a' => 'color: {{VALUE}}',
                    ],
                ]
            );
            $this->add_group_control(
                Group_Control_Typography::get_type(),
                [
                    'name' => 'post_title_typography',
                    'label' => __( 'Post Title Typography', 'cyarb-toolkit' ),
                    'selector' => '{{WRAPPER}} .single-blog-post .content h3',
                ]
            );
           
        $this->end_controls_section();

    }

	protected function render() {

        $settings = $this->get_settings_for_display();

        global $cyarb_opt;

        $count_tag          = !empty($cyarb_opt['count_tag']) ? $cyarb_opt['count_tag'] : 1;

         // Post Query
         if( $settings['cat_name'] != '' ) {
            $args = array(
                'post_type'     => 'post',
                'posts_per_page'=> $settings['count'],
                'order'         => $settings['order'],
                'tax_query'     => array(
                    array(
                        'taxonomy'      => 'category',
                        'field'         => 'slug',
                        'terms'         => $settings['cat_name'],
                        'hide_empty'    => false
                    )
                )
            );
        } else {
            $args = array(
                'post_type'         => 'post',
                'posts_per_page'    => $settings['count'],
                'order'             => $settings['order'],
                'meta_key'          => '_thumbnail_id',
            );
        }
        $post_array = new \WP_Query( $args ); 

		?>
            <div class="blog-area pt-100 pb-75">
                <div class="container">
                    <div class="section-title">
                        <<?php echo esc_attr($settings['title_tag']);?>><?php echo esc_html( $settings['title'] ); ?></<?php echo esc_attr($settings['title_tag']);?>>
                        <?php echo wp_kses_post( $settings['desc'] ); ?>
                    </div>
                    <div class="row justify-content-center">
                        <?php while($post_array->have_posts()): $post_array->the_post(); ?>
                            <div class="col-lg-4 col-md-6">
                                <div class="single-blog-post">
                                    <div class="image">
                                        <a href="<?php the_permalink(); ?>" class="d-block">
                                            <img src="<?php echo get_the_post_thumbnail_url( get_the_ID(), 'cyarb_default_thumb' ); ?>" alt="<?php the_post_thumbnail_caption();  ?>">
                                        </a>
                                    </div>
                                    <div class="content">
                                        <a href="<?php the_permalink(); ?>" class="link-btn"><i class="lni lni-chevron-right"></i></a>

                                        <?php if( isset( $cyarb_opt['is_post_meta'] ) && $cyarb_opt['is_post_meta'] == true ) { ?>
                                            <ul class="meta">
                                                <li><i class="lni lni-calendar"></i> <?php echo get_the_date('M d, Y'); ?></li>
                                                <li><i class="lni lni-comments"></i> <?php comments_number(); ?></li>
                                            </ul><?php
                                        } ?>
                                        <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
                                        <p><?php echo esc_html(wp_trim_words( get_the_excerpt(), 20, '...' )); ?></p>
                                        
                                    </div>
                                </div>
                            </div>
                        <?php endwhile; wp_reset_postdata(); ?>
                    </div>
                </div>

                <?php if ( 'yes' === $settings['image_shape'] ) : ?>
                    <div class="shape2"><img src="<?php echo esc_url(get_template_directory_uri() .'/assets/img/shape/shape2.png' ); ?>" alt="<?php echo esc_attr__( 'Shape', 'cyarb-toolkit' ); ?>"></div>
                    <div class="shape6"><img src="<?php echo esc_url(get_template_directory_uri() .'/assets/img/shape/shape6.png' ); ?>" alt="<?php echo esc_attr__( 'Shape', 'cyarb-toolkit' ); ?>"></div>
                <?php endif; ?>
                
            </div>
        <?php
	}

}

Plugin::instance()->widgets_manager->register_widget_type( new Cyarb_Posts );