balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

base.php (2859B)


      1 <?php
      2 namespace Elementor;
      3 
      4 use Elementor\Core\Base\Base_Object;
      5 
      6 if ( ! defined( 'ABSPATH' ) ) {
      7 	exit; // Exit if accessed directly.
      8 }
      9 
     10 /**
     11  * Elementor base control.
     12  *
     13  * An abstract class for creating new controls in the panel.
     14  *
     15  * @since 1.0.0
     16  * @abstract
     17  */
     18 abstract class Base_Control extends Base_Object {
     19 
     20 	/**
     21 	 * Base settings.
     22 	 *
     23 	 * Holds all the base settings of the control.
     24 	 *
     25 	 * @access private
     26 	 *
     27 	 * @var array
     28 	 */
     29 	private $_base_settings = [
     30 		'label' => '',
     31 		'description' => '',
     32 		'show_label' => true,
     33 		'label_block' => false,
     34 		'separator' => 'default',
     35 	];
     36 
     37 	/**
     38 	 * Get features.
     39 	 *
     40 	 * Retrieve the list of all the available features. Currently Elementor uses only
     41 	 * the `UI` feature.
     42 	 *
     43 	 * @since 1.5.0
     44 	 * @access public
     45 	 * @static
     46 	 *
     47 	 * @return array Features array.
     48 	 */
     49 	public static function get_features() {
     50 		return [];
     51 	}
     52 
     53 	/**
     54 	 * Get control type.
     55 	 *
     56 	 * Retrieve the control type.
     57 	 *
     58 	 * @since 1.5.0
     59 	 * @access public
     60 	 * @abstract
     61 	 */
     62 	abstract public function get_type();
     63 
     64 	/**
     65 	 * Control base constructor.
     66 	 *
     67 	 * Initializing the control base class.
     68 	 *
     69 	 * @since 1.5.0
     70 	 * @access public
     71 	 */
     72 	public function __construct() {
     73 		$this->set_settings( array_merge( $this->_base_settings, $this->get_default_settings() ) );
     74 
     75 		$this->set_settings( 'features', static::get_features() );
     76 	}
     77 
     78 	/**
     79 	 * Enqueue control scripts and styles.
     80 	 *
     81 	 * Used to register and enqueue custom scripts and styles used by the control.
     82 	 *
     83 	 * @since 1.5.0
     84 	 * @access public
     85 	 */
     86 	public function enqueue() {}
     87 
     88 	/**
     89 	 * Control content template.
     90 	 *
     91 	 * Used to generate the control HTML in the editor using Underscore JS
     92 	 * template. The variables for the class are available using `data` JS
     93 	 * object.
     94 	 *
     95 	 * Note that the content template is wrapped by Base_Control::print_template().
     96 	 *
     97 	 * @since 1.5.0
     98 	 * @access public
     99 	 * @abstract
    100 	 */
    101 	abstract public function content_template();
    102 
    103 	/**
    104 	 * Print control template.
    105 	 *
    106 	 * Used to generate the control HTML in the editor using Underscore JS
    107 	 * template. The variables for the class are available using `data` JS
    108 	 * object.
    109 	 *
    110 	 * @since 1.5.0
    111 	 * @access public
    112 	 */
    113 	final public function print_template() {
    114 		?>
    115 		<script type="text/html" id="tmpl-elementor-control-<?php echo esc_attr( $this->get_type() ); ?>-content">
    116 			<div class="elementor-control-content">
    117 				<?php
    118 				$this->content_template();
    119 				?>
    120 			</div>
    121 		</script>
    122 		<?php
    123 	}
    124 
    125 	/**
    126 	 * Get default control settings.
    127 	 *
    128 	 * Retrieve the default settings of the control. Used to return the default
    129 	 * settings while initializing the control.
    130 	 *
    131 	 * @since 1.5.0
    132 	 * @access protected
    133 	 *
    134 	 * @return array Control default settings.
    135 	 */
    136 	protected function get_default_settings() {
    137 		return [];
    138 	}
    139 
    140 	public static function get_assets( $setting ) {
    141 		return [];
    142 	}
    143 }