Preview: ImageSelector.php
Size: 2.48 KB
/home/nshryvcy/blissfulnepal.com/wp-content/plugins/tlp-team/app/Widgets/Elementor/Controls/ImageSelector.php
<?php
/**
* Elementor Custom Control: Image Selector Class.
*
* @package RT_Team
*/
namespace RT\Team\Widgets\Elementor\Controls;
use Elementor\Base_Data_Control as Control;
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'This script cannot be accessed directly.' );
}
/**
* Image Selector Class.
*/
class ImageSelector extends Control {
/**
* Set control name.
*
* @var string
*/
public static $controlName = 'rttm-image-selector';
/**
* Set control type.
*
* @return string
*/
public function get_type() {
return self::$controlName;
}
/**
* Enqueue control scripts and styles.
*
* @return void
*/
public function enqueue() {
\wp_enqueue_style( 'rttm-image-selector', rttlp_team()->assets_url() . 'css/image-selector.min.css', [], '1.0.0' );
}
/**
* Set default settings
*
* @return array
*/
protected function get_default_settings() {
return [
'label_block' => true,
'toggle' => true,
'options' => [],
];
}
/**
* Control field markup
*
* @return void
*/
public function content_template() {
$control_uid = $this->get_control_uid( '{{ value }}' );
?>
<div class="elementor-control-field">
<label class="elementor-control-title">{{{ data.label }}}</label>
<# if ( data.description ) { #>
<div class="elementor-control-field-description rttm-description">{{{ data.description }}}</div>
<# } #>
<div class="elementor-control-image-selector-wrapper">
<# _.each( data.options, function( options, value ) { #>
<div class="image-selector-inner{{ options.is_pro ? ' rttm-pro' : '' }}" title="{{ ! options.is_pro ? '' : 'Upgrade to PRO!' }}" data-tooltip="{{ ! options.is_pro ? options.title : 'Upgrade to PRO!' }}">
<input id="<?php echo esc_attr( $control_uid ); ?>" type="radio" name="elementor-image-selector-{{ data.name }}-{{ data._cid }}" value="{{ value }}" data-setting="{{ data.name }}">
<label class="elementor-image-selector-label tooltip-target{{ options.is_pro ? ' is-pro' : '' }}" for="<?php echo esc_attr( $control_uid ); ?>" data-tooltip="{{ options.title }}" title="{{ options.title }}">
<img src="{{ options.url }}" alt="{{ options.title }}"> <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
<span class="elementor-screen-only">{{{ options.title }}}</span>
</label>
</div>
<# } ); #>
</div>
</div>
<?php
}
}
Directory Contents
Dirs: 0 × Files: 1