PluginProbe
Elementor Website Builder – more than just a page builder / 3.5.0-beta1
Elementor Website Builder – more than just a page builder v3.5.0-beta1
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 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 All 457 releases
elementor / includes / editor-templates / panel.php

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

298 lines 14.6 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-mode-switcher"></div>
12 <div id="elementor-panel-state-loading">
13 <i class="eicon-loading eicon-animation-spin"></i>
14 </div>
15 <header id="elementor-panel-header-wrapper"></header>
16 <main id="elementor-panel-content-wrapper"></main>
17 <footer id="elementor-panel-footer">
18 <div class="elementor-panel-container"></div>
19 </footer>
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"></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-panel-header">
53 <div id="elementor-panel-header-menu-button" class="elementor-header-button">
54 <i class="elementor-icon eicon-menu-bar tooltip-target" aria-hidden="true" data-tooltip="<?php esc_attr_e( 'Menu', 'elementor' ); ?>"></i>
55 <span class="elementor-screen-only"><?php echo esc_html__( 'Menu', 'elementor' ); ?></span>
56 </div>
57 <div id="elementor-panel-header-title"></div>
58 <div id="elementor-panel-header-add-button" class="elementor-header-button">
59 <i class="elementor-icon eicon-apps tooltip-target" aria-hidden="true" data-tooltip="<?php esc_attr_e( 'Widgets Panel', 'elementor' ); ?>"></i>
60 <span class="elementor-screen-only"><?php echo esc_html__( 'Widgets Panel', 'elementor' ); ?></span>
61 </div>
62 </script>
63
64 <script type="text/template" id="tmpl-elementor-panel-footer-content">
65 <#
66 const keys = {
67 navigator: $e.components.get('navigator').getShortcuts().toggle.formatted,
68 history: $e.components.get( 'panel/history' ).getShortcuts().actions.formatted,
69 responsiveMode: $e.components.get( 'panel' ).getShortcuts()['change-device-mode'].formatted,
70 };
71 #>
72 <div id="elementor-panel-footer-settings" class="elementor-panel-footer-tool elementor-leave-open tooltip-target" data-tooltip="<?php esc_attr_e( 'Settings', 'elementor' ); ?>">
73 <i class="eicon-cog" aria-hidden="true"></i>
74 <span class="elementor-screen-only"><?php printf( esc_html__( '%s Settings', 'elementor' ), esc_html( $document::get_title() ) ); ?></span>
75 </div>
76 <div id="elementor-panel-footer-navigator" class="elementor-panel-footer-tool tooltip-target" data-tooltip-unsafe-html="true" data-tooltip="<?php esc_attr_e( 'Navigator', 'elementor' ); ?><br />{{ keys.navigator }}">
77 <i class="eicon-navigator" aria-hidden="true"></i>
78 <span class="elementor-screen-only"><?php echo esc_html__( 'Navigator', 'elementor' ); ?></span>
79 </div>
80 <div id="elementor-panel-footer-history" class="elementor-panel-footer-tool elementor-leave-open tooltip-target" data-tooltip-unsafe-html="true" data-tooltip="<?php esc_attr_e( 'History', 'elementor' ); ?><br />{{ keys.history }}">
81 <i class="eicon-history" aria-hidden="true"></i>
82 <span class="elementor-screen-only"><?php echo esc_html__( 'History', 'elementor' ); ?></span>
83 </div>
84 <div id="elementor-panel-footer-responsive" class="elementor-panel-footer-tool elementor-toggle-state">
85 <i class="eicon-device-responsive tooltip-target" aria-hidden="true" data-tooltip-unsafe-html="true" data-tooltip="<?php esc_attr_e( 'Responsive Mode', 'elementor' ); ?><br />{{ keys.responsiveMode }}"></i>
86 <span class="elementor-screen-only">
87 <?php echo esc_html__( 'Responsive Mode', 'elementor' ); ?>
88 </span>
89 </div>
90 <div id="elementor-panel-footer-saver-preview" class="elementor-panel-footer-tool tooltip-target" data-tooltip="<?php esc_attr_e( 'Preview Changes', 'elementor' ); ?>">
91 <span id="elementor-panel-footer-saver-preview-label">
92 <i class="eicon-preview-medium" aria-hidden="true"></i>
93 <span class="elementor-screen-only"><?php echo esc_html__( 'Preview Changes', 'elementor' ); ?></span>
94 </span>
95 </div>
96 <div id="elementor-panel-footer-saver-publish" class="elementor-panel-footer-tool">
97 <button id="elementor-panel-saver-button-publish" class="elementor-button elementor-button-success elementor-disabled">
98 <span class="elementor-state-icon">
99 <i class="eicon-loading eicon-animation-spin" aria-hidden="true"></i>
100 </span>
101 <span id="elementor-panel-saver-button-publish-label">
102 <?php echo esc_html__( 'Publish', 'elementor' ); ?>
103 </span>
104 </button>
105 </div>
106 <div id="elementor-panel-footer-saver-options" class="elementor-panel-footer-tool elementor-toggle-state">
107 <button id="elementor-panel-saver-button-save-options" class="elementor-button elementor-button-success tooltip-target elementor-disabled" data-tooltip="<?php esc_attr_e( 'Save Options', 'elementor' ); ?>" data-tooltip-offset="7">
108 <i class="eicon-caret-up" aria-hidden="true"></i>
109 <span class="elementor-screen-only"><?php echo esc_html__( 'Save Options', 'elementor' ); ?></span>
110 </button>
111 <div class="elementor-panel-footer-sub-menu-wrapper">
112 <p class="elementor-last-edited-wrapper">
113 <span class="elementor-state-icon">
114 <i class="eicon-loading eicon-animation-spin" aria-hidden="true"></i>
115 </span>
116 <span class="elementor-last-edited">
117 </span>
118 </p>
119 <div class="elementor-panel-footer-sub-menu">
120 <div id="elementor-panel-footer-sub-menu-item-save-draft" class="elementor-panel-footer-sub-menu-item elementor-disabled">
121 <i class="elementor-icon eicon-save" aria-hidden="true"></i>
122 <span class="elementor-title"><?php echo esc_html__( 'Save Draft', 'elementor' ); ?></span>
123 </div>
124 <div id="elementor-panel-footer-sub-menu-item-save-template" class="elementor-panel-footer-sub-menu-item">
125 <i class="elementor-icon eicon-folder" aria-hidden="true"></i>
126 <span class="elementor-title"><?php echo esc_html__( 'Save as Template', 'elementor' ); ?></span>
127 </div>
128 </div>
129 </div>
130 </div>
131 </script>
132
133 <script type="text/template" id="tmpl-elementor-mode-switcher-content">
134 <input id="elementor-mode-switcher-preview-input" type="checkbox">
135 <label for="elementor-mode-switcher-preview-input" id="elementor-mode-switcher-preview">
136 <i class="eicon" aria-hidden="true" title="<?php esc_attr_e( 'Hide Panel', 'elementor' ); ?>"></i>
137 <span class="elementor-screen-only"><?php echo esc_html__( 'Hide Panel', 'elementor' ); ?></span>
138 </label>
139 </script>
140
141 <script type="text/template" id="tmpl-editor-content">
142 <div class="elementor-panel-navigation">
143 <# _.each( elementData.tabs_controls, function( tabTitle, tabSlug ) {
144 if ( 'content' !== tabSlug && ! elementor.userCan( 'design' ) ) {
145 return;
146 }
147 $e.bc.ensureTab( 'panel/editor', tabSlug );
148 #>
149 <div class="elementor-component-tab elementor-panel-navigation-tab elementor-tab-control-{{ tabSlug }}" data-tab="{{ tabSlug }}">
150 <a href="#">{{{ tabTitle }}}</a>
151 </div>
152 <# } ); #>
153 </div>
154 <# if ( elementData.reload_preview ) { #>
155 <div class="elementor-update-preview">
156 <div class="elementor-update-preview-title"><?php echo esc_html__( 'Update changes to page', 'elementor' ); ?></div>
157 <div class="elementor-update-preview-button-wrapper">
158 <button class="elementor-update-preview-button elementor-button elementor-button-success"><?php echo esc_html__( 'Apply', 'elementor' ); ?></button>
159 </div>
160 </div>
161 <# } #>
162 <div id="elementor-controls"></div>
163 <# if ( elementData.help_url ) { #>
164 <div id="elementor-panel__editor__help">
165 <a id="elementor-panel__editor__help__link" href="{{ elementData.help_url }}" target="_blank">
166 <?php echo esc_html__( 'Need Help', 'elementor' ); ?>
167 <i class="eicon-help-o"></i>
168 </a>
169 </div>
170 <# } #>
171 </script>
172
173 <script type="text/template" id="tmpl-elementor-panel-schemes-disabled">
174 <img class="elementor-nerd-box-icon" src="<?php Utils::print_unescaped_internal_string( ELEMENTOR_ASSETS_URL . 'images/information.svg' ); ?>" />
175 <div class="elementor-nerd-box-title">{{{ '<?php echo esc_html__( '%s are disabled', 'elementor' ); // phpcs:ignore WordPress.WP.I18n.MissingTranslatorsComment ?>'.replace( '%s', disabledTitle ) }}}</div>
176 <div class="elementor-nerd-box-message"><?php
177 printf(
178 /* translators: %1$s Link open tag, %2$s: Link close tag. */
179 esc_html__( 'You can enable it from the %1$sElementor settings page%2$s.', 'elementor' ),
180 '<a href="' . esc_url( Settings::get_url() ) . '" target="_blank">',
181 '</a>'
182 );
183 ?></div>
184 </script>
185
186 <script type="text/template" id="tmpl-elementor-panel-scheme-color-item">
187 <div class="elementor-panel-scheme-color-picker-placeholder"></div>
188 <div class="elementor-panel-scheme-color-title">{{{ title }}}</div>
189 </script>
190
191 <script type="text/template" id="tmpl-elementor-panel-scheme-typography-item">
192 <div class="elementor-panel-heading">
193 <div class="elementor-panel-heading-toggle">
194 <i class="eicon" aria-hidden="true"></i>
195 </div>
196 <div class="elementor-panel-heading-title">{{{ title }}}</div>
197 </div>
198 <div class="elementor-panel-scheme-typography-items elementor-panel-box-content">
199 <?php
200 $scheme_fields_keys = Group_Control_Typography::get_scheme_fields_keys();
201
202 $typography_group = Plugin::$instance->controls_manager->get_control_groups( 'typography' );
203 $typography_fields = $typography_group->get_fields();
204
205 $scheme_fields = array_intersect_key( $typography_fields, array_flip( $scheme_fields_keys ) );
206
207 foreach ( $scheme_fields as $option_name => $option ) :
208 ?>
209 <div class="elementor-panel-scheme-typography-item elementor-control elementor-control-type-select">
210 <div class="elementor-panel-scheme-item-title elementor-control-title"><?php echo esc_html( $option['label'] ); ?></div>
211 <div class="elementor-panel-scheme-typography-item-value elementor-control-input-wrapper">
212 <?php if ( 'select' === $option['type'] ) : ?>
213 <select name="<?php echo esc_attr( $option_name ); ?>" class="elementor-panel-scheme-typography-item-field">
214 <?php foreach ( $option['options'] as $field_key => $field_value ) : ?>
215 <option value="<?php echo esc_attr( $field_key ); ?>"><?php echo esc_html( $field_value ); ?></option>
216 <?php endforeach; ?>
217 </select>
218 <?php elseif ( 'font' === $option['type'] ) : ?>
219 <select name="<?php echo esc_attr( $option_name ); ?>" class="elementor-panel-scheme-typography-item-field">
220 <option value=""><?php echo esc_html__( 'Default', 'elementor' ); ?></option>
221 <?php foreach ( Fonts::get_font_groups() as $group_type => $group_label ) : ?>
222 <optgroup label="<?php echo esc_attr( $group_label ); ?>">
223 <?php foreach ( Fonts::get_fonts_by_groups( [ $group_type ] ) as $font_title => $font_type ) : ?>
224 <option value="<?php echo esc_attr( $font_title ); ?>"><?php echo esc_html( $font_title ); ?></option>
225 <?php endforeach; ?>
226 </optgroup>
227 <?php endforeach; ?>
228 </select>
229 <?php elseif ( 'text' === $option['type'] ) : ?>
230 <input name="<?php echo esc_attr( $option_name ); ?>" class="elementor-panel-scheme-typography-item-field" />
231 <?php endif; ?>
232 </div>
233 </div>
234 <?php endforeach; ?>
235 </div>
236 </script>
237
238 <script type="text/template" id="tmpl-elementor-control-responsive-switchers">
239 <div class="elementor-control-responsive-switchers">
240 <div class="elementor-control-responsive-switchers__holder">
241 <#
242 const activeBreakpoints = elementor.config.responsive.activeBreakpoints,
243 devicesForDisplay = elementor.breakpoints.getActiveBreakpointsList( { largeToSmall: true, withDesktop: true } );
244
245 var devices = responsive.devices || devicesForDisplay;
246
247 _.each( devices, function( device ) {
248 // The 'Desktop' label is made accessible via the global config because it needs to be translated.
249 var deviceLabel = 'desktop' === device ? '<?php esc_html_e( 'Desktop', 'elementor' ); ?>' : activeBreakpoints[ device ].label,
250 tooltipDir = "<?php echo is_rtl() ? 'e' : 'w'; ?>";
251 #>
252 <a class="elementor-responsive-switcher tooltip-target elementor-responsive-switcher-{{ device }}" data-device="{{ device }}" data-tooltip="{{ deviceLabel }}" data-tooltip-pos="{{ tooltipDir }}">
253 <i class="{{ elementor.config.responsive.icons_map[ device ] }}"></i>
254 </a>
255 <# } );
256 #>
257 </div>
258 </div>
259 </script>
260
261 <script type="text/template" id="tmpl-elementor-control-dynamic-switcher">
262 <div class="elementor-control-dynamic-switcher elementor-control-unit-1" data-tooltip="<?php echo esc_html__( 'Dynamic Tags', 'elementor' ); ?>">
263 <i class="eicon-database"></i>
264 </div>
265 </script>
266 <script type="text/template" id="tmpl-elementor-control-element-color-picker">
267 <div class="elementor-control-element-color-picker e-control-tool" data-tooltip="<?php echo esc_attr__( 'Color Sampler', 'elementor' ); ?>">
268 <i class="eicon-eyedropper"></i>
269 </div>
270 </script>
271
272 <script type="text/template" id="tmpl-elementor-control-dynamic-cover">
273 <div class="elementor-dynamic-cover__settings">
274 <i class="eicon-{{ hasSettings ? 'wrench' : 'database' }}"></i>
275 </div>
276 <div class="elementor-dynamic-cover__title" title="{{{ title + ' ' + content }}}">{{{ title + ' ' + content }}}</div>
277 <# if ( isRemovable ) { #>
278 <div class="elementor-dynamic-cover__remove">
279 <i class="eicon-close-circle"></i>
280 </div>
281 <# } #>
282 </script>
283
284 <script type="text/template" id="tmpl-elementor-dynamic-tags-promo">
285 <div class="elementor-tags-list__teaser">
286 <div class="elementor-tags-list__group-title elementor-tags-list__teaser-title">
287 <i class="eicon-info-circle"></i><?php echo esc_html__( 'Elementor Dynamic Content', 'elementor' ); ?>
288 </div>
289 <div class="elementor-tags-list__teaser-text">
290 <?php echo esc_html__( 'You’re missing out!', 'elementor' ); ?><br />
291 <?php echo esc_html__( 'Get more dynamic capabilities by incorporating dozens of Elementor\'s native dynamic tags.', 'elementor' ); ?>
292 <a href="{{{ promotionUrl }}}" class="elementor-tags-list__teaser-link" target="_blank">
293 <?php echo esc_html__( 'See it in action', 'elementor' ); ?>
294 </a>
295 </div>
296 </div>
297 </script>
298