文件操作 - widget.php
返回文件管理
返回主菜单
删除本文件
文件: /root/Desktop/OLD/plugin-wordpress/happy-elementor-addons/widgets/testimonial/widget.php
编辑文件内容
<?php /** * Testimonial widget class * * @package Happy_Addons */ namespace Happy_Addons\Elementor\Widget; use Elementor\Controls_Manager; use Elementor\Group_Control_Image_Size; use Elementor\Group_Control_Border; use Elementor\Group_Control_Box_Shadow; use Elementor\Group_Control_Typography; use Elementor\Control_Media; use Elementor\Scheme_Typography; use Elementor\Utils; defined( 'ABSPATH' ) || die(); class Testimonial extends Base { /** * Get widget title. * * @since 1.0.0 * @access public * * @return string Widget title. */ public function get_title() { return __( 'Testimonial', 'happy-elementor-addons' ); } public function get_custom_help_url() { return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/testimonial/'; } /** * Get widget icon. * * @since 1.0.0 * @access public * * @return string Widget icon. */ public function get_icon() { return 'hm hm-testimonial'; } public function get_keywords() { return [ 'testimonial', 'review', 'feedback' ]; } protected function register_content_controls() { $this->start_controls_section( '_section_testimonial', [ 'label' => __( 'Testimonial', 'happy-elementor-addons' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'testimonial', [ 'label' => __( 'Testimonial', 'happy-elementor-addons' ), 'label_block' => true, 'type' => Controls_Manager::TEXTAREA, 'default' => __( 'Testimonial contents', 'happy-elementor-addons' ), 'placeholder' => __( 'Type testimonial', 'happy-elementor-addons' ), 'dynamic' => [ 'active' => true, ] ] ); $this->add_control( 'align', [ 'label' => __( 'Alignment', 'happy-elementor-addons' ), 'type' => Controls_Manager::CHOOSE, 'label_block' => false, 'options' => [ 'left' => [ 'title' => __( 'Left', 'happy-elementor-addons' ), 'icon' => 'fa fa-align-left', ], 'center' => [ 'title' => __( 'Center', 'happy-elementor-addons' ), 'icon' => 'fa fa-align-center', ], 'right' => [ 'title' => __( 'Right', 'happy-elementor-addons' ), 'icon' => 'fa fa-align-right', ], ], 'toggle' => false, 'default' => 'left', 'prefix_class' => 'ha-testimonial--' ] ); $this->add_control( '_design', [ 'label' => __( 'Design', 'happy-elementor-addons' ), 'type' => Controls_Manager::SELECT, 'label_block' => false, 'options' => [ 'basic' => __( 'Default', 'happy-elementor-addons' ), 'bubble' => __( 'Bubble', 'happy-elementor-addons' ), ], 'default' => 'basic', 'prefix_class' => 'ha-testimonial--', 'style_transfer' => true, ] ); $this->end_controls_section(); $this->start_controls_section( '_section_reviewer', [ 'label' => __( 'Reviewer', 'happy-elementor-addons' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'image', [ 'label' => __( 'Image', 'happy-elementor-addons' ), 'type' => Controls_Manager::MEDIA, 'default' => [ 'url' => Utils::get_placeholder_image_src(), ], 'dynamic' => [ 'active' => true, ] ] ); $this->add_group_control( Group_Control_Image_Size::get_type(), [ 'name' => 'thumbnail', 'default' => 'full', 'exclude' => ['custom'], 'separator' => 'none', ] ); $this->add_control( 'name', [ 'label' => __( 'Name', 'happy-elementor-addons' ), 'label_block' => true, 'type' => Controls_Manager::TEXT, 'default' => __( 'Happy', 'happy-elementor-addons' ), 'placeholder' => __( 'Type Reviewer Name', 'happy-elementor-addons' ), 'dynamic' => [ 'active' => true, ] ] ); $this->add_control( 'title', [ 'label' => __( 'Title', 'happy-elementor-addons' ), 'label_block' => true, 'type' => Controls_Manager::TEXT, 'default' => __( 'CMO, HappyAddons', 'happy-elementor-addons' ), 'placeholder' => __( 'Type reviewer title', 'happy-elementor-addons' ), 'dynamic' => [ 'active' => true, ] ] ); $this->end_controls_section(); } protected function register_style_controls() { $this->start_controls_section( '_section_style_testimonial', [ 'label' => __( 'Testimonial', 'happy-elementor-addons' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'testimonial_padding', [ 'label' => __( 'Padding', 'happy-elementor-addons' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .ha-testimonial__content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'testimonial_spacing', [ 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ha-testimonial__content' => 'margin-bottom: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'testimonial_color', [ 'label' => __( 'Text Color', 'happy-elementor-addons' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ha-testimonial__content' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'testimonial_bg_color', [ 'label' => __( 'Background Color', 'happy-elementor-addons' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ha-testimonial__content' => 'background-color: {{VALUE}};', '{{WRAPPER}} .ha-testimonial__content:after' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'testimonial_typography', 'label' => __( 'Typography', 'happy-elementor-addons' ), 'selector' => '{{WRAPPER}} .ha-testimonial__content', 'scheme' => Scheme_Typography::TYPOGRAPHY_3, ] ); $this->add_responsive_control( 'testimonial_border_radius', [ 'label' => __( 'Border Radius', 'happy-elementor-addons' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .ha-testimonial__content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'testimonial_box_shadow', 'selector' => '{{WRAPPER}} .ha-testimonial__content', ] ); $this->end_controls_section(); $this->start_controls_section( '_section_style_image', [ 'label' => __( 'Image', 'happy-elementor-addons' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'image_width', [ 'label' => __( 'Width', 'happy-elementor-addons' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 65, 'max' => 200, ], ], 'selectors' => [ '{{WRAPPER}} .ha-testimonial__reviewer-thumb' => '-webkit-flex: 0 0 {{SIZE}}{{UNIT}}; -ms-flex: 0 0 {{SIZE}}{{UNIT}}; flex: 0 0 {{SIZE}}{{UNIT}}; max-width: {{SIZE}}{{UNIT}};', '{{WRAPPER}}.ha-testimonial--left .ha-testimonial__reviewer-meta' => '-webkit-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); -ms-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); max-width: calc(100% - {{SIZE}}{{UNIT}});', '{{WRAPPER}}.ha-testimonial--right .ha-testimonial__reviewer-meta' => '-webkit-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); -ms-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); max-width: calc(100% - {{SIZE}}{{UNIT}});', '{{WRAPPER}}.ha-testimonial--left .ha-testimonial__content:after' => 'left: calc(({{SIZE}}{{UNIT}} / 2) - 18px);', '{{WRAPPER}}.ha-testimonial--right .ha-testimonial__content:after' => 'right: calc(({{SIZE}}{{UNIT}} / 2) - 18px);', ], ] ); $this->add_responsive_control( 'image_height', [ 'label' => __( 'Height', 'happy-elementor-addons' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 20, 'max' => 200, ], ], 'selectors' => [ '{{WRAPPER}} .ha-testimonial__reviewer-thumb' => 'height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'image_spacing', [ 'label' => __( 'Spacing', 'happy-elementor-addons' ), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}}.ha-testimonial--left .ha-testimonial__reviewer-meta' => 'padding-left: {{SIZE}}{{UNIT}};', '{{WRAPPER}}.ha-testimonial--right .ha-testimonial__reviewer-meta' => 'padding-right: {{SIZE}}{{UNIT}};', '{{WRAPPER}}.ha-testimonial--center .ha-testimonial__reviewer-meta' => 'padding-top: {{SIZE}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'image_border', 'selector' => '{{WRAPPER}} .ha-testimonial__reviewer-thumb img', ] ); $this->add_responsive_control( 'image_border_radius', [ 'label' => __( 'Border Radius', 'happy-elementor-addons' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .ha-testimonial__reviewer-thumb img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'image_box_shadow', 'selector' => '.ha-testimonial__reviewer-thumb img', ] ); $this->end_controls_section(); $this->start_controls_section( '_section_style_reviewer', [ 'label' => __( 'Reviewer', 'happy-elementor-addons' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( '_heading_name', [ 'label' => __( 'Name', 'happy-elementor-addons' ), 'type' => Controls_Manager::HEADING, ] ); $this->add_control( 'name_color', [ 'label' => __( 'Text Color', 'happy-elementor-addons' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ha-testimonial__reviewer-name' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'name_typography', 'label' => __( 'Typography', 'happy-elementor-addons' ), 'selector' => '{{WRAPPER}} .ha-testimonial__reviewer-name', 'scheme' => Scheme_Typography::TYPOGRAPHY_2, ] ); $this->add_responsive_control( 'name_spacing', [ 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .ha-testimonial__reviewer-name' => 'margin-bottom: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( '_heading_title', [ 'label' => __( 'Title', 'happy-elementor-addons' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'title_color', [ 'label' => __( 'Text Color', 'happy-elementor-addons' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ha-testimonial__reviewer-title' => 'color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'title_typography', 'label' => __( 'Typography', 'happy-elementor-addons' ), 'selector' => '{{WRAPPER}} .ha-testimonial__reviewer-title', 'scheme' => Scheme_Typography::TYPOGRAPHY_3, ] ); $this->end_controls_section(); } protected function render() { $settings = $this->get_settings_for_display(); $this->add_inline_editing_attributes( 'testimonial', 'intermediate' ); $this->add_render_attribute( 'testimonial', 'class', 'ha-testimonial__content' ); $this->add_inline_editing_attributes( 'name', 'basic' ); $this->add_render_attribute( 'name', 'class', 'ha-testimonial__reviewer-name' ); $this->add_inline_editing_attributes( 'title', 'basic' ); $this->add_render_attribute( 'title', 'class', 'ha-testimonial__reviewer-title' ); ?> <div <?php $this->print_render_attribute_string( 'testimonial' ); ?>> <?php echo ha_kses_intermediate( $settings['testimonial'] ); ?> </div> <div class="ha-testimonial__reviewer"> <?php if ( ! empty( $settings['image']['url'] ) ) : ?> <div class="ha-testimonial__reviewer-thumb"> <?php echo Group_Control_Image_Size::get_attachment_image_html( $settings, 'thumbnail', 'image' ); ?> </div> <?php endif; ?> <div class="ha-testimonial__reviewer-meta"> <div <?php $this->print_render_attribute_string( 'name' ); ?>><?php echo ha_kses_basic( $settings['name'] ); ?></div> <div <?php $this->print_render_attribute_string( 'title' ); ?>><?php echo ha_kses_basic( $settings['title'] ); ?></div> </div> </div> <?php } }
修改文件时间
将文件时间修改为当前时间的前一年
删除文件