HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ubuntu-8gb-hel1-1 6.8.0-55-generic #57-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 12 23:42:21 UTC 2025 x86_64
User: www-data (33)
PHP: 8.1.32
Disabled: NONE
Upload Files
File: /var/www/agighana.org_backup/elementor_controls.class.php
<?php
use Elementor\Widget_Base;
use Elementor\Controls_Manager;
use Elementor\Repeater;
use \Elementor\Utils;

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


class UniteCreatorElementorControls{

	
	
	/**
	 * get repeater default items
	 */
	private function getRepeaterDefaultItems($objAddon){
    	
		if(GlobalsUnlimitedElements::$isImporting == true)
			return(array());
		
		
		$arrItems = array();
		
		$urlImages = GlobalsUC::$urlPluginImages;
		
		$arrItems[] = array("item_type"=>"image",
							"image"=> array("id"=>0,"url"=>$urlImages."gallery1.jpg") );
		
		$arrItems[] = array("item_type"=>"image",
							"image"=> array("id"=>0,"url"=>$urlImages."gallery2.jpg") );
		
		$arrItems[] = array("item_type"=>"youtube",
							"image"=> array("id"=>0,"url"=>$urlImages."gallery3.jpg"),
							"url_youtube"=>"qrO4YZeyl0I"
		);
		
		$arrItems[] = array("item_type"=>"image",
							"image"=> array("id"=>0,"url"=>$urlImages."gallery5.jpg") );
		
		$arrItems[] = array("item_type"=>"vimeo",
							"image"=> array("id"=>0,"url"=>$urlImages."gallery4.jpg"),
							"vimeo_id"=>"581014653");
		
		$arrItems[] = array("item_type"=>"html5",
							"image"=> array("id"=>0,"url"=>$urlImages."gallery6.jpg"),
							"url_html5"=> "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4");
		
		$arrItems[] = array("item_type"=>"image",
							"image"=> array("id"=>0,"url"=>$urlImages."gallery1.jpg") );
		
    	    	
    	return($arrItems);
	}

	
	/**
	 * add repeater control
	 */
	public function addGalleryImageVideoRepeater($objControls, $textPrefix, $name, $listingParam, $objAddon){
		
		$isEnableVideo = UniteFunctionsUC::getVal($listingParam, "gallery_enable_video");
		
		$arrDefaultItems = $this->getRepeaterDefaultItems($objAddon);
		
		$repeater = new Repeater();
		
	        $objControls->start_controls_section(
	                'uc_section_listing_gallery_repeater', array(
	                'label' => $textPrefix.__(" Items", "unlimited-elements-for-elementor"),
	        		'condition'=>array($name."_source"=>"image_video_repeater")
	              )
	        );

	        // ----  item type ---------  
	        
	        if($isEnableVideo == true):
	        
				$repeater->add_control(
					'item_type',
						array(
							'label' => __( 'Item Type', 'unlimited-elements-for-elementor' ),
							'type' => Controls_Manager::SELECT,
							'default' => 'image',
							'options' => array(
								'image'  => __( 'Image', 'unlimited-elements-for-elementor' ),
								'youtube' => __( 'Youtube', 'unlimited-elements-for-elementor' ),
								'vimeo' => __( 'Vimeo', 'unlimited-elements-for-elementor' ),
								'wistia' => __( 'Wistia', 'unlimited-elements-for-elementor' ),
								'html5' => __( 'HTML5 Video', 'unlimited-elements-for-elementor' ),
								'iframe' => __( 'Iframe', 'unlimited-elements-for-elementor' )
							)
						)
				);	    
				

			//--------- youtube url --------
			
			$repeater->add_control(
				'url_youtube',
				array(
					'label' => __( 'Youtube Url or ID', 'unlimited-elements-for-elementor' ),
					'type' => Controls_Manager::TEXT,
					'default' => __( 'qrO4YZeyl0I', 'unlimited-elements-for-elementor' ),
					'description'=>'For example: https://www.youtube.com/watch?v=qrO4YZeyl0I or qrO4YZeyl0I',
					'separator'=>'before',
					'label_block'=>true,
					'condition'=>array('item_type'=>'youtube')
				)
			);

			//--------- vimeo id --------
			
			$repeater->add_control(
				'vimeo_id',
				array(
					'label' => __( 'Vimeo Video ID or Url', 'unlimited-elements-for-elementor' ),
					'type' => Controls_Manager::TEXT,
					'default' => __( '581014653', 'unlimited-elements-for-elementor' ),
					'description'=>__('For example: 581014653, or https://vimeo.com/581014653','unlimited-elements-for-elementor'),
					'separator'=>'before',
					'label_block'=>true,
					'condition'=>array('item_type'=>'vimeo')
				)
			);
			
			//--------- wistia --------
			
			$repeater->add_control(
				'wistia_id',
				array(
					'label' => __( 'Wistia Video ID', 'unlimited-elements-for-elementor' ),
					'type' => Controls_Manager::TEXT,
					'default' => __( '9oedgxuciv', 'unlimited-elements-for-elementor' ),
					'description'=>__('For example: 9oedgxuciv','unlimited-elements-for-elementor'),
					'separator'=>'before',
					'label_block'=>true,
					'condition'=>array('item_type'=>'wistia')
				)
			);
			
			//--------- html5 video --------
			
			$repeater->add_control(
				'url_html5',
				array(
					'label' => __( 'MP4 Video Url', 'unlimited-elements-for-elementor' ),
					'type' => Controls_Manager::TEXT,
					'default' => __( 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4', 'unlimited-elements-for-elementor' ),
					'description'=>__('Enter url of the mp4 video in current or external site. Example: http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4','unlimited-elements-for-elementor'),
					'separator'=>'before',
					'label_block'=>true,
					'condition'=>array('item_type'=>'html5')
				)
			);
			
			
			//--------- iframe video --------
			
			$repeater->add_control(
				'url_iframe',
				array(
					'label' => __( 'Iframe URL', 'unlimited-elements-for-elementor' ),
					'type' => Controls_Manager::TEXT,
					'default' => __( 'https://google.com', 'unlimited-elements-for-elementor' ),
					'description'=>__('Enter any url, that the iframe will load','unlimited-elements-for-elementor'),
					'separator'=>'before',
					'label_block'=>true,
					'condition'=>array('item_type'=>'iframe')
				)
			);
			
			
	        endif;	//enable video
			
			
			//--------- image --------
			
			$repeater->add_control(
				'image',
				array(
					'label' => __( 'Choose Image', 'unlimited-elements-for-elementor' ),
					'type' => Controls_Manager::MEDIA,
					'separator'=>'before',
					'default' => array(
						'url' => Utils::get_placeholder_image_src(),
					),
					'dynamic'=>array('active'=>true),
					'recursive'=>true
				)
			);			
			
			//--------- image heading --------
			if($isEnableVideo == true)
				$repeater->add_control(
					'image_heading_text',
					array(
						'label' => __( 'This image will be used for gallery thumbnail and video placeholder', 'unlimited-elements-for-elementor' ),
						'type' => Controls_Manager::HEADING,
						'condition'=>array('item_type!'=>'image')
					)
				);			
			
			//--------- title --------
			
			$repeater->add_control(
				'title',
				array(
					'label' => __( 'Item Title', 'unlimited-elements-for-elementor' ),
					'type' => Controls_Manager::TEXT,
					'default' => '',
					'label_block'=>true,
					'separator'=>'before',
					'dynamic'=>array('active'=>true),
					'recursive'=>true
				)
			);

			//--------- description --------
			
			$repeater->add_control(
				'description',
				array(
					'label' => __( 'Item Description', 'unlimited-elements-for-elementor' ),
					'type' => Controls_Manager::TEXTAREA,
					'default' => '',
					'label_block'=>true,
					'dynamic'=>array('active'=>true),
					'recursive'=>true
				)
			);
			
			$arrControl["recursive"] = true;
			
			//--------- link --------
			
			$repeater->add_control(
				'link',
				array(
					'label' => __( 'Item Link', 'unlimited-elements-for-elementor' ),
					'type' => Controls_Manager::URL,
					'default' => array(
						'url' => '',
						'is_external' => true,
						'nofollow' => false),
					'label_block'=>true,
					'dynamic'=>array('active'=>true),
					'recursive'=>true
				)
			);
			
			
					
			$objControls->add_control(
				$name.'_items',
				array(
					'label' => __( 'Gallery Items', 'unlimited-elements-for-elementor' ),
					'type' => Controls_Manager::REPEATER,
					'fields' => $repeater->get_controls(),
					'default' => $arrDefaultItems,
					'title_field' => '{{{ title }}}',
				)
			);		
	        
	        $objControls->end_controls_section();
		
	}

}