• File: testimonial.php
  • Full Path: /home/chassiw/www/wp-content/themes/buildbench/components/editor/elementor/widgets/testimonial.php
  • File size: 8.95 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace Elementor;

if ( ! defined( 'ABSPATH' ) ) exit;


class Buildbench_Testimonial_Widget extends Widget_Base {


    public $base;

    public function get_name() {
        return 'buildbench-testimonial';
    }

    public function get_title() {
        return esc_html__( 'Buildbench testimonial ', 'buildbench' );
    }

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

    public function get_categories() {
        return [ 'buildbench-elements' ];
    }

    protected function _register_controls() { 

      $this->start_controls_section('section_tab',
         [
             'label' => esc_html__('Buildbench settings', 'buildbench'),
         ]
      );
     
      $this->add_control('testimonial_single',[
         'label' => esc_html__( 'Single testimonial', 'buildbench' ),
         'type' => \Elementor\Controls_Manager::SWITCHER,
         'label_on' => esc_html__( 'Enable', 'buildbench' ),
         'label_off' => esc_html__( 'Disble', 'buildbench' ),
         'return_value' => 'yes',
         'default' => '',
        ]
     );

     $this->add_control(
      'single_testimonial_content',
      [
         'label' => esc_html__( 'Content', 'buildbench' ),
         'type' => Controls_Manager::TEXTAREA,
         'condition' => ['testimonial_single' => 'yes'],
         'dynamic' => [
            'active' => true,
         ],
         'rows' => '10',
         'default' => esc_html__('Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.','buildbench'),
       ]
     );

      $this->add_control(
         'single_testimonial_job',
         [
            'label' => esc_html__( 'Title', 'buildbench' ),
            'type' => Controls_Manager::TEXTAREA,
            'default'   => esc_html__( 'Someone famous in {Source Title}', 'buildbench' ),
            'description'=> esc_html__('Use bracket for cite style','buildbench'),
            'condition' => ['testimonial_single' => 'yes']
         ]
      );




      $repeater = new \Elementor\Repeater();

      $repeater->add_control(
			'testimonial_client_image', [
				'label' => esc_html__( 'Client image', 'buildbench' ),
				'type' => \Elementor\Controls_Manager::MEDIA,
            'default' => [
					'url' => \Elementor\Utils::get_placeholder_image_src(),
				],
				'label_block' => true,
			]
      );
      
		$repeater->add_control(
			'testimonial_client_name', [
				'label' => esc_html__( 'Client name', 'buildbench' ),
				'type' => \Elementor\Controls_Manager::TEXT,
				'default' => esc_html__( 'List Title' , 'buildbench' ),
				'label_block' => true,
			]
      );
      
      $repeater->add_control(
			'testimonial_client_designation', [
				'label' => esc_html__( 'Client designation', 'buildbench' ),
				'type' => \Elementor\Controls_Manager::TEXT,
				'default' => esc_html__( 'List Title' , 'buildbench' ),
				'label_block' => true,
			]
      );
 

		$repeater->add_control(
			'testimonial_content', [
				'label' => esc_html__( 'Content', 'buildbench' ),
				'type' => \Elementor\Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'testimonial Content' , 'buildbench' ),
				'show_label' => false,
			]
		);

	

		$this->add_control(
			'testimonials',
			[
				'label' => esc_html__( 'Testimonial List', 'buildbench' ),
				'type' => \Elementor\Controls_Manager::REPEATER,
            'fields' => $repeater->get_controls(),
            'condition' => ['testimonial_single' => ''],
				'default' => [
					[
						'testimonial_client_name' =>  'Jonas Blue',
						'testimonial_client_designation' => 'Ceo Media',
					],
				
				],
				'title_field' => '{{{ testimonial_client_name }}}',
			]
      );
      
      $this->add_responsive_control(
			'testimonial_content_align', [
				'label'			 => esc_html__( 'Alignment', 'buildbench' ),
				'type'			 => Controls_Manager::CHOOSE,
				'options'		 => [

               'left'		 => [
                  
                  'title'	 => esc_html__( 'Left', 'buildbench' ),
						'icon'	 => 'fa fa-align-left',
               
               ],
					'center'	     => [
                  
                  'title'	 => esc_html__( 'Center', 'buildbench' ),
						'icon'	 => 'fa fa-align-center',
               
               ],
					'right'		 => [

						'title'	 => esc_html__( 'Right', 'buildbench' ),
                  'icon'	 => 'fa fa-align-right',
                  
					],
					'justify'	 => [

						'title'	 => esc_html__( 'Justified', 'buildbench' ),
                  'icon'	 => 'fa fa-align-justify',
                  
					],
				],
            'default'		 => 'left',
            'selectors' => [
                  '{{WRAPPER}} .ts-testimonial-standard .testimonial-author-content' => 'text-align: {{VALUE}};',
            
				],
			]
        );//Responsive control end

     $this->end_controls_section(); 

     $this->start_controls_section(
      'section_content_style', [
         'label'	 => esc_html__( 'Content', 'buildbench' ),
         'tab'	 => Controls_Manager::TAB_STYLE,
      ]
     );

     $this->add_control(
      'content_color', [
         'label'		 => esc_html__( 'Content color', 'buildbench' ),
         'type'		 => Controls_Manager::COLOR,
         'selectors'	 => [
            '{{WRAPPER}} .testimonial-author-content .testimonial-text' => 'color: {{VALUE}};',
            '{{WRAPPER}} blockquote > p' => 'color: {{VALUE}};',
         
         ],
      ]
     );

     $this->add_control(
      'client_name_color', [
         'label'		 => esc_html__( 'Client / title color', 'buildbench' ),
         'type'		 => Controls_Manager::COLOR,
         'selectors'	 => [
            '{{WRAPPER}} .testimonial-author-content .testimonial-footer .author-name' => 'color: {{VALUE}};',
            '{{WRAPPER}} blockquote > small' => 'color: {{VALUE}};',
         ],
      ]
     );

     $this->add_control(
      'designation_color', [
         'label'		 => esc_html__( 'Designation color', 'buildbench' ),
         'type'		 => Controls_Manager::COLOR,
         'selectors'	 => [
            '{{WRAPPER}} .testimonial-author-content .testimonial-footer .author-designation ' => 'color: {{VALUE}};',
         
         ],
      ]
     );

     $this->add_control(
      'nav_arrow_color', [
         'label'		 => esc_html__( 'Nav color', 'buildbench' ),
         'type'		 => Controls_Manager::COLOR,
         'selectors'	 => [
            '{{WRAPPER}} .testimonial-carousel .owl-nav i' => 'color: {{VALUE}};',
         
         ],
      ]
     );

     $this->add_group_control(Group_Control_Typography::get_type(),
         [
			'name'		 => 'testimonial_typography',
			'selector'	 => '{{WRAPPER}} .testimonial-author-content .testimonial-text',
			]
		);
   

   }
   protected function render(){
     $settings = $this->get_settings();
     $testimonials = $settings['testimonials']; 
     $testimonial_single = $settings['testimonial_single']; 
     $single_testimonial_title = $settings['single_testimonial_job']; 
     $single_testimonial_content = $settings['single_testimonial_content']; 
     $single_testimonial_content  = str_replace(['{', '}'], ['<cite>', '</cite>'], $single_testimonial_content); 
     $single_t_title  = str_replace(['{', '}'], ['<cite>', '</cite>'], $single_testimonial_title); 

    ?>
   <?php if($testimonial_single=='yes'): ?>

     <blockquote>
         <p>
            <?php echo esc_html($single_testimonial_content); ?>
         </p>
         <small>
         <?php echo wp_kses_post($single_t_title); ?>
         </small>
      </blockquote>

   <?php else: ?>
    <section class="ts-testimonial-standard">
      <div class="testimonial-carousel owl-carousel">
         <?php foreach($testimonials as $testimonial): ?> 
               <div class="testimonial-author-content">
                  <span class="testimonial-text">
                     <i class="fa fa-quote-left" aria-hidden="true"></i>
                     <?php echo esc_html($testimonial["testimonial_content"]); ?>
                  </span>
                  <div class="testimonial-footer clearfix">
                        <?php if(isset( $testimonial["testimonial_client_image"] )): ?>
                        
                        <div class="pull-left mr-15">
                           <img src="<?php echo esc_url($testimonial['testimonial_client_image']['url']); ?>"  alt="<?php echo esc_html__('Testimoinal','buildbench'); ?>" class="img-fluid testimonial-img">
                        </div>     
                     
                        <?php endif; ?>
                           <h3 class="author-name"> 
                              <?php echo esc_html($testimonial['testimonial_client_name']); ?> 
                           </h3>
                           <span class="author-designation"> 
                              <?php echo esc_html($testimonial['testimonial_client_designation']); ?> 
                           </span>
                  </div>
            </div>
         <?php endforeach; ?>        
      </div>
   </section>
   
   <?php endif; ?>
   <?php  
   }
}