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_Page_Forms_Edit extends Quform_Admin_Page
  7: {
  8:     /**
  9:      * @var Quform_Builder
 10:      */
 11:     protected $builder;
 12: 
 13:     /**
 14:      * @var Quform_License
 15:      */
 16:     protected $license;
 17: 
 18:     /**
 19:      * @var Quform_Options
 20:      */
 21:     protected $options;
 22: 
 23:     /**
 24:      * @param  Quform_ViewFactory $viewFactory
 25:      * @param  Quform_Repository  $repository
 26:      * @param  Quform_Builder     $builder
 27:      * @param  Quform_License     $license
 28:      * @param  Quform_Options     $options
 29:      */
 30:     public function __construct(Quform_ViewFactory $viewFactory, Quform_Repository $repository, Quform_Builder $builder,
 31:                                 Quform_License $license, Quform_Options $options)
 32:     {
 33:         parent::__construct($viewFactory, $repository);
 34: 
 35:         $this->builder = $builder;
 36:         $this->viewFactory = $viewFactory;
 37:         $this->license = $license;
 38:         $this->options = $options;
 39:     }
 40: 
 41:     public function init()
 42:     {
 43:         $this->template = QUFORM_TEMPLATE_PATH . '/admin/forms/edit.php';
 44:     }
 45: 
 46:     protected function enqueueStyles()
 47:     {
 48:         wp_enqueue_style('qtip2', Quform::url('css/jquery.qtip.min.css'), array(), '3.0.4');
 49:         wp_enqueue_style('quform-select2', Quform::url('css/select2.min.css'), array(), '4.0.13');
 50:         wp_enqueue_style('spectrum', Quform::adminUrl('css/spectrum.min.css'), array(), '1.8.1');
 51:         wp_enqueue_style('quform-icons', Quform::url('css/quform-icons.min.css'), array(), QUFORM_VERSION);
 52:         wp_enqueue_style('kendo-common-material', Quform::url('css/kendo.common-material.min.css'), array(), '2020.2.617');
 53:         wp_enqueue_style('kendo-material', Quform::url('css/kendo.material.min.css'), array(), '2020.2.617');
 54: 
 55:         parent::enqueueStyles();
 56: 
 57:         wp_enqueue_style('quform-builder', Quform::adminUrl('css/builder.min.css'), array(), QUFORM_VERSION);
 58:     }
 59: 
 60:     protected function enqueueScripts()
 61:     {
 62:         parent::enqueueScripts();
 63: 
 64:         wp_enqueue_script('jeditable', Quform::adminUrl('js/jquery.jeditable.min.js'), array('jquery'), '2.0.17', true);
 65:         wp_enqueue_script('spectrum', Quform::adminUrl('js/spectrum.min.js'), array(), '1.8.1', true);
 66:         wp_enqueue_script('qtip2', Quform::url('js/jquery.qtip.min.js'), array('jquery'), '3.0.4', true);
 67:         wp_enqueue_script('quform-select2', Quform::url('js/select2.min.js'), array('jquery'), '4.0.13', true);
 68:         wp_enqueue_script('themecatcher-tabs', Quform::adminUrl('js/tc.tabs.min.js'), array('jquery'), '1.0.0', true);
 69:         wp_enqueue_script('kendo-core', Quform::url('js/kendo.core.min.js'), array('jquery'), '2020.2.617', true);
 70:         wp_enqueue_script('kendo-data', Quform::url('js/kendo.data.min.js'), array('kendo-core'), '2020.2.617', true);
 71:         wp_enqueue_script('kendo-tabstrip', Quform::url('js/kendo.tabstrip.min.js'), array('kendo-data'), '2020.2.617', true);
 72:         wp_enqueue_script('kendo-userevents', Quform::url('js/kendo.userevents.min.js'), array('kendo-core'), '2020.2.617', true);
 73:         wp_enqueue_script('kendo-draganddrop', Quform::url('js/kendo.draganddrop.min.js'), array('kendo-core', 'kendo-userevents'), '2020.2.617', true);
 74:         wp_enqueue_script('kendo-resizable', Quform::url('js/kendo.resizable.min.js'), array('kendo-core', 'kendo-draganddrop'), '2020.2.617', true);
 75:         wp_enqueue_script('kendo-splitter', Quform::url('js/kendo.splitter.min.js'), array('kendo-resizable'), '2020.2.617', true);
 76:         wp_enqueue_script('kendo-calendar', Quform::url('js/kendo.calendar.min.js'), array(), '2020.2.617', true);
 77:         wp_enqueue_script('kendo-popup', Quform::url('js/kendo.popup.min.js'), array(), '2020.2.617', true);
 78:         wp_enqueue_script('kendo-datepicker', Quform::url('js/kendo.datepicker.min.js'), array(), '2020.2.617', true);
 79:         wp_enqueue_script('kendo-timepicker', Quform::url('js/kendo.timepicker.min.js'), array(), '2020.2.617', true);
 80:         wp_enqueue_script('kendo-datetimepicker', Quform::url('js/kendo.datetimepicker.min.js'), array(), '2020.2.617', true);
 81:         wp_enqueue_script('quform-builder', Quform::adminUrl('js/builder.all.min.js'), array('jquery', 'jquery-color', 'json2', 'jquery-ui-draggable', 'jquery-ui-sortable', 'underscore'), QUFORM_VERSION, true);
 82: 
 83:         wp_localize_script('quform-builder', 'quformBuilderL10n', $this->builder->getScriptL10n());
 84:     }
 85: 
 86:     /**
 87:      * Set the page title
 88:      *
 89:      * @return string
 90:      */
 91:     protected function getAdminTitle()
 92:     {
 93:         return __('Edit Form', 'quform');
 94:     }
 95: 
 96:     /**
 97:      * Get the HTML for the admin navigation menu
 98:      *
 99:      * @param   array|null  $currentForm  The data for the current form (if any)
100:      * @param   array       $extra        Extra HTML to add to the nav, the array key is the hook position
101:      * @return  string
102:      */
103:     public function getNavHtml(array $currentForm = null, array $extra = array())
104:     {
105:         ob_start();
106:         $shortcode = sprintf('[quform id="%d" name="%s"]', $currentForm['id'], $currentForm['name']);
107:         ?>
108:         <div class="qfb-nav-item">
109:             <a id="qfb-add-to-website" class="qfb-nav-item-link" title="<?php esc_html_e('Add to website', 'quform'); ?>"><i class="qfb-mdi qfb-mdi-add_to_queue"></i></a>
110:         </div>
111:         <div class="qfb-nav-form-info"><i class="qfb-nav-form-id"><?php echo Quform::escape($currentForm['id']); ?></i><span id="qfb-nav-form-name" class="qfb-nav-form-name"><?php echo Quform::escape($currentForm['name']); ?></span><input type="text" id="qfb-nav-form-shortcode" class="qfb-nav-form-shortcode" readonly value="<?php echo Quform::escape($shortcode); ?>" size="<?php echo Quform::strlen($shortcode); ?>"></div>
112:         <?php
113: 
114:         return parent::getNavHtml($currentForm, array(40 => ob_get_clean()));
115:     }
116: 
117:     /**
118:      * Process this page and send data to the view
119:      */
120:     public function process()
121:     {
122:         if ( ! current_user_can('quform_edit_forms')) {
123:             wp_die(__( 'You do not have sufficient permissions to access this page.', 'quform'), 403);
124:         }
125: 
126:         if ( ! isset($_GET['id']) || ! is_array($config = $this->repository->getConfig((int) $_GET['id']))) {
127:             wp_die(__("You attempted to edit an item that doesn't exist. Perhaps it was deleted?", 'quform'));
128:         }
129: 
130:         if ($config['trashed']) {
131:             wp_die(__("You can't edit this item because it is in the Trash. Please restore it and try again.", 'quform'));
132:         }
133: 
134:         $this->updateUserRecentForms($config['id']);
135: 
136:         if ( ! $this->license->isValid()) {
137:             /* translators: %1$s: open link tag, %2$s: close link tag, %3$s: open purchase link tag, %4$s: close purchase link tag */
138:             $this->addMessage('error', '<strong>' . sprintf(esc_html__('You are using an unlicensed version. Please %1$senter your license key%2$s or %3$spurchase a license key%4$s.', 'quform'), '<a href="' . esc_url(admin_url('admin.php?page=quform.settings#license-updates')) .'">', '</a>', '<a href="https://www.quform.com/buy.php"  target="_blank">', '</a>') . '</strong>');
139:         }
140: 
141:         $this->view->with(array(
142:             'form' => $this->builder->prepare($config),
143:             'builder' => $this->builder,
144:             'options' => $this->options
145:         ));
146:     }
147: 
148:     /**
149:      * Update the user meta storing recently edited forms
150:      *
151:      * @param int $formId
152:      */
153:     protected function updateUserRecentForms($formId)
154:     {
155:         if ( ! $this->options->get('toolbarMenu')) {
156:             return;
157:         }
158: 
159:         $currentUserId = get_current_user_id();
160:         $recentFormIds = get_user_meta($currentUserId, 'quform_recent_forms', true);
161: 
162:         if ( ! is_array($recentFormIds)) {
163:             $recentFormIds = array();
164:         }
165: 
166:         $index = array_search($formId, $recentFormIds);
167: 
168:         if ($index !== false) {
169:             unset($recentFormIds[$index]);
170:             $recentFormIds = array_values($recentFormIds);
171:         }
172: 
173:         array_unshift($recentFormIds, $formId);
174: 
175:         update_user_meta($currentUserId, 'quform_recent_forms', array_slice($recentFormIds, 0, 8));
176:     }
177: }
178: 
API documentation generated by ApiGen