PluginProbe
Elementor Website Builder – more than just a page builder / 3.7.4
Elementor Website Builder – more than just a page builder v3.7.4
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 / admin-templates / new-template.php

new-template.php in Elementor Website Builder – more than just a page builder 3.7.4, at includes/admin-templates/new-template.php

118 lines 4.7 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\Base\Document;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly
8 }
9
10 $document_types = Plugin::$instance->documents->get_document_types();
11
12 $types = [];
13 $lock_configs = [];
14
15 $selected = get_query_var( 'elementor_library_type' );
16
17 foreach ( $document_types as $document_type ) {
18 if ( $document_type::get_property( 'show_in_library' ) ) {
19 /**
20 * @var Document $instance
21 */
22 $instance = new $document_type();
23 $lock_behavior = $document_type::get_lock_behavior_v2();
24
25 $types[ $instance->get_name() ] = $document_type::get_title();
26 $lock_configs[ $instance->get_name() ] = empty( $lock_behavior )
27 ? (object) []
28 : $lock_behavior->get_config();
29 }
30 }
31
32 /**
33 * Create new template library dialog types.
34 *
35 * Filters the dialog types when printing new template dialog.
36 *
37 * @since 2.0.0
38 *
39 * @param array $types Types data.
40 * @param Document $document_types Document types.
41 */
42 $types = apply_filters( 'elementor/template-library/create_new_dialog_types', $types, $document_types );
43 ?>
44 <script type="text/template" id="tmpl-elementor-new-template">
45 <div id="elementor-new-template__description">
46 <div id="elementor-new-template__description__title"><?php
47 printf(
48 /* translators: %1$s Span open tag, %2$s: Span close tag. */
49 esc_html__( 'Templates Help You %1$sWork Efficiently%2$s', 'elementor' ),
50 '<span>',
51 '</span>'
52 );
53 ?></div>
54 <div id="elementor-new-template__description__content"><?php echo esc_html__( 'Use templates to create the different pieces of your site, and reuse them with one click whenever needed.', 'elementor' ); ?></div>
55 <?php
56 /*
57 <div id="elementor-new-template__take_a_tour">
58 <i class="eicon-play-o"></i>
59 <a href="#"><?php echo esc_html__( 'Take The Video Tour', 'elementor\' ); ?></a>
60 </div>
61 */
62 ?>
63 </div>
64 <form id="elementor-new-template__form" action="<?php esc_url( admin_url( '/edit.php' ) ); ?>">
65 <input type="hidden" name="post_type" value="elementor_library">
66 <input type="hidden" name="action" value="elementor_new_post">
67 <?php // PHPCS - a nonce doesn't have to be escaped. ?>
68 <input type="hidden" name="_wpnonce" value="<?php echo wp_create_nonce( 'elementor_action_new_post' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>">
69 <div id="elementor-new-template__form__title"><?php echo esc_html__( 'Choose Template Type', 'elementor' ); ?></div>
70 <div id="elementor-new-template__form__template-type__wrapper" class="elementor-form-field">
71 <label for="elementor-new-template__form__template-type" class="elementor-form-field__label"><?php echo esc_html__( 'Select the type of template you want to work on', 'elementor' ); ?></label>
72 <div class="elementor-form-field__select__wrapper">
73 <?php // Badge will be filled from js. ?>
74 <span id="elementor-new-template__form__template-type-badge" class="e-hidden">
75 <i id="elementor-new-template__form__template-type-badge__icon"></i>
76 <span id="elementor-new-template__form__template-type-badge__text"></span>
77 </span>
78
79 <select id="elementor-new-template__form__template-type" class="elementor-form-field__select" name="template_type" required>
80 <option value=""><?php echo esc_html__( 'Select', 'elementor' ); ?>...</option>
81 <?php
82 foreach ( $types as $value => $type_title ) {
83 printf(
84 '<option value="%1$s" data-lock=\'%2$s\' %3$s>%4$s</option>',
85 esc_attr( $value ),
86 wp_json_encode( $lock_configs[ $value ] ?? (object) [] ),
87 selected( $selected, $value, false ),
88 esc_html( $type_title )
89 );
90 }
91 ?>
92 </select>
93 </div>
94 </div>
95 <?php
96 /**
97 * Template library dialog fields.
98 *
99 * Fires after Elementor template library dialog fields are displayed.
100 *
101 * @since 2.0.0
102 */
103 do_action( 'elementor/template-library/create_new_dialog_fields' );
104 ?>
105
106 <div id="elementor-new-template__form__post-title__wrapper" class="elementor-form-field">
107 <label for="elementor-new-template__form__post-title" class="elementor-form-field__label">
108 <?php echo esc_html__( 'Name your template', 'elementor' ); ?>
109 </label>
110 <div class="elementor-form-field__text__wrapper">
111 <input type="text" placeholder="<?php echo esc_attr__( 'Enter template name (optional)', 'elementor' ); ?>" id="elementor-new-template__form__post-title" class="elementor-form-field__text" name="post_data[post_title]">
112 </div>
113 </div>
114 <button id="elementor-new-template__form__submit" class="elementor-button elementor-button-success"><?php echo esc_html__( 'Create Template', 'elementor' ); ?></button>
115 <a id="elementor-new-template__form__lock_button" class="elementor-button elementor-button-brand e-hidden" target="_blank"><?php // Will be filled from js. ?></a>
116 </form>
117 </script>
118