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_Toolbar
  7: {
  8:     /**
  9:      * @var Quform_Options
 10:      */
 11:     protected $options;
 12: 
 13:     /**
 14:      * @var Quform_Repository
 15:      */
 16:     protected $repository;
 17: 
 18:     /**
 19:      * @param  Quform_Options     $options
 20:      * @param  Quform_Repository  $repository
 21:      */
 22:     public function __construct(Quform_Options $options, Quform_Repository $repository)
 23:     {
 24:         $this->options = $options;
 25:         $this->repository = $repository;
 26:     }
 27: 
 28:     /**
 29:      * Add a form management menu and links to the toolbar
 30:      *
 31:      * @param WP_Admin_Bar $adminBar
 32:      */
 33:     public function addNodes(WP_Admin_Bar $adminBar)
 34:     {
 35:         if ( ! $this->options->get('toolbarMenu') || ! $this->userHasAnyCapability()) {
 36:             return;
 37:         }
 38: 
 39:         if (current_user_can('quform_add_forms')) {
 40:             $adminBar->add_node(array(
 41:                 'id' => 'quform-new-form',
 42:                 'title' => Quform::escape(__('Form', 'quform')),
 43:                 'href' => admin_url('admin.php?page=quform.forms&sp=add'),
 44:                 'parent' => 'new-content'
 45:             ));
 46:         }
 47: 
 48:         if (current_user_can('quform_edit_forms') || current_user_can('quform_view_entries')) {
 49:             $forms = $this->repository->getFormsByUpdatedAt();
 50: 
 51:             if (is_array($forms) && count($forms)) {
 52:                 $adminBar->add_node(array(
 53:                     'id' => 'quform-recent-forms',
 54:                     'parent' => 'quform',
 55:                     'group' => true
 56:                 ));
 57: 
 58:                 $currentUserId = get_current_user_id();
 59:                 $recentFormIds = get_user_meta($currentUserId, 'quform_recent_forms', true);
 60: 
 61:                 if ( ! is_array($recentFormIds) || ! count($recentFormIds)) {
 62:                     $recentFormIds = array();
 63: 
 64:                     foreach ($forms as $form) {
 65:                         $recentFormIds[] = $form['id'];
 66:                     }
 67: 
 68:                     if (count($recentFormIds)) {
 69:                         update_user_meta($currentUserId, 'quform_recent_forms', array_slice($recentFormIds, 0, 8));
 70:                     }
 71:                 }
 72: 
 73:                 if (count($recentFormIds)) {
 74: 
 75:                     foreach ($recentFormIds as $recentFormId) {
 76: 
 77:                         foreach ($forms as $form) {
 78:                             if ($form['id'] == $recentFormId) {
 79:                                 $adminBar->add_node(array(
 80:                                     'id' => sprintf('quform-form-%d', $form['id']),
 81:                                     'title' => Quform::escape($form['name']),
 82:                                     'href' => current_user_can('quform_edit_forms') ? admin_url(sprintf('admin.php?page=quform.forms&sp=edit&id=%d', $form['id'])) : '',
 83:                                     'parent' => 'quform-recent-forms'
 84:                                 ));
 85: 
 86:                                 if (current_user_can('quform_edit_forms')) {
 87:                                     $adminBar->add_node(array(
 88:                                         'id' => sprintf('quform-form-%d-edit', $form['id']),
 89:                                         'title' => Quform::escape(__('Edit', 'quform')),
 90:                                         'href' => admin_url(sprintf('admin.php?page=quform.forms&sp=edit&id=%d', $form['id'])),
 91:                                         'parent' => sprintf('quform-form-%d', $form['id'])
 92:                                     ));
 93:                                 }
 94: 
 95:                                 if (current_user_can('quform_view_entries')) {
 96:                                     $adminBar->add_node(array(
 97:                                         'id' => sprintf('quform-form-%d-entries', $form['id']),
 98:                                         'title' => Quform::escape(__('Entries', 'quform')),
 99:                                         'href' => admin_url(sprintf('admin.php?page=quform.entries&id=%d', $form['id'])),
100:                                         'parent' => sprintf('quform-form-%d', $form['id'])
101:                                     ));
102:                                 }
103:                             }
104:                         }
105:                     }
106:                 }
107:             }
108:         }
109: 
110:         $adminBar->add_node(array(
111:             'id' => 'quform',
112:             'title' => sprintf('<span class="quform-toolbar-icon ab-item svg"></span><span class="ab-label">%s</span>', Quform::escape(__('Forms', 'quform'))),
113:             'href' => current_user_can('quform_view_dashboard') ? admin_url('admin.php?page=quform.dashboard') : false,
114:             'parent' => false,
115:             'meta' => array('class' => 'quform-toolbar-menu')
116:         ));
117: 
118:         if (current_user_can('quform_view_dashboard')) {
119:             $adminBar->add_node(array(
120:                 'id' => 'quform-dashboard',
121:                 'title' => Quform::escape(__('Dashboard', 'quform')),
122:                 'href' => admin_url('admin.php?page=quform.dashboard'),
123:                 'parent' => 'quform'
124:             ));
125:         }
126: 
127:         if (current_user_can('quform_list_forms')) {
128:             $adminBar->add_node(array(
129:                 'id' => 'quform-forms',
130:                 'title' => Quform::escape(__('Forms', 'quform')),
131:                 'href' => admin_url('admin.php?page=quform.forms'),
132:                 'parent' => 'quform'
133:             ));
134:         }
135: 
136:         if (current_user_can('quform_add_forms')) {
137:             $adminBar->add_node(array(
138:                 'id' => 'quform-add-new',
139:                 'title' => Quform::escape(__('Add New', 'quform')),
140:                 'href' => admin_url('admin.php?page=quform.forms&sp=add'),
141:                 'parent' => 'quform'
142:             ));
143:         }
144: 
145:         if (current_user_can('quform_settings')) {
146:             $adminBar->add_node(array(
147:                 'id' => 'quform-settings',
148:                 'title' => Quform::escape(__('Settings', 'quform')),
149:                 'href' => admin_url('admin.php?page=quform.settings'),
150:                 'parent' => 'quform'
151:             ));
152:         }
153:     }
154: 
155:     /**
156:      * Print the styles for the toolbar menu icon
157:      */
158:     public function printStyles()
159:     {
160:         if ( ! $this->options->get('toolbarMenu') || ! $this->userHasAnyCapability()) {
161:             return;
162:         }
163: 
164:         ?>
165:         <style>
166:             #wpadminbar .quform-toolbar-menu .quform-toolbar-icon {
167:                 float: left;
168:                 width: 27px;
169:                 height: 27px;
170:                 background: url('<?php echo esc_html(Quform::getPluginIcon()); ?>') no-repeat 0px 7px;
171:                 background-size: 20px;
172:             }
173:         </style>
174:         <?php
175:     }
176: 
177:     /**
178:      * Returns true only if the user has the capability to access at least one of the links within the toolbar menu
179:      *
180:      * @return bool
181:      */
182:     protected function userHasAnyCapability()
183:     {
184:         return
185:             current_user_can('quform_view_dashboard') ||
186:             current_user_can('quform_list_forms') ||
187:             current_user_can('quform_add_forms') ||
188:             current_user_can('quform_edit_forms') ||
189:             current_user_can('quform_view_entries') ||
190:             current_user_can('quform_settings');
191:     }
192: }
193: 
API documentation generated by ApiGen