Overview

Namespaces

  • None
  • Quform
    • Traduttore_Registry

Classes

  • Quform
  • Quform_Admin_InsertForm
  • Quform_Admin_Page
  • Quform_Admin_Page_Controller
  • Quform_Admin_Page_Dashboard
  • Quform_Admin_Page_Entries
  • Quform_Admin_Page_Entries_Edit
  • Quform_Admin_Page_Entries_List
  • Quform_Admin_Page_Entries_View
  • Quform_Admin_Page_Factory
  • Quform_Admin_Page_Forms_Add
  • Quform_Admin_Page_Forms_Edit
  • Quform_Admin_Page_Forms_List
  • Quform_Admin_Page_Help
  • Quform_Admin_Page_Preview
  • Quform_Admin_Page_Settings
  • Quform_Admin_Page_Tools
  • Quform_Admin_Page_Tools_ExportEntries
  • Quform_Admin_Page_Tools_ExportForm
  • Quform_Admin_Page_Tools_Home
  • Quform_Admin_Page_Tools_ImportForm
  • Quform_Admin_Page_Tools_Migrate
  • Quform_Admin_Page_Tools_Uninstall
  • Quform_Api
  • Quform_Block
  • Quform_Builder
  • Quform_Captcha
  • Quform_ClassLoader
  • Quform_Confirmation
  • Quform_Container
  • Quform_Dashboard_Widget
  • Quform_Dispatcher
  • Quform_Element
  • Quform_Element_Captcha
  • Quform_Element_Checkbox
  • Quform_Element_Column
  • Quform_Element_Container
  • Quform_Element_Container_Iterator
  • Quform_Element_Date
  • Quform_Element_Email
  • Quform_Element_Factory
  • Quform_Element_Field
  • Quform_Element_File
  • Quform_Element_Group
  • Quform_Element_Hidden
  • Quform_Element_Honeypot
  • Quform_Element_Html
  • Quform_Element_Multi
  • Quform_Element_Multiselect
  • Quform_Element_Name
  • Quform_Element_Page
  • Quform_Element_Password
  • Quform_Element_Radio
  • Quform_Element_Recaptcha
  • Quform_Element_Row
  • Quform_Element_Select
  • Quform_Element_Submit
  • Quform_Element_Text
  • Quform_Element_Textarea
  • Quform_Element_Time
  • Quform_Entry_Controller
  • Quform_Entry_Exporter
  • Quform_Entry_List_Settings
  • Quform_Entry_List_Table
  • Quform_Entry_Processor
  • Quform_Entry_UserSearcher
  • Quform_Filter_Abstract
  • Quform_Filter_Alpha
  • Quform_Filter_AlphaNumeric
  • Quform_Filter_Digits
  • Quform_Filter_Regex
  • Quform_Filter_Static
  • Quform_Filter_StripTags
  • Quform_Filter_Trim
  • Quform_Form
  • Quform_Form_Controller
  • Quform_Form_Exporter
  • Quform_Form_Factory
  • Quform_Form_Importer
  • Quform_Form_Iterator
  • Quform_Form_List_Settings
  • Quform_Form_List_Table
  • Quform_Form_Processor
  • Quform_License
  • Quform_Migrator
  • Quform_NonceRefresher
  • Quform_Notification
  • Quform_Notification_Resender
  • Quform_Options
  • Quform_Permissions
  • Quform_Repository
  • Quform_ScriptLoader
  • Quform_Session
  • Quform_Settings
  • Quform_Shortcode
  • Quform_Themes
  • Quform_TokenReplacer
  • Quform_Toolbar
  • Quform_Translations
  • Quform_Updater
  • Quform_Upgrader
  • Quform_Uploader
  • Quform_Validator_Abstract
  • Quform_Validator_Alpha
  • Quform_Validator_AlphaNumeric
  • Quform_Validator_Array
  • Quform_Validator_Captcha
  • Quform_Validator_Date
  • Quform_Validator_Digits
  • Quform_Validator_Duplicate
  • Quform_Validator_Email
  • Quform_Validator_FileUpload
  • Quform_Validator_GreaterThan
  • Quform_Validator_Honeypot
  • Quform_Validator_Identical
  • Quform_Validator_InArray
  • Quform_Validator_Length
  • Quform_Validator_LessThan
  • Quform_Validator_Recaptcha
  • Quform_Validator_Regex
  • Quform_Validator_Required
  • Quform_Validator_Static
  • Quform_Validator_Time
  • Quform_View
  • Quform_ViewFactory
  • Quform_Widget_Form
  • Quform_Widget_Popup

Interfaces

  • Quform_Attachable
  • Quform_Element_Editable
  • Quform_Filter_Interface
  • Quform_Validator_Interface

Constants

  • Quform\Traduttore_Registry\TRANSIENT_KEY_PLUGIN
  • Quform\Traduttore_Registry\TRANSIENT_KEY_THEME

Functions

  • Quform\Traduttore_Registry\add_project
  • Quform\Traduttore_Registry\clean_translations_cache
  • Quform\Traduttore_Registry\get_available_locales
  • Quform\Traduttore_Registry\get_installed_translations
  • Quform\Traduttore_Registry\get_translations
  • Quform\Traduttore_Registry\register_clean_translations_cache
  • Quform\Traduttore_Registry\sanitize_date
  • Overview
  • Namespace
  • Class
  1: <?php
  2: 
  3: /**
  4:  * @copyright Copyright (c) 2009-2022 ThemeCatcher (https://www.themecatcher.net)
  5:  */
  6: class Quform_Admin_InsertForm
  7: {
  8:     /**
  9:      * @var Quform_Repository
 10:      */
 11:     protected $repository;
 12: 
 13:     /**
 14:      * @var Quform_Options
 15:      */
 16:     protected $options;
 17: 
 18:     /**
 19:      * @var boolean
 20:      */
 21:     protected $printedAssets = false;
 22: 
 23:     /**
 24:      * @param  Quform_Repository  $repository
 25:      * @param  Quform_Options     $options
 26:      */
 27:     public function __construct(Quform_Repository $repository, Quform_Options $options)
 28:     {
 29:         $this->repository = $repository;
 30:         $this->options = $options;
 31:     }
 32: 
 33:     /**
 34:      * Register the CSS file for the insert button
 35:      */
 36:     public function registerScripts()
 37:     {
 38:         wp_register_style('quform-insert-form', Quform::adminUrl('css/insert-form.min.css'), array(), QUFORM_VERSION);
 39:     }
 40: 
 41:     /**
 42:      * Displays the insert form button
 43:      */
 44:     public function button()
 45:     {
 46:         if ( ! $this->options->get('insertFormButton') || ! current_user_can('quform_list_forms')) {
 47:             return;
 48:         }
 49: 
 50:         // Don't display the button in an editor in the form builder page
 51:         if (isset($_GET['page']) && $_GET['page'] == 'quform.forms') {
 52:             return;
 53:         }
 54: 
 55:         if ( ! $this->printedAssets) {
 56:             wp_print_styles('quform-insert-form');
 57:             $this->printedAssets = true;
 58:         }
 59: 
 60:         printf(
 61:             '<button type="button" class="button qfb-insert-form-trigger" onclick="%s" data-l10n="%s"><span></span>%s</button>',
 62:             sprintf("!function(o){window.quformInsertForm?window.quformInsertForm.loadPopup():jQuery.getScript('%s',function(){window.quformInsertForm.init(o)})}(this);", esc_js(esc_url(Quform::adminUrl('js/insert-form.min.js')))),
 63:             Quform::escape(wp_json_encode(array(
 64:                 'ajaxUrl' => admin_url('admin-ajax.php'),
 65:                 'quformEnablePopupNonce' => wp_create_nonce('quform_enable_popup'),
 66:                 'selectForm' => __('Please select a form first', 'quform'),
 67:                 'couldNotSendToEditor' => __('The shortcode could not be sent to the editor, please copy it from the preview area and paste it into the editor', 'quform')
 68:             ))),
 69:             esc_html__('Add Form', 'quform')
 70:         );
 71:     }
 72: 
 73:     /**
 74:      * Displays the insert form popup
 75:      */
 76:     public function display()
 77:     {
 78:         $orderBy = get_user_meta(get_current_user_id(), 'quform_forms_order_by', true);
 79:         $order = get_user_meta(get_current_user_id(), 'quform_forms_order', true);
 80:         $forms = $this->repository->formsToSelectArray(null, $orderBy, $order);
 81:         ?>
 82:         <div class="qfb-popup qfb-insert-form-popup">
 83:             <div class="qfb-popup-content">
 84:                 <span class="qfb-insert-form-cancel"><span></span></span>
 85:                 <div class="qfb-settings-heading"><?php esc_html_e('Insert a form', 'quform'); ?></div>
 86:                 <?php if (count($forms)) : ?>
 87:                     <div class="qfb-sub-setting">
 88:                         <select id="qfb-insert-form-id">
 89:                             <option value=""><?php esc_html_e('Select a form', 'quform'); ?></option>
 90:                             <?php foreach ($forms as $id => $name) : ?>
 91:                                 <option value="<?php echo Quform::escape($id); ?>"><?php echo Quform::escape($name); ?></option>
 92:                             <?php endforeach; ?>
 93:                         </select>
 94:                     </div>
 95:                     <div class="qfb-sub-setting">
 96:                         <div class="qfb-sub-setting-label">
 97:                             <label for="qfb-insert-form-show-title"><?php esc_html_e('Show form title', 'quform'); ?></label>
 98:                         </div>
 99:                         <div class="qfb-sub-setting-inner">
100:                             <div class="qfb-sub-setting-input">
101:                                 <input type="checkbox" id="qfb-insert-form-show-title" class="qfb-mini-toggle" checked>
102:                                 <label for="qfb-insert-form-show-title"></label>
103:                             </div>
104:                         </div>
105:                     </div>
106:                     <div class="qfb-sub-setting">
107:                         <div class="qfb-sub-setting-label">
108:                             <label for="qfb-insert-form-show-description"><?php esc_html_e('Show form description', 'quform'); ?></label>
109:                         </div>
110:                         <div class="qfb-sub-setting-inner">
111:                             <div class="qfb-sub-setting-input">
112:                                 <input type="checkbox" id="qfb-insert-form-show-description" class="qfb-mini-toggle" checked>
113:                                 <label for="qfb-insert-form-show-description"></label>
114:                             </div>
115:                         </div>
116:                     </div>
117:                     <div class="qfb-sub-setting">
118:                         <div class="qfb-sub-setting-label">
119:                             <label for="qfb-insert-form-popup"><?php esc_html_e('Popup form', 'quform'); ?></label>
120:                         </div>
121:                         <div class="qfb-sub-setting-inner">
122:                             <div class="qfb-sub-setting-input">
123:                                 <input type="checkbox" id="qfb-insert-form-popup" class="qfb-mini-toggle">
124:                                 <label for="qfb-insert-form-popup"></label>
125:                             </div>
126:                         </div>
127:                     </div>
128:                     <div class="qfb-sub-setting">
129:                         <div class="qfb-sub-setting-label">
130:                             <label for="qfb-insert-form-content"><?php esc_html_e('Content', 'quform'); ?></label>
131:                         </div>
132:                         <div class="qfb-sub-setting-inner">
133:                             <div class="qfb-sub-setting-input">
134:                                 <textarea id="qfb-insert-form-content"></textarea>
135:                                 <p class="qfb-description"><?php esc_html_e('The text or HTML to trigger the popup, shortcodes can also be used.', 'quform'); ?></p>
136:                             </div>
137:                         </div>
138:                     </div>
139:                     <div class="qfb-sub-setting">
140:                         <div class="qfb-sub-setting-label">
141:                             <label for="qfb-insert-form-width"><?php esc_html_e('Width (optional)', 'quform'); ?></label>
142:                         </div>
143:                         <div class="qfb-sub-setting-inner">
144:                             <div class="qfb-sub-setting-input">
145:                                 <input type="text" id="qfb-insert-form-width">
146:                                 <p class="qfb-description"><?php esc_html_e('The width of the popup, any CSS width or number is accepted.', 'quform'); ?></p>
147:                             </div>
148:                         </div>
149:                     </div>
150:                     <div class="qfb-sub-setting">
151:                         <div class="qfb-sub-setting-label">
152:                             <label for="qfb-insert-form-options"><?php esc_html_e('Options (optional)', 'quform'); ?></label>
153:                         </div>
154:                         <div class="qfb-sub-setting-inner">
155:                             <div class="qfb-sub-setting-input">
156:                                 <input type="text" id="qfb-insert-form-options">
157:                                 <p class="qfb-description">
158:                                     <?php
159:                                         printf(
160:                                             /* translators: %1$s: open link tag, %2$s: close link tag */
161:                                             esc_html__('JSON encoded options to pass to the popup script, %1$sexamples%2$s.', 'quform'),
162:                                             '<a href="https://support.themecatcher.net/quform-wordpress-v2/guides/customization/popup-script-options" target="_blank">',
163:                                             '</a>'
164:                                         );
165:                                     ?>
166:                                 </p>
167:                             </div>
168:                         </div>
169:                     </div>
170:                     <div class="qfb-insert-form-button-wrap qfb-cf">
171:                         <button type="button" class="button button-primary qfb-insert-form-go"><?php esc_html_e('Insert', 'quform'); ?></button>
172:                     </div>
173:                     <div class="qfb-insert-form-preview">
174:                         <p><?php esc_html_e('If you are having trouble inserting the form, copy and paste the code below into the page content.', 'quform'); ?></p>
175:                         <input type="text" id="qfb-insert-form-preview" readonly>
176:                     </div>
177:                 <?php else : ?>
178:                     <?php
179:                         if (current_user_can('quform_add_forms')) {
180:                             /* translators: %1$s: open link tag, %2$s: close link tag */
181:                             printf(esc_html__('No forms found, %1$sclick here to create one%2$s.', 'quform'), '<a href="' . esc_url(admin_url('admin.php?page=quform.forms&sp=add')) . '">', '</a>');
182:                         } else {
183:                             esc_html_e('No forms found.', 'quform');
184:                         }
185:                     ?>
186:                 <?php endif; ?>
187:             </div>
188:             <div class="qfb-popup-overlay"></div>
189:         </div>
190:         <?php
191:         wp_die();
192:     }
193: }
194: 
API documentation generated by ApiGen