PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.9
Elementor Website Builder – more than just a page builder v4.0.9
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 4.0.9, at includes/editor-templates/panel.php

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