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

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