<?php /** * Case Area Widget */ namespace Elementor; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) { exit; } class Case_Area extends Widget_Base { public function get_name() { return 'CaseArea'; } public function get_title() { return esc_html__( 'Case Area', 'cyarb-toolkit' ); } public function get_icon() { return 'eicon-toggle'; } public function get_categories() { return [ 'cyarb-elements' ]; } protected function register_controls() { $this->start_controls_section( 'Case_Area', [ 'label' => esc_html__( 'Cyarb Section', 'cyarb-toolkit' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'case_style', [ 'label' => __( 'Case Style', 'cyarb-toolkit' ), 'type' => Controls_Manager::SELECT, 'options' => [ '1' => __( 'Style One', 'cyarb-toolkit' ), '2' => __( 'Style Two', 'cyarb-toolkit' ), '3' => __( 'Style Three', 'cyarb-toolkit' ), ], 'default' => '1', ] ); $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( 'count', [ 'label' => __( 'Post Per Page', 'cyarb-toolkit' ), 'default' => __( '4', 'cyarb-toolkit' ), 'type' => Controls_Manager::TEXT, 'description' => __('if you want to see all post type -1','cyarb-toolkit') ] ); $this->add_control( 'cat_name', [ 'label' => __( 'Select Category', 'cyarb-toolkit' ), 'type' => Controls_Manager::SELECT, 'options' => cyarb_toolkit_get_case_cat_list(), ] ); $this->add_control( 'order', [ 'label' => __( 'Select Order', 'cyarb-toolkit' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'DESC' => __( 'DESC', 'cyarb-toolkit' ), 'ASC' => __( 'ASC', 'cyarb-toolkit' ), ], 'default' => 'DESC', ] ); $this->add_control( 'button_text', [ 'label'=> __('Button Text', 'cyarb-toolkit'), 'type'=>Controls_Manager:: TEXT, 'default' => __( 'View Case Studie Details', 'cyarb-toolkit' ), ] ); //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', 'condition' => [ 'case_style' => '1', ] ] ); $this->add_control( 'pagination_area', [ 'label' => __( 'Hide Pagination?', 'cyarb-toolkit' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => __( 'Show', 'cyarb-toolkit' ), 'label_off' => __( 'Hide', 'cyarb-toolkit' ), 'return_value' => 'yes', 'default' => 'yes', 'condition' => [ 'case_style' => '2', ] ] ); $this->end_controls_section(); $this->start_controls_section( 'section_style', [ 'label' => esc_html__( 'Style', '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}} .section-title p' => 'color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'desc_typography', 'label' => __( 'Description Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .section-title p', ] ); $this->add_control( 'card_title_color', [ 'label' => esc_html__( 'Card Title Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .single-resources-box .content h3 a, .single-explore-card .explore-content h3 a, .single-resources-item .content h3 a, .resources-box .content h3 a' => 'color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'card_title_typography', 'label' => __( 'Card Title Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .single-resources-box .content h3, .single-explore-card .explore-content h3 a, .single-resources-item .content h3 a, .resources-box .content h3 a', ] ); $this->add_control( 'cat_title_color', [ 'label' => esc_html__( 'Category Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .single-resources-box .content .category a, .single-explore-card .explore-content span a, .single-resources-item .content .category a, .resources-box .content .category a' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'cat_bg_color', [ 'label' => esc_html__( 'Category Background Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .single-resources-item .content .category a, .single-explore-card .explore-content span a, .single-resources-item .content .category a, .single-resources-box .content .category a, .resources-box .content .category a' => 'background: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'cat_title_typography', 'label' => __( 'Category Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .single-resources-box .content .category a, .single-explore-card .explore-content span a, .single-resources-item .content .category a, .resources-box .content .category a', ] ); $this->add_control( 'ex_color', [ 'label' => esc_html__( 'Excerpt Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .single-resources-box .content p, .single-explore-card .explore-content p, .single-resources-item .content p, .resources-box .content p' => 'color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'ex_typography', 'label' => __( 'Excerpt Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .single-resources-box .content p, .single-explore-card .explore-content p, .single-resources-item .content p, .resources-box .content p', ] ); $this->add_control( 'read_color', [ 'label' => esc_html__( 'Read More Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .single-resources-item .content .link-btn, .single-explore-card .explore-content .explore-btn, .single-resources-box .content .link-btn, .resources-box .content .link-btn' => 'color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'readm_typography', 'label' => __( 'Read More Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .single-resources-item .content .link-btn, .single-explore-card .explore-content .explore-btn, .single-resources-box .content .link-btn, .resources-box .content .link-btn', ] ); $this->end_controls_section(); } protected function render() { $settings = $this->get_settings_for_display(); global $cyarb_opt; $count_cat = !empty($cyarb_opt['count_tag']) ? $cyarb_opt['count_tag'] : 1; if( $settings['cat_name'] != '' ) { $args = array( 'post_type' => 'case', 'posts_per_page' => $settings['count'], 'order' => $settings['order'], 'paged' => get_query_var('paged') ? get_query_var('paged') : 1, 'tax_query' => array( array( 'taxonomy' => 'case_cat', 'field' => 'slug', 'terms' => $settings['cat_name'], 'hide_empty' => false ) ) ); } else { $args = array( 'post_type' => 'case', 'posts_per_page' => $settings['count'], 'order' => $settings['order'], 'paged' => get_query_var('paged') ? get_query_var('paged') : 1, ); } $cases_array = new \WP_Query( $args ); ?> <?php if( $settings['case_style'] == '1' ): ?> <div class="resources-area bg-color ptb-100"> <?php if( $settings['title'] != '' || $settings['desc'] != '' ) : ?> <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> <?php endif; ?> <div class="container-fluid"> <div class="resources-slides owl-carousel owl-theme"> <?php while($cases_array->have_posts()): $cases_array->the_post(); $id = get_the_ID();?> <div class="single-resources-item"> <div class="image"> <a href="<?php the_permalink(); ?>" class="d-block"> <img src="<?php echo esc_url(get_the_post_thumbnail_url($id, 'cyarb_case_thumb')); ?>" alt="<?php echo esc_attr__('case-image','cyarb-toolkit'); ?>"> </a> </div> <div class="content"> <?php $case_tags = get_terms('case_tag'); if( !empty( $case_tags ) && ! is_wp_error( $case_tags )) { $i = 1; foreach( $case_tags as $tag){ ?> <div class="category"> <?php echo get_the_term_list( get_the_ID(), 'case_tag' ); ?> </div> <?php if( $i == $count_cat ){ break; $i++;} } } ?> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <?php the_excerpt(); ?> <a href="<?php the_permalink(); ?>" class="link-btn"><?php echo esc_html( $settings['button_text'] ); ?> <i class="lni lni-chevron-right"></i></a> </div> </div> <?php endwhile; wp_reset_query(); ?> </div> </div> <?php if ( 'yes' === $settings['image_shape'] ) : ?> <div class="shape4"><img src="<?php echo esc_url(get_template_directory_uri() .'/assets/img/shape/shape4.png' ); ?>" alt="<?php echo esc_attr__( 'Shape', 'cyarb-toolkit' ); ?>"></div> <div class="shape1"><img src="<?php echo esc_url(get_template_directory_uri() .'/assets/img/shape/shape4.png' ); ?>" alt="<?php echo esc_attr__( 'Shape', 'cyarb-toolkit' ); ?>"></div> <?php endif; ?> </div> <?php elseif( $settings['case_style'] == '2' ): ?> <div class="resources-area ptb-100"> <div class="container"> <?php if( $settings['title'] != '' || $settings['desc'] != '' ) : ?> <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> <?php endif; ?> <div class="row"> <?php while($cases_array->have_posts()): $cases_array->the_post(); $id = get_the_ID(); ?> <div class="col-lg-6 col-md-6"> <div class="single-resources-box"> <div class="image"> <a href="<?php the_permalink(); ?>" class="d-block"> <img src="<?php echo esc_url(get_the_post_thumbnail_url($id, 'cyarb_case_thumb')); ?>" alt="<?php echo esc_attr__('case-image','cyarb-toolkit'); ?>"> </a> </div> <div class="content"> <?php $case_tags = get_terms('case_tag'); if( !empty( $case_tags ) && ! is_wp_error( $case_tags )) { $i = 1; foreach( $case_tags as $tag){ ?> <div class="category"> <?php echo get_the_term_list( get_the_ID(), 'case_tag' ); ?> </div> <?php if( $i == $count_cat ){ break; $i++; } } } ?> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <?php the_excerpt(); ?> <a href="<?php the_permalink(); ?>" class="link-btn"><?php echo esc_html( $settings['button_text'] ); ?> <i class="lni lni-chevron-right"></i></a> </div> </div> </div> <?php endwhile; wp_reset_query(); ?> <?php if ( 'yes' === $settings['pagination_area'] ) : ?> <div class="col-lg-12 col-md-12"> <div class="pagination-area"> <nav aria-label="navigation"> <?php $big = 999999999; // need an unlikely integer echo paginate_links( array( 'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $cases_array->max_num_pages, //'format' => '?paged=%#%', 'prev_text' => '<i class="lni lni-angle-double-left"></i>', 'next_text' => '<i class="lni lni-angle-double-right"></i>', ) ); ?> </nav> </div> </div> <?php endif; ?> </div> </div> </div> <?php else: ?> <div class="resources-area pt-100 pb-75"> <div class="container"> <?php if( $settings['title'] != '' || $settings['desc'] != '' ) : ?> <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> <?php endif; ?> <div class="row justify-content-center"> <?php while($cases_array->have_posts()): $cases_array->the_post(); $id = get_the_ID(); ?> <div class="col-xl-4 col-lg-6 col-md-6"> <div class="resources-box"> <div class="image"> <a href="<?php the_permalink(); ?>" class="d-block"> <img src="<?php echo esc_url(get_the_post_thumbnail_url($id, 'cyarb_case_thumb')); ?>" alt="<?php echo esc_attr__('case-image','cyarb-toolkit'); ?>"> </a> </div> <div class="content"> <?php $case_tags = get_terms('case_tag'); if( !empty( $case_tags ) && ! is_wp_error( $case_tags )) { $i = 1; foreach( $case_tags as $tag){ ?> <div class="category"> <?php echo get_the_term_list( get_the_ID(), 'case_tag' ); ?> </div> <?php if( $i == $count_cat ){ break; $i++; } } } ?> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <p><?php echo esc_html(wp_trim_words( get_the_excerpt(), 16, '.' )); ?></p> <a href="<?php the_permalink(); ?>" class="link-btn"><?php echo esc_html( $settings['button_text'] ); ?> <i class="lni lni-chevron-right"></i></a> </div> </div> </div> <?php endwhile; wp_reset_query(); ?> </div> </div> </div> <?php endif; ?> <?php } } Plugin::instance()->widgets_manager->register_widget_type( new Case_Area );