PluginProbe
Elementor Website Builder – more than just a page builder / 3.17.0-dev3
Elementor Website Builder – more than just a page builder v3.17.0-dev3
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 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 All 451 releases
elementor / includes / editor-templates / panel.php

panel.php in Elementor Website Builder – more than just a page builder 3.17.0-dev3, at includes/editor-templates/panel.php

318 lines 15.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor;
3
4 use Elementor\Core\Editor\Editor;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly.
8 }
9
10 $document = Plugin::$instance->documents->get( Plugin::$instance->editor->get_post_id() );
11 $is_editor_v2_active = Plugin::$instance->experiments->is_feature_active( Editor::EDITOR_V2_EXPERIMENT_NAME );
12 ?>
13 <script type="text/template" id="tmpl-elementor-panel">
14 <div id="elementor-panel-state-loading">
15 <i class="eicon-loading eicon-animation-spin"></i>
16 </div>
17 <header id="elementor-panel-header-wrapper"></header>
18 <main id="elementor-panel-content-wrapper"></main>
19 <footer id="elementor-panel-footer">
20 <div class="elementor-panel-container"></div>
21 </footer>
22 <div id="elementor-mode-switcher"></div>
23 </script>
24
25 <script type="text/template" id="tmpl-elementor-panel-menu">
26 <div id="elementor-panel-page-menu-content"></div>
27 <# if ( elementor.config.document.panel.needHelpUrl ) { #>
28 <div id="elementor-panel__editor__help">
29 <a id="elementor-panel__editor__help__link" href="{{{ elementor.config.document.panel.needHelpUrl }}}" target="_blank">
30 <?php echo esc_html__( 'Need Help', 'elementor' ); ?>
31 <i class="eicon-help-o" aria-hidden="true"></i>
32 </a>
33 </div>
34 <# } #>
35 </script>
36
37 <script type="text/template" id="tmpl-elementor-panel-menu-group">
38 <div class="elementor-panel-menu-group-title">{{{ title }}}</div>
39 <div class="elementor-panel-menu-items"></div>
40 </script>
41
42 <script type="text/template" id="tmpl-elementor-panel-menu-item">
43 <div class="elementor-panel-menu-item-icon">
44 <i class="{{ icon }}"></i>
45 </div>
46 <# if ( 'undefined' === typeof type || 'link' !== type ) { #>
47 <div class="elementor-panel-menu-item-title">{{{ title }}}</div>
48 <# } else {
49 let target = ( 'undefined' !== typeof newTab && newTab ) ? '_blank' : '_self';
50 #>
51 <a href="{{ link }}" target="{{ target }}"><div class="elementor-panel-menu-item-title">{{{ title }}}</div></a>
52 <# } #>
53 </script>
54
55 <script type="text/template" id="tmpl-elementor-exit-dialog">
56 <div><?php echo esc_html__( 'Now you can choose where you want to go on the site from the following options', 'elementor' ); ?></div>
57 <div>
58 <!-- translators: 1: Opening HTML <a> tag, 2: closing HTML <a> tag. -->
59 <?php echo sprintf(
60 esc_html__( 'Any time you can change the settings in %1$sUser Preferences%2$s', 'elementor' ),
61 '<a id="user-preferences">',
62 '</a>'
63 ); ?>
64 </div>
65 <select id="exit-to-preferences"></select> <!-- Adding options by JS -->
66 </script>
67
68 <script type="text/template" id="tmpl-elementor-panel-header">
69 <button id="elementor-panel-header-menu-button" class="elementor-header-button">
70 <i class="elementor-icon eicon-menu-bar tooltip-target" aria-hidden="true" data-tooltip="<?php esc_attr_e( 'Menu', 'elementor' ); ?>"></i>
71 <span class="elementor-screen-only"><?php echo esc_html__( 'Menu', 'elementor' ); ?></span>
72 </button>
73 <h2 id="elementor-panel-header-title"></h2>
74 <button id="elementor-panel-header-add-button" class="elementor-header-button">
75 <i class="elementor-icon eicon-apps tooltip-target" aria-hidden="true" data-tooltip="<?php esc_attr_e( 'Widgets Panel', 'elementor' ); ?>"></i>
76 <span class="elementor-screen-only"><?php echo esc_html__( 'Widgets Panel', 'elementor' ); ?></span>
77 </button>
78 </script>
79
80 <script type="text/template" id="tmpl-elementor-panel-footer-content">
81 <button id="elementor-panel-footer-settings" class="elementor-panel-footer-tool elementor-leave-open tooltip-target" data-tooltip="<?php esc_attr_e( 'Settings', 'elementor' ); ?>">
82 <i class="eicon-cog" aria-hidden="true"></i>
83 <span class="elementor-screen-only"><?php printf( esc_html__( '%s Settings', 'elementor' ), esc_html( $document::get_title() ) ); ?></span>
84 </button>
85 <button id="elementor-panel-footer-navigator" class="elementor-panel-footer-tool tooltip-target" data-tooltip="<?php
86 echo $is_editor_v2_active
87 ? esc_attr__( 'Structure', 'elementor' )
88 : esc_attr__( 'Navigator', 'elementor' );
89 ?>">
90 <i class="eicon-navigator" aria-hidden="true"></i>
91 <span class="elementor-screen-only"><?php
92 echo $is_editor_v2_active
93 ? esc_html__( 'Structure', 'elementor' )
94 : esc_html__( 'Navigator', 'elementor' );
95 ?></span>
96 </button>
97 <button id="elementor-panel-footer-history" class="elementor-panel-footer-tool elementor-leave-open tooltip-target" data-tooltip="<?php esc_attr_e( 'History', 'elementor' ); ?>">
98 <i class="eicon-history" aria-hidden="true"></i>
99 <span class="elementor-screen-only"><?php echo esc_html__( 'History', 'elementor' ); ?></span>
100 </button>
101 <button id="elementor-panel-footer-responsive" class="elementor-panel-footer-tool elementor-toggle-state tooltip-target" data-tooltip="<?php esc_attr_e( 'Responsive Mode', 'elementor' ); ?>">
102 <i class="eicon-device-responsive" aria-hidden="true"></i>
103 <span class="elementor-screen-only">
104 <?php echo esc_html__( 'Responsive Mode', 'elementor' ); ?>
105 </span>
106 </button>
107 <button id="elementor-panel-footer-saver-preview" class="elementor-panel-footer-tool tooltip-target" data-tooltip="<?php esc_attr_e( 'Preview Changes', 'elementor' ); ?>">
108 <span id="elementor-panel-footer-saver-preview-label">
109 <i class="eicon-preview-medium" aria-hidden="true"></i>
110 <span class="elementor-screen-only"><?php echo esc_html__( 'Preview Changes', 'elementor' ); ?></span>
111 </span>
112 </button>
113 <div id="elementor-panel-footer-saver-publish" class="elementor-panel-footer-tool">
114 <button id="elementor-panel-saver-button-publish" class="elementor-button e-primary elementor-disabled">
115 <span class="elementor-state-icon">
116 <i class="eicon-loading eicon-animation-spin" aria-hidden="true"></i>
117 </span>
118 <span id="elementor-panel-saver-button-publish-label">
119 <?php echo esc_html__( 'Publish', 'elementor' ); ?>
120 </span>
121 </button>
122 </div>
123 <div id="elementor-panel-footer-saver-options" class="elementor-panel-footer-tool elementor-toggle-state">
124 <button id="elementor-panel-saver-button-save-options" class="elementor-button e-primary tooltip-target elementor-disabled" data-tooltip="<?php esc_attr_e( 'Save Options', 'elementor' ); ?>" data-tooltip-offset="7">
125 <i class="eicon-chevron-right" aria-hidden="true"></i>
126 <span class="elementor-screen-only"><?php echo esc_html__( 'Save Options', 'elementor' ); ?></span>
127 </button>
128 <div class="elementor-panel-footer-sub-menu-wrapper">
129 <p class="elementor-last-edited-wrapper">
130 <span class="elementor-state-icon">
131 <i class="eicon-loading eicon-animation-spin" aria-hidden="true"></i>
132 </span>
133 <span class="elementor-last-edited">
134 </span>
135 </p>
136 <div class="elementor-panel-footer-sub-menu">
137 <div id="elementor-panel-footer-sub-menu-item-save-draft" class="elementor-panel-footer-sub-menu-item elementor-disabled">
138 <i class="elementor-icon eicon-save" aria-hidden="true"></i>
139 <span class="elementor-title"><?php echo esc_html__( 'Save Draft', 'elementor' ); ?></span>
140 </div>
141 <div id="elementor-panel-footer-sub-menu-item-save-template" class="elementor-panel-footer-sub-menu-item">
142 <i class="elementor-icon eicon-folder" aria-hidden="true"></i>
143 <span class="elementor-title"><?php echo esc_html__( 'Save as Template', 'elementor' ); ?></span>
144 </div>
145 </div>
146 </div>
147 </div>
148 </script>
149
150 <script type="text/template" id="tmpl-elementor-mode-switcher-content">
151 <label for="elementor-mode-switcher-preview-input" id="elementor-mode-switcher-preview" title="<?php esc_attr_e( 'Hide Panel', 'elementor' ); ?>">
152 <i class="eicon" aria-hidden="true" tabindex="0"></i>
153 <span class="elementor-screen-only"><?php echo esc_html__( 'Hide Panel', 'elementor' ); ?></span>
154 </label>
155 <input id="elementor-mode-switcher-preview-input" type="checkbox">
156 </script>
157
158 <script type="text/template" id="tmpl-editor-content">
159 <div class="elementor-panel-navigation">
160 <# _.each( elementData.tabs_controls, function( tabTitle, tabSlug ) {
161 if ( 'content' !== tabSlug && ! elementor.userCan( 'design' ) ) {
162 return;
163 }
164 $e.bc.ensureTab( 'panel/editor', tabSlug );
165 #>
166 <button class="elementor-component-tab elementor-panel-navigation-tab elementor-tab-control-{{ tabSlug }}" data-tab="{{ tabSlug }}">
167 <span>{{{ tabTitle }}}</span>
168 </button>
169 <# } ); #>
170 </div>
171 <# if ( elementData.reload_preview ) { #>
172 <div class="elementor-update-preview">
173 <div class="elementor-update-preview-title"><?php echo esc_html__( 'Update changes to page', 'elementor' ); ?></div>
174 <div class="elementor-update-preview-button-wrapper">
175 <button class="elementor-update-preview-button elementor-button"><?php echo esc_html__( 'Apply', 'elementor' ); ?></button>
176 </div>
177 </div>
178 <# } #>
179 <div id="elementor-controls"></div>
180 <# if ( elementData.help_url ) { #>
181 <div id="elementor-panel__editor__help">
182 <a id="elementor-panel__editor__help__link" href="{{ elementData.help_url }}" target="_blank">
183 <?php echo esc_html__( 'Need Help', 'elementor' ); ?>
184 <i class="eicon-help-o" aria-hidden="true"></i>
185 </a>
186 </div>
187 <# } #>
188 </script>
189
190 <script type="text/template" id="tmpl-elementor-panel-schemes-disabled">
191 <img class="elementor-nerd-box-icon" src="<?php Utils::print_unescaped_internal_string( ELEMENTOR_ASSETS_URL . 'images/information.svg' ); ?>" loading="lazy" />
192 <div class="elementor-nerd-box-title">{{{ '<?php echo esc_html__( '%s are disabled', 'elementor' ); // phpcs:ignore WordPress.WP.I18n.MissingTranslatorsComment ?>'.replace( '%s', disabledTitle ) }}}</div>
193 <div class="elementor-nerd-box-message"><?php
194 printf(
195 /* translators: %1$s Link open tag, %2$s: Link close tag. */
196 esc_html__( 'You can enable it from the %1$sElementor settings page%2$s.', 'elementor' ),
197 '<a href="' . esc_url( Settings::get_url() ) . '" target="_blank">',
198 '</a>'
199 );
200 ?></div>
201 </script>
202
203 <script type="text/template" id="tmpl-elementor-panel-scheme-color-item">
204 <div class="elementor-panel-scheme-color-picker-placeholder"></div>
205 <div class="elementor-panel-scheme-color-title">{{{ title }}}</div>
206 </script>
207
208 <script type="text/template" id="tmpl-elementor-panel-scheme-typography-item">
209 <div class="elementor-panel-heading">
210 <div class="elementor-panel-heading-toggle">
211 <i class="eicon" aria-hidden="true"></i>
212 </div>
213 <div class="elementor-panel-heading-title">{{{ title }}}</div>
214 </div>
215 <div class="elementor-panel-scheme-typography-items elementor-panel-box-content">
216 <?php
217 $scheme_fields_keys = Group_Control_Typography::get_scheme_fields_keys();
218
219 $typography_group = Plugin::$instance->controls_manager->get_control_groups( 'typography' );
220 $typography_fields = $typography_group->get_fields();
221
222 $scheme_fields = array_intersect_key( $typography_fields, array_flip( $scheme_fields_keys ) );
223
224 foreach ( $scheme_fields as $option_name => $option ) :
225 ?>
226 <div class="elementor-panel-scheme-typography-item elementor-control elementor-control-type-select">
227 <div class="elementor-panel-scheme-item-title elementor-control-title"><?php echo esc_html( $option['label'] ); ?></div>
228 <div class="elementor-panel-scheme-typography-item-value elementor-control-input-wrapper">
229 <?php if ( 'select' === $option['type'] ) : ?>
230 <select name="<?php echo esc_attr( $option_name ); ?>" class="elementor-panel-scheme-typography-item-field">
231 <?php foreach ( $option['options'] as $field_key => $field_value ) : ?>
232 <option value="<?php echo esc_attr( $field_key ); ?>"><?php echo esc_html( $field_value ); ?></option>
233 <?php endforeach; ?>
234 </select>
235 <?php elseif ( 'font' === $option['type'] ) : ?>
236 <select name="<?php echo esc_attr( $option_name ); ?>" class="elementor-panel-scheme-typography-item-field">
237 <option value=""><?php echo esc_html__( 'Default', 'elementor' ); ?></option>
238 <?php foreach ( Fonts::get_font_groups() as $group_type => $group_label ) : ?>
239 <optgroup label="<?php echo esc_attr( $group_label ); ?>">
240 <?php foreach ( Fonts::get_fonts_by_groups( [ $group_type ] ) as $font_title => $font_type ) : ?>
241 <option value="<?php echo esc_attr( $font_title ); ?>"><?php echo esc_html( $font_title ); ?></option>
242 <?php endforeach; ?>
243 </optgroup>
244 <?php endforeach; ?>
245 </select>
246 <?php elseif ( 'text' === $option['type'] ) : ?>
247 <input name="<?php echo esc_attr( $option_name ); ?>" class="elementor-panel-scheme-typography-item-field" />
248 <?php endif; ?>
249 </div>
250 </div>
251 <?php endforeach; ?>
252 </div>
253 </script>
254
255 <script type="text/template" id="tmpl-elementor-control-responsive-switchers">
256 <div class="elementor-control-responsive-switchers">
257 <div class="elementor-control-responsive-switchers__holder">
258 <#
259 const activeBreakpoints = elementor.config.responsive.activeBreakpoints,
260 devicesForDisplay = elementor.breakpoints.getActiveBreakpointsList( { largeToSmall: true, withDesktop: true } );
261
262 var devices = responsive.devices || devicesForDisplay;
263
264 _.each( devices, function( device ) {
265 // The 'Desktop' label is made accessible via the global config because it needs to be translated.
266 var deviceLabel = 'desktop' === device ? '<?php esc_html_e( 'Desktop', 'elementor' ); ?>' : activeBreakpoints[ device ].label,
267 tooltipDir = "<?php echo is_rtl() ? 'e' : 'w'; ?>";
268 #>
269 <button class="elementor-responsive-switcher tooltip-target elementor-responsive-switcher-{{ device }}" data-device="{{ device }}" data-tooltip="{{ deviceLabel }}" data-tooltip-pos="{{ tooltipDir }}">
270 <i class="{{ elementor.config.responsive.icons_map[ device ] }}" aria-hidden="true"></i>
271 <span class="elementor-screen-only">{{ deviceLabel }}</span>
272 </button>
273 <# } );
274 #>
275 </div>
276 </div>
277 </script>
278
279 <script type="text/template" id="tmpl-elementor-control-dynamic-switcher">
280 <div class="elementor-control-dynamic-switcher elementor-control-unit-1" data-tooltip="<?php echo esc_attr__( 'Dynamic Tags', 'elementor' ); ?>">
281 <i class="eicon-database" aria-hidden="true"></i>
282 <span class="elementor-screen-only"><?php echo esc_html__( 'Dynamic Tags', 'elementor' ); ?></span>
283 </div>
284 </script>
285 <script type="text/template" id="tmpl-elementor-control-element-color-picker">
286 <div class="elementor-control-element-color-picker e-control-tool" data-tooltip="<?php echo esc_attr__( 'Color Sampler', 'elementor' ); ?>">
287 <i class="eicon-eyedropper" aria-hidden="true"></i>
288 <span class="elementor-screen-only"><?php echo esc_html__( 'Color Sampler', 'elementor' ); ?></span>
289 </div>
290 </script>
291
292 <script type="text/template" id="tmpl-elementor-control-dynamic-cover">
293 <div class="elementor-dynamic-cover__settings">
294 <i class="eicon-{{ hasSettings ? 'wrench' : 'database' }}"></i>
295 </div>
296 <div class="elementor-dynamic-cover__title" title="{{{ title + ' ' + content }}}">{{{ title + ' ' + content }}}</div>
297 <# if ( isRemovable ) { #>
298 <div class="elementor-dynamic-cover__remove">
299 <i class="eicon-close-circle"></i>
300 </div>
301 <# } #>
302 </script>
303
304 <script type="text/template" id="tmpl-elementor-dynamic-tags-promo">
305 <div class="elementor-tags-list__teaser">
306 <div class="elementor-tags-list__group-title elementor-tags-list__teaser-title">
307 <i class="eicon-info-circle"></i><?php echo esc_html__( 'Elementor Dynamic Content', 'elementor' ); ?>
308 </div>
309 <div class="elementor-tags-list__teaser-text">
310 <?php echo esc_html__( 'You’re missing out!', 'elementor' ); ?><br />
311 <?php echo esc_html__( 'Get more dynamic capabilities by incorporating dozens of Elementor\'s native dynamic tags.', 'elementor' ); ?>
312 <a href="{{{ promotionUrl }}}" class="elementor-tags-list__teaser-link" target="_blank">
313 <?php echo esc_html__( 'Upgrade', 'elementor' ); ?>
314 </a>
315 </div>
316 </div>
317 </script>
318