PluginProbe ʕ •ᴥ•ʔ
ElementsKit Elementor Addons – Advanced Widgets & Templates Addons for Elementor / 4.0.2
ElementsKit Elementor Addons – Advanced Widgets & Templates Addons for Elementor v4.0.2
4.0.2 4.0.1 4.0.0 3.10.02 3.10.01 3.9.10 3.9.9 3.9.8 3.9.7 3.9.5 3.9.6 3.9.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.3.1 2.3.1.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.4.0 2.5.0 2.5.1 2.5.10 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.5 2.8.6 2.8.7 2.8.8 2.9.0 2.9.1 2.9.2 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 3.4.9 3.5.0 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.6.0 3.6.1 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.9.0 3.9.1 3.9.2 trunk 1.2.6 1.2.7 1.2.9 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.2 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.0.9.1 2.0.9.2 2.0.9.3
elementskit-lite / modules / onepage-scroll / extend-controls.php
elementskit-lite / modules / onepage-scroll Last commit date
assets 1 week ago nav-styles 4 years ago extend-controls-pro.php 3 years ago extend-controls.php 1 week ago init.php 2 years ago
extend-controls.php
213 lines
1 <?php
2
3 namespace Elementor;
4
5 use \ElementsKit_Lite\Modules\Onepage_Scroll\Init;
6 use ElementsKit_Lite\Utils;
7
8 class ElementsKit_Extend_Onepage_Scroll {
9
10 public function __construct() {
11 /**
12 * Page Controls
13 */
14 add_action( 'elementor/documents/register_controls', array( $this, 'register_page_controls' ) );
15
16 /**
17 * Section Controls
18 */
19 add_action( 'elementor/element/section/section_advanced/after_section_end', array( $this, 'register_section_controls' ) );
20
21 /**
22 * Flexbox Container Support
23 */
24 add_action( 'elementor/element/container/section_layout/after_section_end', array( $this, 'register_section_controls' ) );
25
26 /**
27 * Navigation Markup
28 */
29 add_action( 'wp_footer', array( $this, 'generate_navigation_markup' ) );
30 add_action( 'wp_ajax_generate_navigation_markup', array( $this, 'generate_navigation_markup' ) );
31
32 /**
33 * Pro Notice
34 */
35 if ( \ElementsKit_Lite::package_type() === 'free' ) {
36 add_action( 'elementor/element/wp-page/ekit_page_settings/before_section_end', array( $this, 'pro_panel_notice' ), 99 );
37 add_action( 'elementor/element/section/ekit_onepagescroll_section/before_section_end', array( $this, 'pro_panel_notice' ), 99 );
38 }
39 }
40
41
42 /**
43 * Pro Panel Notice
44 */
45 public function pro_panel_notice( $element ) {
46 $element->add_control(
47 'ekit_control_get_pro',
48 array(
49 'label' => esc_html__( 'Unlock more possibilities', 'elementskit-lite' ),
50 'type' => \Elementor\Controls_Manager::CHOOSE,
51 'options' => array(
52 '1' => array(
53 'icon' => 'eicon-lock',
54 ),
55 ),
56 'default' => '1',
57 'toggle' => false,
58 'separator' => 'before',
59 'description' => sprintf('<span class="ekit-widget-pro-feature"> %1$s <a href="https://wpmet.com/elementskit-pricing" target="_blank"> %2$s </a> %3$s </span>',
60 esc_html__('Get the', 'elementskit-lite'),
61 esc_html__('Pro version', 'elementskit-lite'),
62 esc_html__('for more awesome elements and powerful modules.', 'elementskit-lite'),
63 ),
64 )
65 );
66 }
67
68
69 /**
70 * Page Controls
71 */
72 public function register_page_controls( Controls_Stack $element ) {
73 $element->start_controls_section(
74 'ekit_page_settings',
75 array(
76 'label' => Utils::get_promo_icon() . esc_html__('Settings', 'elementskit-lite'),
77 'tab' => Controls_Manager::TAB_SETTINGS,
78 )
79 );
80
81 $element->add_control(
82 'ekit_onepagescroll',
83 array(
84 'label' => esc_html__( 'Enable Onepage Scroll', 'elementskit-lite' ),
85 'type' => Controls_Manager::SWITCHER,
86 'return_value' => 'block',
87 'frontend_available' => true,
88 'selectors' => array(
89 'div.onepage_scroll_nav' => 'display: {{VALUE}};',
90 ),
91 )
92 );
93
94 $element->end_controls_section();
95 }
96
97
98 /**
99 * Section Controls
100 */
101 public function register_section_controls( Controls_Stack $element ) {
102 $element->start_controls_section(
103 'ekit_onepagescroll_section',
104 array(
105 'label' => Utils::get_promo_icon() . esc_html__( 'Onepage Scroll', 'elementskit-lite' ),
106 'tab' => Controls_Manager::TAB_ADVANCED,
107 'hide_in_inner' => true,
108 )
109 );
110
111 $element->add_control(
112 'ekit_has_onepagescroll',
113 array(
114 'label' => esc_html__( 'Enable Section', 'elementskit-lite' ),
115 'type' => Controls_Manager::SWITCHER,
116 'frontend_available' => true,
117 'return_value' => 'section',
118 'prefix_class' => 'ops-',
119 )
120 );
121
122 $element->end_controls_section();
123 }
124
125
126 /**
127 * Navigation Markup
128 */
129 public function generate_navigation_markup() {
130 $is_active = Init::get_page_setting( 'ekit_onepagescroll' );
131 $is_nav = $nav_style = Init::get_page_setting( 'ekit_onepagescroll_nav' );
132 $is_pro = \ElementsKit_Lite::package_type() === 'pro';
133 $is_editor = \Elementor\Plugin::$instance->preview->is_preview_mode();
134 $nav_pos = Init::get_page_setting( 'ekit_onepagescroll_nav_pos' );
135 $nav_icon = Init::get_page_setting( 'ekit_onepagescroll_nav_icon' );
136
137 if ( ! ( $is_pro && $is_active && $is_nav ) ) {
138 return;
139 } elseif ( $is_editor ) {
140 echo '<div id="onepage_scroll_nav_wrap">';
141 }
142
143 $classlist = array(
144 'wrapper' => 'nav-style-' . $nav_style . ' met_d--none met_pos--fixed ',
145 'ul' => 'met_list--none met_m--0 met_p--0 met_lh--0 ',
146 'li' => 'met_not_last_mb--20 ',
147 'link' => '',
148 'tooltip' => '',
149 'arrow' => '',
150 'span' => '',
151 );
152
153 switch ( $nav_pos ) {
154 case 'top':
155 $classlist['wrapper'] .= 'met-' . $nav_pos . ' met_top--0 met_left--50p met_translateLeft--m50p met_my--20 ';
156 $classlist['ul'] .= 'met_d--flex ';
157 $classlist['li'] = 'met_not_last_mr--20 ';
158
159 $classlist['tooltip'] .= 'met_top--100p ';
160 $classlist['arrow'] .= 'met_bdb_color--current met_top--100p ';
161 break;
162
163 case 'bottom':
164 $classlist['wrapper'] .= 'met-' . $nav_pos . ' met_bottom--0 met_left--50p met_translateLeft--m50p met_my--20 ';
165 $classlist['ul'] .= 'met_d--flex ';
166 $classlist['li'] = 'met_not_last_mr--20 ';
167
168 $classlist['tooltip'] .= 'met_bottom--100p ';
169 $classlist['arrow'] .= 'met_bdt_color--current met_bottom--100p ';
170 break;
171
172 case 'left':
173 $classlist['wrapper'] .= 'met-' . $nav_pos . ' met_top--50p met_left--0 met_translateTop--m50p met_mx--20 ';
174
175 $classlist['tooltip'] .= 'met_left--100p ';
176 $classlist['arrow'] .= 'met_bdr_color--current met_left--100p ';
177 break;
178
179 case 'right':
180 $classlist['wrapper'] .= 'met-' . $nav_pos . ' met_top--50p met_right--0 met_translateTop--m50p met_mx--20 ';
181
182 $classlist['tooltip'] .= 'met_right--100p ';
183 $classlist['arrow'] .= 'met_bdl_color--current met_right--100p ';
184 break;
185 }
186
187 $nav_styles = array(
188 'circle-scale-up',
189 'circle-fill-in',
190 'circle-fill-out',
191 'circle-stroke',
192 'circle-stroke-dot',
193 'circle-stroke-simple',
194 'circle-dot-move',
195 'circle-timeline',
196 'square-scale-up',
197 'line-grow',
198 'line-shrink',
199 'line-fill',
200 'line-move',
201 'icon',
202 );
203
204 if( in_array($nav_style, $nav_styles) ) {
205 include_once 'nav-styles/' . $nav_style . '.php';
206 }
207
208 if ( $is_editor ) :
209 echo '</div>';
210 endif;
211 }
212 }
213