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: abstract class Quform_Element_Container extends Quform_Element
  7: {
  8:     /**
  9:      * The child elements of this container
 10:      * @var Quform_Element[]
 11:      */
 12:     protected $elements = array();
 13: 
 14:     /**
 15:      * Whether the container contains at least one non-empty child element, this will be processed and set when processing the form
 16:      * @var boolean
 17:      */
 18:     protected $hasNonEmptyChild = false;
 19: 
 20:     /**
 21:      * Whether the container contains at least one conditionally visible child element, this will be processed and set when processing the form
 22:      * @var boolean
 23:      */
 24:     protected $hasVisibleChild = false;
 25: 
 26:     /**
 27:      * Get the child elements of this element
 28:      *
 29:      * @return Quform_Element[] The form elements
 30:      */
 31:     public function getElements()
 32:     {
 33:         return $this->elements;
 34:     }
 35: 
 36:     /**
 37:      * Add a form element to the container
 38:      *
 39:      * @param Quform_Element $element
 40:      */
 41:     public function addElement(Quform_Element $element)
 42:     {
 43:         $this->elements[$element->getName()] = $element;
 44:     }
 45: 
 46:     /**
 47:      * Insert an element at a specific offset
 48:      *
 49:      * @param  Quform_Element  $element
 50:      * @param  int             $offset
 51:      */
 52:     public function insertElementAt(Quform_Element $element, $offset)
 53:     {
 54:         $offset = max(0, min($offset, count($this->elements)));
 55: 
 56:         $this->elements = array_slice($this->elements, 0, $offset, true)
 57:             + array($element->getName() => $element)
 58:             + array_slice($this->elements, $offset, null, true);
 59:     }
 60: 
 61:     /**
 62:      * Get the HTML for the title and description
 63:      *
 64:      * @return  string
 65:      */
 66:     protected function getTitleDescriptionHtml()
 67:     {
 68:         $output = '';
 69:         $title = $this->config('title');
 70:         $description = $this->config('description');
 71:         $showTitle = Quform::isNonEmptyString($title);
 72:         $showDescription = Quform::isNonEmptyString($description);
 73: 
 74:         switch (get_class($this)) {
 75:             case 'Quform_Element_Page':
 76:                 $prefix = 'page';
 77:                 break;
 78:             case 'Quform_Element_Group':
 79:                 $prefix = 'group';
 80:                 break;
 81:         }
 82: 
 83:         if ($showTitle || $showDescription) {
 84:             $output .= sprintf('<div class="quform-%s-title-description">', $prefix);
 85: 
 86:             if ($showTitle) {
 87:                 $output .= Quform::getHtmlTag($this->config('titleTag'), array('class' => sprintf('quform-%s-title', $prefix)), do_shortcode($title));
 88:             }
 89: 
 90:             if ($showDescription) {
 91:                 $output .= Quform::getHtmlTag('p', array('class' => sprintf('quform-%s-description', $prefix)), do_shortcode($description));
 92:             }
 93: 
 94:             $output .= '</div>';
 95:         }
 96: 
 97:         return $output;
 98:     }
 99: 
100:     /**
101:      * @return array
102:      */
103:     abstract protected function getContainerClasses();
104: 
105:     /**
106:      * Render the CSS for this container and its children
107:      *
108:      * @param   array   $context
109:      * @return  string
110:      */
111:     protected function renderCss(array $context = array())
112:     {
113:         $css = '';
114: 
115:         foreach ($this->elements as $element) {
116:             $css .= $element->getCss($context);
117:         }
118: 
119:         $css .= parent::renderCss($context);
120: 
121:         return $css;
122:     }
123: 
124:     /**
125:      * Set whether the container contains at least one non-empty child element, this will be processed and set when processing the form
126:      *
127:      * @param boolean $flag
128:      */
129:     public function setHasNonEmptyChild($flag)
130:     {
131:         $this->hasNonEmptyChild = (bool) $flag;
132:     }
133: 
134:     /**
135:      * Set whether the container contains at least one conditionally visible child element
136:      *
137:      * @param boolean $flag
138:      */
139:     public function setHasVisibleChild($flag)
140:     {
141:         $this->hasVisibleChild = (bool) $flag;
142:     }
143: 
144:     /**
145:      * Get whether the container contains at least one conditionally visible child element
146:      *
147:      * @return boolean
148:      */
149:     public function getHasVisibleChild()
150:     {
151:         return $this->hasVisibleChild;
152:     }
153: 
154:     /**
155:      * Get whether the container is empty
156:      *
157:      * @return boolean
158:      */
159:     public function isEmpty()
160:     {
161:         return ! $this->hasNonEmptyChild;
162:     }
163: 
164:     /**
165:      * Get whether the container is hidden
166:      *
167:      * @return boolean
168:      */
169:     public function isHidden()
170:     {
171:         return $this->isConditionallyHidden() || ! $this->hasVisibleChild;
172:     }
173: 
174:     /**
175:      * Get the recursive iterator to iterate over the form elements
176:      *
177:      * Modes:
178:      * RecursiveIteratorIterator::LEAVES_ONLY
179:      * RecursiveIteratorIterator::SELF_FIRST
180:      * RecursiveIteratorIterator::CHILD_FIRST
181:      * RecursiveIteratorIterator::CATCH_GET_CHILD
182:      *
183:      * @param  int $mode
184:      * @return RecursiveIteratorIterator
185:      */
186:     public function getRecursiveIterator($mode = RecursiveIteratorIterator::LEAVES_ONLY)
187:     {
188:         return new RecursiveIteratorIterator(
189:             new Quform_Element_Container_Iterator($this),
190:             $mode
191:         );
192:     }
193: }
194: 
API documentation generated by ApiGen