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:      * Get the HTML for the title and description
 48:      *
 49:      * @return  string
 50:      */
 51:     protected function getTitleDescriptionHtml()
 52:     {
 53:         $output = '';
 54:         $title = $this->config('title');
 55:         $description = $this->config('description');
 56:         $showTitle = Quform::isNonEmptyString($title);
 57:         $showDescription = Quform::isNonEmptyString($description);
 58: 
 59:         switch (get_class($this)) {
 60:             case 'Quform_Element_Page':
 61:                 $prefix = 'page';
 62:                 break;
 63:             case 'Quform_Element_Group':
 64:                 $prefix = 'group';
 65:                 break;
 66:         }
 67: 
 68:         if ($showTitle || $showDescription) {
 69:             $output .= sprintf('<div class="quform-%s-title-description">', $prefix);
 70: 
 71:             if ($showTitle) {
 72:                 $output .= Quform::getHtmlTag($this->config('titleTag'), array('class' => sprintf('quform-%s-title', $prefix)), do_shortcode($title));
 73:             }
 74: 
 75:             if ($showDescription) {
 76:                 $output .= Quform::getHtmlTag('p', array('class' => sprintf('quform-%s-description', $prefix)), do_shortcode($description));
 77:             }
 78: 
 79:             $output .= '</div>';
 80:         }
 81: 
 82:         return $output;
 83:     }
 84: 
 85:     /**
 86:      * @return array
 87:      */
 88:     abstract protected function getContainerClasses();
 89: 
 90:     /**
 91:      * Render the CSS for this container and its children
 92:      *
 93:      * @param   array   $context
 94:      * @return  string
 95:      */
 96:     protected function renderCss(array $context = array())
 97:     {
 98:         $css = '';
 99: 
100:         foreach ($this->elements as $element) {
101:             $css .= $element->getCss($context);
102:         }
103: 
104:         $css .= parent::renderCss($context);
105: 
106:         return $css;
107:     }
108: 
109:     /**
110:      * Set whether the container contains at least one non-empty child element, this will be processed and set when processing the form
111:      *
112:      * @param boolean $flag
113:      */
114:     public function setHasNonEmptyChild($flag)
115:     {
116:         $this->hasNonEmptyChild = (bool) $flag;
117:     }
118: 
119:     /**
120:      * Set whether the container contains at least one conditionally visible child element
121:      *
122:      * @param boolean $flag
123:      */
124:     public function setHasVisibleChild($flag)
125:     {
126:         $this->hasVisibleChild = (bool) $flag;
127:     }
128: 
129:     /**
130:      * Get whether the container contains at least one conditionally visible child element
131:      *
132:      * @return boolean
133:      */
134:     public function getHasVisibleChild()
135:     {
136:         return $this->hasVisibleChild;
137:     }
138: 
139:     /**
140:      * Get whether the container is empty
141:      *
142:      * @return boolean
143:      */
144:     public function isEmpty()
145:     {
146:         return ! $this->hasNonEmptyChild;
147:     }
148: 
149:     /**
150:      * Get whether the container is hidden
151:      *
152:      * @return boolean
153:      */
154:     public function isHidden()
155:     {
156:         return $this->isConditionallyHidden() || ! $this->hasVisibleChild;
157:     }
158: 
159:     /**
160:      * Get the recursive iterator to iterate over the form elements
161:      *
162:      * Modes:
163:      * RecursiveIteratorIterator::LEAVES_ONLY
164:      * RecursiveIteratorIterator::SELF_FIRST
165:      * RecursiveIteratorIterator::CHILD_FIRST
166:      * RecursiveIteratorIterator::CATCH_GET_CHILD
167:      *
168:      * @param  int $mode
169:      * @return RecursiveIteratorIterator
170:      */
171:     public function getRecursiveIterator($mode = RecursiveIteratorIterator::LEAVES_ONLY)
172:     {
173:         return new RecursiveIteratorIterator(
174:             new Quform_Element_Container_Iterator($this),
175:             $mode
176:         );
177:     }
178: }
179: 
API documentation generated by ApiGen