new-template.php (4046B)
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 14 $selected = get_query_var( 'elementor_library_type' ); 15 16 foreach ( $document_types as $document_type ) { 17 if ( $document_type::get_property( 'show_in_library' ) ) { 18 /** 19 * @var Document $instance 20 */ 21 $instance = new $document_type(); 22 23 $types[ $instance->get_name() ] = $document_type::get_title(); 24 } 25 } 26 27 /** 28 * Create new template library dialog types. 29 * 30 * Filters the dialog types when printing new template dialog. 31 * 32 * @since 2.0.0 33 * 34 * @param array $types Types data. 35 * @param Document $document_types Document types. 36 */ 37 $types = apply_filters( 'elementor/template-library/create_new_dialog_types', $types, $document_types ); 38 ?> 39 <script type="text/template" id="tmpl-elementor-new-template"> 40 <div id="elementor-new-template__description"> 41 <div id="elementor-new-template__description__title"><?php 42 printf( 43 /* translators: %1$s Span open tag, %2$s: Span close tag. */ 44 esc_html__( 'Templates Help You %1$sWork Efficiently%2$s', 'elementor' ), 45 '<span>', 46 '</span>' 47 ); 48 ?></div> 49 <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> 50 <?php 51 /* 52 <div id="elementor-new-template__take_a_tour"> 53 <i class="eicon-play-o"></i> 54 <a href="#"><?php echo esc_html__( 'Take The Video Tour', 'elementor\' ); ?></a> 55 </div> 56 */ 57 ?> 58 </div> 59 <form id="elementor-new-template__form" action="<?php esc_url( admin_url( '/edit.php' ) ); ?>"> 60 <input type="hidden" name="post_type" value="elementor_library"> 61 <input type="hidden" name="action" value="elementor_new_post"> 62 <?php // PHPCS - a nonce doesn't have to be escaped. ?> 63 <input type="hidden" name="_wpnonce" value="<?php echo wp_create_nonce( 'elementor_action_new_post' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>"> 64 <div id="elementor-new-template__form__title"><?php echo esc_html__( 'Choose Template Type', 'elementor' ); ?></div> 65 <div id="elementor-new-template__form__template-type__wrapper" class="elementor-form-field"> 66 <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> 67 <div class="elementor-form-field__select__wrapper"> 68 <select id="elementor-new-template__form__template-type" class="elementor-form-field__select" name="template_type" required> 69 <option value=""><?php echo esc_html__( 'Select', 'elementor' ); ?>...</option> 70 <?php 71 foreach ( $types as $value => $type_title ) { 72 printf( '<option value="%1$s" %2$s>%3$s</option>', esc_attr( $value ), selected( $selected, $value, false ), esc_html( $type_title ) ); 73 } 74 ?> 75 </select> 76 </div> 77 </div> 78 <?php 79 /** 80 * Template library dialog fields. 81 * 82 * Fires after Elementor template library dialog fields are displayed. 83 * 84 * @since 2.0.0 85 */ 86 do_action( 'elementor/template-library/create_new_dialog_fields' ); 87 ?> 88 89 <div id="elementor-new-template__form__post-title__wrapper" class="elementor-form-field"> 90 <label for="elementor-new-template__form__post-title" class="elementor-form-field__label"> 91 <?php echo esc_html__( 'Name your template', 'elementor' ); ?> 92 </label> 93 <div class="elementor-form-field__text__wrapper"> 94 <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]"> 95 </div> 96 </div> 97 <button id="elementor-new-template__form__submit" class="elementor-button elementor-button-success"><?php echo esc_html__( 'Create Template', 'elementor' ); ?></button> 98 </form> 99 </script>