function et_pb_pagebuilder_meta_box() { global $typenow; do_action('et_pb_before_page_builder'); echo '<div id="et_pb_hidden_editor">'; wp_editor('', 'et_pb_content_new', array('media_buttons' => true)); echo '</div>'; printf('<div id="et_pb_main_container" class="post-type-%1$s"></div>', esc_attr($typenow)); // App Template printf('<script type="text/template" id="et-builder-app-template"> <div id="et_pb_layout_controls"> <a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-save" title="%1$s"> <span>%1$s</span> </a> <a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-load" title="%2$s"> <span>%2$s</span> </a> <a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-clear" title="%3$s"> <span>%3$s</span> </a> </div> </script>', esc_html__('Save to Library', 'et_builder'), esc_html__('Load From Library', 'et_builder'), esc_html__('Clear Layout', 'et_builder')); // Section Template $settings_controls = sprintf('<div class="et-pb-controls"> <%% if ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type ) { %%> <a href="#" class="et-pb-settings et-pb-settings-section" title="%1$s"><span>%1$s</span></a> <%% } %%> <%% if ( typeof et_pb_template_type === \'undefined\' || ( \'section\' !== et_pb_template_type && \'row\' !== et_pb_template_type && \'module\' !== et_pb_template_type ) ) { %%> <a href="#" class="et-pb-clone et-pb-clone-section" title="%2$s"><span>%2$s</span></a> <a href="#" class="et-pb-remove" title="%3$s"><span>%3$s</span></a> <%% } %%> </div>', esc_html__('Settings', 'et_builder'), esc_html__('Clone Section', 'et_builder'), esc_html__('Delete Section', 'et_builder')); $settings_add_controls = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' || ( \'section\' !== et_pb_template_type && \'row\' !== et_pb_template_type && \'module\' !== et_pb_template_type ) ) { %%> <a href="#" class="et-pb-section-add"> <span class="et-pb-section-add-main">%1$s</span> <span class="et-pb-section-add-fullwidth">%2$s</span> <span class="et-pb-section-add-specialty">%3$s</span> <span class="et-pb-section-add-saved">%4$s</span> </a> <%% } %%>', esc_html__('Standard Section', 'et_builder'), esc_html__('Fullwidth Section', 'et_builder'), esc_html__('Specialty Section', 'et_builder'), esc_html__('Add From Library', 'et_builder')); printf('<script type="text/template" id="et-builder-section-template"> %1$s <div class="et-pb-section-content et-pb-data-cid" data-cid="<%%= cid %%>" data-skip="<%%= typeof( et_pb_skip_module ) === \'undefined\' ? \'false\' : \'true\' %%>"> </div> %2$s </script>', apply_filters('et_builder_section_settings_controls', $settings_controls), apply_filters('et_builder_section_add_controls', $settings_add_controls)); // Row Template $settings = sprintf('<div class="et-pb-controls"> <%% if ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' ) { %%> <a href="#" class="et-pb-settings et-pb-settings-row" title="%1$s"><span>%1$s</span></a> <%% } %%> <%% if ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type ) { %%> <a href="#" class="et-pb-clone et-pb-clone-row" title="%2$s"><span>%2$s</span></a> <a href="#" class="et-pb-remove" title="%3$s"><span>%3$s</span></a> <%% } if ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' ) { %%> <a href="#" class="et-pb-change-structure" title="%4$s"><span>%4$s</span></a> <%% } %%> </div>', esc_html__('Settings', 'et_builder'), esc_html__('Clone Row', 'et_builder'), esc_html__('Delete Row', 'et_builder'), esc_html__('Change Structure', 'et_builder')); $row_class = 'class="et-pb-row-content et-pb-data-cid <%= typeof et_pb_template_type !== \'undefined\' && \'module\' === et_pb_template_type ? \' et_pb_hide_insert\' : \'\' %>"'; $data_skip = 'data-skip="<%= typeof( et_pb_skip_module ) === \'undefined\' ? \'false\' : \'true\' %>"'; $add_row_button = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type ) { %%> <a href="#" class="et-pb-row-add"> <span>%1$s</span> </a> <%% } %%>', esc_html__('Add Row', 'et_builder')); printf('<script type="text/template" id="et-builder-row-template"> %1$s <div data-cid="<%%= cid %%>" %2$s %3$s> <div class="et-pb-row-container"></div> <a href="#" class="et-pb-insert-column"> <span>%4$s</span> </a> </div> %5$s </script>', apply_filters('et_builder_row_settings_controls', $settings), $row_class, $data_skip, esc_html__('Insert Column(s)', 'et_builder'), $add_row_button); // Module Block Template $clone_button = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' ) { %%> <a href="#" class="et-pb-clone et-pb-clone-module" title="%1$s"> <span>%1$s</span> </a> <%% } %%>', esc_html__('Clone Module', 'et_builder')); $remove_button = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' ) { %%> <a href="#" class="et-pb-remove" title="%1$s"> <span>%1$s</span> </a> <%% } %%>', esc_html__('Remove Module', 'et_builder')); printf('<script type="text/template" id="et-builder-block-module-template"> <a href="#" class="et-pb-settings" title="%1$s"> <span>%1$s</span> </a> %2$s %3$s <span class="et-pb-module-title"><%%= admin_label.replace( /%%22/g, """ ) %%></span> </script>', esc_html__('Module Settings', 'et_builder'), $clone_button, $remove_button); // Modal Template $save_template_button = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' ) { %%> <a href="#" class="et-pb-modal-save-template button"> <span>%1$s</span> </a> <%% } %%>', esc_html__('Save & Add To Library', 'et_builder')); printf('<script type="text/template" id="et-builder-modal-template"> <div class="et-pb-modal-container"> <a href="#" class="et-pb-modal-close"> <span>%1$s</span> </a> <%% if ( ! ( typeof open_view !== \'undefined\' && open_view === \'column_specialty_settings\' ) && typeof type !== \'undefined\' && ( type === \'module\' || type === \'section\' || type === \'row_inner\' || ( type === \'row\' && typeof open_view === \'undefined\' ) ) ) { %%> <div class="et-pb-modal-bottom-container"> %2$s <a href="#" class="et-pb-modal-save button button-primary"> <span>%3$s</span> </a> </div> <%% } %%> </div> </script>', esc_html__('Cancel', 'et_builder'), $save_template_button, esc_html__('Save & Exit', 'et_builder')); // Column Settings Template $columns_number = '<% if ( view.model.attributes.specialty_columns === 3 ) { %> 3 <% } else { %> 2 <% } %>'; $data_specialty_columns = sprintf('<%% if ( typeof view !== \'undefined\' && typeof view.model.attributes.specialty_columns !== \'undefined\' ) { %%> data-specialty_columns="%1$s" <%% } %%>', $columns_number); printf('<script type="text/template" id="et-builder-column-settings-template"> <h3 class="et-pb-settings-heading" data-current_row="<%%= cid %%>">%1$s</h3> <%% if ( ( typeof change_structure === \'undefined\' || \'true\' !== change_structure ) && ( typeof et_pb_specialty === \'undefined\' || et_pb_specialty !== \'on\' ) ) { %%> <ul class="et-pb-options-tabs-links et-pb-saved-modules-switcher" %2$s> <li class="et-pb-saved-module et-pb-options-tabs-links-active" data-open_tab="et-pb-new-modules-tab" data-content_loaded="true"> <a href="#">%3$s</a> </li> <li class="et-pb-saved-module" data-open_tab="et-pb-saved-modules-tab"> <a href="#">%4$s</a> </li> </ul> <%% } %%> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-new-modules-tab active-container"> <ul class="et-pb-column-layouts"> %5$s </ul> </div> <%% if ( ( typeof change_structure === \'undefined\' || \'true\' !== change_structure ) && ( typeof et_pb_specialty === \'undefined\' || et_pb_specialty !== \'on\' ) ) { %%> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab"></div> <%% } %%> </script>', esc_html__('Insert Columns', 'et_builder'), $data_specialty_columns, esc_html__('New Row', 'et_builder'), esc_html__('Add From Library', 'et_builder'), et_builder_get_columns_layout()); // "Add Module" Template $fullwidth_class = '<% if ( typeof module.fullwidth_only !== \'undefined\' && module.fullwidth_only === \'on\' ) { %> et_pb_fullwidth_only_module<% } %>'; printf('<script type="text/template" id="et-builder-modules-template"> <h3 class="et-pb-settings-heading">%1$s</h3> <ul class="et-pb-options-tabs-links et-pb-saved-modules-switcher"> <li class="et-pb-new-module et-pb-options-tabs-links-active" data-open_tab="et-pb-all-modules-tab"> <a href="#">%2$s</a> </li> <li class="et-pb-saved-module" data-open_tab="et-pb-saved-modules-tab"> <a href="#">%3$s</a> </li> </ul> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-all-modules-tab active-container"> <ul class="et-pb-all-modules"> <%% _.each(modules, function(module) { %%> <%% if ( "et_pb_row" !== module.label && "et_pb_section" !== module.label && "et_pb_column" !== module.label && "et_pb_row_inner" !== module.label ) { %%> <li class="<%%= module.label %%>%4$s"> <span class="et_module_title"><%%= module.title %%></span> </li> <%% } %%> <%% }); %%> </ul> </div> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab"></div> </script>', esc_html__('Insert Module', 'et_builder'), esc_html__('New Module', 'et_builder'), esc_html__('Add From Library', 'et_builder'), $fullwidth_class); // Load Layout Template printf('<script type="text/template" id="et-builder-load_layout-template"> <h3 class="et-pb-settings-heading">%1$s</h3> <%% if ( typeof display_switcher !== \'undefined\' && display_switcher === \'on\' ) { %%> <ul class="et-pb-options-tabs-links et-pb-saved-modules-switcher"> <li class="et-pb-new-module et-pb-options-tabs-links-active" data-open_tab="et-pb-all-modules-tab"> <a href="#">%2$s</a> </li> <li class="et-pb-saved-module" data-open_tab="et-pb-saved-modules-tab"> <a href="#">%3$s</a> </li> </ul> <%% } %%> <%% if ( typeof display_switcher !== \'undefined\' && display_switcher === \'on\' ) { %%> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-all-modules-tab active-container"></div> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab" style="display: none;"></div> <%% } else { %%> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab active-container"></div> <%% } %%> </script>', esc_html__('Load Layout', 'et_builder'), esc_html__('Predefined Layouts', 'et_builder'), esc_html__('Add From Library', 'et_builder')); // Column Template printf('<script type="text/template" id="et-builder-column-template"> <a href="#" class="et-pb-insert-module<%%= typeof et_pb_template_type === \'undefined\' || \'module\' !== et_pb_template_type ? \'\' : \' et_pb_hidden_button\' %%>"> <span>%1$s</span> </a> </script>', esc_html__('Insert Module(s)', 'et_builder')); // Advanced Settings Buttons Module printf('<script type="text/template" id="et-builder-advanced-setting"> <a href="#" class="et-pb-advanced-setting-remove"> <span>%1$s</span> </a> <a href="#" class="et-pb-advanced-setting-options"> <span>%2$s</span> </a> <a href="#" class="et-pb-clone et-pb-advanced-setting-clone"> <span>%3$s</span> </a> </script>', esc_html__('Delete', 'et_builder'), esc_html__('Settings', 'et_builder'), esc_html__('Clone Module', 'et_builder')); // Advanced Settings Modal Buttons Template printf('<script type="text/template" id="et-builder-advanced-setting-edit"> <div class="et-pb-modal-container"> <a href="#" class="et-pb-modal-close"> <span>%1$s</span> </a> <div class="et-pb-modal-bottom-container"> <a href="#" class="et-pb-modal-save"> <span>%2$s</span> </a> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_html__('Save', 'et_builder')); // "Deactivate Builder" Modal Message Template printf('<script type="text/template" id="et-builder-prompt-modal-deactivate_builder-text"> <h3>%1$s</h3> <p>%2$s</p> <p>%3$s</p> </script>', esc_html__('Disable Builder', 'et_builder'), esc_html__('All content created in the Divi Builder will be lost. Previous content will be restored.', 'et_builder'), esc_html__('Do you wish to proceed?', 'et_builder')); // "Clear Layout" Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal-clear_layout-text"> <h3>%1$s</h3> <p>%2$s</p> <p>%3$s</p> </script>', esc_html__('Clear Layout', 'et_builder'), esc_html__('All of your current page content will be lost.', 'et_builder'), esc_html__('Do you wish to proceed?', 'et_builder')); // "Reset Advanced Settings" Modal Template printf('<script type="text/template" id="et-builder-prompt-modal-reset_advanced_settings-text"> <p>%1$s</p> <p>%2$s</p> </script>', esc_html__('All advanced module settings in will be lost.', 'et_builder'), esc_html__('Do you wish to proceed?', 'et_builder')); // "Save Layout" Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal-save_layout"> <div class="et_pb_prompt_modal"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s</span> </a> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%2$s" /> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_html__('Save', 'et_builder')); // "Save Layout" Modal Content Template printf('<script type="text/template" id="et-builder-prompt-modal-save_layout-text"> <h3>%1$s</h3> <p>%2$s</p> <label>%3$s</label> <input type="text" value="" id="et_pb_new_layout_name" class="regular-text" /> </script>', esc_html__('Save To Library', 'et_builder'), esc_html__('Save your current page to the Divi Library for later use.', 'et_builder'), esc_html__('Layout Name:', 'et_builder')); // "Save Template" Modal Window Layout printf('<script type="text/template" id="et-builder-prompt-modal-save_template"> <div class="et_pb_prompt_modal et_pb_prompt_modal_save_library"> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%1$s" /> </div> </div> </script>', esc_attr__('Save And Add To Library', 'et_builder')); // "Save Template" Content Layout $layout_categories = get_terms('layout_category', array('hide_empty' => false)); $categories_output = sprintf('<div class="et-pb-option"><label>%1$s</label>', __('Add To Categories:', 'et_builder')); if (is_array($layout_categories) && !empty($layout_categories)) { $categories_output .= '<div class="et-pb-option-container layout_cats_container">'; foreach ($layout_categories as $category) { $categories_output .= sprintf('<label>%1$s<input type="checkbox" value="%2$s"/></label>', esc_html($category->name), esc_html($category->term_id)); } $categories_output .= '</div></div>'; } $categories_output .= sprintf(' <div class="et-pb-option"> <label>%1$s:</label> <div class="et-pb-option-container"> <input type="text" value="" id="et_pb_new_cat_name" class="regular-text" /> </div> </div>', esc_html__('Create New Category', 'et_builder')); printf('<script type="text/template" id="et-builder-prompt-modal-save_template-text"> <div class="et-pb-main-settings"> <p>%1$s</p> <div class="et-pb-option"> <label>%2$s:</label> <div class="et-pb-option-container"> <input type="text" value="" id="et_pb_new_template_name" class="regular-text" /> </div> </div> <%% if ( \'module\' === module_type ) { %%> <div class="et-pb-option"> <label>%3$s:</label> <div class="et-pb-option-container et_pb_select_module_tabs"> <label> %4$s <input type="checkbox" value="general" id="et_pb_template_general" checked /> </label> <label> %5$s <input type="checkbox" value="advanced" id="et_pb_template_advanced" checked /> </label> <label> %6$s <input type="checkbox" value="css" id="et_pb_template_css" checked /> </label> <p class="et_pb_error_message_save_template" style="display: none;"> %7$s </p> </div> </div> <%% } %%> <%% if ( \'global\' !== is_global && \'global\' !== is_global_child ) { %%> <div class="et-pb-option"> <label>%8$s</label> <div class="et-pb-option-container"> <label> %9$s <input type="checkbox" value="" id="et_pb_template_global" /> </label> </div> </div> <%% } %%> %10$s </div> </script>', esc_html__('Here you can save the current item and add it to your Divi Library for later use as well.', 'et_builder'), esc_html__('Template Name', 'et_builder'), esc_html__('Selective Sync', 'et_builder'), esc_html__('Include General settings', 'et_builder'), esc_html__('Include Advanced Design settings', 'et_builder'), esc_html__('Include Custom CSS', 'et_builder'), esc_html__('Please select at least 1 tab to save', 'et_builder'), esc_html__('Save as Global:', 'et_builder'), esc_html__('Make this a global item', 'et_builder'), $categories_output); // Prompt Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal"> <div class="et_pb_prompt_modal"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s<span> </a> <div class="et_pb_prompt_buttons"> <a href="#" class="et_pb_prompt_proceed">%2$s</a> </div> </div> </script>', esc_html__('No', 'et_builder'), esc_html__('Yes', 'et_builder')); // "Add Specialty Section" Button Template printf('<script type="text/template" id="et-builder-add-specialty-section-button"> <a href="#" class="et-pb-section-add-specialty et-pb-add-specialty-template" data-is_template="true">%1$s</a> </script>', esc_html__('Add Specialty Section', 'et_builder')); // Saved Entry Template echo '<script type="text/template" id="et-builder-saved-entry"> <a class="et_pb_saved_entry_item"><%= title %></a> </script>'; do_action('et_pb_after_page_builder'); }
function et_pb_pagebuilder_meta_box() { global $typenow; do_action('et_pb_before_page_builder'); echo '<div id="et_pb_hidden_editor">'; wp_editor('', 'et_pb_content_new', array('media_buttons' => true)); echo '</div>'; printf('<div id="et_pb_main_container" class="post-type-%1$s%2$s"></div>', esc_attr($typenow), !et_pb_is_allowed('move_module') ? ' et-pb-disable-sort' : ''); $rename_module_menu = sprintf('<%% if ( this.hasOption( "rename" ) ) { %%> <li><a class="et-pb-right-click-rename" href="#">%1$s</a></li> <%% } %%>', esc_html__('Rename', 'et_builder')); $copy_module_menu = sprintf('<%% if ( this.hasOption( "copy" ) ) { %%> <li><a class="et-pb-right-click-copy" href="#">%1$s</a></li> <%% } %%>', esc_html__('Copy', 'et_builder')); $paste_after_menu = sprintf('<%% if ( this.hasOption( "paste-after" ) ) { %%> <li><a class="et-pb-right-click-paste-after" href="#">%1$s</a></li> <%% } %%>', esc_html__('Paste After', 'et_builder')); $paste_menu_item = sprintf('<%% if ( this.hasOption( "paste-column" ) ) { %%> <li><a class="et-pb-right-click-paste-column" href="#">%1$s</a></li> <%% } %%>', esc_html__('Paste', 'et_builder')); $paste_app_menu_item = sprintf('<%% if ( this.hasOption( "paste-app" ) ) { %%> <li><a class="et-pb-right-click-paste-app" href="#">%1$s</a></li> <%% } %%>', esc_html__('Paste', 'et_builder')); $save_to_lib_menu = sprintf('<%% if ( this.hasOption( "save-to-library") ) { %%> <li><a class="et-pb-right-click-save-to-library" href="#">%1$s</a></li> <%% } %%>', esc_html__('Save to Library', 'et_builder')); $lock_unlock_menu = sprintf('<%% if ( this.hasOption( "lock" ) ) { %%> <li><a class="et-pb-right-click-lock" href="#"><span class="unlock">%1$s</span><span class="lock">%2$s</span></a></li> <%% } %%>', esc_html__('Unlock', 'et_builder'), esc_html__('Lock', 'et_builder')); $enable_disable_menu = sprintf('<%% if ( this.hasOption( "disable" ) ) { %%> <li><a class="et-pb-right-click-disable" href="#"><span class="enable">%1$s</span><span class="disable">%2$s</span></a></li> <%% } %%>', esc_html__('Enable', 'et_builder'), esc_html__('Disable', 'et_builder')); // Right click options Template printf('<script type="text/template" id="et-builder-right-click-controls-template"> <ul class="options"> <%% if ( "module" !== this.options.model.attributes.type || _.contains( %13$s, this.options.model.attributes.module_type ) ) { %%> %1$s %8$s <%% if ( this.hasOption( "undo" ) ) { %%> <li><a class="et-pb-right-click-undo" href="#">%9$s</a></li> <%% } %%> <%% if ( this.hasOption( "redo" ) ) { %%> <li><a class="et-pb-right-click-redo" href="#">%10$s</a></li> <%% } %%> %2$s %3$s <%% if ( this.hasOption( "collapse" ) ) { %%> <li><a class="et-pb-right-click-collapse" href="#"><span class="expand">%4$s</span><span class="collapse">%5$s</span></a></li> <%% } %%> %6$s %7$s %12$s %11$s <%% } %%> <%% if ( this.hasOption( "preview" ) ) { %%> <li><a class="et-pb-right-click-preview" href="#">%14$s</a></li> <%% } %%> </ul> </script>', et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')) ? $rename_module_menu : '', et_pb_is_allowed('disable_module') ? $enable_disable_menu : '', et_pb_is_allowed('lock_module') ? $lock_unlock_menu : '', esc_html__('Expand', 'et_builder'), esc_html__('Collapse', 'et_builder'), et_pb_is_allowed('add_module') ? $copy_module_menu : '', et_pb_is_allowed('add_module') ? $paste_after_menu : '', et_pb_is_allowed('divi_library') && et_pb_is_allowed('save_library') ? $save_to_lib_menu : '', esc_html__('Undo', 'et_builder'), esc_html__('Redo', 'et_builder'), et_pb_is_allowed('add_module') ? $paste_menu_item : '', et_pb_is_allowed('add_module') ? $paste_app_menu_item : '', et_pb_allowed_modules_list(), esc_html__('Preview', 'et_builder')); // "Rename Module Admin Label" Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal-rename_admin_label"> <div class="et_pb_prompt_modal"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s</span> </a> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%2$s" /> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_attr__('Save', 'et_builder')); // "Rename Module Admin Label" Modal Content Template printf('<script type="text/template" id="et-builder-prompt-modal-rename_admin_label-text"> <h3>%1$s</h3> <p>%2$s</p> <input type="text" value="" id="et_pb_new_admin_label" class="regular-text" /> </script>', esc_html__('Rename', 'et_builder'), esc_html__('Enter a new name for this module', 'et_builder')); $save_to_lib_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-save" title="%1$s"> <span>%2$s</span> </a>', esc_attr__('Save to Library', 'et_builder'), esc_html__('Save to Library', 'et_builder')); $load_from_lib_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-load" title="%1$s"> <span>%2$s</span> </a>', esc_attr__('Load From Library', 'et_builder'), esc_html__('Load From Library', 'et_builder')); $clear_layout_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-clear" title="%1$s"> <span>%2$s</span> </a>', esc_attr__('Clear Layout', 'et_builder'), esc_html__('Clear Layout', 'et_builder')); // App Template printf('<script type="text/template" id="et-builder-app-template"> <div id="et_pb_layout_controls"> %1$s %2$s %3$s <a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-history" title="%8$s"> <span class="icon"></span><span class="label">%9$s</span> </a> <a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-redo" title="%4$s"> <span class="icon"></span><span class="label">%5$s</span> </a> <a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-undo" title="%6$s"> <span class="icon"></span><span class="label">%7$s</span> </a> </div> <div id="et-pb-histories-visualizer-overlay"></div> <ol id="et-pb-histories-visualizer"></ol> </script>', et_pb_is_allowed('divi_library') && et_pb_is_allowed('save_library') ? $save_to_lib_button : '', et_pb_is_allowed('divi_library') && et_pb_is_allowed('load_layout') && et_pb_is_allowed('add_library') && et_pb_is_allowed('add_module') ? $load_from_lib_button : '', et_pb_is_allowed('add_module') ? $clear_layout_button : '', esc_attr__('Redo', 'et_builder'), esc_html__('Redo', 'et_builder'), esc_attr__('Undo', 'et_builder'), esc_html__('Undo', 'et_builder'), esc_attr__('See History', 'et_builder'), esc_html__('See History', 'et_builder')); $section_settings_button = sprintf('<%% if ( ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type || \'\' === et_pb_template_type )%3$s ) { %%> <a href="#" class="et-pb-settings et-pb-settings-section" title="%1$s"><span>%2$s</span></a> <%% } %%>', esc_attr__('Settings', 'et_builder'), esc_html__('Settings', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' && typeof et_pb_global_module === "undefined"' : ''); $section_clone_button = sprintf('<a href="#" class="et-pb-clone et-pb-clone-section" title="%1$s"><span>%2$s</span></a>', esc_attr__('Clone Section', 'et_builder'), esc_html__('Clone Section', 'et_builder')); $section_remove_button = sprintf('<a href="#" class="et-pb-remove et-pb-remove-section" title="%1$s"><span>%2$s</span></a>', esc_attr__('Delete Section', 'et_builder'), esc_html__('Delete Section', 'et_builder')); $section_unlock_button = sprintf('<a href="#" class="et-pb-unlock" title="%1$s"><span>%2$s</span></a>', esc_attr__('Unlock Section', 'et_builder'), esc_html__('Unlock Section', 'et_builder')); // Section Template $settings_controls = sprintf('<div class="et-pb-controls"> %1$s <%% if ( typeof et_pb_template_type === \'undefined\' || ( \'section\' !== et_pb_template_type && \'row\' !== et_pb_template_type && \'module\' !== et_pb_template_type ) ) { %%> %2$s %3$s <%% } %%> <a href="#" class="et-pb-expand" title="%4$s"><span>%5$s</span></a> %6$s </div>', et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')) ? $section_settings_button : '', et_pb_is_allowed('add_module') ? $section_clone_button : '', et_pb_is_allowed('add_module') ? $section_remove_button : '', esc_attr__('Expand Section', 'et_builder'), esc_html__('Expand Section', 'et_builder'), et_pb_is_allowed('lock_module') ? $section_unlock_button : ''); $add_from_lib_section = sprintf('<span class="et-pb-section-add-saved">%1$s</span>', esc_html__('Add From Library', 'et_builder')); $settings_add_controls = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' || ( \'section\' !== et_pb_template_type && \'row\' !== et_pb_template_type && \'module\' !== et_pb_template_type ) ) { %%> <a href="#" class="et-pb-section-add"> <span class="et-pb-section-add-main">%1$s</span> <span class="et-pb-section-add-fullwidth">%2$s</span> <span class="et-pb-section-add-specialty">%3$s</span> %4$s </a> <%% } %%>', esc_html__('Standard Section', 'et_builder'), esc_html__('Fullwidth Section', 'et_builder'), esc_html__('Specialty Section', 'et_builder'), et_pb_is_allowed('divi_library') && et_pb_is_allowed('add_library') ? $add_from_lib_section : ''); printf('<script type="text/template" id="et-builder-section-template"> <div class="et-pb-right-click-trigger-overlay"></div> %1$s <div class="et-pb-section-content et-pb-data-cid%3$s%4$s" data-cid="<%%= cid %%>" data-skip="<%%= typeof( et_pb_skip_module ) === \'undefined\' ? \'false\' : \'true\' %%>"> </div> %2$s <div class="et-pb-locked-overlay et-pb-locked-overlay-section"></div> <span class="et-pb-section-title"><%%= admin_label.replace( /%%22/g, """ ) %%></span> </script>', apply_filters('et_builder_section_settings_controls', $settings_controls), et_pb_is_allowed('add_module') ? apply_filters('et_builder_section_add_controls', $settings_add_controls) : '', !et_pb_is_allowed('move_module') ? ' et-pb-disable-sort' : '', !et_pb_is_allowed('edit_global_library') ? sprintf('<%%= typeof et_pb_global_module !== \'undefined\' ? \' et-pb-disable-sort\' : \'\' %%>') : ''); $row_settings_button = sprintf('<%% if ( ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' )%3$s ) { %%> <a href="#" class="et-pb-settings et-pb-settings-row" title="%1$s"><span>%2$s</span></a> <%% } %%>', esc_attr__('Settings', 'et_builder'), esc_html__('Settings', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' && ( typeof et_pb_global_module === "undefined" || "" === et_pb_global_module ) && ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent )' : ''); $row_clone_button = sprintf('%3$s <a href="#" class="et-pb-clone et-pb-clone-row" title="%1$s"><span>%2$s</span></a> %4$s', esc_attr__('Clone Row', 'et_builder'), esc_html__('Clone Row', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? '<% if ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent ) { %>' : '', !et_pb_is_allowed('edit_global_library') ? '<% } %>' : ''); $row_remove_button = sprintf('%3$s <a href="#" class="et-pb-remove et-pb-remove-row" title="%1$s"><span>%2$s</span></a> %4$s', esc_attr__('Delete Row', 'et_builder'), esc_html__('Delete Row', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? '<% if ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent ) { %>' : '', !et_pb_is_allowed('edit_global_library') ? '<% } %>' : ''); $row_change_structure_button = sprintf('%3$s <a href="#" class="et-pb-change-structure" title="%1$s"><span>%2$s</span></a> %4$s', esc_attr__('Change Structure', 'et_builder'), esc_html__('Change Structure', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? '<% if ( ( typeof et_pb_global_module === "undefined" || "" === et_pb_global_module ) && ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent ) ) { %>' : '', !et_pb_is_allowed('edit_global_library') ? '<% } %>' : ''); $row_unlock_button = sprintf('<a href="#" class="et-pb-unlock" title="%1$s"><span>%2$s</span></a>', esc_attr__('Unlock Row', 'et_builder'), esc_html__('Unlock Row', 'et_builder')); // Row Template $settings = sprintf('<div class="et-pb-controls"> %1$s <%% if ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type ) { %%> %2$s <%% } if ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' ) { %%> %4$s <%% } if ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type ) { %%> %3$s <%% } %%> <a href="#" class="et-pb-expand" title="%5$s"><span>%6$s</span></a> %7$s </div>', et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')) ? $row_settings_button : '', et_pb_is_allowed('add_module') ? $row_clone_button : '', et_pb_is_allowed('add_module') ? $row_remove_button : '', et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')) ? $row_change_structure_button : '', esc_attr__('Expand Row', 'et_builder'), esc_html__('Expand Row', 'et_builder'), et_pb_is_allowed('lock_module') ? $row_unlock_button : ''); $row_class = sprintf('class="et-pb-row-content et-pb-data-cid%1$s%2$s <%%= typeof et_pb_template_type !== \'undefined\' && \'module\' === et_pb_template_type ? \' et_pb_hide_insert\' : \'\' %%>"', !et_pb_is_allowed('move_module') ? ' et-pb-disable-sort' : '', !et_pb_is_allowed('edit_global_library') ? sprintf('<%%= typeof et_pb_global_parent !== \'undefined\' || typeof et_pb_global_module !== \'undefined\' ? \' et-pb-disable-sort\' : \'\' %%>') : ''); $data_skip = 'data-skip="<%= typeof( et_pb_skip_module ) === \'undefined\' ? \'false\' : \'true\' %>"'; $add_row_button = sprintf('<%% if ( ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type )%2$s ) { %%> <a href="#" class="et-pb-row-add"> <span>%1$s</span> </a> <%% } %%>', esc_html__('Add Row', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' && typeof et_pb_global_parent === "undefined"' : ''); $insert_column_button = sprintf('<a href="#" class="et-pb-insert-column"> <span>%1$s</span> </a>', esc_html__('Insert Column(s)', 'et_builder')); printf('<script type="text/template" id="et-builder-row-template"> <div class="et-pb-right-click-trigger-overlay"></div> %1$s <div data-cid="<%%= cid %%>" %2$s %3$s> <div class="et-pb-row-container"></div> %4$s </div> %5$s <div class="et-pb-locked-overlay et-pb-locked-overlay-row"></div> <span class="et-pb-row-title"><%%= admin_label.replace( /%%22/g, """ ) %%></span> </script>', apply_filters('et_builder_row_settings_controls', $settings), $row_class, $data_skip, et_pb_is_allowed('add_module') ? $insert_column_button : '', et_pb_is_allowed('add_module') ? $add_row_button : ''); // Module Block Template $clone_button = sprintf('<%% if ( ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' )%3$s && _.contains(%4$s, module_type) ) { %%> <a href="#" class="et-pb-clone et-pb-clone-module" title="%1$s"> <span>%2$s</span> </a> <%% } %%>', esc_attr__('Clone Module', 'et_builder'), esc_html__('Clone Module', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' && ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent )' : '', et_pb_allowed_modules_list()); $remove_button = sprintf('<%% if ( ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' )%3$s && _.contains(%4$s, module_type) ) { %%> <a href="#" class="et-pb-remove et-pb-remove-module" title="%1$s"> <span>%2$s</span> </a> <%% } %%>', esc_attr__('Remove Module', 'et_builder'), esc_html__('Remove Module', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' && ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent )' : '', et_pb_allowed_modules_list()); $unlock_button = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' ) { %%> <a href="#" class="et-pb-unlock" title="%1$s"> <span>%2$s</span> </a> <%% } %%>', esc_html__('Unlock Module', 'et_builder'), esc_attr__('Unlock Module', 'et_builder')); $settings_button = sprintf('<%% if (%3$s _.contains( %4$s, module_type ) ) { %%> <a href="#" class="et-pb-settings" title="%1$s"> <span>%2$s</span> </a> <%% } %%>', esc_attr__('Module Settings', 'et_builder'), esc_html__('Module Settings', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent ) && ( typeof et_pb_global_module === "undefined" || "" === et_pb_global_module ) &&' : '', et_pb_allowed_modules_list()); printf('<script type="text/template" id="et-builder-block-module-template"> %1$s %2$s %3$s %4$s <span class="et-pb-module-title"><%%= admin_label.replace( /%%22/g, """ ) %%></span> </script>', et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')) ? $settings_button : '', et_pb_is_allowed('add_module') ? $clone_button : '', et_pb_is_allowed('add_module') ? $remove_button : '', et_pb_is_allowed('lock_module') ? $unlock_button : ''); // Modal Template $save_exit_button = sprintf('<a href="#" class="et-pb-modal-save button button-primary"> <span>%1$s</span> </a>', esc_html__('Save & Exit', 'et_builder')); $save_template_button = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' || \'\' === et_pb_template_type ) { %%> <a href="#" class="et-pb-modal-save-template button"> <span>%1$s</span> </a> <%% } %%>', esc_html__('Save & Add To Library', 'et_builder')); $preview_template_button = sprintf('<a href="#" class="et-pb-modal-preview-template button"> <span class="icon"></span> <span class="label">%1$s</span> </a>', esc_html__('Preview', 'et_builder')); $can_edit_or_has_modal_view_tab = et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')); printf('<script type="text/template" id="et-builder-modal-template"> <div class="et-pb-modal-container%6$s"> <a href="#" class="et-pb-modal-close"> <span>%1$s</span> </a> <%% if ( ! ( typeof open_view !== \'undefined\' && open_view === \'column_specialty_settings\' ) && typeof type !== \'undefined\' && ( type === \'module\' || type === \'section\' || type === \'row_inner\' || ( type === \'row\' && typeof open_view === \'undefined\' ) ) ) { %%> <div class="et-pb-modal-bottom-container%4$s"> %2$s %5$s %3$s </div> <%% } %%> </div> </script>', esc_html__('Cancel', 'et_builder'), et_pb_is_allowed('divi_library') && et_pb_is_allowed('save_library') ? $save_template_button : '', $can_edit_or_has_modal_view_tab ? $save_exit_button : '', !et_pb_is_allowed('divi_library') || !et_pb_is_allowed('save_library') ? ' et_pb_single_button' : '', $preview_template_button, $can_edit_or_has_modal_view_tab ? '' : ' et_pb_no_editing'); // Column Settings Template $columns_number = '<% if ( view.model.attributes.specialty_columns === 3 ) { %> 3 <% } else { %> 2 <% } %>'; $data_specialty_columns = sprintf('<%% if ( typeof view !== \'undefined\' && typeof view.model.attributes.specialty_columns !== \'undefined\' ) { %%> data-specialty_columns="%1$s" <%% } %%>', $columns_number); $saved_row_tab = sprintf('<li class="et-pb-saved-module" data-open_tab="et-pb-saved-modules-tab"> <a href="#">%1$s</a> </li>', esc_html__('Add From Library', 'et_builder')); $saved_row_container = '<% if ( ( typeof change_structure === \'undefined\' || \'true\' !== change_structure ) && ( typeof et_pb_specialty === \'undefined\' || et_pb_specialty !== \'on\' ) ) { %> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab"></div> <% } %>'; printf('<script type="text/template" id="et-builder-column-settings-template"> <h3 class="et-pb-settings-heading" data-current_row="<%%= cid %%>">%1$s</h3> <%% if ( ( typeof change_structure === \'undefined\' || \'true\' !== change_structure ) && ( typeof et_pb_specialty === \'undefined\' || et_pb_specialty !== \'on\' ) ) { %%> <ul class="et-pb-options-tabs-links et-pb-saved-modules-switcher" %2$s> <li class="et-pb-saved-module et-pb-options-tabs-links-active" data-open_tab="et-pb-new-modules-tab" data-content_loaded="true"> <a href="#">%3$s</a> </li> %4$s </ul> <%% } %%> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-new-modules-tab active-container"> <ul class="et-pb-column-layouts"> %5$s </ul> </div> %6$s </script>', esc_html__('Insert Columns', 'et_builder'), $data_specialty_columns, esc_html__('New Row', 'et_builder'), et_pb_is_allowed('divi_library') && et_pb_is_allowed('add_library') ? $saved_row_tab : '', et_builder_get_columns_layout(), et_pb_is_allowed('divi_library') && et_pb_is_allowed('add_library') ? $saved_row_container : ''); // "Add Module" Template $fullwidth_class = '<% if ( typeof module.fullwidth_only !== \'undefined\' && module.fullwidth_only === \'on\' ) { %> et_pb_fullwidth_only_module<% } %>'; $saved_modules_tab = sprintf('<li class="et-pb-saved-module" data-open_tab="et-pb-saved-modules-tab"> <a href="#">%1$s</a> </li>', esc_html__('Add From Library', 'et_builder')); $saved_modules_container = '<div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab"></div>'; printf('<script type="text/template" id="et-builder-modules-template"> <h3 class="et-pb-settings-heading">%1$s</h3> <ul class="et-pb-options-tabs-links et-pb-saved-modules-switcher"> <li class="et-pb-new-module et-pb-options-tabs-links-active" data-open_tab="et-pb-all-modules-tab"> <a href="#">%2$s</a> </li> %3$s </ul> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-all-modules-tab active-container"> <ul class="et-pb-all-modules"> <%% _.each(modules, function(module) { %%> <%% if ( "et_pb_row" !== module.label && "et_pb_section" !== module.label && "et_pb_column" !== module.label && "et_pb_row_inner" !== module.label && _.contains(%6$s, module.label ) ) { %%> <li class="<%%= module.label %%>%4$s"> <span class="et_module_title"><%%= module.title %%></span> </li> <%% } %%> <%% }); %%> </ul> </div> %5$s </script>', esc_html__('Insert Module', 'et_builder'), esc_html__('New Module', 'et_builder'), et_pb_is_allowed('divi_library') && et_pb_is_allowed('add_library') ? $saved_modules_tab : '', $fullwidth_class, et_pb_is_allowed('divi_library') && et_pb_is_allowed('add_library') ? $saved_modules_container : '', et_pb_allowed_modules_list()); // Load Layout Template printf('<script type="text/template" id="et-builder-load_layout-template"> <h3 class="et-pb-settings-heading">%1$s</h3> <%% if ( typeof display_switcher !== \'undefined\' && display_switcher === \'on\' ) { %%> <ul class="et-pb-options-tabs-links et-pb-saved-modules-switcher"> <li class="et-pb-new-module et-pb-options-tabs-links-active" data-open_tab="et-pb-all-modules-tab"> <a href="#">%2$s</a> </li> <li class="et-pb-saved-module" data-open_tab="et-pb-saved-modules-tab"> <a href="#">%3$s</a> </li> </ul> <%% } %%> <%% if ( typeof display_switcher !== \'undefined\' && display_switcher === \'on\' ) { %%> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-all-modules-tab active-container"></div> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab" style="display: none;"></div> <%% } else { %%> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab active-container"></div> <%% } %%> </script>', esc_html__('Load Layout', 'et_builder'), esc_html__('Predefined Layouts', 'et_builder'), esc_html__('Add From Library', 'et_builder')); $insert_module_button = sprintf('%2$s <a href="#" class="et-pb-insert-module<%%= typeof et_pb_template_type === \'undefined\' || \'module\' !== et_pb_template_type ? \'\' : \' et_pb_hidden_button\' %%>"> <span>%1$s</span> </a> %3$s', esc_html__('Insert Module(s)', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? '<% if ( typeof et_pb_global_parent === "undefined" ) { %>' : '', !et_pb_is_allowed('edit_global_library') ? '<% } %>' : ''); // Column Template printf('<script type="text/template" id="et-builder-column-template"> %1$s </script>', et_pb_is_allowed('add_module') ? $insert_module_button : ''); // Advanced Settings Buttons Module printf('<script type="text/template" id="et-builder-advanced-setting"> <a href="#" class="et-pb-advanced-setting-remove"> <span>%1$s</span> </a> <a href="#" class="et-pb-advanced-setting-options"> <span>%2$s</span> </a> <a href="#" class="et-pb-clone et-pb-advanced-setting-clone"> <span>%3$s</span> </a> </script>', esc_html__('Delete', 'et_builder'), esc_html__('Settings', 'et_builder'), esc_html__('Clone Module', 'et_builder')); // Advanced Settings Modal Buttons Template printf('<script type="text/template" id="et-builder-advanced-setting-edit"> <div class="et-pb-modal-container"> <a href="#" class="et-pb-modal-close"> <span>%1$s</span> </a> <div class="et-pb-modal-bottom-container"> <a href="#" class="et-pb-modal-save"> <span>%2$s</span> </a> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_html__('Save', 'et_builder')); // "Deactivate Builder" Modal Message Template printf('<script type="text/template" id="et-builder-prompt-modal-deactivate_builder-text"> <h3>%1$s</h3> <p>%2$s</p> <p>%3$s</p> </script>', esc_html__('Disable Builder', 'et_builder'), esc_html__('All content created in the Divi Builder will be lost. Previous content will be restored.', 'et_builder'), esc_html__('Do you wish to proceed?', 'et_builder')); // "Clear Layout" Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal-clear_layout-text"> <h3>%1$s</h3> <p>%2$s</p> <p>%3$s</p> </script>', esc_html__('Clear Layout', 'et_builder'), esc_html__('All of your current page content will be lost.', 'et_builder'), esc_html__('Do you wish to proceed?', 'et_builder')); // "Reset Advanced Settings" Modal Template printf('<script type="text/template" id="et-builder-prompt-modal-reset_advanced_settings-text"> <p>%1$s</p> <p>%2$s</p> </script>', esc_html__('All advanced module settings in will be lost.', 'et_builder'), esc_html__('Do you wish to proceed?', 'et_builder')); // "Save Layout" Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal-save_layout"> <div class="et_pb_prompt_modal"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s</span> </a> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%2$s" /> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_html__('Save', 'et_builder')); // "Save Layout" Modal Content Template printf('<script type="text/template" id="et-builder-prompt-modal-save_layout-text"> <h3>%1$s</h3> <p>%2$s</p> <label>%3$s</label> <input type="text" value="" id="et_pb_new_layout_name" class="regular-text" /> </script>', esc_html__('Save To Library', 'et_builder'), esc_html__('Save your current page to the Divi Library for later use.', 'et_builder'), esc_html__('Layout Name:', 'et_builder')); // "Save Template" Modal Window Layout printf('<script type="text/template" id="et-builder-prompt-modal-save_template"> <div class="et_pb_prompt_modal et_pb_prompt_modal_save_library"> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%1$s" /> </div> </div> </script>', esc_attr__('Save And Add To Library', 'et_builder')); // "Save Template" Content Layout $layout_categories = get_terms('layout_category', array('hide_empty' => false)); $categories_output = sprintf('<div class="et-pb-option"><label>%1$s</label>', __('Add To Categories:', 'et_builder')); if (is_array($layout_categories) && !empty($layout_categories)) { $categories_output .= '<div class="et-pb-option-container layout_cats_container">'; foreach ($layout_categories as $category) { $categories_output .= sprintf('<label>%1$s<input type="checkbox" value="%2$s"/></label>', esc_html($category->name), esc_attr($category->term_id)); } $categories_output .= '</div></div>'; } $categories_output .= sprintf(' <div class="et-pb-option"> <label>%1$s:</label> <div class="et-pb-option-container"> <input type="text" value="" id="et_pb_new_cat_name" class="regular-text" /> </div> </div>', esc_html__('Create New Category', 'et_builder')); $general_checkbox = sprintf('<label> %1$s <input type="checkbox" value="general" id="et_pb_template_general" checked /> </label>', esc_html__('Include General settings', 'et_builder')); $advanced_checkbox = sprintf('<label> %1$s <input type="checkbox" value="advanced" id="et_pb_template_advanced" checked /> </label>', esc_html__('Include Advanced Design settings', 'et_builder')); $css_checkbox = sprintf('<label> %1$s <input type="checkbox" value="css" id="et_pb_template_css" checked /> </label>', esc_html__('Include Custom CSS', 'et_builder')); printf('<script type="text/template" id="et-builder-prompt-modal-save_template-text"> <div class="et-pb-main-settings"> <p>%1$s</p> <div class="et-pb-option"> <label>%2$s:</label> <div class="et-pb-option-container"> <input type="text" value="" id="et_pb_new_template_name" class="regular-text" /> </div> </div> <%% if ( \'module\' === module_type ) { %%> <div class="et-pb-option"> <label>%3$s:</label> <div class="et-pb-option-container et_pb_select_module_tabs"> %4$s %5$s %6$s <p class="et_pb_error_message_save_template" style="display: none;"> %7$s </p> </div> </div> <%% } %%> <%% if ( \'global\' !== is_global && \'global\' !== is_global_child ) { %%> <div class="et-pb-option"> <label>%8$s</label> <div class="et-pb-option-container"> <label> %9$s <input type="checkbox" value="" id="et_pb_template_global" /> </label> </div> </div> <%% } %%> %10$s </div> </script>', esc_html__('Here you can save the current item and add it to your Divi Library for later use as well.', 'et_builder'), esc_html__('Template Name', 'et_builder'), esc_html__('Selective Sync', 'et_builder'), et_pb_is_allowed('general_settings') ? $general_checkbox : '', et_pb_is_allowed('advanced_settings') ? $advanced_checkbox : '', et_pb_is_allowed('custom_css_settings') ? $css_checkbox : '', esc_html__('Please select at least 1 tab to save', 'et_builder'), esc_html__('Save as Global:', 'et_builder'), esc_html__('Make this a global item', 'et_builder'), $categories_output); // Prompt Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal"> <div class="et_pb_prompt_modal"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s<span> </a> <div class="et_pb_prompt_buttons"> <a href="#" class="et_pb_prompt_proceed">%2$s</a> </div> </div> </script>', esc_html__('No', 'et_builder'), esc_html__('Yes', 'et_builder')); // "Add Specialty Section" Button Template printf('<script type="text/template" id="et-builder-add-specialty-section-button"> <a href="#" class="et-pb-section-add-specialty et-pb-add-specialty-template" data-is_template="true">%1$s</a> </script>', esc_html__('Add Specialty Section', 'et_builder')); // Saved Entry Template echo '<script type="text/template" id="et-builder-saved-entry"> <a class="et_pb_saved_entry_item"><%= title %></a> </script>'; // Font Icons Template printf('<script type="text/template" id="et-builder-google-fonts-options-items"> %1$s </script>', et_builder_get_font_options_items()); // Font Icons Template printf('<script type="text/template" id="et-builder-font-icon-list-items"> %1$s </script>', et_pb_get_font_icon_list_items()); // Histories Visualizer Item Template printf('<script type="text/template" id="et-builder-histories-visualizer-item-template"> <li id="et-pb-history-<%%= this.options.get( "timestamp" ) %%>" class="<%%= this.options.get( "current_active_history" ) ? "active" : "undo" %%>" data-timestamp="<%%= this.options.get( "timestamp" ) %%>"> <span class="datetime"><%%= this.options.get( "datetime" ) %%></span> <span class="verb"> <%%= this.getVerb() %%></span> <span class="noun"> <%%= this.getNoun() %%></span> </li> </script>'); // Font Down Icons Template printf('<script type="text/template" id="et-builder-font-down-icon-list-items"> %1$s </script>', et_pb_get_font_down_icon_list_items()); do_action('et_pb_after_page_builder'); }
function et_pb_pagebuilder_meta_box() { global $typenow, $post; do_action('et_pb_before_page_builder'); echo '<div id="et_pb_hidden_editor">'; wp_editor('', 'et_pb_content_new', array('media_buttons' => true, 'tinymce' => array('wp_autoresize_on' => true))); echo '</div>'; printf('<div id="et_pb_main_container" class="post-type-%1$s%2$s"></div>', esc_attr($typenow), !et_pb_is_allowed('move_module') ? ' et-pb-disable-sort' : ''); $rename_module_menu = sprintf('<%% if ( this.hasOption( "rename" ) ) { %%> <li><a class="et-pb-right-click-rename" href="#">%1$s</a></li> <%% } %%>', esc_html__('Rename', 'et_builder')); $copy_module_menu = sprintf('<%% if ( this.hasOption( "copy" ) ) { %%> <li><a class="et-pb-right-click-copy" href="#">%1$s</a></li> <%% } %%>', esc_html__('Copy', 'et_builder')); $paste_after_menu = sprintf('<%% if ( this.hasOption( "paste-after" ) ) { %%> <li><a class="et-pb-right-click-paste-after" href="#">%1$s</a></li> <%% } %%>', esc_html__('Paste After', 'et_builder')); $paste_menu_item = sprintf('<%% if ( this.hasOption( "paste-column" ) ) { %%> <li><a class="et-pb-right-click-paste-column" href="#">%1$s</a></li> <%% } %%>', esc_html__('Paste', 'et_builder')); $paste_app_menu_item = sprintf('<%% if ( this.hasOption( "paste-app" ) ) { %%> <li><a class="et-pb-right-click-paste-app" href="#">%1$s</a></li> <%% } %%>', esc_html__('Paste', 'et_builder')); $save_to_lib_menu = sprintf('<%% if ( this.hasOption( "save-to-library") ) { %%> <li><a class="et-pb-right-click-save-to-library" href="#">%1$s</a></li> <%% } %%>', esc_html__('Save to Library', 'et_builder')); $lock_unlock_menu = sprintf('<%% if ( this.hasOption( "lock" ) ) { %%> <li><a class="et-pb-right-click-lock" href="#"><span class="unlock">%1$s</span><span class="lock">%2$s</span></a></li> <%% } %%>', esc_html__('Unlock', 'et_builder'), esc_html__('Lock', 'et_builder')); $enable_disable_menu = sprintf('<%% if ( this.hasOption( "disable" ) ) { %%> <li><a class="et-pb-right-click-disable" href="#"><span class="enable">%1$s</span><span class="disable">%2$s</span></a> <span class="et_pb_disable_on_options"><span class="et_pb_disable_on_option et_pb_disable_on_phone"></span><span class="et_pb_disable_on_option et_pb_disable_on_tablet"></span><span class="et_pb_disable_on_option et_pb_disable_on_desktop"></span></span> </li> <%% } %%>', esc_html__('Enable', 'et_builder'), esc_html__('Disable', 'et_builder')); $start_ab_testing_menu = sprintf('<%% if ( this.hasOption( "start-ab-testing") ) { %%> <li><a class="et-pb-right-click-start-ab-testing" href="#">%1$s</a></li> <%% } %%>', esc_html__('Split Test', 'et_builder')); $end_ab_testing_menu = sprintf('<%% if ( this.hasOption( "end-ab-testing") ) { %%> <li><a class="et-pb-right-click-end-ab-testing" href="#">%1$s</a></li> <%% } %%>', esc_html__('End Split Test', 'et_builder')); $disable_global_menu = sprintf('<%% if ( this.hasOption( "disable-global") ) { %%> <li><a class="et-pb-right-click-disable-global" href="#">%1$s</a></li> <%% } %%>', esc_html__('Disable Global', 'et_builder')); // Right click options Template printf('<script type="text/template" id="et-builder-right-click-controls-template"> <ul class="options"> <%% if ( "module" !== this.options.model.attributes.type || _.contains( %13$s, this.options.model.attributes.module_type ) ) { %%> %1$s %15$s %16$s %17$s %8$s <%% if ( this.hasOption( "undo" ) ) { %%> <li><a class="et-pb-right-click-undo" href="#">%9$s</a></li> <%% } %%> <%% if ( this.hasOption( "redo" ) ) { %%> <li><a class="et-pb-right-click-redo" href="#">%10$s</a></li> <%% } %%> %2$s %3$s <%% if ( this.hasOption( "collapse" ) ) { %%> <li><a class="et-pb-right-click-collapse" href="#"><span class="expand">%4$s</span><span class="collapse">%5$s</span></a></li> <%% } %%> %6$s %7$s %12$s %11$s <%% } %%> <%% if ( this.hasOption( "preview" ) ) { %%> <li><a class="et-pb-right-click-preview" href="#">%14$s</a></li> <%% } %%> </ul> </script>', et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')) ? $rename_module_menu : '', et_pb_is_allowed('disable_module') ? $enable_disable_menu : '', et_pb_is_allowed('lock_module') ? $lock_unlock_menu : '', esc_html__('Expand', 'et_builder'), esc_html__('Collapse', 'et_builder'), et_pb_is_allowed('add_module') ? $copy_module_menu : '', et_pb_is_allowed('add_module') ? $paste_after_menu : '', et_pb_is_allowed('divi_library') && et_pb_is_allowed('save_library') ? $save_to_lib_menu : '', esc_html__('Undo', 'et_builder'), esc_html__('Redo', 'et_builder'), et_pb_is_allowed('add_module') ? $paste_menu_item : '', et_pb_is_allowed('add_module') ? $paste_app_menu_item : '', et_pb_allowed_modules_list(), esc_html__('Preview', 'et_builder'), et_pb_is_allowed('ab_testing') ? $start_ab_testing_menu : '', et_pb_is_allowed('ab_testing') ? $end_ab_testing_menu : '', et_pb_is_allowed('edit_module') && et_pb_is_allowed('edit_global_library') ? $disable_global_menu : ''); // "Rename Module Admin Label" Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal-rename_admin_label"> <div class="et_pb_prompt_modal"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s</span> </a> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%2$s" /> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_attr__('Save', 'et_builder')); // "Rename Module Admin Label" Modal Content Template printf('<script type="text/template" id="et-builder-prompt-modal-rename_admin_label-text"> <h3>%1$s</h3> <p>%2$s</p> <input type="text" value="" id="et_pb_new_admin_label" class="regular-text" /> </script>', esc_html__('Rename', 'et_builder'), esc_html__('Enter a new name for this module', 'et_builder')); // Builder's Main Buttons $save_to_lib_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-save" title="%1$s"> <span>%2$s</span> </a>', esc_attr__('Save to Library', 'et_builder'), esc_html__('Save to Library', 'et_builder')); $load_from_lib_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-load" title="%1$s"> <span>%2$s</span> </a>', esc_attr__('Load From Library', 'et_builder'), esc_html__('Load From Library', 'et_builder')); $clear_layout_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-clear" title="%1$s"> <span>%2$s</span> </a>', esc_attr__('Clear Layout', 'et_builder'), esc_html__('Clear Layout', 'et_builder')); // Builder's History Buttons $history_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-history" title="%1$s"> <span class="icon"></span><span class="label">%2$s</span> </a>', esc_attr__('See History', 'et_builder'), esc_html__('See History', 'et_builder')); $redo_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-redo" title="%1$s"> <span class="icon"></span><span class="label">%2$s</span> </a>', esc_attr__('Redo', 'et_builder'), esc_html__('Redo', 'et_builder')); $undo_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-undo" title="%1$s"> <span class="icon"></span><span class="label">%2$s</span> </a>', esc_attr__('Undo', 'et_builder'), esc_html__('Undo', 'et_builder')); // App View Stats Button $view_ab_stats_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-view-ab-stats" title="%1$s"> <span class="icon"></span><span class="label">%2$s</span> </a>', esc_attr__('View Stats', 'et_builder'), esc_html__('View Stats', 'et_builder')); // App Settings Button $settings_button = sprintf('<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-settings" title="%1$s"> <span class="icon"></span><span class="label">%2$s</span> </a>', esc_attr__('Settings', 'et_builder'), esc_html__('Settings', 'et_builder')); // App Template printf('<script type="text/template" id="et-builder-app-template"> <div id="et_pb_layout_controls"> %1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s </div> <div id="et-pb-histories-visualizer-overlay"></div> <ol id="et-pb-histories-visualizer"></ol> </script>', et_pb_is_allowed('divi_library') && et_pb_is_allowed('save_library') ? $save_to_lib_button : '', et_pb_is_allowed('divi_library') && et_pb_is_allowed('load_layout') && et_pb_is_allowed('add_library') && et_pb_is_allowed('add_module') ? $load_from_lib_button : '', et_pb_is_allowed('add_module') ? $clear_layout_button : '', $history_button, $redo_button, $undo_button, $view_ab_stats_button, $settings_button); // App Settings Buttons Template $builder_button_ab_testing_conditional = '( typeof et_pb_ab_goal === "undefined" || et_pb_ab_goal === "off" || typeof et_pb_ab_subject !== "undefined" )'; $is_ab_active = isset($post->ID) && 'on' === get_post_meta($post->ID, '_et_pb_use_ab_testing', true); $view_stats_active_class = $is_ab_active ? 'active' : ''; $view_stats_button = sprintf('<a href="#" class="et-pb-app-view-ab-stats-button %1$s" title="%2$s"> <span class="icon"> <object type="image/svg+xml" data="%3$s/images/stats.svg"></object> </span> <span class="label">%2$s</span> </a>', esc_attr($view_stats_active_class), esc_attr__('View Split Testing Stats', 'et_builder'), esc_url(ET_BUILDER_URI)); $portability_class = 'et-pb-app-portability-button'; if ($is_ab_active) { $portability_class .= ' et-core-disabled'; } printf('<script type="text/template" id="et-builder-app-settings-button-template"> <a href="#" class="et-pb-app-settings-button" title="%1$s"> <span class="icon"> <object type="image/svg+xml" data="%5$s/images/menu.svg"></object> </span> <span class="label">%2$s</span> </a> %3$s %4$s </script>', esc_attr__('Settings', 'et_builder'), esc_html__('Settings', 'et_builder'), et_core_portability_link('et_builder', array('class' => $portability_class)), et_pb_is_allowed('ab_testing') ? $view_stats_button : '', esc_url(ET_BUILDER_URI)); $section_settings_button = sprintf('<%% if ( ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type || \'\' === et_pb_template_type )%3$s ) { %%> <a href="#" class="et-pb-settings et-pb-settings-section" title="%1$s"><span>%2$s</span></a> <%% } %%>', esc_attr__('Settings', 'et_builder'), esc_html__('Settings', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' && typeof et_pb_global_module === "undefined"' : ''); $section_clone_button = sprintf('%3$s <a href="#" class="et-pb-clone et-pb-clone-section" title="%1$s"><span>%2$s</span></a> %4$s', esc_attr__('Clone Section', 'et_builder'), esc_html__('Clone Section', 'et_builder'), '<% if ( ' . $builder_button_ab_testing_conditional . ' ) { %>', '<% } %>'); $section_remove_button = sprintf('%3$s <a href="#" class="et-pb-remove et-pb-remove-section" title="%1$s"><span>%2$s</span></a> %4$s', esc_attr__('Delete Section', 'et_builder'), esc_html__('Delete Section', 'et_builder'), '<% if ( ' . $builder_button_ab_testing_conditional . ' ) { %>', '<% } %>'); $section_unlock_button = sprintf('<a href="#" class="et-pb-unlock" title="%1$s"><span>%2$s</span></a>', esc_attr__('Unlock Section', 'et_builder'), esc_html__('Unlock Section', 'et_builder')); // Section Template $settings_controls = sprintf('<div class="et-pb-controls"> %1$s <%% if ( typeof et_pb_template_type === \'undefined\' || ( \'section\' !== et_pb_template_type && \'row\' !== et_pb_template_type && \'module\' !== et_pb_template_type ) ) { %%> %2$s %3$s <%% } %%> <a href="#" class="et-pb-expand" title="%4$s"><span>%5$s</span></a> %6$s </div>', et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')) ? $section_settings_button : '', et_pb_is_allowed('add_module') ? $section_clone_button : '', et_pb_is_allowed('add_module') ? $section_remove_button : '', esc_attr__('Expand Section', 'et_builder'), esc_html__('Expand Section', 'et_builder'), et_pb_is_allowed('lock_module') ? $section_unlock_button : ''); $add_from_lib_section = sprintf('<span class="et-pb-section-add-saved">%1$s</span>', esc_html__('Add From Library', 'et_builder')); $add_standard_section_button = sprintf('<span class="et-pb-section-add-main">%1$s</span>', esc_html__('Standard Section', 'et_builder')); $add_standard_section_button = apply_filters('et_builder_add_main_section_button', $add_standard_section_button); $add_fullwidth_section_button = sprintf('<span class="et-pb-section-add-fullwidth">%1$s</span>', esc_html__('Fullwidth Section', 'et_builder')); $add_fullwidth_section_button = apply_filters('et_builder_add_fullwidth_section_button', $add_fullwidth_section_button); $add_specialty_section_button = sprintf('<span class="et-pb-section-add-specialty">%1$s</span>', esc_html__('Specialty Section', 'et_builder')); $add_specialty_section_button = apply_filters('et_builder_add_specialty_section_button', $add_specialty_section_button); $settings_add_controls = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' || ( \'section\' !== et_pb_template_type && \'row\' !== et_pb_template_type && \'module\' !== et_pb_template_type ) ) { %%> <a href="#" class="et-pb-section-add"> %1$s %2$s %3$s %4$s </a> <%% } %%>', $add_standard_section_button, $add_fullwidth_section_button, $add_specialty_section_button, et_pb_is_allowed('divi_library') && et_pb_is_allowed('add_library') ? $add_from_lib_section : ''); printf('<script type="text/template" id="et-builder-section-template"> <div class="et-pb-right-click-trigger-overlay"></div> %1$s <div class="et-pb-section-content et-pb-data-cid%3$s%4$s" data-cid="<%%= cid %%>" data-skip="<%%= typeof( et_pb_skip_module ) === \'undefined\' ? \'false\' : \'true\' %%>"> </div> %2$s <div class="et-pb-locked-overlay et-pb-locked-overlay-section"></div> <span class="et-pb-section-title"><%%= admin_label.replace( /%%22/g, """ ) %%></span> </script>', apply_filters('et_builder_section_settings_controls', $settings_controls), et_pb_is_allowed('add_module') ? apply_filters('et_builder_section_add_controls', $settings_add_controls) : '', !et_pb_is_allowed('move_module') ? ' et-pb-disable-sort' : '', !et_pb_is_allowed('edit_global_library') ? sprintf('<%%= typeof et_pb_global_module !== \'undefined\' ? \' et-pb-disable-sort\' : \'\' %%>') : ''); $row_settings_button = sprintf('<%% if ( ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' )%3$s ) { %%> <a href="#" class="et-pb-settings et-pb-settings-row" title="%1$s"><span>%2$s</span></a> <%% } %%>', esc_attr__('Settings', 'et_builder'), esc_html__('Settings', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' && ( typeof et_pb_global_module === "undefined" || "" === et_pb_global_module ) && ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent )' : ''); $row_clone_button = sprintf('%3$s <a href="#" class="et-pb-clone et-pb-clone-row" title="%1$s"><span>%2$s</span></a> %4$s', esc_attr__('Clone Row', 'et_builder'), esc_html__('Clone Row', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? '<% if ( ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent ) && ' . $builder_button_ab_testing_conditional . ' ) { %>' : '<% if ( ' . $builder_button_ab_testing_conditional . ' ) { %>', '<% } %>'); $row_remove_button = sprintf('%3$s <a href="#" class="et-pb-remove et-pb-remove-row" title="%1$s"><span>%2$s</span></a> %4$s', esc_attr__('Delete Row', 'et_builder'), esc_html__('Delete Row', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? '<% if ( ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent ) && ' . $builder_button_ab_testing_conditional . ') { %>' : '<% if ( ' . $builder_button_ab_testing_conditional . ' ) { %>', '<% } %>'); $row_change_structure_button = sprintf('%3$s <a href="#" class="et-pb-change-structure" title="%1$s"><span>%2$s</span></a> %4$s', esc_attr__('Change Structure', 'et_builder'), esc_html__('Change Structure', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? '<% if ( ( typeof et_pb_global_module === "undefined" || "" === et_pb_global_module ) && ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent ) ) { %>' : '', !et_pb_is_allowed('edit_global_library') ? '<% } %>' : ''); $row_unlock_button = sprintf('<a href="#" class="et-pb-unlock" title="%1$s"><span>%2$s</span></a>', esc_attr__('Unlock Row', 'et_builder'), esc_html__('Unlock Row', 'et_builder')); // Row Template $settings = sprintf('<div class="et-pb-controls"> %1$s <%% if ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type ) { %%> %2$s <%% } if ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' ) { %%> %4$s <%% } if ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type ) { %%> %3$s <%% } %%> <a href="#" class="et-pb-expand" title="%5$s"><span>%6$s</span></a> %7$s </div>', et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')) ? $row_settings_button : '', et_pb_is_allowed('add_module') ? $row_clone_button : '', et_pb_is_allowed('add_module') ? $row_remove_button : '', et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')) ? $row_change_structure_button : '', esc_attr__('Expand Row', 'et_builder'), esc_html__('Expand Row', 'et_builder'), et_pb_is_allowed('lock_module') ? $row_unlock_button : ''); $row_class = sprintf('class="et-pb-row-content et-pb-data-cid%1$s%2$s <%%= typeof et_pb_template_type !== \'undefined\' && \'module\' === et_pb_template_type ? \' et_pb_hide_insert\' : \'\' %%>"', !et_pb_is_allowed('move_module') ? ' et-pb-disable-sort' : '', !et_pb_is_allowed('edit_global_library') ? sprintf('<%%= typeof et_pb_global_parent !== \'undefined\' || typeof et_pb_global_module !== \'undefined\' ? \' et-pb-disable-sort\' : \'\' %%>') : ''); $data_skip = 'data-skip="<%= typeof( et_pb_skip_module ) === \'undefined\' ? \'false\' : \'true\' %>"'; $add_row_button = sprintf('<%% if ( ( typeof et_pb_template_type === \'undefined\' || \'section\' === et_pb_template_type )%2$s ) { %%> <a href="#" class="et-pb-row-add"> <span>%1$s</span> </a> <%% } %%>', esc_html__('Add Row', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' && typeof et_pb_global_parent === "undefined"' : ''); $insert_column_button = sprintf('<a href="#" class="et-pb-insert-column"> <span>%1$s</span> </a>', esc_html__('Insert Column(s)', 'et_builder')); printf('<script type="text/template" id="et-builder-row-template"> <div class="et-pb-right-click-trigger-overlay"></div> %1$s <div data-cid="<%%= cid %%>" %2$s %3$s> <div class="et-pb-row-container"></div> %4$s </div> %5$s <div class="et-pb-locked-overlay et-pb-locked-overlay-row"></div> <span class="et-pb-row-title"><%%= admin_label.replace( /%%22/g, """ ) %%></span> </script>', apply_filters('et_builder_row_settings_controls', $settings), $row_class, $data_skip, et_pb_is_allowed('add_module') ? $insert_column_button : '', et_pb_is_allowed('add_module') ? $add_row_button : ''); // Module Block Template $clone_button = sprintf('<%% if ( ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' )%3$s && _.contains(%4$s, module_type) && ' . $builder_button_ab_testing_conditional . ' ) { %%> <a href="#" class="et-pb-clone et-pb-clone-module" title="%1$s"> <span>%2$s</span> </a> <%% } %%>', esc_attr__('Clone Module', 'et_builder'), esc_html__('Clone Module', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' && ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent )' : '', et_pb_allowed_modules_list()); $remove_button = sprintf('<%% if ( ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' )%3$s && _.contains(%4$s, module_type) && ' . $builder_button_ab_testing_conditional . ' ) { %%> <a href="#" class="et-pb-remove et-pb-remove-module" title="%1$s"> <span>%2$s</span> </a> <%% } %%>', esc_attr__('Remove Module', 'et_builder'), esc_html__('Remove Module', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' && ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent )' : '', et_pb_allowed_modules_list()); $unlock_button = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' || et_pb_template_type !== \'module\' ) { %%> <a href="#" class="et-pb-unlock" title="%1$s"> <span>%2$s</span> </a> <%% } %%>', esc_html__('Unlock Module', 'et_builder'), esc_attr__('Unlock Module', 'et_builder')); $settings_button = sprintf('<%% if (%3$s _.contains( %4$s, module_type ) ) { %%> <a href="#" class="et-pb-settings" title="%1$s"> <span>%2$s</span> </a> <%% } %%>', esc_attr__('Module Settings', 'et_builder'), esc_html__('Module Settings', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? ' ( typeof et_pb_global_parent === "undefined" || "" === et_pb_global_parent ) && ( typeof et_pb_global_module === "undefined" || "" === et_pb_global_module ) &&' : '', et_pb_allowed_modules_list()); printf('<script type="text/template" id="et-builder-block-module-template"> %1$s %2$s %3$s %4$s <span class="et-pb-module-title"><%%= admin_label.replace( /%%22/g, """ ) %%></span> </script>', et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')) ? $settings_button : '', et_pb_is_allowed('add_module') ? $clone_button : '', et_pb_is_allowed('add_module') ? $remove_button : '', et_pb_is_allowed('lock_module') ? $unlock_button : ''); // Modal Template $save_exit_button = sprintf('<a href="#" class="et-pb-modal-save button button-primary"> <span>%1$s</span> </a>', esc_html__('Save & Exit', 'et_builder')); $save_template_button = sprintf('<%% if ( typeof et_pb_template_type === \'undefined\' || \'\' === et_pb_template_type ) { %%> <a href="#" class="et-pb-modal-save-template button"> <span>%1$s</span> </a> <%% } %%>', esc_html__('Save & Add To Library', 'et_builder')); $preview_template_button = sprintf('<a href="#" class="et-pb-modal-preview-template button"> <span class="icon"></span> <span class="label">%1$s</span> </a>', esc_html__('Preview', 'et_builder')); $can_edit_or_has_modal_view_tab = et_pb_is_allowed('edit_module') && (et_pb_is_allowed('general_settings') || et_pb_is_allowed('advanced_settings') || et_pb_is_allowed('custom_css_settings')); printf('<script type="text/template" id="et-builder-modal-template"> <div class="et-pb-modal-container%6$s"> <a href="#" class="et-pb-modal-close"> <span>%1$s</span> </a> <%% if ( ! ( typeof open_view !== \'undefined\' && open_view === \'column_specialty_settings\' ) && typeof type !== \'undefined\' && ( type === \'module\' || type === \'section\' || type === \'row_inner\' || ( type === \'row\' && typeof open_view === \'undefined\' ) ) ) { %%> <div class="et-pb-modal-bottom-container%4$s"> %2$s %5$s %3$s </div> <%% } %%> </div> </script>', esc_html__('Cancel', 'et_builder'), et_pb_is_allowed('divi_library') && et_pb_is_allowed('save_library') ? $save_template_button : '', $can_edit_or_has_modal_view_tab ? $save_exit_button : '', !et_pb_is_allowed('divi_library') || !et_pb_is_allowed('save_library') ? ' et_pb_single_button' : '', $preview_template_button, $can_edit_or_has_modal_view_tab ? '' : ' et_pb_no_editing'); // Column Settings Template $columns_number = '<% if ( view.model.attributes.specialty_columns === 3 ) { %> 3 <% } else { %> 2 <% } %>'; $data_specialty_columns = sprintf('<%% if ( typeof view !== \'undefined\' && typeof view.model.attributes.specialty_columns !== \'undefined\' ) { %%> data-specialty_columns="%1$s" <%% } %%>', $columns_number); $saved_row_tab = sprintf('<li class="et-pb-saved-module" data-open_tab="et-pb-saved-modules-tab"> <a href="#">%1$s</a> </li>', esc_html__('Add From Library', 'et_builder')); $saved_row_container = '<% if ( ( typeof change_structure === \'undefined\' || \'true\' !== change_structure ) && ( typeof et_pb_specialty === \'undefined\' || et_pb_specialty !== \'on\' ) ) { %> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab"></div> <% } %>'; printf('<script type="text/template" id="et-builder-column-settings-template"> <h3 class="et-pb-settings-heading" data-current_row="<%%= cid %%>">%1$s</h3> <%% if ( ( typeof change_structure === \'undefined\' || \'true\' !== change_structure ) && ( typeof et_pb_specialty === \'undefined\' || et_pb_specialty !== \'on\' ) ) { %%> <ul class="et-pb-options-tabs-links et-pb-saved-modules-switcher" %2$s> <li class="et-pb-saved-module et-pb-options-tabs-links-active" data-open_tab="et-pb-new-modules-tab" data-content_loaded="true"> <a href="#">%3$s</a> </li> %4$s </ul> <%% } %%> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-new-modules-tab active-container"> <ul class="et-pb-column-layouts"> %5$s </ul> </div> %6$s </script>', esc_html__('Insert Columns', 'et_builder'), $data_specialty_columns, esc_html__('New Row', 'et_builder'), et_pb_is_allowed('divi_library') && et_pb_is_allowed('add_library') ? $saved_row_tab : '', et_builder_get_columns_layout(), et_pb_is_allowed('divi_library') && et_pb_is_allowed('add_library') ? $saved_row_container : ''); // "Add Module" Template $fullwidth_class = '<% if ( typeof module.fullwidth_only !== \'undefined\' && module.fullwidth_only === \'on\' ) { %> et_pb_fullwidth_only_module<% } %>'; $saved_modules_tab = sprintf('<li class="et-pb-saved-module" data-open_tab="et-pb-saved-modules-tab"> <a href="#">%1$s</a> </li>', esc_html__('Add From Library', 'et_builder')); $saved_modules_container = '<div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab"></div>'; printf('<script type="text/template" id="et-builder-modules-template"> <h3 class="et-pb-settings-heading">%1$s</h3> <ul class="et-pb-options-tabs-links et-pb-saved-modules-switcher"> <li class="et-pb-new-module et-pb-options-tabs-links-active" data-open_tab="et-pb-all-modules-tab"> <a href="#">%2$s</a> </li> %3$s </ul> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-all-modules-tab active-container"> <ul class="et-pb-all-modules"> <%% _.each(modules, function(module) { %%> <%% if ( "et_pb_row" !== module.label && "et_pb_section" !== module.label && "et_pb_column" !== module.label && "et_pb_row_inner" !== module.label && _.contains(%6$s, module.label ) ) { %%> <li class="<%%= module.label %%>%4$s"> <span class="et_module_title"><%%= module.title %%></span> </li> <%% } %%> <%% }); %%> </ul> </div> %5$s </script>', esc_html__('Insert Module', 'et_builder'), esc_html__('New Module', 'et_builder'), et_pb_is_allowed('divi_library') && et_pb_is_allowed('add_library') ? $saved_modules_tab : '', $fullwidth_class, et_pb_is_allowed('divi_library') && et_pb_is_allowed('add_library') ? $saved_modules_container : '', et_pb_allowed_modules_list()); // Load Layout Template printf('<script type="text/template" id="et-builder-load_layout-template"> <h3 class="et-pb-settings-heading">%1$s</h3> <%% if ( typeof display_switcher !== \'undefined\' && display_switcher === \'on\' ) { %%> <ul class="et-pb-options-tabs-links et-pb-saved-modules-switcher"> <li class="et-pb-new-module et-pb-options-tabs-links-active" data-open_tab="et-pb-all-modules-tab"> <a href="#">%2$s</a> </li> <li class="et-pb-saved-module" data-open_tab="et-pb-saved-modules-tab"> <a href="#">%3$s</a> </li> </ul> <%% } %%> <%% if ( typeof display_switcher !== \'undefined\' && display_switcher === \'on\' ) { %%> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-all-modules-tab active-container"></div> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab" style="display: none;"></div> <%% } else { %%> <div class="et-pb-main-settings et-pb-main-settings-full et-pb-saved-modules-tab active-container"></div> <%% } %%> </script>', esc_html__('Load Layout', 'et_builder'), esc_html__('Predefined Layouts', 'et_builder'), esc_html__('Add From Library', 'et_builder')); $insert_module_button = sprintf('%2$s <a href="#" class="et-pb-insert-module<%%= typeof et_pb_template_type === \'undefined\' || \'module\' !== et_pb_template_type ? \'\' : \' et_pb_hidden_button\' %%>"> <span>%1$s</span> </a> %3$s', esc_html__('Insert Module(s)', 'et_builder'), !et_pb_is_allowed('edit_global_library') ? '<% if ( typeof et_pb_global_parent === "undefined" ) { %>' : '', !et_pb_is_allowed('edit_global_library') ? '<% } %>' : ''); // Column Template printf('<script type="text/template" id="et-builder-column-template"> %1$s </script>', et_pb_is_allowed('add_module') ? $insert_module_button : ''); // Advanced Settings Buttons Module printf('<script type="text/template" id="et-builder-advanced-setting"> <a href="#" class="et-pb-advanced-setting-remove"> <span>%1$s</span> </a> <a href="#" class="et-pb-advanced-setting-options"> <span>%2$s</span> </a> <a href="#" class="et-pb-clone et-pb-advanced-setting-clone"> <span>%3$s</span> </a> </script>', esc_html__('Delete', 'et_builder'), esc_html__('Settings', 'et_builder'), esc_html__('Clone Module', 'et_builder')); // Advanced Settings Modal Buttons Template printf('<script type="text/template" id="et-builder-advanced-setting-edit"> <div class="et-pb-modal-container"> <a href="#" class="et-pb-modal-close"> <span>%1$s</span> </a> <div class="et-pb-modal-bottom-container"> <a href="#" class="et-pb-modal-save"> <span>%2$s</span> </a> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_html__('Save', 'et_builder')); // "Deactivate Builder" Modal Message Template printf('<script type="text/template" id="et-builder-prompt-modal-deactivate_builder-text"> <h3>%1$s</h3> <p>%2$s</p> <p>%3$s</p> </script>', esc_html__('Disable Builder', 'et_builder'), esc_html__('All content created in the Divi Builder will be lost. Previous content will be restored.', 'et_builder'), esc_html__('Do you wish to proceed?', 'et_builder')); // "Clear Layout" Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal-clear_layout-text"> <h3>%1$s</h3> <p>%2$s</p> <p>%3$s</p> </script>', esc_html__('Clear Layout', 'et_builder'), esc_html__('All of your current page content will be lost.', 'et_builder'), esc_html__('Do you wish to proceed?', 'et_builder')); // "Reset Advanced Settings" Modal Template printf('<script type="text/template" id="et-builder-prompt-modal-reset_advanced_settings-text"> <p>%1$s</p> <p>%2$s</p> </script>', esc_html__('All advanced module settings in will be lost.', 'et_builder'), esc_html__('Do you wish to proceed?', 'et_builder')); // "Save Layout" Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal-save_layout"> <div class="et_pb_prompt_modal"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s</span> </a> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%2$s" /> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_html__('Save', 'et_builder')); // "Save Layout" Modal Content Template printf('<script type="text/template" id="et-builder-prompt-modal-save_layout-text"> <h3>%1$s</h3> <p>%2$s</p> <label>%3$s</label> <input type="text" value="" id="et_pb_new_layout_name" class="regular-text" /> </script>', esc_html__('Save To Library', 'et_builder'), esc_html__('Save your current page to the Divi Library for later use.', 'et_builder'), esc_html__('Layout Name:', 'et_builder')); // "Save Template" Modal Window Layout printf('<script type="text/template" id="et-builder-prompt-modal-save_template"> <div class="et_pb_prompt_modal et_pb_prompt_modal_save_library"> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%1$s" /> </div> </div> </script>', esc_attr__('Save And Add To Library', 'et_builder')); // "Save Template" Content Layout $layout_categories = get_terms('layout_category', array('hide_empty' => false)); $categories_output = sprintf('<div class="et-pb-option"><label>%1$s</label>', esc_html__('Add To Categories:', 'et_builder')); if (is_array($layout_categories) && !empty($layout_categories)) { $categories_output .= '<div class="et-pb-option-container layout_cats_container">'; foreach ($layout_categories as $category) { $categories_output .= sprintf('<label>%1$s<input type="checkbox" value="%2$s"/></label>', esc_html($category->name), esc_attr($category->term_id)); } $categories_output .= '</div></div>'; } $categories_output .= sprintf(' <div class="et-pb-option"> <label>%1$s:</label> <div class="et-pb-option-container"> <input type="text" value="" id="et_pb_new_cat_name" class="regular-text" /> </div> </div>', esc_html__('Create New Category', 'et_builder')); $general_checkbox = sprintf('<label> %1$s <input type="checkbox" value="general" id="et_pb_template_general" checked /> </label>', esc_html__('Include General settings', 'et_builder')); $advanced_checkbox = sprintf('<label> %1$s <input type="checkbox" value="advanced" id="et_pb_template_advanced" checked /> </label>', esc_html__('Include Advanced Design settings', 'et_builder')); $css_checkbox = sprintf('<label> %1$s <input type="checkbox" value="css" id="et_pb_template_css" checked /> </label>', esc_html__('Include Custom CSS', 'et_builder')); printf('<script type="text/template" id="et-builder-prompt-modal-save_template-text"> <div class="et-pb-main-settings"> <p>%1$s</p> <div class="et-pb-option"> <label>%2$s:</label> <div class="et-pb-option-container"> <input type="text" value="" id="et_pb_new_template_name" class="regular-text" /> </div> </div> <%% if ( \'module\' === module_type ) { %%> <div class="et-pb-option"> <label>%3$s:</label> <div class="et-pb-option-container et_pb_select_module_tabs"> %4$s %5$s %6$s <p class="et_pb_error_message_save_template" style="display: none;"> %7$s </p> </div> </div> <%% } %%> <%% if ( \'global\' !== is_global && \'global\' !== is_global_child ) { %%> <div class="et-pb-option"> <label>%8$s</label> <div class="et-pb-option-container"> <label> %9$s <input type="checkbox" value="" id="et_pb_template_global" /> </label> </div> </div> <%% } %%> %10$s </div> </script>', esc_html__('Here you can save the current item and add it to your Divi Library for later use as well.', 'et_builder'), esc_html__('Template Name', 'et_builder'), esc_html__('Selective Sync', 'et_builder'), et_pb_is_allowed('general_settings') ? $general_checkbox : '', et_pb_is_allowed('advanced_settings') ? $advanced_checkbox : '', et_pb_is_allowed('custom_css_settings') ? $css_checkbox : '', esc_html__('Please select at least 1 tab to save', 'et_builder'), esc_html__('Save as Global:', 'et_builder'), esc_html__('Make this a global item', 'et_builder'), $categories_output); // Prompt Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal"> <div class="et_pb_prompt_modal"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s<span> </a> <div class="et_pb_prompt_buttons"> <a href="#" class="et_pb_prompt_proceed">%2$s</a> </div> </div> </script>', esc_html__('No', 'et_builder'), esc_html__('Yes', 'et_builder')); // "Open Settings" Modal Window Template printf('<script type="text/template" id="et-builder-prompt-modal-open_settings"> <div class="et_pb_prompt_modal"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s</span> </a> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%2$s" /> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_html__('Save', 'et_builder')); // "Open Settings" Modal Content Template printf('<script type="text/template" id="et-builder-prompt-modal-open_settings-text"> <h3>%1$s</h3> <div class="et_pb_prompt_fields"> %2$s </div><!-- .et_pb_prompt_fields --> </script>', esc_html__('Divi Builder Settings', 'et_builder'), et_pb_get_builder_settings_fields(et_pb_get_builder_settings_configurations())); /** * "Turn off Split Testing" Modal Window Template */ printf('<script type="text/template" id="et-builder-prompt-modal-turn_off_ab_testing"> <div class="et_pb_prompt_modal"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s</span> </a> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%2$s" /> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_html__('Yes', 'et_builder')); // "Turn off Split Testing" Modal Content Template printf('<script type="text/template" id="et-builder-prompt-modal-turn_off_ab_testing-text"> <h3>%1$s</h3> <p>%2$s</p> <p>%3$s</p> </script>', esc_html__('End Split Test?', 'et_builder'), esc_html__('Upon ending your split test, you will be asked to select which subject variation you would like to keep. Remaining subjects will be removed.', 'et_builder'), esc_html__('Note: this process cannot be undone.', 'et_builder')); /** * Split Testing Alert :: Modal Window Template */ printf('<script type="text/template" id="et-builder-prompt-modal-ab_testing_alert"> <div class="et_pb_prompt_modal"> <div class="et_pb_prompt_buttons"> <br/> <input type="submit" class="et_pb_prompt_proceed" value="%1$s" /> </div> </div> </script>', esc_html__('Ok', 'et_builder')); // Split Testing Alert :: Modal Content Template printf('<script type="text/template" id="et-builder-prompt-modal-ab_testing_alert-text"> <%% if ( ! _.isUndefined( et_pb_ab_js_options[id] ) ) { %%> <h3><%%= et_pb_ab_js_options[id].title %%></h3> <p><%%= et_pb_ab_js_options[id].desc %%></p> <%% } else { %%> <h3>%1$s</h3> <p>%2$s</p> <%% } %%> </script>', esc_html__('An Error Occurred', 'et_builder'), esc_html__('For some reason, you cannot perform this task.', 'et_builder')); /** * Split Testing Alert Yes/No :: Modal Window Template */ printf('<script type="text/template" id="et-builder-prompt-modal-ab_testing_alert_yes_no"> <div class="et_pb_prompt_modal"> <div class="et_pb_prompt_buttons"> <br/> <button class="et_pb_prompt_proceed_alternative et_pb_prompt_cancel">%1$s</button> <input type="submit" class="et_pb_prompt_proceed has_alternative has_cancel_alternative" value="%2$s" /> </div> </div> </script>', esc_html__('Cancel', 'et_builder'), esc_html__('Proceed', 'et_builder')); // Split Testing Alert Yes/No :: Modal Content Template printf('<script type="text/template" id="et-builder-prompt-modal-ab_testing_alert_yes_no-text"> <%% if ( ! _.isUndefined( et_pb_ab_js_options[id] ) ) { %%> <h3><%%= et_pb_ab_js_options[id].title %%></h3> <p><%%= et_pb_ab_js_options[id].desc %%></p> <%% } else { %%> <h3>%1$s</h3> <p>%2$s</p> <%% } %%> </script>', esc_html__('An Error Occurred', 'et_builder'), esc_html__('For some reason, you cannot perform this task.', 'et_builder')); /** * Splir Testing :: Set global item winner status */ printf('<script type="text/template" id="et-builder-prompt-modal-set_global_subject_winner"> <div class="et_pb_prompt_modal"> <div class="et_pb_prompt_buttons"> <br/> <button class="et_pb_prompt_proceed_alternative">%1$s</button> <input type="submit" class="et_pb_prompt_proceed has_alternative" value="%2$s" /> </div> </div> </script>', esc_html__('Save as Global Item', 'et_builder'), esc_html__('Save', 'et_builder')); // Split Testing :: Set global item winner status template printf('<script type="text/template" id="et-builder-prompt-modal-set_global_subject_winner-text"> <h3>%1$s</h3> <p>%2$s</p> <ol> <li>%3$s</li> <li>%4$s</li> </ol> </script>', esc_html__('Set Winner Status', 'et_builder'), esc_html__('You were using global item as split testing winner. Consequently, you have to choose between:', 'et_builder'), esc_html__('Save winner as global item (selected subject will be synced and your global item will be updated in the Divi Library)', 'et_builder'), esc_html__('Save winner as non-global item (selected subject will no longer be a global item and your changes will not modify the global item)', 'et_builder')); /** * Split Testing :: View Stats Template */ printf('<script type="text/template" id="et-builder-prompt-modal-view_ab_stats"> <div class="et_pb_prompt_modal et_pb_ab_view_stats"> <a href="#" class="et_pb_prompt_dont_proceed et-pb-modal-close"> <span>%1$s</span> </a> </div> </script>', esc_html__('Cancel', 'et_builder')); $view_stats_tabs = ""; foreach (et_pb_ab_get_analysis_types() as $analysis) { $view_stats_tabs .= sprintf('<div class="view-stats-tab tab-%1$s" data-analysis="%1$s"> <ul class="et-pb-ab-view-stats-time-filter"> <li><a href="#" data-duration="day">%2$s</a></li> <li><a href="#" data-duration="week">%3$s</a></li> <li><a href="#" data-duration="month">%4$s</a></li> <li><a href="#" data-duration="all">%5$s</a></li> </ul><!-- .et-pb-ab-view-stats-time-filter --> <ul class="et-pb-ab-view-stats-subjects-filter"> </ul><!-- .et-pb-ab-view-stats-subjects-filter --> <div class="view-stats-main-stats"> <canvas id="ab-testing-stats-%1$s" class="ab-testing-stats" width="913" height="330"></canvas> </div> <h2 class="sub-heading">%6$s</h2> <div class="view-stats-table-wrapper"> <table id="view-stats-table-%1$s" class="view-stats-table"> <thead></thead> <tbody></tbody> <tfoot></tfoot> </table> </div><!-- .view-stats-table-wrapper --> <div class="view-stats-pie-wrapper"> <canvas id="ab-testing-stats-pie-%1$s" class="ab-testing-stats-pie" width="200" height="200"></canvas> <ul class="ab-testing-stats-pie-legends"> </ul><!-- .ab-testing-stats-pie-legends --> </div><!-- .view-stats-pie-wrapper --> <div class="no-stats"> <span class="icon"> <object type="image/svg+xml" data="%7$s/images/stats-no-data.svg"></object> </span> <h2>%8$s</h2> <p>%9$s</p> </div><!-- .no-stats --> </div>', esc_attr($analysis), esc_html__('Last 24 Hours', 'et_builder'), esc_html__('Last 7 Days', 'et_builder'), esc_html__('Last Month', 'et_builder'), esc_html__('All Time', 'et_builder'), esc_html__('Summary & Data', 'et_builder'), esc_url(ET_BUILDER_URI), esc_html__('Statistics are still being collected for this time frame', 'et_builder'), esc_html__('Stats will be displayed upon sufficient data collection', 'et_builder')); } // Split Testing :: View Stats content printf('<script type="text/template" id="et-builder-prompt-modal-view_ab_stats-text"> <h3>%1$s</h3> <ul class="et-pb-options-tabs-links"> <li class="et_pb_options_tab_ab_stat_conversion et-pb-options-tabs-links-active" data-analysis="conversions"> <a href="#">%6$s</a> </li> <li class="et_pb_options_tab_ab_stat_clicks" data-analysis="clicks"> <a href="#">%2$s</a> </li> <li class="et_pb_options_tab_ab_stat_reads" data-analysis="reads"> <a href="#">%3$s</a> </li> <li class="et_pb_options_tab_ab_stat_bounces" data-analysis="bounces"> <a href="#">%4$s</a> </li> <li class="et_pb_options_tab_ab_stat_engagements" data-analysis="engagements"> <a href="#">%5$s</a> </li> <li class="et_pb_options_tab_ab_stat_shortcode_conversions" data-analysis="shortcode_conversions"> <a href="#">%13$s</a> </li> <li class="et_pb_ab_refresh_button"> <a href="#" class="et-pb-ab-refresh-stats" title="%11$s"> <span class="icon"></span><span class="label">%12$s</span> </a> </li> </ul><!-- .et-pb-options-tabs-links --> <div class="et-pb-ab-view-stats-content has-data"> %7$s </div> <div class="et-pb-ab-view-stats-content no-data"> <span class="icon"> <object type="image/svg+xml" data="%8$s/images/stats-no-data.svg"></object> </span> <h2>%9$s</h2> <p>%10$s</p> </div> <div class="et_pb_prompt_buttons"> <input type="submit" class="et_pb_prompt_proceed" value="%14$s"> </div> </script>', esc_html__('Split Testing Statistics', 'et_builder'), esc_html__('Clicks', 'et_builder'), esc_html__('Reads', 'et_builder'), esc_html__('Bounces', 'et_builder'), esc_html__('Goal Engagement', 'et_builder'), esc_html__('Conversions', 'et_builder'), $view_stats_tabs, esc_url(ET_BUILDER_URI), esc_html__('Statistics are being collected', 'et_builder'), esc_html__('Stats will be displayed upon sufficient data collection', 'et_builder'), esc_attr__('Refresh Stats', 'et_builder'), esc_html__('Refresh Stats', 'et_builder'), esc_html__('Shortcode Conversions', 'et_builder'), esc_attr__('End Split Test & Pick Winner', 'et_builder')); // "Add Specialty Section" Button Template printf('<script type="text/template" id="et-builder-add-specialty-section-button"> <a href="#" class="et-pb-section-add-specialty et-pb-add-specialty-template" data-is_template="true">%1$s</a> </script>', esc_html__('Add Specialty Section', 'et_builder')); // Saved Entry Template echo '<script type="text/template" id="et-builder-saved-entry"> <a class="et_pb_saved_entry_item"><%= title %></a> </script>'; // Font Icons Template printf('<script type="text/template" id="et-builder-google-fonts-options-items"> %1$s </script>', et_builder_get_font_options_items()); // Font Icons Template printf('<script type="text/template" id="et-builder-font-icon-list-items"> %1$s </script>', et_pb_get_font_icon_list_items()); // Histories Visualizer Item Template printf('<script type="text/template" id="et-builder-histories-visualizer-item-template"> <li id="et-pb-history-<%%= this.options.get( "timestamp" ) %%>" class="<%%= this.options.get( "current_active_history" ) ? "active" : "undo" %%>" data-timestamp="<%%= this.options.get( "timestamp" ) %%>"> <span class="datetime"><%%= this.options.get( "datetime" ) %%></span> <span class="verb"> <%%= this.getVerb() %%></span> <span class="noun"> <%%= this.getNoun() %%></span> <%% if ( typeof this.getAddition === "function" && "" !== this.getAddition() ) { %%> <span class="addition"> <%%= this.getAddition() %%></span> <%% } %%> </li> </script>'); // Font Down Icons Template printf('<script type="text/template" id="et-builder-font-down-icon-list-items"> %1$s </script>', et_pb_get_font_down_icon_list_items()); printf('<script type="text/template" id="et-builder-preview-icons-template"> <ul class="et-pb-preview-screensize-switcher"> <li><a href="#" class="et-pb-preview-mobile" data-width="375"><span class="label">%1$s</span></a></li> <li><a href="#" class="et-pb-preview-tablet" data-width="768"><span class="label">%2$s</span></a></li> <li><a href="#" class="et-pb-preview-desktop active"><span class="label">%3$s</span></a></li> </ul> </script>', esc_html__('Mobile', 'et_builder'), esc_html__('Tablet', 'et_builder'), esc_html__('Desktop', 'et_builder')); printf('<script type="text/template" id="et-builder-options-tabs-links-template"> <ul class="et-pb-options-tabs-links"> <%% _.each(this.et_builder_template_options.tabs.options, function(tab, index) { %%> <li class="et_pb_options_tab_<%%= tab.slug %%><%%= \'1\' === index ? \' et-pb-options-tabs-links-active\' : \'\' %%>"> <a href="#"><%%= tab.label %%></a> </li> <%% }); %%> </ul> </script>'); printf('<script type="text/template" id="et-builder-mobile-options-tabs-template"> <div class="et_pb_mobile_settings_tabs"> <a href="#" class="et_pb_mobile_settings_tab et_pb_mobile_settings_active_tab" data-settings_tab="desktop"> %1$s </a> <a href="#" class="et_pb_mobile_settings_tab" data-settings_tab="tablet"> %2$s </a> <a href="#" class="et_pb_mobile_settings_tab" data-settings_tab="phone"> %3$s </a> </div> </script>', esc_html__('Desktop', 'et_builder'), esc_html__('Tablet', 'et_builder'), esc_html__('Smartphone', 'et_builder')); printf('<script type="text/template" id="et-builder-padding-inputs-template"> <label> <%%= this.et_builder_template_options.padding.options.label %%> <input type="text" class="et_custom_margin et_custom_margin_<%%= this.et_builder_template_options.padding.options.side %%><%%= this.et_builder_template_options.padding.options.class %%><%%= \'need_mobile\' === this.et_builder_template_options.padding.options.need_mobile ? \' et_pb_setting_mobile et_pb_setting_mobile_desktop et_pb_setting_mobile_active\' : \'\' %%>"<%%= \'need_mobile\' === this.et_builder_template_options.padding.options.need_mobile ? \' data-device="desktop"\' : \'\' %%> /> <%% if ( \'need_mobile\' === this.et_builder_template_options.padding.options.need_mobile ) { %%> <input type="text" class="et_custom_margin et_pb_setting_mobile et_pb_setting_mobile_tablet et_custom_margin_<%%= this.et_builder_template_options.padding.options.side %%><%%= this.et_builder_template_options.padding.options.class %%>" data-device="tablet" /> <input type="text" class="et_custom_margin et_pb_setting_mobile et_pb_setting_mobile_phone et_custom_margin_<%%= this.et_builder_template_options.padding.options.side %%><%%= this.et_builder_template_options.padding.options.class %%>" data-device="phone" /> <%% } %%> </label> </script>'); printf('<script type="text/template" id="et-builder-yes-no-button-template"> <div class="et_pb_yes_no_button et_pb_off_state"> <span class="et_pb_value_text et_pb_on_value"><%%= this.et_builder_template_options.yes_no_button.options.on %%></span> <span class="et_pb_button_slider"></span> <span class="et_pb_value_text et_pb_off_value"><%%= this.et_builder_template_options.yes_no_button.options.off %%></span> </div> </script>'); printf('<script type="text/template" id="et-builder-font-buttons-option-template"> <%% _.each(this.et_builder_template_options.font_buttons.options, function(font_button) { %%> <div class="et_builder_<%%= font_button %%>_font et_builder_font_style mce-widget mce-btn"> <button type="button"> <i class="mce-ico mce-i-<%%= font_button %%>"></i> </button> </div> <%% }); %%> </script>'); printf('<script type="text/template" id="et-builder-failure-notice-template"> %1$s </script>', et_builder_get_failure_notification_modal()); printf('<script type="text/template" id="et-builder-cache-notice-template"> %1$s </script>', et_builder_get_cache_notification_modal()); do_action('et_pb_after_page_builder'); }