芝麻web文件管理V1.00
编辑当前文件:/home/seolotod/critterchoice.com/wp-content/themes/rehub-theme/rehub-elementor/wpsm-reviewbox.php
get_sections(); foreach( $sections as $control => $label ) { $fields_method = $control . '_fields'; if ( ! method_exists( $this, $fields_method ) ) { continue; } $this->start_controls_section( $fields_method, [ 'label' => $label, 'tab' => \Elementor\Controls_Manager::TAB_CONTENT, ]); call_user_func([ $this, $fields_method ]); $this->end_controls_section(); } } protected function get_sections() { return [ 'general' => esc_html__('General', 'rehub-theme'), 'pros' => esc_html__('Positives', 'rehub-theme'), 'cons' => esc_html__('Negatives', 'rehub-theme'), ]; } protected function general_fields() { $this->add_control( 'title', [ 'label' => esc_html__('Title', 'rehub-theme'), 'type' => Controls_Manager::TEXT, 'default' => 'Awesome', ] ); $this->add_control( 'description', [ 'label' => esc_html__('Description', 'rehub-theme'), 'type' => Controls_Manager::TEXTAREA, 'default' => 'Place here Description for your reviewbox', ] ); $this->add_control( 'score', [ 'label' => esc_html__( 'Score Value', 'rehub-theme' ), 'description' => esc_html__( 'By default, score is average between score criterias, but you can add own', 'rehub-theme' ), 'type' => Controls_Manager::NUMBER, 'default' => 10, 'min' => 1, 'max' => 10, 'step' => 0.5, ] ); $this->add_control( 'criteriacolor', [ 'label' => esc_html__( 'Set background color or leave blank', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .rate-bar-bar' => 'background-color: {{VALUE}}', '{{WRAPPER}} .review-top .overall-score' => 'background-color: {{VALUE}}', ], ]); $repeater = new \Elementor\Repeater(); $repeater->add_control( 'criteriatitle', [ 'label' => esc_html__( 'Title', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::TEXT, 'options' => \Elementor\Control_Icon::get_icons(), 'default' => 'Criteria name', ]); $repeater->add_control( 'criterianum', [ 'label' => esc_html__( 'Value', 'rehub-theme' ), 'type' => Controls_Manager::NUMBER, 'default' => 10, 'min' => 1, 'max' => 10, 'step' => 0.5, ] ); $this->add_control( 'criteriablock', [ 'label' => esc_html__( 'Criterias', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'title_field' => '{{{ criteriatitle }}}', ]); } protected function query_fields() { $this->add_control( 'id', [ 'type' => 'select2ajax', 'label' => esc_html__( 'Post names', 'rehub-theme' ), 'description' => esc_html__( 'Choose post to import Review or add review below', 'rehub-theme' ), 'options' => [], 'label_block' => true, 'multiple' => false, 'callback' => 'get_name_posts_list', ]); $this->add_control( 'compact', [ 'type' => \Elementor\Controls_Manager::SWITCHER, 'label' => esc_html__( 'Compact view', 'rehub-theme' ), 'label_on' => esc_html__('Yes', 'rehub-theme'), 'label_off' => esc_html__('No', 'rehub-theme'), 'return_value' => '1', 'conditions' => [ 'terms' => [ [ 'name' => 'id', 'operator' => '!=', 'value' => '', ], ], ], ]); } protected function pros_fields(){ $this->add_control( 'prostitle', [ 'label' => esc_html__('Pros Title', 'rehub-theme'), 'type' => Controls_Manager::TEXT, 'default' => 'Positive', ] ); $repeater = new \Elementor\Repeater(); $repeater->add_control( 'prosititle', [ 'label' => esc_html__( 'Title', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::TEXT, 'default' => 'Positive', ]); $this->add_control( 'prosblock', [ 'label' => esc_html__( 'Positives', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'title_field' => '{{{ prosititle }}}', ]); } protected function cons_fields(){ $this->add_control( 'constitle', [ 'label' => esc_html__('Cons Title', 'rehub-theme'), 'type' => Controls_Manager::TEXT, 'default' => 'Negatives', ] ); $repeater = new \Elementor\Repeater(); $repeater->add_control( 'consititle', [ 'label' => esc_html__( 'Title', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::TEXT, 'default' => 'Negative', ]); $this->add_control( 'consblock', [ 'label' => esc_html__( 'Negatives', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'title_field' => '{{{ consititle }}}', ]); } /* Widget output Rendering */ protected function render() { $settings = $this->get_settings_for_display(); $criterias = $prosblock = $consblock = ''; if ( $settings['criteriablock'] ){ foreach ($settings['criteriablock'] as $key => $item) { $criterias .= $item["criteriatitle"].':'.(float)$item["criterianum"].';'; } } if($criterias){ $settings['criterias'] = $criterias; } if ( $settings['prosblock'] ){ foreach ($settings['prosblock'] as $key => $item) { $prosblock .= $item["prosititle"].';'; } } if($prosblock){ $settings['pros'] = $prosblock; } if ( $settings['consblock'] ){ foreach ($settings['consblock'] as $key => $item) { $consblock .= $item["consititle"].';'; } } if($consblock){ $settings['cons'] = $consblock; } if(!empty($settings['id'])){ $settings['regular'] = 1; } echo wpsm_reviewbox( $settings ); } } Plugin::instance()->widgets_manager->register( new Widget_Reviewbox );