PluginProbe ʕ •ᴥ•ʔ
Elementor Website Builder – more than just a page builder / 4.1.0-beta3
Elementor Website Builder – more than just a page builder v4.1.0-beta3
4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.22.0-dev1 4.0.0-beta3 3.22.0-dev2 4.0.0-beta4 3.22.0-dev3 4.0.0-beta5 3.22.0-dev4 4.0.0-dev1 3.22.0-dev5 4.0.0-dev2 3.22.0-dev6 4.0.0-dev3 3.22.1 4.0.0-dev4 3.22.2 4.0.0-dev5 3.22.3 4.0.1 3.23.0 4.0.2 3.23.0-beta1 3.23.0-beta2 3.23.0-beta3 3.23.0-beta4 3.23.0-beta5 3.23.0-beta6 3.23.0-dev1 3.23.0-dev2 3.23.0-dev3 3.23.0-dev4 3.23.0-dev5 3.23.0-dev6 3.23.1 3.23.2 3.23.3 3.23.4 3.24.0 3.24.0-beta1 3.24.0-beta2 3.24.0-beta3 3.24.0-dev1 3.24.0-dev2 3.24.0-dev3 3.24.1 3.24.2 3.24.3 3.24.4 3.24.5 3.24.6 3.24.7 3.24.8 3.25.0 3.25.0-beta1 3.25.0-beta2 3.25.0-beta3 3.25.0-dev1 3.25.0-dev2 3.25.0-dev3 3.25.1 3.25.10 3.25.11 3.25.2 3.25.3 3.25.4 3.25.5 3.25.6 3.25.7 3.25.8 3.25.9 3.26.0 3.26.0-beta1 3.26.0-beta2 3.26.0-beta3 3.26.0-beta4 3.26.0-beta5 3.26.0-dev1 3.26.0-dev2 3.26.0-dev3 3.26.0-dev4 3.26.0-dev5 3.26.1 3.26.2 3.26.3 3.26.4 3.26.5 3.27.0 3.27.0-beta1 3.27.0-beta2 3.27.0-dev1 3.27.0-dev2 3.27.1 3.27.2 3.27.3 3.27.4 3.27.5 3.27.6 3.27.7 3.28.0 3.28.0-beta1 3.28.0-beta2 3.28.0-beta3 3.28.0-dev1 3.28.0-dev2 3.28.0-dev3 3.28.1 3.28.2 3.28.3 3.28.4 3.29.0 3.29.0-beta1 trunk 3.29.0-beta2 3.0.0 3.29.0-beta3 3.0.1 3.29.0-beta4 3.0.10 3.29.0-dev1 3.0.11 3.29.0-dev2 3.0.12 3.29.0-dev3 3.0.13 3.29.0-dev4 3.0.14 3.29.1 3.0.15 3.29.2 3.0.16 3.3.0 3.0.2 3.3.1 3.0.3 3.30.0 3.0.4 3.30.0-beta1 3.0.5 3.30.0-beta2 3.0.6 3.30.0-beta3 3.0.7 3.30.0-dev1 3.0.8 3.30.0-dev2 3.0.8.1 3.30.0-dev3 3.0.9 3.30.1 3.1.0 3.30.2 3.1.0-beta1 3.30.3 3.1.0-beta2 3.30.4 3.1.0-beta3 3.31.0 3.1.0-beta4 3.31.0-beta1 3.1.0-dev1 3.31.0-beta2 3.1.0-dev2 3.31.0-dev1 3.1.0-dev3 3.31.0-dev2 3.1.1 3.31.1 3.1.2 3.31.2 3.1.3 3.31.3 3.1.4 3.31.4 3.10.0 3.31.5 3.10.0-dev1 3.32.0 3.10.1 3.32.0-beta1 3.10.2 3.32.0-beta2 3.11.0 3.32.0-beta3 3.11.0-beta1 3.32.0-dev1 3.11.0-beta2 3.32.0-dev2 3.11.0-beta3 3.32.0-dev3 3.11.0-dev1 3.32.1 3.11.0-dev2 3.32.2 3.11.0-dev3 3.32.3 3.11.1 3.32.4 3.11.2 3.32.5 3.11.3 3.33.0 3.11.4 3.33.0-beta1 3.11.5 3.33.0-beta2 3.12.0 3.33.0-beta3 3.12.1 3.33.0-beta4 3.12.2 3.33.0-dev1 3.13.0 3.33.0-dev2 3.13.0-beta1 3.33.0-dev3 3.13.0-beta2 3.33.0-dev4 3.13.0-beta3 3.33.1 3.13.0-dev3 3.33.2 3.13.0-dev4 3.33.3 3.13.1 3.33.4 3.13.2 3.33.5 3.13.3 3.33.6 3.13.4 3.34.0 3.14.0 3.34.0-beta1 3.14.0-beta1 3.34.0-beta2 3.14.0-beta2 3.34.0-beta3 3.14.0-beta3 3.34.0-dev1 3.14.0-beta4 3.34.0-dev2 3.14.0-beta5 3.34.1 3.14.1 3.34.2 3.15.0 3.34.3 3.15.1 3.34.4 3.15.2 3.35.0 3.15.3 3.35.0-beta1 3.16.0 3.35.0-beta2 3.16.0-beta3 3.35.0-beta3 3.16.0-beta4 3.35.0-beta4 3.16.0-dev1 3.35.0-dev1 3.16.0-dev2 3.35.0-dev2 3.16.1 3.35.0-dev3 3.16.2 3.35.0-dev4 3.16.3 3.35.1 3.16.4 3.35.2 3.16.5 3.35.3 3.16.6 3.35.4 3.17.0 3.35.5 3.17.0-dev2 3.35.6 3.17.0-dev3 3.35.7 3.17.0-dev4 3.35.8 3.17.1 3.35.9 3.17.2 3.4.0 3.17.3 3.4.0-dev7 3.18.0 3.4.0-dev8 3.18.0-beta1 3.4.0-dev9 3.18.0-beta2 3.4.1 3.18.0-beta3 3.4.2 3.18.0-beta4 3.4.3 3.18.0-dev1 3.4.4 3.18.1 3.4.5 3.18.2 3.4.6 3.18.3 3.4.7 3.19.0 3.4.8 3.19.0-beta1 3.5.0 3.19.0-beta2 3.5.0-beta1 3.19.0-beta3 3.5.0-beta2 3.19.0-beta4 3.5.0-beta3 3.19.0-beta5 3.5.0-beta4 3.19.0-beta6 3.5.0-beta5 3.19.0-dev1 3.5.0-beta7 3.19.0-dev2 3.5.0-beta8 3.19.0-dev3 3.5.0-dev8 3.19.0-dev4 3.5.0-dev9 3.19.0-dev5 3.5.1 3.19.0-dev6 3.5.2 3.19.1 3.5.3 3.19.2 3.5.4 3.19.3 3.5.5 3.19.4 3.5.6 3.2.0 3.6.0 3.2.1 3.6.0-beta1 3.2.2 3.6.0-beta2 3.2.3 3.6.0-beta3 3.2.4 3.6.0-beta4 3.2.5 3.6.0-beta5 3.20.0 3.6.0-dev1 3.20.0-beta1 3.6.0-dev10 3.20.0-beta2 3.6.1 3.20.0-beta3 3.6.2 3.20.0-beta4 3.6.3 3.20.0-dev1 3.6.4 3.20.0-dev2 3.6.5 3.20.0-dev3 3.6.6 3.20.0-dev4 3.6.7 3.20.1 3.6.8 3.20.2 3.7.0 3.20.3 3.7.0-beta1 3.20.4 3.7.0-beta2 3.21.0 3.7.0-beta3 3.21.0-beta1 3.7.0-beta4 3.21.0-beta2 3.7.0-dev1 3.21.0-beta3 3.7.1 3.21.0-dev1 3.7.2 3.21.0-dev2 3.7.3 3.21.0-dev3 3.7.4 3.21.1 3.7.5 3.21.2 3.7.6 3.21.3 3.7.7 3.21.4 3.7.8 3.21.5 3.8.0 3.21.6 3.8.0-beta1 3.21.7 3.8.0-beta2 3.21.8 3.8.0-beta3 3.22.0 3.8.1 3.22.0-beta1 3.9.0 3.22.0-beta2 3.9.1 3.22.0-beta3 3.9.2 3.22.0-beta4 4.0.0 3.22.0-beta5 4.0.0-beta1 3.22.0-beta6 4.0.0-beta2
elementor / includes / widgets / menu-anchor.php
elementor / includes / widgets Last commit date
traits 5 months ago accordion.php 2 weeks ago alert.php 2 weeks ago audio.php 2 weeks ago button.php 2 weeks ago common-base.php 2 weeks ago common-optimized.php 1 year ago common.php 1 year ago counter.php 2 weeks ago divider.php 2 weeks ago google-maps.php 2 weeks ago heading.php 2 weeks ago html.php 2 weeks ago icon-box.php 2 weeks ago icon-list.php 2 weeks ago icon.php 2 weeks ago image-box.php 2 weeks ago image-carousel.php 2 weeks ago image-gallery.php 2 weeks ago image.php 2 weeks ago inner-section.php 2 years ago menu-anchor.php 2 weeks ago progress.php 2 weeks ago rating.php 2 weeks ago read-more.php 2 weeks ago shortcode.php 2 weeks ago sidebar.php 1 year ago social-icons.php 2 weeks ago spacer.php 2 weeks ago star-rating.php 2 weeks ago tabs.php 2 weeks ago testimonial.php 2 weeks ago text-editor.php 2 weeks ago toggle.php 2 weeks ago video.php 2 weeks ago wordpress.php 1 year ago
menu-anchor.php
209 lines
1 <?php
2 namespace Elementor;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit; // Exit if accessed directly.
6 }
7
8 /**
9 * Elementor menu anchor widget.
10 *
11 * Elementor widget that allows to link and menu to a specific position on the
12 * page.
13 *
14 * @since 1.0.0
15 */
16 class Widget_Menu_Anchor extends Widget_Base {
17
18 /**
19 * Get widget name.
20 *
21 * Retrieve menu anchor widget name.
22 *
23 * @since 1.0.0
24 * @access public
25 *
26 * @return string Widget name.
27 */
28 public function get_name() {
29 return 'menu-anchor';
30 }
31
32 /**
33 * Get widget title.
34 *
35 * Retrieve menu anchor widget title.
36 *
37 * @since 1.0.0
38 * @access public
39 *
40 * @return string Widget title.
41 */
42 public function get_title() {
43 return esc_html__( 'Menu Anchor', 'elementor' );
44 }
45
46 /**
47 * Get widget icon.
48 *
49 * Retrieve menu anchor widget icon.
50 *
51 * @since 1.0.0
52 * @access public
53 *
54 * @return string Widget icon.
55 */
56 public function get_icon() {
57 return 'eicon-anchor';
58 }
59
60 /**
61 * Get widget keywords.
62 *
63 * Retrieve the list of keywords the widget belongs to.
64 *
65 * @since 2.1.0
66 * @access public
67 *
68 * @return array Widget keywords.
69 */
70 public function get_keywords() {
71 return [ 'menu', 'anchor', 'link' ];
72 }
73
74 protected function is_dynamic_content(): bool {
75 return false;
76 }
77
78 /**
79 * Get style dependencies.
80 *
81 * Retrieve the list of style dependencies the widget requires.
82 *
83 * @since 3.24.0
84 * @access public
85 *
86 * @return array Widget style dependencies.
87 */
88 public function get_style_depends(): array {
89 return [ 'widget-menu-anchor' ];
90 }
91
92 public function has_widget_inner_wrapper(): bool {
93 return ! Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' );
94 }
95
96 /**
97 * Register menu anchor widget controls.
98 *
99 * Adds different input fields to allow the user to change and customize the widget settings.
100 *
101 * @since 3.1.0
102 * @access protected
103 */
104 protected function register_controls() {
105 $this->start_controls_section(
106 'section_anchor',
107 [
108 'label' => esc_html__( 'Menu Anchor', 'elementor' ),
109 ]
110 );
111
112 $this->add_control(
113 'anchor',
114 [
115 'label' => esc_html__( 'The ID of Menu Anchor.', 'elementor' ),
116 'type' => Controls_Manager::TEXT,
117 'ai' => [
118 'active' => false,
119 ],
120 'placeholder' => esc_html__( 'For Example: About', 'elementor' ),
121 'description' => esc_html__( 'This ID will be the CSS ID you will have to use in your own page, Without #.', 'elementor' ),
122 'label_block' => true,
123 'dynamic' => [
124 'active' => true,
125 ],
126 ]
127 );
128
129 $this->add_control(
130 'anchor_note',
131 [
132 'type' => Controls_Manager::ALERT,
133 'alert_type' => 'warning',
134 'content' => sprintf(
135 /* translators: %s: Accepted chars. */
136 esc_html__( 'Note: The ID link ONLY accepts these chars: %s', 'elementor' ),
137 '`A-Z, a-z, 0-9, _ , -`'
138 ),
139 ]
140 );
141
142 $this->end_controls_section();
143 }
144
145 /**
146 * Render menu anchor widget output on the frontend.
147 *
148 * Written in PHP and used to generate the final HTML.
149 *
150 * @since 1.0.0
151 * @access protected
152 */
153 protected function render() {
154 $anchor = $this->get_settings_for_display( 'anchor' );
155
156 if ( empty( $anchor ) ) {
157 return;
158 }
159
160 $this->add_render_attribute(
161 'inner',
162 [
163 'class' => 'elementor-menu-anchor',
164 'id' => sanitize_html_class( $anchor ),
165 ]
166 );
167 ?>
168 <div <?php $this->print_render_attribute_string( 'inner' ); ?>></div>
169 <?php
170 }
171
172 /**
173 * Render menu anchor widget output in the editor.
174 *
175 * Written as a Backbone JavaScript template and used to generate the live preview.
176 *
177 * @since 2.9.0
178 * @access protected
179 */
180 protected function content_template() {
181 ?>
182 <#
183 if ( '' === settings.anchor ) {
184 return;
185 }
186
187 view.addRenderAttribute(
188 'inner',
189 {
190 'class': 'elementor-menu-anchor',
191 'id': settings.anchor,
192 }
193 );
194 #>
195 <div {{{ view.getRenderAttributeString( 'inner' ) }}}></div>
196 <?php
197 }
198
199 public function render_markdown(): string {
200 return '';
201 }
202
203 protected function on_save( array $settings ) {
204 $settings['anchor'] = sanitize_html_class( $settings['anchor'] );
205
206 return $settings;
207 }
208 }
209