📄 form.php
字号:
} return null; } /** * Retrieve all elements * * @return array */ public function getElements() { return $this->_elements; } /** * Remove element * * @param string $name * @return boolean */ public function removeElement($name) { $name = (string) $name; if (isset($this->_elements[$name])) { unset($this->_elements[$name]); if (array_key_exists($name, $this->_order)) { unset($this->_order[$name]); $this->_orderUpdated = true; } else { foreach ($this->_displayGroups as $group) { if (null !== $group->getElement($name)) { $group->removeElement($name); } } } return true; } return false; } /** * Remove all form elements * * @return Zend_Form */ public function clearElements() { foreach (array_keys($this->_elements) as $key) { if (array_key_exists($key, $this->_order)) { unset($this->_order[$key]); } } $this->_elements = array(); $this->_orderUpdated = true; return $this; } /** * Set default values for elements * * If an element's name is not specified as a key in the array, its value * is set to null. * * @param array $defaults * @return Zend_Form */ public function setDefaults(array $defaults) { foreach ($this->getElements() as $name => $element) { if (array_key_exists($name, $defaults)) { $this->setDefault($name, $defaults[$name]); } } foreach ($this->getSubForms() as $name => $form) { if (array_key_exists($name, $defaults)) { $form->setDefaults($defaults[$name]); } else { $form->setDefaults($defaults); } } return $this; } /** * Set default value for an element * * @param string $name * @param mixed $value * @return Zend_Form */ public function setDefault($name, $value) { $name = (string) $name; if ($element = $this->getElement($name)) { $element->setValue($value); } else { if (is_scalar($value)) { foreach ($this->getSubForms() as $subForm) { $subForm->setDefault($name, $value); } } elseif (is_array($value) && ($subForm = $this->getSubForm($name))) { $subForm->setDefaults($value); } } return $this; } /** * Retrieve value for single element * * @param string $name * @return mixed */ public function getValue($name) { if ($element = $this->getElement($name)) { return $element->getValue(); } if ($subForm = $this->getSubForm($name)) { return $subForm->getValues(true); } foreach ($this->getSubForms() as $subForm) { if ($name == $subForm->getElementsBelongTo()) { return $subForm->getValues(true); } } return null; } /** * Retrieve all form element values * * @param bool $suppressArrayNotation * @return array */ public function getValues($suppressArrayNotation = false) { $values = array(); foreach ($this->getElements() as $key => $element) { if (!$element->getIgnore()) { $values[$key] = $element->getValue(); } } foreach ($this->getSubForms() as $key => $subForm) { $array = $this->_getArrayName($subForm->getElementsBelongTo()); if (empty($array)) { $values[$key] = $subForm->getValues(true); } else { $values[$array] = $subForm->getValues(true); } } if (!$suppressArrayNotation && $this->isArray()) { $values = array( $this->getElementsBelongTo() => $values ); } return $values; } /** * Get unfiltered element value * * @param string $name * @return mixed */ public function getUnfilteredValue($name) { if ($element = $this->getElement($name)) { return $element->getUnfilteredValue(); } return null; } /** * Retrieve all unfiltered element values * * @return array */ public function getUnfilteredValues() { $values = array(); foreach ($this->getElements() as $key => $element) { $values[$key] = $element->getUnfilteredValue(); } return $values; } /** * Set all elements' filters * * @param array $filters * @return Zend_Form */ public function setElementFilters(array $filters) { foreach ($this->getElements() as $element) { $element->setFilters($filters); } return $this; } /** * Set name of array elements belong to * * @param string $array * @return Zend_Form */ public function setElementsBelongTo($array) { $name = $this->filterName($array, true); if (empty($name)) { $name = null; } $this->_elementsBelongTo = $name; (null !== $name) ? $this->setIsArray(true) : $this->setIsArray(false); return $this; } /** * Get name of array elements belong to * * @return string|null */ public function getElementsBelongTo() { if ((null === $this->_elementsBelongTo) && $this->isArray()) { $name = $this->getName(); if (!empty($name)) { return $name; } } return $this->_elementsBelongTo; } /** * Set flag indicating elements belong to array * * @param bool $flag Value of flag * @param bool $setName Whether or not to set the name the elements belong to * @return Zend_Form */ public function setIsArray($flag) { $this->_isArray = (bool) $flag; return $this; } /** * Get flag indicating if elements belong to an array * * @return bool */ public function isArray() { return $this->_isArray; } // Element groups: /** * Add a form group/subform * * @param Zend_Form $form * @param string $name * @param int $order * @return Zend_Form */ public function addSubForm(Zend_Form $form, $name, $order = null) { $name = (string) $name; foreach ($this->_loaders as $type => $loader) { $loaderPaths = $loader->getPaths(); foreach ($loaderPaths as $prefix => $paths) { foreach ($paths as $path) { $form->addPrefixPath($prefix, $path, $type); } } } if (!empty($this->_elementPrefixPaths)) { foreach ($this->_elementPrefixPaths as $spec) { list($prefix, $path, $type) = array_values($spec); $form->addElementPrefixPath($prefix, $path, $type); } } if (!empty($this->_displayGroupPrefixPaths)) { foreach ($this->_displayGroupPrefixPaths as $spec) { list($prefix, $path) = array_values($spec); $form->addDisplayGroupPrefixPath($prefix, $path); } } if (null !== $order) { $form->setOrder($order); } $form->setName($name); $this->_subForms[$name] = $form; $this->_order[$name] = $order; $this->_orderUpdated = true; return $this; } /** * Add multiple form subForms/subforms at once * * @param array $subForms * @return Zend_Form */ public function addSubForms(array $subForms) { foreach ($subForms as $key => $spec) { $name = null; if (!is_numeric($key)) { $name = $key; } if ($spec instanceof Zend_Form) { $this->addSubForm($spec, $name); continue; } if (is_array($spec)) { $argc = count($spec); $order = null; switch ($argc) { case 0: continue; case (1 <= $argc): $subForm = array_shift($spec); case (2 <= $argc): $name = array_shift($spec); case (3 <= $argc): $order = array_shift($spec); default: $this->addSubForm($subForm, $name, $order); } } } return $this; } /** * Set multiple form subForms/subforms (overwrites) * * @param array $subForms * @return Zend_Form */ public function setSubForms(array $subForms) { $this->clearSubForms(); return $this->addSubForms($subForms); } /** * Retrieve a form subForm/subform * * @param string $name * @return Zend_Form|null */ public function getSubForm($name) { $name = (string) $name; if (isset($this->_subForms[$name])) { return $this->_subForms[$name]; } return null; } /** * Retrieve all form subForms/subforms * * @return array */ public function getSubForms() { return $this->_subForms; } /** * Remove form subForm/subform * * @param string $name * @return boolean */ public function removeSubForm($name) { $name = (string) $name; if (array_key_exists($name, $this->_subForms)) { unset($this->_subForms[$name]); if (array_key_exists($name, $this->_order)) { unset($this->_order[$name]); $this->_orderUpdated = true; } return true; } return false; } /** * Remove all form subForms/subforms * * @return Zend_Form */ public function clearSubForms() { foreach (array_keys($this->_subForms) as $key) { if (array_key_exists($key, $this->_order)) { unset($this->_order[$key]); } } $this->_subForms = array(); $this->_orderUpdated = true; return $this; } // Display groups: /** * Set default display group class * * @param string $class * @return Zend_Form */ public function setDefaultDisplayGroupClass($class) { $this->_defaultDisplayGroupClass = (string) $class; return $this; } /** * Retrieve default display group class * * @return string */ public function getDefaultDisplayGroupClass() { return $this->_defaultDisplayGroupClass; } /** * Add a display group * * Groups named elements for display purposes. * * If a referenced element does not yet exist in the form, it is omitted. * * @param array $elements * @param string $name * @param int $order * @return Zend_Form * @throws Zend_Form_Exception if no valid elements provided */ public function addDisplayGroup(array $elements, $name, $options = null) { $group = array(); foreach ($elements as $element) { if (isset($this->_elements[$element])) { $add = $this->getElement($element); if (null !== $add) { unset($this->_order[$element]); $group[] = $add; } } } if (empty($group)) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -