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_Controller
  7: {
  8:     /**
  9:      * The current page
 10:      *
 11:      * @var Quform_Admin_Page
 12:      */
 13:     protected $page;
 14: 
 15:     /**
 16:      * @var Quform_Admin_Page_Factory
 17:      */
 18:     protected $pageFactory;
 19: 
 20:     /**
 21:      * @param Quform_Admin_Page_Factory $pageFactory
 22:      */
 23:     public function __construct(Quform_Admin_Page_Factory $pageFactory)
 24:     {
 25:         $this->pageFactory = $pageFactory;
 26:     }
 27: 
 28:     /**
 29:      * Process the current page
 30:      *
 31:      * @param object $screen The current screen object
 32:      */
 33:     public function process($screen)
 34:     {
 35:         if ($this->isCorePage($screen->id)) {
 36:             $this->page = $this->pageFactory->create($this->screenIdToPageName($screen->id));
 37:             $this->page->bootstrap()->process();
 38:         }
 39:     }
 40: 
 41:     /**
 42:      * Enqueue the page assets
 43:      */
 44:     public function enqueueAssets()
 45:     {
 46:         if ($this->page instanceof Quform_Admin_Page) {
 47:             $this->page->enqueueAssets();
 48:         }
 49:     }
 50: 
 51:     /**
 52:      * Override the admin page title
 53:      *
 54:      * @param   string  $adminTitle
 55:      * @return  string
 56:      */
 57:     public function setAdminTitle($adminTitle)
 58:     {
 59:         if ($this->page instanceof Quform_Admin_Page) {
 60:             return $this->page->setAdminTitle($adminTitle);
 61:         }
 62: 
 63:         return $adminTitle;
 64:     }
 65: 
 66:     /**
 67:      * Set a custom body class
 68:      *
 69:      * @param   string  $classes
 70:      * @return  string
 71:      */
 72:     public function addBodyClass($classes)
 73:     {
 74:         if ($this->page instanceof Quform_Admin_Page) {
 75:             $classes .= sprintf(' %s', sanitize_title(get_class($this->page)));
 76:         }
 77: 
 78:         return $classes;
 79:     }
 80: 
 81:     /**
 82:      * Render the page
 83:      */
 84:     public function display()
 85:     {
 86:         echo $this->page->display();
 87:     }
 88: 
 89:     /**
 90:      * Add the WordPress administration menu pages
 91:      */
 92:     public function createMenus()
 93:     {
 94:         add_menu_page(
 95:             __('Dashboard', 'quform'),
 96:             __('Forms', 'quform'),
 97:             'quform_view_dashboard',
 98:             'quform.dashboard',
 99:             array($this, 'display'),
100:             $this->getMenuIcon(),
101:             '30.249829482347'
102:         );
103: 
104:         do_action('quform_admin_menu', 5);
105: 
106:         add_submenu_page(
107:             'quform.dashboard',
108:             __('Dashboard', 'quform'),
109:             __('Dashboard', 'quform'),
110:             'quform_view_dashboard',
111:             'quform.dashboard',
112:             array($this, 'display')
113:         );
114: 
115:         do_action('quform_admin_menu', 10);
116: 
117:         add_submenu_page(
118:             'quform.dashboard',
119:             __('Forms', 'quform'),
120:             __('Forms', 'quform'),
121:             'quform_list_forms',
122:             'quform.forms',
123:             array($this, 'display')
124:         );
125: 
126:         do_action('quform_admin_menu', 15);
127: 
128:         add_submenu_page(
129:             'quform.dashboard',
130:             __('Add New Form', 'quform'),
131:             __('Add New', 'quform'),
132:             'quform_add_forms',
133:             'quform.forms&sp=add',
134:             array($this, 'display')
135:         );
136: 
137:         do_action('quform_admin_menu', 20);
138: 
139:         add_submenu_page(
140:             'quform.dashboard',
141:             __('Entries', 'quform'),
142:             __('Entries', 'quform'),
143:             'quform_view_entries',
144:             'quform.entries',
145:             array($this, 'display')
146:         );
147: 
148:         do_action('quform_admin_menu', 25);
149: 
150:         add_submenu_page(
151:             'quform.dashboard',
152:             __('Tools', 'quform'),
153:             __('Tools', 'quform'),
154:             'quform_view_tools',
155:             'quform.tools',
156:             array($this, 'display')
157:         );
158: 
159:         do_action('quform_admin_menu', 30);
160: 
161:         add_submenu_page(
162:             'quform.dashboard',
163:             __('Settings', 'quform'),
164:             __('Settings', 'quform'),
165:             'quform_settings',
166:             'quform.settings',
167:             array($this, 'display')
168:         );
169: 
170:         do_action('quform_admin_menu', 35);
171: 
172:         add_submenu_page(
173:             'quform.dashboard',
174:             __('Help', 'quform'),
175:             __('Help', 'quform'),
176:             'quform_help',
177:             'quform.help',
178:             array($this, 'display')
179:         );
180: 
181:         do_action('quform_admin_menu', 40);
182: 
183:         add_submenu_page(
184:             '',
185:             __('Preview', 'quform'),
186:             __('Preview', 'quform'),
187:             'quform_edit_forms',
188:             'quform.preview',
189:             array($this, 'display')
190:         );
191: 
192:         do_action('quform_admin_menu', 45);
193:     }
194: 
195:     /**
196:      * Add the "Form" link to the "+ New" menu in the admin bar
197:      *
198:      * @param WP_Admin_Bar $adminBar
199:      */
200:     public function addNewFormToAdminBar(WP_Admin_Bar $adminBar)
201:     {
202:         if (current_user_can('quform_add_forms')) {
203:             $adminBar->add_node(array(
204:                 'id' => 'quform-add-new-form',
205:                 'title' => __('Form', 'quform'),
206:                 'href' => admin_url('admin.php?page=quform.forms&sp=add'),
207:                 'parent' => 'new-content'
208:             ));
209:         }
210:     }
211: 
212:     /**
213:      * Get the menu icon SVG
214:      *
215:      * @return string
216:      */
217:     protected function getMenuIcon()
218:     {
219:         $color = '';
220: 
221:         if (in_array(Quform::get($_GET, 'page'), array('quform.dashboard', 'quform.forms', 'quform.entries', 'quform.tools', 'quform.settings', 'quform.help'))) {
222:             $color = '#ffffff';
223:         }
224: 
225:         $color = apply_filters('quform_admin_menu_icon_color', $color);
226: 
227:         return Quform::getPluginIcon($color);
228:     }
229: 
230:     /**
231:      * Convert the given screen ID into a page name
232:      *
233:      * @param   string  $id  The screen ID, e.g. toplevel_page_quform.forms
234:      * @return  string       The last part of the page class e.g. Forms
235:      */
236:     protected function screenIdToPageName($id)
237:     {
238:         $name = preg_replace('/^.+_page_quform\.(.+)$/', '$1', $id);
239: 
240:         return Quform::studlyCase($name);
241:     }
242: 
243:     /**
244:      * Is the given screen ID one of the plugin core pages
245:      *
246:      * @param   string  $id  The screen ID, e.g. toplevel_page_quform.forms
247:      * @return  bool
248:      */
249:     protected function isCorePage($id)
250:     {
251:         return (bool) preg_match('/_page_quform\.(dashboard|forms|entries|tools|settings|help|preview)$/', $id);
252:     }
253: 
254:     /**
255:      * Get the subpage query var
256:      *
257:      * @return string|null
258:      */
259:     protected function getSubpage()
260:     {
261:         return Quform::get($_GET, 'sp');
262:     }
263: }
264: 
API documentation generated by ApiGen