%PDF- %PDF-
Direktori : /proc/19851/cwd/wp-content/themes/evenex/components/editor/elementor/widgets/speaker/ |
Current File : //proc/19851/cwd/wp-content/themes/evenex/components/editor/elementor/widgets/speaker/speaker.php |
<?php namespace Elementor; if ( ! defined( 'ABSPATH' ) ) exit; class Evenex_Speaker_Widget extends Widget_Base { public function get_name() { return 'evenex-speaker'; } public function get_title() { return esc_html__( 'Evenex Speaker', 'evenex' ); } public function get_icon() { return 'eicon-person'; } public function get_categories() { return [ 'evenex-elements' ]; } protected function _register_controls() { $this->start_controls_section( 'spaker_control_tab', [ 'label' => esc_html__( 'Query', 'evenex' ), ] ); $this->add_control( 'speaker__style_settings', [ 'label' => esc_html__( 'Speaker Style', 'evenex' ), 'type' => Controls_Manager::SELECT, 'default' => 'style_box', 'label_block' => true, 'options' => [ 'style_box' => esc_html__( 'Style Box', 'evenex' ), 'style_round' => esc_html__( 'Style Round', 'evenex' ), 'style_round_2' => esc_html__( 'Style Round 2', 'evenex' ), 'style_round_with_social' => esc_html__( 'Style Round With Social', 'evenex' ), 'style_overlay' => esc_html__( 'Style Overlay', 'evenex' ), 'style_creative' => esc_html__( 'Style Creative', 'evenex' ), 'style_simple_gird' => esc_html__( 'Simple Grid' , 'evenex') ], ] ); $this->add_control( 'speaker__style_column_per_row_responsive_options_title', [ 'label' => esc_html__( 'Column Per Row', 'evenex' ), 'type' => \Elementor\Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->start_controls_tabs('speaker__style_column_per_row_responsive_options'); $this->start_controls_tab( 'speaker__style_column_per_row_desktop', [ 'label' => esc_html__( 'Desktop', 'evenex' ), ] ); $this->add_control( 'speaker__style_column_per_row_des', [ 'label' => esc_html__( 'Desktop', 'evenex' ), 'type' => \Elementor\Controls_Manager::SELECT, 'options' => [ '12' => esc_html__( '1', 'evenex' ), '6' => esc_html__( '2', 'evenex' ), '4' => esc_html__( '3', 'evenex' ), '3' => esc_html__( '4', 'evenex' ), ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'speaker__style_column_per_row_tab_tab', [ 'label' => esc_html__( 'Tab', 'evenex' ), ] ); $this->add_control( 'speaker__style_column_per_row_tab', [ 'label' => esc_html__( 'Tab', 'evenex' ), 'type' => \Elementor\Controls_Manager::SELECT, 'options' => [ '12' => esc_html__( '1', 'evenex' ), '6' => esc_html__( '2', 'evenex' ), '4' => esc_html__( '3', 'evenex' ), '3' => esc_html__( '4', 'evenex' ), ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'speaker__style_column_per_row_mobile_mobile', [ 'label' => esc_html__( 'Mobile', 'evenex' ), ] ); $this->add_control( 'speaker__style_column_per_row_mobile', [ 'label' => esc_html__( 'Mobile', 'evenex' ), 'type' => \Elementor\Controls_Manager::SELECT, 'options' => [ '12' => esc_html__( '1', 'evenex' ), '6' => esc_html__( '2', 'evenex' ), '4' => esc_html__( '3', 'evenex' ), '3' => esc_html__( '4', 'evenex' ), ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'speaker__style_column_per_row_end', [ 'type' => \Elementor\Controls_Manager::DIVIDER, ] ); $this->add_control( 'speaker___social__num', [ 'label' => esc_html__( 'Social Limit', 'evenex' ), 'type' => Controls_Manager::NUMBER, 'min' => 1, 'max' => 6, 'default' => 3, ] ); $this->add_control( 'speaker__posts_num', [ 'label' => esc_html__( 'Posts Count', 'evenex' ), 'type' => Controls_Manager::NUMBER, 'min' => 1, 'max' => 100, 'default' => 6, ] ); $this->add_control('speaker__cat', [ 'label' => esc_html__( 'Category', 'evenex' ), 'type' => Controls_Manager::SELECT2, 'multiple' => true, 'default' => '', 'options' => $this->getCategories(), 'label_block' => 'true' ] ); $this->add_control( 'speaker__offset', [ 'label' => esc_html__( 'Offset', 'evenex' ), 'type' => Controls_Manager::NUMBER, 'min' => 0, 'max' => 20, 'default' => 0, ] ); $this->add_control( 'speaker__posts_order_by', [ 'label' => esc_html__( 'Order by', 'evenex' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'date' => esc_html__( 'Date', 'evenex' ), 'title' => esc_html__( 'Title', 'evenex' ), ], 'default' => 'date', ] ); $this->add_control( 'speaker__posts_sort', [ 'label' => esc_html__( 'Order', 'evenex' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'ASC' => esc_html__( 'ASC', 'evenex' ), 'DESC' => esc_html__( 'DESC', 'evenex' ), ], 'default' => 'DESC', ] ); $this->end_controls_section(); $this->start_controls_section( 'evenex_speaker', [ 'label' => esc_html__( 'evenex Speaker Style', 'evenex' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'speaker_title_typo', 'selector' => '{{WRAPPER}} .speaker-title, {{WRAPPER}} .speaker-simple-grid-style .speaker-hover-content .speaker-title-simple a', ] ); $this->add_control( 'speaker_designation_color', [ 'label' => esc_html__( 'Description color', 'evenex' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speaker-footer-content>p' => 'color: {{VALUE}};', '{{WRAPPER}} .speaker-hover-content p' => 'color: {{VALUE}};', ], 'separator' => 'before' ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'speaker_designation_typo', 'selector' => '{{WRAPPER}} .speaker-footer-content>p, {{WRAPPER}} .speaker-hover-content p', ] ); $this->start_controls_tabs( 'speaker_style_tab' ); $this->start_controls_tab( 'speaker_style_tab_normal', [ 'label' => esc_html__( 'Normal', 'evenex' ), ] ); $this->add_control( 'speaker_title_color', [ 'label' => esc_html__( 'Speaker title color', 'evenex' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speaker-title' => 'color: {{VALUE}};', '{{WRAPPER}} .speaker-simple-grid-style .speaker-hover-content .speaker-title-simple a' => 'color: {{VALUE}};', ] ] ); $this->add_control( 'speaker_social_bg_color', [ 'label' => esc_html__( 'Social BG color', 'evenex' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speakers-social-lists>li>a' => 'background-color: {{VALUE}};', ], 'separator' => 'before', 'condition' => ["speaker__style_settings" => ['style_overlay']] ] ); $this->add_control( 'speaker_social__color', [ 'label' => esc_html__( 'Social color', 'evenex' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speakers-social-lists>li>a' => 'color: {{VALUE}};', ], 'separator' => 'before', 'condition' => ["speaker__style_settings" => ['style_overlay']] ] ); $this->end_controls_tab(); $this->start_controls_tab( 'speaker_style_tab_hover', [ 'label' =>esc_html__( 'Hover', 'evenex' ), ] ); $this->add_control( 'speaker_title_hover_color', [ 'label' => esc_html__( 'Speaker title color', 'evenex' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speaker-title:hover>a' => 'color: {{VALUE}};', '{{WRAPPER}} .speaker-simple-grid-style .speaker-hover-content .speaker-title-simple a:hover' => 'color: {{VALUE}};', ] ] ); $this->add_control( 'speaker_social_bg_color_hover', [ 'label' => esc_html__( 'Social BG color', 'evenex' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speakers-social-lists>li>a:hover' => 'background-color: {{VALUE}};', ], 'separator' => 'before', 'condition' => ["speaker__style_settings" => ['style_overlay']] ] ); $this->add_control( 'speaker_social__color_hover', [ 'label' => esc_html__( 'Social color', 'evenex' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speakers-social-lists>li>a:hover' => 'color: {{VALUE}};', ], 'separator' => 'before', 'condition' => ["speaker__style_settings" => ['style_overlay']] ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'speaker__grid_hover_overly_section', [ 'label' => esc_html__( 'Hover Bg Color', 'evenex' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, 'condition' => ["speaker__style_settings" => ['style_simple_gird']] ] ); $this->add_group_control( \Elementor\Group_Control_Background::get_type(), [ 'name' => 'speaker__grid_hover_overly__background', 'label' => esc_html__( 'Background', 'evenex' ), 'types' => ['gradient' ], 'selector' => '{{WRAPPER}} .speaker-simple-grid-style:hover::before', ] ); $this->end_controls_section(); $this->start_controls_section( 'speaker__grid_social_section', [ 'label' => esc_html__( 'Social', 'evenex' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, 'condition' => ["speaker__style_settings" => ['style_simple_gird']] ] ); $this->start_controls_tabs( 'speaker__grid_social_style_tab' ); $this->start_controls_tab( 'speaker__grid_social_style_tab_normal', [ 'label' => esc_html__( 'Normal', 'evenex' ), ] ); $this->add_control( 'speaker__grid_social_color', [ 'label' => esc_html__( ' Color', 'evenex' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speakers-social-lists-simple li a' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'speaker__grid_social_border_color', [ 'label' => esc_html__( 'Border Color', 'evenex' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speakers-social-lists-simple li a' => 'border-color: {{VALUE}}', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'speaker__grid_social_style_tab_hover', [ 'label' => esc_html__( 'Hover', 'evenex' ), ] ); $this->add_control( 'speaker__grid_social_color_hover', [ 'label' => esc_html__( ' Color', 'evenex' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speakers-social-lists-simple li:hover> a' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'speaker__grid_social_border_color_hover', [ 'label' => esc_html__( 'Border Color', 'evenex' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .speakers-social-lists-simple li:hover> a' => 'border-color: {{VALUE}}', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'speaker__grid_social_icon_size', [ 'label' => esc_html__( 'Icon Size', 'evenex' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 5, 'max' => 50, 'step' => 1, ], ], 'selectors' => [ '{{WRAPPER}} .speakers-social-lists-simple li a' => 'font-size: {{SIZE}}{{UNIT}};', ], ] ); $this->end_controls_section(); } protected function render( ) { $settings = $this->get_settings_for_display(); extract($settings); $query = array( 'post_type' => 'xs-speaker', 'post_status' => 'publish', 'posts_per_page' => $speaker__posts_num, 'offset' => $speaker__offset, 'orderby' => $speaker__posts_order_by, 'order' => $speaker__posts_sort, ); if(!empty($speaker__cat)){ $query['tax_query'] = array( array( 'taxonomy' => 'speaker-category', 'terms' => $speaker__cat, 'field' => 'id', ) ); } $speaker = new \WP_Query($query); if ($speaker->have_posts()) { ?> <div class="row <?php echo esc_attr( $speaker__style_settings === 'style_simple_gird' ? 'no-gutters style_simple_gird' : '' )?>"> <?php while($speaker->have_posts()){ $speaker->the_post(); include EVENEX_SHORTCODE_DIR_WIDGETS.'/speaker/style/'.$speaker__style_settings.'.php'; } ?> </div> <?php } } protected function _content_template() { } public function getCategories(){ $terms = get_terms( array( 'taxonomy' => 'speaker-category', 'hide_empty' => false, 'posts_per_page' => -1, )); $cat_list = []; if(is_array($terms) && '' != $terms) { foreach($terms as $post) { $cat_list[$post->term_id] = [$post->name]; } }; return $cat_list; } }