balmet.com

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

skins.php (2374B)


      1 <?php
      2 namespace Elementor;
      3 
      4 if ( ! defined( 'ABSPATH' ) ) {
      5 	exit; // Exit if accessed directly.
      6 }
      7 
      8 /**
      9  * Elementor skins manager.
     10  *
     11  * Elementor skins manager handler class is responsible for registering and
     12  * initializing all the supported skins.
     13  *
     14  * @since 1.0.0
     15  */
     16 class Skins_Manager {
     17 
     18 	/**
     19 	 * Registered Skins.
     20 	 *
     21 	 * Holds the list of all the registered skins for all the widgets.
     22 	 *
     23 	 * @since 1.0.0
     24 	 * @access private
     25 	 *
     26 	 * @var array Registered skins.
     27 	 */
     28 	private $_skins = [];
     29 
     30 	/**
     31 	 * Add new skin.
     32 	 *
     33 	 * Register a single new skin for a widget.
     34 	 *
     35 	 * @since 1.0.0
     36 	 * @access public
     37 	 *
     38 	 * @param Widget_Base $widget Elementor widget.
     39 	 * @param Skin_Base   $skin   Elementor skin.
     40 	 *
     41 	 * @return true True if skin added.
     42 	 */
     43 	public function add_skin( Widget_Base $widget, Skin_Base $skin ) {
     44 		$widget_name = $widget->get_name();
     45 
     46 		if ( ! isset( $this->_skins[ $widget_name ] ) ) {
     47 			$this->_skins[ $widget_name ] = [];
     48 		}
     49 
     50 		$this->_skins[ $widget_name ][ $skin->get_id() ] = $skin;
     51 
     52 		return true;
     53 	}
     54 
     55 	/**
     56 	 * Remove a skin.
     57 	 *
     58 	 * Unregister an existing skin from a widget.
     59 	 *
     60 	 * @since 1.0.0
     61 	 * @access public
     62 	 *
     63 	 * @param Widget_Base $widget  Elementor widget.
     64 	 * @param string      $skin_id Elementor skin ID.
     65 	 *
     66 	 * @return true|\WP_Error True if skin removed, `WP_Error` otherwise.
     67 	 */
     68 	public function remove_skin( Widget_Base $widget, $skin_id ) {
     69 		$widget_name = $widget->get_name();
     70 
     71 		if ( ! isset( $this->_skins[ $widget_name ][ $skin_id ] ) ) {
     72 			return new \WP_Error( 'Cannot remove not-exists skin.' );
     73 		}
     74 
     75 		unset( $this->_skins[ $widget_name ][ $skin_id ] );
     76 
     77 		return true;
     78 	}
     79 
     80 	/**
     81 	 * Get skins.
     82 	 *
     83 	 * Retrieve all the skins assigned for a specific widget.
     84 	 *
     85 	 * @since 1.0.0
     86 	 * @access public
     87 	 *
     88 	 * @param Widget_Base $widget Elementor widget.
     89 	 *
     90 	 * @return false|array Skins if the widget has skins, False otherwise.
     91 	 */
     92 	public function get_skins( Widget_Base $widget ) {
     93 		$widget_name = $widget->get_name();
     94 
     95 		if ( ! isset( $this->_skins[ $widget_name ] ) ) {
     96 			return false;
     97 		}
     98 
     99 		return $this->_skins[ $widget_name ];
    100 	}
    101 
    102 	/**
    103 	 * Skins manager constructor.
    104 	 *
    105 	 * Initializing Elementor skins manager by requiring the skin base class.
    106 	 *
    107 	 * @since 1.0.0
    108 	 * @access public
    109 	 */
    110 	public function __construct() {
    111 		require ELEMENTOR_PATH . 'includes/base/skin-base.php';
    112 	}
    113 }