⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form.php

📁 Bug tracker, and reporter.
💻 PHP
📖 第 1 页 / 共 5 页
字号:
        }        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 + -