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