diff --git a/libs/Zend/Form.php b/libs/Zend/Form.php deleted file mode 100644 index c8f6e796f7170198ea6ae2e6e614d6aa3e7c24a5..0000000000000000000000000000000000000000 --- a/libs/Zend/Form.php +++ /dev/null @@ -1,3366 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** @see Zend_Validate_Interface */ -// require_once 'Zend/Validate/Interface.php'; - -/** - * Zend_Form - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Form.php 22465 2010-06-19 17:41:03Z alab $ - */ -class Zend_Form implements Iterator, Countable, Zend_Validate_Interface -{ - /**#@+ - * Plugin loader type constants - */ - const DECORATOR = 'DECORATOR'; - const ELEMENT = 'ELEMENT'; - /**#@-*/ - - /**#@+ - * Method type constants - */ - const METHOD_DELETE = 'delete'; - const METHOD_GET = 'get'; - const METHOD_POST = 'post'; - const METHOD_PUT = 'put'; - /**#@-*/ - - /**#@+ - * Encoding type constants - */ - const ENCTYPE_URLENCODED = 'application/x-www-form-urlencoded'; - const ENCTYPE_MULTIPART = 'multipart/form-data'; - /**#@-*/ - - /** - * Form metadata and attributes - * @var array - */ - protected $_attribs = array(); - - /** - * Decorators for rendering - * @var array - */ - protected $_decorators = array(); - - /** - * Default display group class - * @var string - */ - protected $_defaultDisplayGroupClass = 'Zend_Form_DisplayGroup'; - - /** - * Form description - * @var string - */ - protected $_description; - - /** - * Should we disable loading the default decorators? - * @var bool - */ - protected $_disableLoadDefaultDecorators = false; - - /** - * Display group prefix paths - * @var array - */ - protected $_displayGroupPrefixPaths = array(); - - /** - * Groups of elements grouped for display purposes - * @var array - */ - protected $_displayGroups = array(); - - /** - * Global decorators to apply to all elements - * @var null|array - */ - protected $_elementDecorators; - - /** - * Prefix paths to use when creating elements - * @var array - */ - protected $_elementPrefixPaths = array(); - - /** - * Form elements - * @var array - */ - protected $_elements = array(); - - /** - * Array to which elements belong (if any) - * @var string - */ - protected $_elementsBelongTo; - - /** - * Custom form-level error messages - * @var array - */ - protected $_errorMessages = array(); - - /** - * Are there errors in the form? - * @var bool - */ - protected $_errorsExist = false; - - /** - * Has the form been manually flagged as an error? - * @var bool - */ - protected $_errorsForced = false; - - /** - * Form order - * @var int|null - */ - protected $_formOrder; - - /** - * Whether or not form elements are members of an array - * @var bool - */ - protected $_isArray = false; - - /** - * Form legend - * @var string - */ - protected $_legend; - - /** - * Plugin loaders - * @var array - */ - protected $_loaders = array(); - - /** - * Allowed form methods - * @var array - */ - protected $_methods = array('delete', 'get', 'post', 'put'); - - /** - * Order in which to display and iterate elements - * @var array - */ - protected $_order = array(); - - /** - * Whether internal order has been updated or not - * @var bool - */ - protected $_orderUpdated = false; - - /** - * Sub form prefix paths - * @var array - */ - protected $_subFormPrefixPaths = array(); - - /** - * Sub forms - * @var array - */ - protected $_subForms = array(); - - /** - * @var Zend_Translate - */ - protected $_translator; - - /** - * Global default translation adapter - * @var Zend_Translate - */ - protected static $_translatorDefault; - - /** - * is the translator disabled? - * @var bool - */ - protected $_translatorDisabled = false; - - /** - * @var Zend_View_Interface - */ - protected $_view; - - /** - * @var bool - */ - protected $_isRendered = false; - - /** - * Constructor - * - * Registers form view helper as decorator - * - * @param mixed $options - * @return void - */ - public function __construct($options = null) - { - if (is_array($options)) { - $this->setOptions($options); - } elseif ($options instanceof Zend_Config) { - $this->setConfig($options); - } - - // Extensions... - $this->init(); - - $this->loadDefaultDecorators(); - } - - /** - * Clone form object and all children - * - * @return void - */ - public function __clone() - { - $elements = array(); - foreach ($this->getElements() as $name => $element) { - $elements[] = clone $element; - } - $this->setElements($elements); - - $subForms = array(); - foreach ($this->getSubForms() as $name => $subForm) { - $subForms[$name] = clone $subForm; - } - $this->setSubForms($subForms); - - $displayGroups = array(); - foreach ($this->_displayGroups as $group) { - $clone = clone $group; - $elements = array(); - foreach ($clone->getElements() as $name => $e) { - $elements[] = $this->getElement($name); - } - $clone->setElements($elements); - $displayGroups[] = $clone; - } - $this->setDisplayGroups($displayGroups); - } - - /** - * Reset values of form - * - * @return Zend_Form - */ - public function reset() - { - foreach ($this->getElements() as $element) { - $element->setValue(null); - } - foreach ($this->getSubForms() as $subForm) { - $subForm->reset(); - } - - return $this; - } - - /** - * Initialize form (used by extending classes) - * - * @return void - */ - public function init() - { - } - - /** - * Set form state from options array - * - * @param array $options - * @return Zend_Form - */ - public function setOptions(array $options) - { - if (isset($options['prefixPath'])) { - $this->addPrefixPaths($options['prefixPath']); - unset($options['prefixPath']); - } - - if (isset($options['elementPrefixPath'])) { - $this->addElementPrefixPaths($options['elementPrefixPath']); - unset($options['elementPrefixPath']); - } - - if (isset($options['displayGroupPrefixPath'])) { - $this->addDisplayGroupPrefixPaths($options['displayGroupPrefixPath']); - unset($options['displayGroupPrefixPath']); - } - - if (isset($options['elementDecorators'])) { - $this->_elementDecorators = $options['elementDecorators']; - unset($options['elementDecorators']); - } - - if (isset($options['elements'])) { - $this->setElements($options['elements']); - unset($options['elements']); - } - - if (isset($options['defaultDisplayGroupClass'])) { - $this->setDefaultDisplayGroupClass($options['defaultDisplayGroupClass']); - unset($options['defaultDisplayGroupClass']); - } - - if (isset($options['displayGroupDecorators'])) { - $displayGroupDecorators = $options['displayGroupDecorators']; - unset($options['displayGroupDecorators']); - } - - if (isset($options['elementsBelongTo'])) { - $elementsBelongTo = $options['elementsBelongTo']; - unset($options['elementsBelongTo']); - } - - if (isset($options['attribs'])) { - $this->addAttribs($options['attribs']); - unset($options['attribs']); - } - - $forbidden = array( - 'Options', 'Config', 'PluginLoader', 'SubForms', 'View', 'Translator', - 'Attrib', 'Default', - ); - - foreach ($options as $key => $value) { - $normalized = ucfirst($key); - if (in_array($normalized, $forbidden)) { - continue; - } - - $method = 'set' . $normalized; - if (method_exists($this, $method)) { - $this->$method($value); - } else { - $this->setAttrib($key, $value); - } - } - - if (isset($displayGroupDecorators)) { - $this->setDisplayGroupDecorators($displayGroupDecorators); - } - - if (isset($elementsBelongTo)) { - $this->setElementsBelongTo($elementsBelongTo); - } - - return $this; - } - - /** - * Set form state from config object - * - * @param Zend_Config $config - * @return Zend_Form - */ - public function setConfig(Zend_Config $config) - { - return $this->setOptions($config->toArray()); - } - - - // Loaders - - /** - * Set plugin loaders for use with decorators and elements - * - * @param Zend_Loader_PluginLoader_Interface $loader - * @param string $type 'decorator' or 'element' - * @return Zend_Form - * @throws Zend_Form_Exception on invalid type - */ - public function setPluginLoader(Zend_Loader_PluginLoader_Interface $loader, $type = null) - { - $type = strtoupper($type); - switch ($type) { - case self::DECORATOR: - case self::ELEMENT: - $this->_loaders[$type] = $loader; - return $this; - default: - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to setPluginLoader()', $type)); - } - } - - /** - * Retrieve plugin loader for given type - * - * $type may be one of: - * - decorator - * - element - * - * If a plugin loader does not exist for the given type, defaults are - * created. - * - * @param string $type - * @return Zend_Loader_PluginLoader_Interface - */ - public function getPluginLoader($type = null) - { - $type = strtoupper($type); - if (!isset($this->_loaders[$type])) { - switch ($type) { - case self::DECORATOR: - $prefixSegment = 'Form_Decorator'; - $pathSegment = 'Form/Decorator'; - break; - case self::ELEMENT: - $prefixSegment = 'Form_Element'; - $pathSegment = 'Form/Element'; - break; - default: - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to getPluginLoader()', $type)); - } - - // require_once 'Zend/Loader/PluginLoader.php'; - $this->_loaders[$type] = new Zend_Loader_PluginLoader( - array('Zend_' . $prefixSegment . '_' => 'Zend/' . $pathSegment . '/') - ); - } - - return $this->_loaders[$type]; - } - - /** - * Add prefix path for plugin loader - * - * If no $type specified, assumes it is a base path for both filters and - * validators, and sets each according to the following rules: - * - decorators: $prefix = $prefix . '_Decorator' - * - elements: $prefix = $prefix . '_Element' - * - * Otherwise, the path prefix is set on the appropriate plugin loader. - * - * If $type is 'decorator', sets the path in the decorator plugin loader - * for all elements. Additionally, if no $type is provided, - * the prefix and path is added to both decorator and element - * plugin loader with following settings: - * $prefix . '_Decorator', $path . '/Decorator/' - * $prefix . '_Element', $path . '/Element/' - * - * @param string $prefix - * @param string $path - * @param string $type - * @return Zend_Form - * @throws Zend_Form_Exception for invalid type - */ - public function addPrefixPath($prefix, $path, $type = null) - { - $type = strtoupper($type); - switch ($type) { - case self::DECORATOR: - case self::ELEMENT: - $loader = $this->getPluginLoader($type); - $loader->addPrefixPath($prefix, $path); - return $this; - case null: - $prefix = rtrim($prefix, '_'); - $path = rtrim($path, DIRECTORY_SEPARATOR); - foreach (array(self::DECORATOR, self::ELEMENT) as $type) { - $cType = ucfirst(strtolower($type)); - $pluginPath = $path . DIRECTORY_SEPARATOR . $cType . DIRECTORY_SEPARATOR; - $pluginPrefix = $prefix . '_' . $cType; - $loader = $this->getPluginLoader($type); - $loader->addPrefixPath($pluginPrefix, $pluginPath); - } - return $this; - default: - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to getPluginLoader()', $type)); - } - } - - /** - * Add many prefix paths at once - * - * @param array $spec - * @return Zend_Form - */ - public function addPrefixPaths(array $spec) - { - if (isset($spec['prefix']) && isset($spec['path'])) { - return $this->addPrefixPath($spec['prefix'], $spec['path']); - } - foreach ($spec as $type => $paths) { - if (is_numeric($type) && is_array($paths)) { - $type = null; - if (isset($paths['prefix']) && isset($paths['path'])) { - if (isset($paths['type'])) { - $type = $paths['type']; - } - $this->addPrefixPath($paths['prefix'], $paths['path'], $type); - } - } elseif (!is_numeric($type)) { - if (!isset($paths['prefix']) || !isset($paths['path'])) { - continue; - } - $this->addPrefixPath($paths['prefix'], $paths['path'], $type); - } - } - return $this; - } - - /** - * Add prefix path for all elements - * - * @param string $prefix - * @param string $path - * @param string $type - * @return Zend_Form - */ - public function addElementPrefixPath($prefix, $path, $type = null) - { - $this->_elementPrefixPaths[] = array( - 'prefix' => $prefix, - 'path' => $path, - 'type' => $type, - ); - - foreach ($this->getElements() as $element) { - $element->addPrefixPath($prefix, $path, $type); - } - - foreach ($this->getSubForms() as $subForm) { - $subForm->addElementPrefixPath($prefix, $path, $type); - } - - return $this; - } - - /** - * Add prefix paths for all elements - * - * @param array $spec - * @return Zend_Form - */ - public function addElementPrefixPaths(array $spec) - { - $this->_elementPrefixPaths = $this->_elementPrefixPaths + $spec; - - foreach ($this->getElements() as $element) { - $element->addPrefixPaths($spec); - } - - return $this; - } - - /** - * Add prefix path for all display groups - * - * @param string $prefix - * @param string $path - * @return Zend_Form - */ - public function addDisplayGroupPrefixPath($prefix, $path) - { - $this->_displayGroupPrefixPaths[] = array( - 'prefix' => $prefix, - 'path' => $path, - ); - - foreach ($this->getDisplayGroups() as $group) { - $group->addPrefixPath($prefix, $path); - } - - return $this; - } - - /** - * Add multiple display group prefix paths at once - * - * @param array $spec - * @return Zend_Form - */ - public function addDisplayGroupPrefixPaths(array $spec) - { - foreach ($spec as $key => $value) { - if (is_string($value) && !is_numeric($key)) { - $this->addDisplayGroupPrefixPath($key, $value); - continue; - } - - if (is_string($value) && is_numeric($key)) { - continue; - } - - if (is_array($value)) { - $count = count($value); - if (array_keys($value) === range(0, $count - 1)) { - if ($count < 2) { - continue; - } - $prefix = array_shift($value); - $path = array_shift($value); - $this->addDisplayGroupPrefixPath($prefix, $path); - continue; - } - if (array_key_exists('prefix', $value) && array_key_exists('path', $value)) { - $this->addDisplayGroupPrefixPath($value['prefix'], $value['path']); - } - } - } - return $this; - } - - // Form metadata: - - /** - * Set form attribute - * - * @param string $key - * @param mixed $value - * @return Zend_Form - */ - public function setAttrib($key, $value) - { - $key = (string) $key; - $this->_attribs[$key] = $value; - return $this; - } - - /** - * Add multiple form attributes at once - * - * @param array $attribs - * @return Zend_Form - */ - public function addAttribs(array $attribs) - { - foreach ($attribs as $key => $value) { - $this->setAttrib($key, $value); - } - return $this; - } - - /** - * Set multiple form attributes at once - * - * Overwrites any previously set attributes. - * - * @param array $attribs - * @return Zend_Form - */ - public function setAttribs(array $attribs) - { - $this->clearAttribs(); - return $this->addAttribs($attribs); - } - - /** - * Retrieve a single form attribute - * - * @param string $key - * @return mixed - */ - public function getAttrib($key) - { - $key = (string) $key; - if (!isset($this->_attribs[$key])) { - return null; - } - - return $this->_attribs[$key]; - } - - /** - * Retrieve all form attributes/metadata - * - * @return array - */ - public function getAttribs() - { - return $this->_attribs; - } - - /** - * Remove attribute - * - * @param string $key - * @return bool - */ - public function removeAttrib($key) - { - if (isset($this->_attribs[$key])) { - unset($this->_attribs[$key]); - return true; - } - - return false; - } - - /** - * Clear all form attributes - * - * @return Zend_Form - */ - public function clearAttribs() - { - $this->_attribs = array(); - return $this; - } - - /** - * Set form action - * - * @param string $action - * @return Zend_Form - */ - public function setAction($action) - { - return $this->setAttrib('action', (string) $action); - } - - /** - * Get form action - * - * Sets default to '' if not set. - * - * @return string - */ - public function getAction() - { - $action = $this->getAttrib('action'); - if (null === $action) { - $action = ''; - $this->setAction($action); - } - return $action; - } - - /** - * Set form method - * - * Only values in {@link $_methods()} allowed - * - * @param string $method - * @return Zend_Form - * @throws Zend_Form_Exception - */ - public function setMethod($method) - { - $method = strtolower($method); - if (!in_array($method, $this->_methods)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('"%s" is an invalid form method', $method)); - } - $this->setAttrib('method', $method); - return $this; - } - - /** - * Retrieve form method - * - * @return string - */ - public function getMethod() - { - if (null === ($method = $this->getAttrib('method'))) { - $method = self::METHOD_POST; - $this->setAttrib('method', $method); - } - return strtolower($method); - } - - /** - * Set encoding type - * - * @param string $value - * @return Zend_Form - */ - public function setEnctype($value) - { - $this->setAttrib('enctype', $value); - return $this; - } - - /** - * Get encoding type - * - * @return string - */ - public function getEnctype() - { - if (null === ($enctype = $this->getAttrib('enctype'))) { - $enctype = self::ENCTYPE_URLENCODED; - $this->setAttrib('enctype', $enctype); - } - return $this->getAttrib('enctype'); - } - - /** - * Filter a name to only allow valid variable characters - * - * @param string $value - * @param bool $allowBrackets - * @return string - */ - public function filterName($value, $allowBrackets = false) - { - $charset = '^a-zA-Z0-9_\x7f-\xff'; - if ($allowBrackets) { - $charset .= '\[\]'; - } - return preg_replace('/[' . $charset . ']/', '', (string) $value); - } - - /** - * Set form name - * - * @param string $name - * @return Zend_Form - */ - public function setName($name) - { - $name = $this->filterName($name); - if ('' === (string)$name) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid name provided; must contain only valid variable characters and be non-empty'); - } - - return $this->setAttrib('name', $name); - } - - /** - * Get name attribute - * - * @return null|string - */ - public function getName() - { - return $this->getAttrib('name'); - } - - /** - * Get fully qualified name - * - * Places name as subitem of array and/or appends brackets. - * - * @return string - */ - public function getFullyQualifiedName() - { - return $this->getName(); - } - - /** - * Get element id - * - * @return string - */ - public function getId() - { - if (null !== ($id = $this->getAttrib('id'))) { - return $id; - } - - $id = $this->getFullyQualifiedName(); - - // Bail early if no array notation detected - if (!strstr($id, '[')) { - return $id; - } - - // Strip array notation - if ('[]' == substr($id, -2)) { - $id = substr($id, 0, strlen($id) - 2); - } - $id = str_replace('][', '-', $id); - $id = str_replace(array(']', '['), '-', $id); - $id = trim($id, '-'); - - return $id; - } - - /** - * Set form legend - * - * @param string $value - * @return Zend_Form - */ - public function setLegend($value) - { - $this->_legend = (string) $value; - return $this; - } - - /** - * Get form legend - * - * @return string - */ - public function getLegend() - { - return $this->_legend; - } - - /** - * Set form description - * - * @param string $value - * @return Zend_Form - */ - public function setDescription($value) - { - $this->_description = (string) $value; - return $this; - } - - /** - * Retrieve form description - * - * @return string - */ - public function getDescription() - { - return $this->_description; - } - - /** - * Set form order - * - * @param int $index - * @return Zend_Form - */ - public function setOrder($index) - { - $this->_formOrder = (int) $index; - return $this; - } - - /** - * Get form order - * - * @return int|null - */ - public function getOrder() - { - return $this->_formOrder; - } - - /** - * When calling renderFormElements or render this method - * is used to set $_isRendered member to prevent repeatedly - * merging belongsTo setting - */ - protected function _setIsRendered() - { - $this->_isRendered = true; - return $this; - } - - /** - * Get the value of $_isRendered member - */ - protected function _getIsRendered() - { - return (bool)$this->_isRendered; - } - - // Element interaction: - - /** - * Add a new element - * - * $element may be either a string element type, or an object of type - * Zend_Form_Element. If a string element type is provided, $name must be - * provided, and $options may be optionally provided for configuring the - * element. - * - * If a Zend_Form_Element is provided, $name may be optionally provided, - * and any provided $options will be ignored. - * - * @param string|Zend_Form_Element $element - * @param string $name - * @param array|Zend_Config $options - * @return Zend_Form - */ - public function addElement($element, $name = null, $options = null) - { - if (is_string($element)) { - if (null === $name) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Elements specified by string must have an accompanying name'); - } - - if (is_array($this->_elementDecorators)) { - if (null === $options) { - $options = array('decorators' => $this->_elementDecorators); - } elseif ($options instanceof Zend_Config) { - $options = $options->toArray(); - } - if (is_array($options) - && !array_key_exists('decorators', $options) - ) { - $options['decorators'] = $this->_elementDecorators; - } - } - - $this->_elements[$name] = $this->createElement($element, $name, $options); - } elseif ($element instanceof Zend_Form_Element) { - $prefixPaths = array(); - $prefixPaths['decorator'] = $this->getPluginLoader('decorator')->getPaths(); - if (!empty($this->_elementPrefixPaths)) { - $prefixPaths = array_merge($prefixPaths, $this->_elementPrefixPaths); - } - - if (null === $name) { - $name = $element->getName(); - } - - $this->_elements[$name] = $element; - $this->_elements[$name]->addPrefixPaths($prefixPaths); - } - - $this->_order[$name] = $this->_elements[$name]->getOrder(); - $this->_orderUpdated = true; - $this->_setElementsBelongTo($name); - - return $this; - } - - /** - * Create an element - * - * Acts as a factory for creating elements. Elements created with this - * method will not be attached to the form, but will contain element - * settings as specified in the form object (including plugin loader - * prefix paths, default decorators, etc.). - * - * @param string $type - * @param string $name - * @param array|Zend_Config $options - * @return Zend_Form_Element - */ - public function createElement($type, $name, $options = null) - { - if (!is_string($type)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Element type must be a string indicating type'); - } - - if (!is_string($name)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Element name must be a string'); - } - - $prefixPaths = array(); - $prefixPaths['decorator'] = $this->getPluginLoader('decorator')->getPaths(); - if (!empty($this->_elementPrefixPaths)) { - $prefixPaths = array_merge($prefixPaths, $this->_elementPrefixPaths); - } - - if ($options instanceof Zend_Config) { - $options = $options->toArray(); - } - - if ((null === $options) || !is_array($options)) { - $options = array('prefixPath' => $prefixPaths); - } elseif (is_array($options)) { - if (array_key_exists('prefixPath', $options)) { - $options['prefixPath'] = array_merge($prefixPaths, $options['prefixPath']); - } else { - $options['prefixPath'] = $prefixPaths; - } - } - - $class = $this->getPluginLoader(self::ELEMENT)->load($type); - $element = new $class($name, $options); - - return $element; - } - - /** - * Add multiple elements at once - * - * @param array $elements - * @return Zend_Form - */ - public function addElements(array $elements) - { - foreach ($elements as $key => $spec) { - $name = null; - if (!is_numeric($key)) { - $name = $key; - } - - if (is_string($spec) || ($spec instanceof Zend_Form_Element)) { - $this->addElement($spec, $name); - continue; - } - - if (is_array($spec)) { - $argc = count($spec); - $options = array(); - if (isset($spec['type'])) { - $type = $spec['type']; - if (isset($spec['name'])) { - $name = $spec['name']; - } - if (isset($spec['options'])) { - $options = $spec['options']; - } - $this->addElement($type, $name, $options); - } else { - switch ($argc) { - case 0: - continue; - case (1 <= $argc): - $type = array_shift($spec); - case (2 <= $argc): - if (null === $name) { - $name = array_shift($spec); - } else { - $options = array_shift($spec); - } - case (3 <= $argc): - if (empty($options)) { - $options = array_shift($spec); - } - default: - $this->addElement($type, $name, $options); - } - } - } - } - return $this; - } - - /** - * Set form elements (overwrites existing elements) - * - * @param array $elements - * @return Zend_Form - */ - public function setElements(array $elements) - { - $this->clearElements(); - return $this->addElements($elements); - } - - /** - * Retrieve a single element - * - * @param string $name - * @return Zend_Form_Element|null - */ - public function getElement($name) - { - if (array_key_exists($name, $this->_elements)) { - return $this->_elements[$name]; - } - 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 - * - * Sets values for all elements specified in the array of $defaults. - * - * @param array $defaults - * @return Zend_Form - */ - public function setDefaults(array $defaults) - { - $eBelongTo = null; - - if ($this->isArray()) { - $eBelongTo = $this->getElementsBelongTo(); - $defaults = $this->_dissolveArrayValue($defaults, $eBelongTo); - } - foreach ($this->getElements() as $name => $element) { - $check = $defaults; - if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) { - $check = $this->_dissolveArrayValue($defaults, $belongsTo); - } - if (array_key_exists($name, $check)) { - $this->setDefault($name, $check[$name]); - $defaults = $this->_dissolveArrayUnsetKey($defaults, $belongsTo, $name); - } - } - foreach ($this->getSubForms() as $name => $form) { - if (!$form->isArray() && 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(); - $eBelongTo = null; - - if ($this->isArray()) { - $eBelongTo = $this->getElementsBelongTo(); - } - - foreach ($this->getElements() as $key => $element) { - if (!$element->getIgnore()) { - $merge = array(); - if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) { - if ('' !== (string)$belongsTo) { - $key = $belongsTo . '[' . $key . ']'; - } - } - $merge = $this->_attachToArray($element->getValue(), $key); - $values = $this->_array_replace_recursive($values, $merge); - } - } - foreach ($this->getSubForms() as $key => $subForm) { - $merge = array(); - if (!$subForm->isArray()) { - $merge[$key] = $subForm->getValues(); - } else { - $merge = $this->_attachToArray($subForm->getValues(true), - $subForm->getElementsBelongTo()); - } - $values = $this->_array_replace_recursive($values, $merge); - } - - if (!$suppressArrayNotation && - $this->isArray() && - !$this->_getIsRendered()) { - $values = $this->_attachToArray($values, $this->getElementsBelongTo()); - } - - return $values; - } - - /** - * Returns only the valid values from the given form input. - * - * For models that can be saved in a partially valid state, for example when following the builder, - * prototype or state patterns it is particularly interessting to retrieve all the current valid - * values to persist them. - * - * @param array $data - * @param bool $suppressArrayNotation - * @return array - */ - public function getValidValues($data, $suppressArrayNotation = false) - { - $values = array(); - $eBelongTo = null; - - if ($this->isArray()) { - $eBelongTo = $this->getElementsBelongTo(); - $data = $this->_dissolveArrayValue($data, $eBelongTo); - } - $context = $data; - foreach ($this->getElements() as $key => $element) { - if (!$element->getIgnore()) { - $check = $data; - if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) { - $check = $this->_dissolveArrayValue($data, $belongsTo); - } - if (isset($check[$key])) { - if($element->isValid($check[$key], $context)) { - $merge = array(); - if ($belongsTo !== $eBelongTo && '' !== (string)$belongsTo) { - $key = $belongsTo . '[' . $key . ']'; - } - $merge = $this->_attachToArray($element->getValue(), $key); - $values = $this->_array_replace_recursive($values, $merge); - } - $data = $this->_dissolveArrayUnsetKey($data, $belongsTo, $key); - } - } - } - foreach ($this->getSubForms() as $key => $form) { - $merge = array(); - if (isset($data[$key]) && !$form->isArray()) { - $tmp = $form->getValidValues($data[$key]); - if (!empty($tmp)) { - $merge[$key] = $tmp; - } - } else { - $tmp = $form->getValidValues($data, true); - if (!empty($tmp)) { - $merge = $this->_attachToArray($tmp, $form->getElementsBelongTo()); - } - } - $values = $this->_array_replace_recursive($values, $merge); - } - if (!$suppressArrayNotation && - $this->isArray() && - !empty($values) && - !$this->_getIsRendered()) { - $values = $this->_attachToArray($values, $this->getElementsBelongTo()); - } - - 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) - { - $origName = $this->getElementsBelongTo(); - $name = $this->filterName($array, true); - if ('' === $name) { - $name = null; - } - $this->_elementsBelongTo = $name; - - if (null === $name) { - $this->setIsArray(false); - if (null !== $origName) { - $this->_setElementsBelongTo(); - } - } else { - $this->setIsArray(true); - $this->_setElementsBelongTo(); - } - - return $this; - } - - /** - * Set array to which elements belong - * - * @param string $name Element name - * @return void - */ - protected function _setElementsBelongTo($name = null) - { - $array = $this->getElementsBelongTo(); - - if (null === $array) { - return; - } - - if (null === $name) { - foreach ($this->getElements() as $element) { - $element->setBelongsTo($array); - } - } else { - if (null !== ($element = $this->getElement($name))) { - $element->setBelongsTo($array); - } - } - } - - /** - * Get name of array elements belong to - * - * @return string|null - */ - public function getElementsBelongTo() - { - if ((null === $this->_elementsBelongTo) && $this->isArray()) { - $name = $this->getName(); - if ('' !== (string)$name) { - return $name; - } - } - return $this->_elementsBelongTo; - } - - /** - * Set flag indicating elements belong to array - * - * @param bool $flag Value of flag - * @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); - } - - if (($oldName = $form->getName()) && - $oldName !== $name && - $oldName === $form->getElementsBelongTo()) { - $form->setElementsBelongTo($name); - } - - $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 array|Zend_Config $options - * @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)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('No valid elements specified for display group'); - } - - $name = (string) $name; - - if (is_array($options)) { - $options['elements'] = $group; - } elseif ($options instanceof Zend_Config) { - $options = $options->toArray(); - $options['elements'] = $group; - } else { - $options = array('elements' => $group); - } - - if (isset($options['displayGroupClass'])) { - $class = $options['displayGroupClass']; - unset($options['displayGroupClass']); - } else { - $class = $this->getDefaultDisplayGroupClass(); - } - - // if (!class_exists($class)) { - // require_once 'Zend/Loader.php'; - // Zend_Loader::loadClass($class); - // } - $this->_displayGroups[$name] = new $class( - $name, - $this->getPluginLoader(self::DECORATOR), - $options - ); - - if (!empty($this->_displayGroupPrefixPaths)) { - $this->_displayGroups[$name]->addPrefixPaths($this->_displayGroupPrefixPaths); - } - - $this->_order[$name] = $this->_displayGroups[$name]->getOrder(); - $this->_orderUpdated = true; - return $this; - } - - /** - * Add a display group object (used with cloning) - * - * @param Zend_Form_DisplayGroup $group - * @param string|null $name - * @return Zend_Form - */ - protected function _addDisplayGroupObject(Zend_Form_DisplayGroup $group, $name = null) - { - if (null === $name) { - $name = $group->getName(); - if ('' === (string)$name) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid display group added; requires name'); - } - } - - $this->_displayGroups[$name] = $group; - - if (!empty($this->_displayGroupPrefixPaths)) { - $this->_displayGroups[$name]->addPrefixPaths($this->_displayGroupPrefixPaths); - } - - $this->_order[$name] = $this->_displayGroups[$name]->getOrder(); - $this->_orderUpdated = true; - return $this; - } - - /** - * Add multiple display groups at once - * - * @param array $groups - * @return Zend_Form - */ - public function addDisplayGroups(array $groups) - { - foreach ($groups as $key => $spec) { - $name = null; - if (!is_numeric($key)) { - $name = $key; - } - - if ($spec instanceof Zend_Form_DisplayGroup) { - $this->_addDisplayGroupObject($spec); - } - - if (!is_array($spec) || empty($spec)) { - continue; - } - - $argc = count($spec); - $options = array(); - - if (isset($spec['elements'])) { - $elements = $spec['elements']; - if (isset($spec['name'])) { - $name = $spec['name']; - } - if (isset($spec['options'])) { - $options = $spec['options']; - } - $this->addDisplayGroup($elements, $name, $options); - } else { - switch ($argc) { - case (1 <= $argc): - $elements = array_shift($spec); - if (!is_array($elements) && (null !== $name)) { - $elements = array_merge((array) $elements, $spec); - $this->addDisplayGroup($elements, $name); - break; - } - case (2 <= $argc): - if (null !== $name) { - $options = array_shift($spec); - $this->addDisplayGroup($elements, $name, $options); - break; - } - $name = array_shift($spec); - case (3 <= $argc): - $options = array_shift($spec); - default: - $this->addDisplayGroup($elements, $name, $options); - } - } - } - return $this; - } - - /** - * Add multiple display groups (overwrites) - * - * @param array $groups - * @return Zend_Form - */ - public function setDisplayGroups(array $groups) - { - return $this->clearDisplayGroups() - ->addDisplayGroups($groups); - } - - /** - * Return a display group - * - * @param string $name - * @return Zend_Form_DisplayGroup|null - */ - public function getDisplayGroup($name) - { - $name = (string) $name; - if (isset($this->_displayGroups[$name])) { - return $this->_displayGroups[$name]; - } - - return null; - } - - /** - * Return all display groups - * - * @return array - */ - public function getDisplayGroups() - { - return $this->_displayGroups; - } - - /** - * Remove a display group by name - * - * @param string $name - * @return boolean - */ - public function removeDisplayGroup($name) - { - $name = (string) $name; - if (array_key_exists($name, $this->_displayGroups)) { - foreach ($this->_displayGroups[$name] as $key => $element) { - if (array_key_exists($key, $this->_elements)) { - $this->_order[$key] = $element->getOrder(); - $this->_orderUpdated = true; - } - } - unset($this->_displayGroups[$name]); - - if (array_key_exists($name, $this->_order)) { - unset($this->_order[$name]); - $this->_orderUpdated = true; - } - return true; - } - - return false; - } - - /** - * Remove all display groups - * - * @return Zend_Form - */ - public function clearDisplayGroups() - { - foreach ($this->_displayGroups as $key => $group) { - if (array_key_exists($key, $this->_order)) { - unset($this->_order[$key]); - } - foreach ($group as $name => $element) { - if (isset($this->_elements[$name])) { - $this->_order[$name] = $element->getOrder(); - } - $this->_order[$name] = $element->getOrder(); - } - } - $this->_displayGroups = array(); - $this->_orderUpdated = true; - return $this; - } - - - // Processing - - /** - * Populate form - * - * Proxies to {@link setDefaults()} - * - * @param array $values - * @return Zend_Form - */ - public function populate(array $values) - { - return $this->setDefaults($values); - } - - /** - * Determine array key name from given value - * - * Given a value such as foo[bar][baz], returns the last element (in this case, 'baz'). - * - * @param string $value - * @return string - */ - protected function _getArrayName($value) - { - if (!is_string($value) || '' === $value) { - return $value; - } - - if (!strstr($value, '[')) { - return $value; - } - - $endPos = strlen($value) - 1; - if (']' != $value[$endPos]) { - return $value; - } - - $start = strrpos($value, '[') + 1; - $name = substr($value, $start, $endPos - $start); - return $name; - } - - /** - * Extract the value by walking the array using given array path. - * - * Given an array path such as foo[bar][baz], returns the value of the last - * element (in this case, 'baz'). - * - * @param array $value Array to walk - * @param string $arrayPath Array notation path of the part to extract - * @return string - */ - protected function _dissolveArrayValue($value, $arrayPath) - { - // As long as we have more levels - while ($arrayPos = strpos($arrayPath, '[')) { - // Get the next key in the path - $arrayKey = trim(substr($arrayPath, 0, $arrayPos), ']'); - - // Set the potentially final value or the next search point in the array - if (isset($value[$arrayKey])) { - $value = $value[$arrayKey]; - } - - // Set the next search point in the path - $arrayPath = trim(substr($arrayPath, $arrayPos + 1), ']'); - } - - if (isset($value[$arrayPath])) { - $value = $value[$arrayPath]; - } - - return $value; - } - - /** - * Given an array, an optional arrayPath and a key this method - * dissolves the arrayPath and unsets the key within the array - * if it exists. - * - * @param array $array - * @param string|null $arrayPath - * @param string $key - * @return array - */ - protected function _dissolveArrayUnsetKey($array, $arrayPath, $key) - { - $unset =& $array; - $path = trim(strtr((string)$arrayPath, array('[' => '/', ']' => '')), '/'); - $segs = ('' !== $path) ? explode('/', $path) : array(); - - foreach ($segs as $seg) { - if (!array_key_exists($seg, (array)$unset)) { - return $array; - } - $unset =& $unset[$seg]; - } - if (array_key_exists($key, (array)$unset)) { - unset($unset[$key]); - } - return $array; - } - - /** - * Converts given arrayPath to an array and attaches given value at the end of it. - * - * @param mixed $value The value to attach - * @param string $arrayPath Given array path to convert and attach to. - * @return array - */ - protected function _attachToArray($value, $arrayPath) - { - // As long as we have more levels - while ($arrayPos = strrpos($arrayPath, '[')) { - // Get the next key in the path - $arrayKey = trim(substr($arrayPath, $arrayPos + 1), ']'); - - // Attach - $value = array($arrayKey => $value); - - // Set the next search point in the path - $arrayPath = trim(substr($arrayPath, 0, $arrayPos), ']'); - } - - $value = array($arrayPath => $value); - - return $value; - } - - /** - * Returns a one dimensional numerical indexed array with the - * Elements, SubForms and Elements from DisplayGroups as Values. - * - * Subitems are inserted based on their order Setting if set, - * otherwise they are appended, the resulting numerical index - * may differ from the order value. - * - * @access protected - * @return array - */ - public function getElementsAndSubFormsOrdered() - { - $ordered = array(); - foreach ($this->_order as $name => $order) { - $order = isset($order) ? $order : count($ordered); - if ($this->$name instanceof Zend_Form_Element || - $this->$name instanceof Zend_Form) { - array_splice($ordered, $order, 0, array($this->$name)); - } else if ($this->$name instanceof Zend_Form_DisplayGroup) { - $subordered = array(); - foreach ($this->$name->getElements() as $element) { - $suborder = $element->getOrder(); - $suborder = (null !== $suborder) ? $suborder : count($subordered); - array_splice($subordered, $suborder, 0, array($element)); - } - if (!empty($subordered)) { - array_splice($ordered, $order, 0, $subordered); - } - } - } - return $ordered; - } - - /** - * This is a helper function until php 5.3 is widespreaded - * - * @param array $into - * @access protected - * @return void - */ - protected function _array_replace_recursive(array $into) - { - $fromArrays = array_slice(func_get_args(),1); - - foreach ($fromArrays as $from) { - foreach ($from as $key => $value) { - if (is_array($value)) { - if (!isset($into[$key])) { - $into[$key] = array(); - } - $into[$key] = $this->_array_replace_recursive($into[$key], $from[$key]); - } else { - $into[$key] = $value; - } - } - } - return $into; - } - - /** - * Validate the form - * - * @param array $data - * @return boolean - */ - public function isValid($data) - { - if (!is_array($data)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(__METHOD__ . ' expects an array'); - } - $translator = $this->getTranslator(); - $valid = true; - $eBelongTo = null; - - if ($this->isArray()) { - $eBelongTo = $this->getElementsBelongTo(); - $data = $this->_dissolveArrayValue($data, $eBelongTo); - } - $context = $data; - foreach ($this->getElements() as $key => $element) { - if (null !== $translator && !$element->hasTranslator()) { - $element->setTranslator($translator); - } - $check = $data; - if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) { - $check = $this->_dissolveArrayValue($data, $belongsTo); - } - if (!isset($check[$key])) { - $valid = $element->isValid(null, $context) && $valid; - } else { - $valid = $element->isValid($check[$key], $context) && $valid; - $data = $this->_dissolveArrayUnsetKey($data, $belongsTo, $key); - } - } - foreach ($this->getSubForms() as $key => $form) { - if (null !== $translator && !$form->hasTranslator()) { - $form->setTranslator($translator); - } - if (isset($data[$key]) && !$form->isArray()) { - $valid = $form->isValid($data[$key]) && $valid; - } else { - $valid = $form->isValid($data) && $valid; - } - } - - $this->_errorsExist = !$valid; - - // If manually flagged as an error, return invalid status - if ($this->_errorsForced) { - return false; - } - - return $valid; - } - - /** - * Validate a partial form - * - * Does not check for required flags. - * - * @param array $data - * @return boolean - */ - public function isValidPartial(array $data) - { - $eBelongTo = null; - - if ($this->isArray()) { - $eBelongTo = $this->getElementsBelongTo(); - $data = $this->_dissolveArrayValue($data, $eBelongTo); - } - - $translator = $this->getTranslator(); - $valid = true; - $context = $data; - - foreach ($this->getElements() as $key => $element) { - $check = $data; - if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) { - $check = $this->_dissolveArrayValue($data, $belongsTo); - } - if (isset($check[$key])) { - if (null !== $translator && !$element->hasTranslator()) { - $element->setTranslator($translator); - } - $valid = $element->isValid($check[$key], $context) && $valid; - $data = $this->_dissolveArrayUnsetKey($data, $belongsTo, $key); - } - } - foreach ($this->getSubForms() as $key => $form) { - if (null !== $translator && !$form->hasTranslator()) { - $form->setTranslator($translator); - } - if (isset($data[$key]) && !$form->isArray()) { - $valid = $form->isValidPartial($data[$key]) && $valid; - } else { - $valid = $form->isValidPartial($data) && $valid; - } - } - - $this->_errorsExist = !$valid; - return $valid; - } - - /** - * Process submitted AJAX data - * - * Checks if provided $data is valid, via {@link isValidPartial()}. If so, - * it returns JSON-encoded boolean true. If not, it returns JSON-encoded - * error messages (as returned by {@link getMessages()}). - * - * @param array $data - * @return string JSON-encoded boolean true or error messages - */ - public function processAjax(array $data) - { - // require_once 'Zend/Json.php'; - if ($this->isValidPartial($data)) { - return Zend_Json::encode(true); - } - $messages = $this->getMessages(); - return Zend_Json::encode($messages); - } - - /** - * Add a custom error message to return in the event of failed validation - * - * @param string $message - * @return Zend_Form - */ - public function addErrorMessage($message) - { - $this->_errorMessages[] = (string) $message; - return $this; - } - - /** - * Add multiple custom error messages to return in the event of failed validation - * - * @param array $messages - * @return Zend_Form - */ - public function addErrorMessages(array $messages) - { - foreach ($messages as $message) { - $this->addErrorMessage($message); - } - return $this; - } - - /** - * Same as addErrorMessages(), but clears custom error message stack first - * - * @param array $messages - * @return Zend_Form - */ - public function setErrorMessages(array $messages) - { - $this->clearErrorMessages(); - return $this->addErrorMessages($messages); - } - - /** - * Retrieve custom error messages - * - * @return array - */ - public function getErrorMessages() - { - return $this->_errorMessages; - } - - /** - * Clear custom error messages stack - * - * @return Zend_Form - */ - public function clearErrorMessages() - { - $this->_errorMessages = array(); - return $this; - } - - /** - * Mark the element as being in a failed validation state - * - * @return Zend_Form - */ - public function markAsError() - { - $this->_errorsExist = true; - $this->_errorsForced = true; - return $this; - } - - /** - * Add an error message and mark element as failed validation - * - * @param string $message - * @return Zend_Form - */ - public function addError($message) - { - $this->addErrorMessage($message); - $this->markAsError(); - return $this; - } - - /** - * Add multiple error messages and flag element as failed validation - * - * @param array $messages - * @return Zend_Form - */ - public function addErrors(array $messages) - { - foreach ($messages as $message) { - $this->addError($message); - } - return $this; - } - - /** - * Overwrite any previously set error messages and flag as failed validation - * - * @param array $messages - * @return Zend_Form - */ - public function setErrors(array $messages) - { - $this->clearErrorMessages(); - return $this->addErrors($messages); - } - - - public function persistData() - { - } - - /** - * Are there errors in the form? - * - * @return bool - */ - public function isErrors() - { - return $this->_errorsExist; - } - - /** - * Get error codes for all elements failing validation - * - * @param string $name - * @return array - */ - public function getErrors($name = null, $suppressArrayNotation = false) - { - $errors = array(); - if (null !== $name) { - if (isset($this->_elements[$name])) { - return $this->getElement($name)->getErrors(); - } else if (isset($this->_subForms[$name])) { - return $this->getSubForm($name)->getErrors(null, true); - } - } - - foreach ($this->_elements as $key => $element) { - $errors[$key] = $element->getErrors(); - } - foreach ($this->getSubForms() as $key => $subForm) { - $merge = array(); - if (!$subForm->isArray()) { - $merge[$key] = $subForm->getErrors(); - } else { - $merge = $this->_attachToArray($subForm->getErrors(null, true), - $subForm->getElementsBelongTo()); - } - $errors = $this->_array_replace_recursive($errors, $merge); - } - - if (!$suppressArrayNotation && - $this->isArray() && - !$this->_getIsRendered()) { - $errors = $this->_attachToArray($errors, $this->getElementsBelongTo()); - } - - return $errors; - } - - /** - * Retrieve error messages from elements failing validations - * - * @param string $name - * @param bool $suppressArrayNotation - * @return array - */ - public function getMessages($name = null, $suppressArrayNotation = false) - { - if (null !== $name) { - if (isset($this->_elements[$name])) { - return $this->getElement($name)->getMessages(); - } else if (isset($this->_subForms[$name])) { - return $this->getSubForm($name)->getMessages(null, true); - } - foreach ($this->getSubForms() as $key => $subForm) { - if ($subForm->isArray()) { - $belongTo = $subForm->getElementsBelongTo(); - if ($name == $this->_getArrayName($belongTo)) { - return $subForm->getMessages(null, true); - } - } - } - } - - $customMessages = $this->_getErrorMessages(); - if ($this->isErrors() && !empty($customMessages)) { - return $customMessages; - } - - $messages = array(); - - foreach ($this->getElements() as $name => $element) { - $eMessages = $element->getMessages(); - if (!empty($eMessages)) { - $messages[$name] = $eMessages; - } - } - - foreach ($this->getSubForms() as $key => $subForm) { - $merge = $subForm->getMessages(null, true); - if (!empty($merge)) { - if (!$subForm->isArray()) { - $merge = array($key => $merge); - } else { - $merge = $this->_attachToArray($merge, - $subForm->getElementsBelongTo()); - } - $messages = $this->_array_replace_recursive($messages, $merge); - } - } - - if (!$suppressArrayNotation && - $this->isArray() && - !$this->_getIsRendered()) { - $messages = $this->_attachToArray($messages, $this->getElementsBelongTo()); - } - - return $messages; - } - - /** - * Retrieve translated custom error messages - * Proxies to {@link _getErrorMessages()}. - * - * @return array - */ - public function getCustomMessages() - { - return $this->_getErrorMessages(); - } - - - // Rendering - - /** - * Set view object - * - * @param Zend_View_Interface $view - * @return Zend_Form - */ - public function setView(Zend_View_Interface $view = null) - { - $this->_view = $view; - return $this; - } - - /** - * Retrieve view object - * - * If none registered, attempts to pull from ViewRenderer. - * - * @return Zend_View_Interface|null - */ - public function getView() - { - if (null === $this->_view) { - // require_once 'Zend/Controller/Action/HelperBroker.php'; - $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); - $this->setView($viewRenderer->view); - } - - return $this->_view; - } - - /** - * Instantiate a decorator based on class name or class name fragment - * - * @param string $name - * @param null|array $options - * @return Zend_Form_Decorator_Interface - */ - protected function _getDecorator($name, $options) - { - $class = $this->getPluginLoader(self::DECORATOR)->load($name); - if (null === $options) { - $decorator = new $class; - } else { - $decorator = new $class($options); - } - - return $decorator; - } - - /** - * Add a decorator for rendering the element - * - * @param string|Zend_Form_Decorator_Interface $decorator - * @param array|Zend_Config $options Options with which to initialize decorator - * @return Zend_Form - */ - public function addDecorator($decorator, $options = null) - { - if ($decorator instanceof Zend_Form_Decorator_Interface) { - $name = get_class($decorator); - } elseif (is_string($decorator)) { - $name = $decorator; - $decorator = array( - 'decorator' => $name, - 'options' => $options, - ); - } elseif (is_array($decorator)) { - foreach ($decorator as $name => $spec) { - break; - } - if (is_numeric($name)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid alias provided to addDecorator; must be alphanumeric string'); - } - if (is_string($spec)) { - $decorator = array( - 'decorator' => $spec, - 'options' => $options, - ); - } elseif ($spec instanceof Zend_Form_Decorator_Interface) { - $decorator = $spec; - } - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid decorator provided to addDecorator; must be string or Zend_Form_Decorator_Interface'); - } - - $this->_decorators[$name] = $decorator; - - return $this; - } - - /** - * Add many decorators at once - * - * @param array $decorators - * @return Zend_Form - */ - public function addDecorators(array $decorators) - { - foreach ($decorators as $decoratorName => $decoratorInfo) { - if (is_string($decoratorInfo) || - $decoratorInfo instanceof Zend_Form_Decorator_Interface) { - if (!is_numeric($decoratorName)) { - $this->addDecorator(array($decoratorName => $decoratorInfo)); - } else { - $this->addDecorator($decoratorInfo); - } - } elseif (is_array($decoratorInfo)) { - $argc = count($decoratorInfo); - $options = array(); - if (isset($decoratorInfo['decorator'])) { - $decorator = $decoratorInfo['decorator']; - if (isset($decoratorInfo['options'])) { - $options = $decoratorInfo['options']; - } - $this->addDecorator($decorator, $options); - } else { - switch (true) { - case (0 == $argc): - break; - case (1 <= $argc): - $decorator = array_shift($decoratorInfo); - case (2 <= $argc): - $options = array_shift($decoratorInfo); - default: - $this->addDecorator($decorator, $options); - break; - } - } - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid decorator passed to addDecorators()'); - } - } - - return $this; - } - - /** - * Overwrite all decorators - * - * @param array $decorators - * @return Zend_Form - */ - public function setDecorators(array $decorators) - { - $this->clearDecorators(); - return $this->addDecorators($decorators); - } - - /** - * Retrieve a registered decorator - * - * @param string $name - * @return false|Zend_Form_Decorator_Abstract - */ - public function getDecorator($name) - { - if (!isset($this->_decorators[$name])) { - $len = strlen($name); - foreach ($this->_decorators as $localName => $decorator) { - if ($len > strlen($localName)) { - continue; - } - - if (0 === substr_compare($localName, $name, -$len, $len, true)) { - if (is_array($decorator)) { - return $this->_loadDecorator($decorator, $localName); - } - return $decorator; - } - } - return false; - } - - if (is_array($this->_decorators[$name])) { - return $this->_loadDecorator($this->_decorators[$name], $name); - } - - return $this->_decorators[$name]; - } - - /** - * Retrieve all decorators - * - * @return array - */ - public function getDecorators() - { - foreach ($this->_decorators as $key => $value) { - if (is_array($value)) { - $this->_loadDecorator($value, $key); - } - } - return $this->_decorators; - } - - /** - * Remove a single decorator - * - * @param string $name - * @return bool - */ - public function removeDecorator($name) - { - $decorator = $this->getDecorator($name); - if ($decorator) { - if (array_key_exists($name, $this->_decorators)) { - unset($this->_decorators[$name]); - } else { - $class = get_class($decorator); - if (!array_key_exists($class, $this->_decorators)) { - return false; - } - unset($this->_decorators[$class]); - } - return true; - } - - return false; - } - - /** - * Clear all decorators - * - * @return Zend_Form - */ - public function clearDecorators() - { - $this->_decorators = array(); - return $this; - } - - /** - * Set all element decorators as specified - * - * @param array $decorators - * @param array|null $elements Specific elements to decorate or exclude from decoration - * @param bool $include Whether $elements is an inclusion or exclusion list - * @return Zend_Form - */ - public function setElementDecorators(array $decorators, array $elements = null, $include = true) - { - if (is_array($elements)) { - if ($include) { - $elementObjs = array(); - foreach ($elements as $name) { - if (null !== ($element = $this->getElement($name))) { - $elementObjs[] = $element; - } - } - } else { - $elementObjs = $this->getElements(); - foreach ($elements as $name) { - if (array_key_exists($name, $elementObjs)) { - unset($elementObjs[$name]); - } - } - } - } else { - $elementObjs = $this->getElements(); - } - - foreach ($elementObjs as $element) { - $element->setDecorators($decorators); - } - - $this->_elementDecorators = $decorators; - - return $this; - } - - /** - * Set all display group decorators as specified - * - * @param array $decorators - * @return Zend_Form - */ - public function setDisplayGroupDecorators(array $decorators) - { - foreach ($this->getDisplayGroups() as $group) { - $group->setDecorators($decorators); - } - - return $this; - } - - /** - * Set all subform decorators as specified - * - * @param array $decorators - * @return Zend_Form - */ - public function setSubFormDecorators(array $decorators) - { - foreach ($this->getSubForms() as $form) { - $form->setDecorators($decorators); - } - - return $this; - } - - /** - * Render form - * - * @param Zend_View_Interface $view - * @return string - */ - public function render(Zend_View_Interface $view = null) - { - if (null !== $view) { - $this->setView($view); - } - - $content = ''; - foreach ($this->getDecorators() as $decorator) { - $decorator->setElement($this); - $content = $decorator->render($content); - } - $this->_setIsRendered(); - return $content; - } - - /** - * Serialize as string - * - * Proxies to {@link render()}. - * - * @return string - */ - public function __toString() - { - try { - $return = $this->render(); - return $return; - } catch (Exception $e) { - $message = "Exception caught by form: " . $e->getMessage() - . "\nStack Trace:\n" . $e->getTraceAsString(); - trigger_error($message, E_USER_WARNING); - return ''; - } - } - - - // Localization: - - /** - * Set translator object - * - * @param Zend_Translate|Zend_Translate_Adapter|null $translator - * @return Zend_Form - */ - public function setTranslator($translator = null) - { - if (null === $translator) { - $this->_translator = null; - } elseif ($translator instanceof Zend_Translate_Adapter) { - $this->_translator = $translator; - } elseif ($translator instanceof Zend_Translate) { - $this->_translator = $translator->getAdapter(); - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid translator specified'); - } - - return $this; - } - - /** - * Set global default translator object - * - * @param Zend_Translate|Zend_Translate_Adapter|null $translator - * @return void - */ - public static function setDefaultTranslator($translator = null) - { - if (null === $translator) { - self::$_translatorDefault = null; - } elseif ($translator instanceof Zend_Translate_Adapter) { - self::$_translatorDefault = $translator; - } elseif ($translator instanceof Zend_Translate) { - self::$_translatorDefault = $translator->getAdapter(); - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid translator specified'); - } - } - - /** - * Retrieve translator object - * - * @return Zend_Translate|null - */ - public function getTranslator() - { - if ($this->translatorIsDisabled()) { - return null; - } - - if (null === $this->_translator) { - return self::getDefaultTranslator(); - } - - return $this->_translator; - } - - /** - * Does this form have its own specific translator? - * - * @return bool - */ - public function hasTranslator() - { - return (bool)$this->_translator; - } - - /** - * Get global default translator object - * - * @return null|Zend_Translate - */ - public static function getDefaultTranslator() - { - if (null === self::$_translatorDefault) { - // require_once 'Zend/Registry.php'; - if (Zend_Registry::isRegistered('Zend_Translate')) { - $translator = Zend_Registry::get('Zend_Translate'); - if ($translator instanceof Zend_Translate_Adapter) { - return $translator; - } elseif ($translator instanceof Zend_Translate) { - return $translator->getAdapter(); - } - } - } - return self::$_translatorDefault; - } - - /** - * Is there a default translation object set? - * - * @return boolean - */ - public static function hasDefaultTranslator() - { - return (bool)self::$_translatorDefault; - } - - /** - * Indicate whether or not translation should be disabled - * - * @param bool $flag - * @return Zend_Form - */ - public function setDisableTranslator($flag) - { - $this->_translatorDisabled = (bool) $flag; - return $this; - } - - /** - * Is translation disabled? - * - * @return bool - */ - public function translatorIsDisabled() - { - return $this->_translatorDisabled; - } - - /** - * Overloading: access to elements, form groups, and display groups - * - * @param string $name - * @return Zend_Form_Element|Zend_Form|null - */ - public function __get($name) - { - if (isset($this->_elements[$name])) { - return $this->_elements[$name]; - } elseif (isset($this->_subForms[$name])) { - return $this->_subForms[$name]; - } elseif (isset($this->_displayGroups[$name])) { - return $this->_displayGroups[$name]; - } - - return null; - } - - /** - * Overloading: access to elements, form groups, and display groups - * - * @param string $name - * @param Zend_Form_Element|Zend_Form $value - * @return void - * @throws Zend_Form_Exception for invalid $value - */ - public function __set($name, $value) - { - if ($value instanceof Zend_Form_Element) { - $this->addElement($value, $name); - return; - } elseif ($value instanceof Zend_Form) { - $this->addSubForm($value, $name); - return; - } elseif (is_array($value)) { - $this->addDisplayGroup($value, $name); - return; - } - - // require_once 'Zend/Form/Exception.php'; - if (is_object($value)) { - $type = get_class($value); - } else { - $type = gettype($value); - } - throw new Zend_Form_Exception('Only form elements and groups may be overloaded; variable of type "' . $type . '" provided'); - } - - /** - * Overloading: access to elements, form groups, and display groups - * - * @param string $name - * @return boolean - */ - public function __isset($name) - { - if (isset($this->_elements[$name]) - || isset($this->_subForms[$name]) - || isset($this->_displayGroups[$name])) - { - return true; - } - - return false; - } - - /** - * Overloading: access to elements, form groups, and display groups - * - * @param string $name - * @return void - */ - public function __unset($name) - { - if (isset($this->_elements[$name])) { - unset($this->_elements[$name]); - } elseif (isset($this->_subForms[$name])) { - unset($this->_subForms[$name]); - } elseif (isset($this->_displayGroups[$name])) { - unset($this->_displayGroups[$name]); - } - } - - /** - * Overloading: allow rendering specific decorators - * - * Call renderDecoratorName() to render a specific decorator. - * - * @param string $method - * @param array $args - * @return string - * @throws Zend_Form_Exception for invalid decorator or invalid method call - */ - public function __call($method, $args) - { - if ('render' == substr($method, 0, 6)) { - $decoratorName = substr($method, 6); - if (false !== ($decorator = $this->getDecorator($decoratorName))) { - $decorator->setElement($this); - $seed = ''; - if (0 < count($args)) { - $seed = array_shift($args); - } - if ($decoratorName === 'FormElements' || - $decoratorName === 'PrepareElements') { - $this->_setIsRendered(); - } - return $decorator->render($seed); - } - - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Decorator by name %s does not exist', $decoratorName)); - } - - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Method %s does not exist', $method)); - } - - // Interfaces: Iterator, Countable - - /** - * Current element/subform/display group - * - * @return Zend_Form_Element|Zend_Form_DisplayGroup|Zend_Form - */ - public function current() - { - $this->_sort(); - current($this->_order); - $key = key($this->_order); - - if (isset($this->_elements[$key])) { - return $this->getElement($key); - } elseif (isset($this->_subForms[$key])) { - return $this->getSubForm($key); - } elseif (isset($this->_displayGroups[$key])) { - return $this->getDisplayGroup($key); - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Corruption detected in form; invalid key ("%s") found in internal iterator', (string) $key)); - } - } - - /** - * Current element/subform/display group name - * - * @return string - */ - public function key() - { - $this->_sort(); - return key($this->_order); - } - - /** - * Move pointer to next element/subform/display group - * - * @return void - */ - public function next() - { - $this->_sort(); - next($this->_order); - } - - /** - * Move pointer to beginning of element/subform/display group loop - * - * @return void - */ - public function rewind() - { - $this->_sort(); - reset($this->_order); - } - - /** - * Determine if current element/subform/display group is valid - * - * @return bool - */ - public function valid() - { - $this->_sort(); - return (current($this->_order) !== false); - } - - /** - * Count of elements/subforms that are iterable - * - * @return int - */ - public function count() - { - return count($this->_order); - } - - /** - * Set flag to disable loading default decorators - * - * @param bool $flag - * @return Zend_Form - */ - public function setDisableLoadDefaultDecorators($flag) - { - $this->_disableLoadDefaultDecorators = (bool) $flag; - return $this; - } - - /** - * Should we load the default decorators? - * - * @return bool - */ - public function loadDefaultDecoratorsIsDisabled() - { - return $this->_disableLoadDefaultDecorators; - } - - /** - * Load the default decorators - * - * @return void - */ - public function loadDefaultDecorators() - { - if ($this->loadDefaultDecoratorsIsDisabled()) { - return $this; - } - - $decorators = $this->getDecorators(); - if (empty($decorators)) { - $this->addDecorator('FormElements') - ->addDecorator('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form')) - ->addDecorator('Form'); - } - return $this; - } - - /** - * Sort items according to their order - * - * @return void - */ - protected function _sort() - { - if ($this->_orderUpdated) { - $items = array(); - $index = 0; - foreach ($this->_order as $key => $order) { - if (null === $order) { - if (null === ($order = $this->{$key}->getOrder())) { - while (array_search($index, $this->_order, true)) { - ++$index; - } - $items[$index] = $key; - ++$index; - } else { - $items[$order] = $key; - } - } else { - $items[$order] = $key; - } - } - - $items = array_flip($items); - asort($items); - $this->_order = $items; - $this->_orderUpdated = false; - } - } - - /** - * Lazy-load a decorator - * - * @param array $decorator Decorator type and options - * @param mixed $name Decorator name or alias - * @return Zend_Form_Decorator_Interface - */ - protected function _loadDecorator(array $decorator, $name) - { - $sameName = false; - if ($name == $decorator['decorator']) { - $sameName = true; - } - - $instance = $this->_getDecorator($decorator['decorator'], $decorator['options']); - if ($sameName) { - $newName = get_class($instance); - $decoratorNames = array_keys($this->_decorators); - $order = array_flip($decoratorNames); - $order[$newName] = $order[$name]; - $decoratorsExchange = array(); - unset($order[$name]); - asort($order); - foreach ($order as $key => $index) { - if ($key == $newName) { - $decoratorsExchange[$key] = $instance; - continue; - } - $decoratorsExchange[$key] = $this->_decorators[$key]; - } - $this->_decorators = $decoratorsExchange; - } else { - $this->_decorators[$name] = $instance; - } - - return $instance; - } - - /** - * Retrieve optionally translated custom error messages - * - * @return array - */ - protected function _getErrorMessages() - { - $messages = $this->getErrorMessages(); - $translator = $this->getTranslator(); - if (null !== $translator) { - foreach ($messages as $key => $message) { - $messages[$key] = $translator->translate($message); - } - } - return $messages; - } -} diff --git a/libs/Zend/Form/Decorator/Abstract.php b/libs/Zend/Form/Decorator/Abstract.php deleted file mode 100644 index a81dc6659b6e000c0d128fb04ddd5fdde838de2f..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Abstract.php +++ /dev/null @@ -1,254 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Interface */ -// require_once 'Zend/Form/Decorator/Interface.php'; - -/** - * Zend_Form_Decorator_Abstract - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Abstract.php 21147 2010-02-23 14:42:04Z yoshida@zend.co.jp $ - */ -abstract class Zend_Form_Decorator_Abstract implements Zend_Form_Decorator_Interface -{ - /** - * Placement constants - */ - const APPEND = 'APPEND'; - const PREPEND = 'PREPEND'; - - /** - * Default placement: append - * @var string - */ - protected $_placement = 'APPEND'; - - /** - * @var Zend_Form_Element|Zend_Form - */ - protected $_element; - - /** - * Decorator options - * @var array - */ - protected $_options = array(); - - /** - * Separator between new content and old - * @var string - */ - protected $_separator = PHP_EOL; - - /** - * Constructor - * - * @param array|Zend_Config $options - * @return void - */ - public function __construct($options = null) - { - if (is_array($options)) { - $this->setOptions($options); - } elseif ($options instanceof Zend_Config) { - $this->setConfig($options); - } - } - - /** - * Set options - * - * @param array $options - * @return Zend_Form_Decorator_Abstract - */ - public function setOptions(array $options) - { - $this->_options = $options; - return $this; - } - - /** - * Set options from config object - * - * @param Zend_Config $config - * @return Zend_Form_Decorator_Abstract - */ - public function setConfig(Zend_Config $config) - { - return $this->setOptions($config->toArray()); - } - - /** - * Set option - * - * @param string $key - * @param mixed $value - * @return Zend_Form_Decorator_Abstract - */ - public function setOption($key, $value) - { - $this->_options[(string) $key] = $value; - return $this; - } - - /** - * Get option - * - * @param string $key - * @return mixed - */ - public function getOption($key) - { - $key = (string) $key; - if (isset($this->_options[$key])) { - return $this->_options[$key]; - } - - return null; - } - - /** - * Retrieve options - * - * @return array - */ - public function getOptions() - { - return $this->_options; - } - - /** - * Remove single option - * - * @param mixed $key - * @return void - */ - public function removeOption($key) - { - if (null !== $this->getOption($key)) { - unset($this->_options[$key]); - return true; - } - - return false; - } - - /** - * Clear all options - * - * @return Zend_Form_Decorator_Abstract - */ - public function clearOptions() - { - $this->_options = array(); - return $this; - } - - /** - * Set current form element - * - * @param Zend_Form_Element|Zend_Form $element - * @return Zend_Form_Decorator_Abstract - * @throws Zend_Form_Decorator_Exception on invalid element type - */ - public function setElement($element) - { - if ((!$element instanceof Zend_Form_Element) - && (!$element instanceof Zend_Form) - && (!$element instanceof Zend_Form_DisplayGroup)) - { - // require_once 'Zend/Form/Decorator/Exception.php'; - throw new Zend_Form_Decorator_Exception('Invalid element type passed to decorator'); - } - - $this->_element = $element; - return $this; - } - - /** - * Retrieve current element - * - * @return Zend_Form_Element|Zend_Form - */ - public function getElement() - { - return $this->_element; - } - - /** - * Determine if decorator should append or prepend content - * - * @return string - */ - public function getPlacement() - { - $placement = $this->_placement; - if (null !== ($placementOpt = $this->getOption('placement'))) { - $placementOpt = strtoupper($placementOpt); - switch ($placementOpt) { - case self::APPEND: - case self::PREPEND: - $placement = $this->_placement = $placementOpt; - break; - case false: - $placement = $this->_placement = null; - break; - default: - break; - } - $this->removeOption('placement'); - } - - return $placement; - } - - /** - * Retrieve separator to use between old and new content - * - * @return string - */ - public function getSeparator() - { - $separator = $this->_separator; - if (null !== ($separatorOpt = $this->getOption('separator'))) { - $separator = $this->_separator = (string) $separatorOpt; - $this->removeOption('separator'); - } - return $separator; - } - - /** - * Decorate content and/or element - * - * @param string $content - * @return string - * @throws Zend_Form_Decorator_Exception when unimplemented - */ - public function render($content) - { - // require_once 'Zend/Form/Decorator/Exception.php'; - throw new Zend_Form_Decorator_Exception('render() not implemented'); - } -} diff --git a/libs/Zend/Form/Decorator/Callback.php b/libs/Zend/Form/Decorator/Callback.php deleted file mode 100644 index 56bb0779c1c0311a6d258ed4b4c187b22f640d67..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Callback.php +++ /dev/null @@ -1,128 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_Callback - * - * Execute an arbitrary callback to decorate an element. Callbacks should take - * three arguments, $content, $element, and $options: - * - * function mycallback($content, $element, array $options) - * { - * } - * - * and should return a string. ($options are whatever options were provided to - * the decorator.) - * - * To specify a callback, pass a valid callback as the 'callback' option. - * - * Callback results will be either appended, prepended, or replace the provided - * content. To replace the content, specify a placement of boolean false; - * defaults to append content. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Callback.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_Callback extends Zend_Form_Decorator_Abstract -{ - /** - * Callback - * @var string|array - */ - protected $_callback; - - /** - * Set callback - * - * @param callback $callback - * @return Zend_Form_Decorator_Callback - * @throws Zend_Form_Exception - */ - public function setCallback($callback) - { - if (!is_callable($callback)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid callback provided to callback decorator'); - } - $this->_callback = $callback; - return $this; - } - - /** - * Get registered callback - * - * If not previously registered, checks to see if it exists in registered - * options. - * - * @return null|string|array - */ - public function getCallback() - { - if (null === $this->_callback) { - if (null !== ($callback = $this->getOption('callback'))) { - $this->setCallback($callback); - $this->removeOption('callback'); - } - } - - return $this->_callback; - } - - /** - * Render - * - * If no callback registered, returns callback. Otherwise, gets return - * value of callback and either appends, prepends, or replaces passed in - * content. - * - * @param string $content - * @return string - */ - public function render($content) - { - $callback = $this->getCallback(); - if (null === $callback) { - return $content; - } - - $placement = $this->getPlacement(); - $separator = $this->getSeparator(); - - $response = call_user_func($callback, $content, $this->getElement(), $this->getOptions()); - - switch ($placement) { - case self::APPEND: - return $content . $separator . $response; - case self::PREPEND: - return $response . $separator . $content; - default: - // replace content - return $response; - } - } -} diff --git a/libs/Zend/Form/Decorator/Captcha.php b/libs/Zend/Form/Decorator/Captcha.php deleted file mode 100644 index 0c2705559c6fd819543ffc76cbc4f3a77f9b69ac..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Captcha.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** @see Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Captcha generic decorator - * - * Adds captcha adapter output - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Captcha.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_Captcha extends Zend_Form_Decorator_Abstract -{ - /** - * Render captcha - * - * @param string $content - * @return string - */ - public function render($content) - { - $element = $this->getElement(); - if (!method_exists($element, 'getCaptcha')) { - return $content; - } - - $view = $element->getView(); - if (null === $view) { - return $content; - } - - $placement = $this->getPlacement(); - $separator = $this->getSeparator(); - - $captcha = $element->getCaptcha(); - $markup = $captcha->render($view, $element); - switch ($placement) { - case 'PREPEND': - $content = $markup . $separator . $content; - break; - case 'APPEND': - default: - $content = $content . $separator . $markup; - } - return $content; - } -} diff --git a/libs/Zend/Form/Decorator/Captcha/Word.php b/libs/Zend/Form/Decorator/Captcha/Word.php deleted file mode 100644 index ca6f3cc12c72b7eff74076dcaceb5ee710374cf8..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Captcha/Word.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** @see Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Word-based captcha decorator - * - * Adds hidden field for ID and text input field for captcha text - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Word.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_Captcha_Word extends Zend_Form_Decorator_Abstract -{ - /** - * Render captcha - * - * @param string $content - * @return string - */ - public function render($content) - { - $element = $this->getElement(); - $view = $element->getView(); - if (null === $view) { - return $content; - } - - $name = $element->getFullyQualifiedName(); - - $hiddenName = $name . '[id]'; - $textName = $name . '[input]'; - - $label = $element->getDecorator("Label"); - if($label) { - $label->setOption("id", $element->getId()."-input"); - } - - $placement = $this->getPlacement(); - $separator = $this->getSeparator(); - - $hidden = $view->formHidden($hiddenName, $element->getValue(), $element->getAttribs()); - $text = $view->formText($textName, '', $element->getAttribs()); - switch ($placement) { - case 'PREPEND': - $content = $hidden . $separator . $text . $separator . $content; - break; - case 'APPEND': - default: - $content = $content . $separator . $hidden . $separator . $text; - } - return $content; - } -} diff --git a/libs/Zend/Form/Decorator/Description.php b/libs/Zend/Form/Decorator/Description.php deleted file mode 100644 index 0175c1405d822f89092cfa15426e58d451178640..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Description.php +++ /dev/null @@ -1,199 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_Description - * - * Accepts the options: - * - separator: separator to use between label and content (defaults to PHP_EOL) - * - placement: whether to append or prepend label to content (defaults to prepend) - * - tag: if set, used to wrap the label in an additional HTML tag - * - class: if set, override default class used with HTML tag - * - escape: whether or not to escape description (true by default) - * - * Any other options passed will be used as HTML attributes of the HTML tag used. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Description.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_Description extends Zend_Form_Decorator_Abstract -{ - /** - * Whether or not to escape the description - * @var bool - */ - protected $_escape; - - /** - * Default placement: append - * @var string - */ - protected $_placement = 'APPEND'; - - /** - * HTML tag with which to surround description - * @var string - */ - protected $_tag; - - /** - * Set HTML tag with which to surround description - * - * @param string $tag - * @return Zend_Form_Decorator_Description - */ - public function setTag($tag) - { - $this->_tag = (string) $tag; - return $this; - } - - /** - * Get HTML tag, if any, with which to surround description - * - * @return string - */ - public function getTag() - { - if (null === $this->_tag) { - $tag = $this->getOption('tag'); - if (null !== $tag) { - $this->removeOption('tag'); - } else { - $tag = 'p'; - } - - $this->setTag($tag); - return $tag; - } - - return $this->_tag; - } - - /** - * Get class with which to define description - * - * Defaults to 'hint' - * - * @return string - */ - public function getClass() - { - $class = $this->getOption('class'); - if (null === $class) { - $class = 'hint'; - $this->setOption('class', $class); - } - - return $class; - } - - /** - * Set whether or not to escape description - * - * @param bool $flag - * @return Zend_Form_Decorator_Description - */ - public function setEscape($flag) - { - $this->_escape = (bool) $flag; - return $this; - } - - /** - * Get escape flag - * - * @return true - */ - public function getEscape() - { - if (null === $this->_escape) { - if (null !== ($escape = $this->getOption('escape'))) { - $this->setEscape($escape); - $this->removeOption('escape'); - } else { - $this->setEscape(true); - } - } - - return $this->_escape; - } - - /** - * Render a description - * - * @param string $content - * @return string - */ - public function render($content) - { - $element = $this->getElement(); - $view = $element->getView(); - if (null === $view) { - return $content; - } - - $description = $element->getDescription(); - $description = trim($description); - - if (!empty($description) && (null !== ($translator = $element->getTranslator()))) { - $description = $translator->translate($description); - } - - if (empty($description)) { - return $content; - } - - $separator = $this->getSeparator(); - $placement = $this->getPlacement(); - $tag = $this->getTag(); - $class = $this->getClass(); - $escape = $this->getEscape(); - - $options = $this->getOptions(); - - if ($escape) { - $description = $view->escape($description); - } - - if (!empty($tag)) { - // require_once 'Zend/Form/Decorator/HtmlTag.php'; - $options['tag'] = $tag; - $decorator = new Zend_Form_Decorator_HtmlTag($options); - $description = $decorator->render($description); - } - - switch ($placement) { - case self::PREPEND: - return $description . $separator . $content; - case self::APPEND: - default: - return $content . $separator . $description; - } - } -} diff --git a/libs/Zend/Form/Decorator/DtDdWrapper.php b/libs/Zend/Form/Decorator/DtDdWrapper.php deleted file mode 100644 index 0d645172b9ef4d55b74a11d5a52e634be8d9f3a9..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/DtDdWrapper.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_DtDdWrapper - * - * Creates an empty <dt> item, and wraps the content in a <dd>. Used as a - * default decorator for subforms and display groups. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: DtDdWrapper.php 22129 2010-05-06 11:20:39Z alab $ - */ -class Zend_Form_Decorator_DtDdWrapper extends Zend_Form_Decorator_Abstract -{ - /** - * Default placement: surround content - * @var string - */ - protected $_placement = null; - - /** - * Render - * - * Renders as the following: - * <dt>$dtLabel</dt> - * <dd>$content</dd> - * - * $dtLabel can be set via 'dtLabel' option, defaults to '\ ' - * - * @param string $content - * @return string - */ - public function render($content) - { - $elementName = $this->getElement()->getName(); - - $dtLabel = $this->getOption('dtLabel'); - if( null === $dtLabel ) { - $dtLabel = ' '; - } - - return '<dt id="' . $elementName . '-label">' . $dtLabel . '</dt>' . - '<dd id="' . $elementName . '-element">' . $content . '</dd>'; - } -} diff --git a/libs/Zend/Form/Decorator/Errors.php b/libs/Zend/Form/Decorator/Errors.php deleted file mode 100644 index 9818dc4e72905604f8a358d5286eecd3ab11dfdf..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Errors.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_Errors - * - * Any options passed will be used as HTML attributes of the ul tag for the errors. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Errors.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_Errors extends Zend_Form_Decorator_Abstract -{ - /** - * Render errors - * - * @param string $content - * @return string - */ - public function render($content) - { - $element = $this->getElement(); - $view = $element->getView(); - if (null === $view) { - return $content; - } - - $errors = $element->getMessages(); - if (empty($errors)) { - return $content; - } - - $separator = $this->getSeparator(); - $placement = $this->getPlacement(); - $errors = $view->formErrors($errors, $this->getOptions()); - - switch ($placement) { - case self::APPEND: - return $content . $separator . $errors; - case self::PREPEND: - return $errors . $separator . $content; - } - } -} diff --git a/libs/Zend/Form/Decorator/Exception.php b/libs/Zend/Form/Decorator/Exception.php deleted file mode 100644 index 6f85840d7f0f648401166f1edf8f34388de82063..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Exception.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @version $Id: Exception.php 20096 2010-01-06 02:05:09Z bkarwin $ - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Exception */ -// require_once 'Zend/Form/Exception.php'; - -/** - * Exception for Zend_Form component. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ -class Zend_Form_Decorator_Exception extends Zend_Form_Exception -{ -} diff --git a/libs/Zend/Form/Decorator/Fieldset.php b/libs/Zend/Form/Decorator/Fieldset.php deleted file mode 100644 index 93a1255474de763fcaeaf96bd90f13362fa3e5d4..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Fieldset.php +++ /dev/null @@ -1,155 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_Fieldset - * - * Any options passed will be used as HTML attributes of the fieldset tag. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Fieldset.php 21967 2010-04-21 23:22:00Z alab $ - */ -class Zend_Form_Decorator_Fieldset extends Zend_Form_Decorator_Abstract -{ - /** - * Attribs that should be removed prior to rendering - * @var array - */ - public $stripAttribs = array( - 'action', - 'enctype', - 'helper', - 'method', - 'name', - ); - - /** - * Fieldset legend - * @var string - */ - protected $_legend; - - /** - * Default placement: surround content - * @var string - */ - protected $_placement = null; - - /** - * Get options - * - * Merges in element attributes as well. - * - * @return array - */ - public function getOptions() - { - $options = parent::getOptions(); - if (null !== ($element = $this->getElement())) { - $attribs = $element->getAttribs(); - $options = array_merge($options, $attribs); - $this->setOptions($options); - } - return $options; - } - - /** - * Set legend - * - * @param string $value - * @return Zend_Form_Decorator_Fieldset - */ - public function setLegend($value) - { - $this->_legend = (string) $value; - return $this; - } - - /** - * Get legend - * - * @return string - */ - public function getLegend() - { - $legend = $this->_legend; - if ((null === $legend) && (null !== ($element = $this->getElement()))) { - if (method_exists($element, 'getLegend')) { - $legend = $element->getLegend(); - $this->setLegend($legend); - } - } - if ((null === $legend) && (null !== ($legend = $this->getOption('legend')))) { - $this->setLegend($legend); - $this->removeOption('legend'); - } - - return $legend; - } - - /** - * Render a fieldset - * - * @param string $content - * @return string - */ - public function render($content) - { - $element = $this->getElement(); - $view = $element->getView(); - if (null === $view) { - return $content; - } - - $legend = $this->getLegend(); - $attribs = $this->getOptions(); - $name = $element->getFullyQualifiedName(); - $id = (string)$element->getId(); - - if (!array_key_exists('id', $attribs) && '' !== $id) { - $attribs['id'] = 'fieldset-' . $id; - } - - if (null !== $legend) { - if (null !== ($translator = $element->getTranslator())) { - $legend = $translator->translate($legend); - } - - $attribs['legend'] = $legend; - } - - foreach (array_keys($attribs) as $attrib) { - $testAttrib = strtolower($attrib); - if (in_array($testAttrib, $this->stripAttribs)) { - unset($attribs[$attrib]); - } - } - - return $view->fieldset($name, $content, $attribs); - } -} diff --git a/libs/Zend/Form/Decorator/File.php b/libs/Zend/Form/Decorator/File.php deleted file mode 100644 index 926f4901863c7169b8a08cc022331df0914f033d..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/File.php +++ /dev/null @@ -1,142 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** Zend_Form_Decorator_Marker_File_Interface */ -// require_once 'Zend/Form/Decorator/Marker/File/Interface.php'; - -/** Zend_File_Transfer_Adapter_Http */ -// require_once 'Zend/File/Transfer/Adapter/Http.php'; - -/** - * Zend_Form_Decorator_File - * - * Fixes the rendering for all subform and multi file elements - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: File.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_File - extends Zend_Form_Decorator_Abstract - implements Zend_Form_Decorator_Marker_File_Interface -{ - /** - * Attributes that should not be passed to helper - * @var array - */ - protected $_attribBlacklist = array('helper', 'placement', 'separator', 'value'); - - /** - * Default placement: append - * @var string - */ - protected $_placement = 'APPEND'; - - /** - * Get attributes to pass to file helper - * - * @return array - */ - public function getAttribs() - { - $attribs = $this->getOptions(); - - if (null !== ($element = $this->getElement())) { - $attribs = array_merge($attribs, $element->getAttribs()); - } - - foreach ($this->_attribBlacklist as $key) { - if (array_key_exists($key, $attribs)) { - unset($attribs[$key]); - } - } - - return $attribs; - } - - /** - * Render a form file - * - * @param string $content - * @return string - */ - public function render($content) - { - $element = $this->getElement(); - if (!$element instanceof Zend_Form_Element) { - return $content; - } - - $view = $element->getView(); - if (!$view instanceof Zend_View_Interface) { - return $content; - } - - $name = $element->getName(); - $attribs = $this->getAttribs(); - if (!array_key_exists('id', $attribs)) { - $attribs['id'] = $name; - } - - $separator = $this->getSeparator(); - $placement = $this->getPlacement(); - $markup = array(); - $size = $element->getMaxFileSize(); - if ($size > 0) { - $element->setMaxFileSize(0); - $markup[] = $view->formHidden('MAX_FILE_SIZE', $size); - } - - if (Zend_File_Transfer_Adapter_Http::isApcAvailable()) { - $markup[] = $view->formHidden(ini_get('apc.rfc1867_name'), uniqid(), array('id' => 'progress_key')); - } else if (Zend_File_Transfer_Adapter_Http::isUploadProgressAvailable()) { - $markup[] = $view->formHidden('UPLOAD_IDENTIFIER', uniqid(), array('id' => 'progress_key')); - } - - if ($element->isArray()) { - $name .= "[]"; - $count = $element->getMultiFile(); - for ($i = 0; $i < $count; ++$i) { - $htmlAttribs = $attribs; - $htmlAttribs['id'] .= '-' . $i; - $markup[] = $view->formFile($name, $htmlAttribs); - } - } else { - $markup[] = $view->formFile($name, $attribs); - } - - $markup = implode($separator, $markup); - - switch ($placement) { - case self::PREPEND: - return $markup . $separator . $content; - case self::APPEND: - default: - return $content . $separator . $markup; - } - } -} diff --git a/libs/Zend/Form/Decorator/Form.php b/libs/Zend/Form/Decorator/Form.php deleted file mode 100644 index c6dbd6c12fb8e0789414ea70c2821fd539dc0615..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Form.php +++ /dev/null @@ -1,134 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_Form - * - * Render a Zend_Form object. - * - * Accepts following options: - * - separator: Separator to use between elements - * - helper: which view helper to use when rendering form. Should accept three - * arguments, string content, a name, and an array of attributes. - * - * Any other options passed will be used as HTML attributes of the form tag. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Form.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_Form extends Zend_Form_Decorator_Abstract -{ - /** - * Default view helper - * @var string - */ - protected $_helper = 'form'; - - /** - * Set view helper for rendering form - * - * @param string $helper - * @return Zend_Form_Decorator_Form - */ - public function setHelper($helper) - { - $this->_helper = (string) $helper; - return $this; - } - - /** - * Get view helper for rendering form - * - * @return string - */ - public function getHelper() - { - if (null !== ($helper = $this->getOption('helper'))) { - $this->setHelper($helper); - $this->removeOption('helper'); - } - return $this->_helper; - } - - /** - * Retrieve decorator options - * - * Assures that form action and method are set, and sets appropriate - * encoding type if current method is POST. - * - * @return array - */ - public function getOptions() - { - if (null !== ($element = $this->getElement())) { - if ($element instanceof Zend_Form) { - $element->getAction(); - $method = $element->getMethod(); - if ($method == Zend_Form::METHOD_POST) { - $this->setOption('enctype', 'application/x-www-form-urlencoded'); - } - foreach ($element->getAttribs() as $key => $value) { - $this->setOption($key, $value); - } - } elseif ($element instanceof Zend_Form_DisplayGroup) { - foreach ($element->getAttribs() as $key => $value) { - $this->setOption($key, $value); - } - } - } - - if (isset($this->_options['method'])) { - $this->_options['method'] = strtolower($this->_options['method']); - } - - return $this->_options; - } - - /** - * Render a form - * - * Replaces $content entirely from currently set element. - * - * @param string $content - * @return string - */ - public function render($content) - { - $form = $this->getElement(); - $view = $form->getView(); - if (null === $view) { - return $content; - } - - $helper = $this->getHelper(); - $attribs = $this->getOptions(); - $name = $form->getFullyQualifiedName(); - $attribs['id'] = $form->getId(); - return $view->$helper($name, $attribs, $content); - } -} diff --git a/libs/Zend/Form/Decorator/FormElements.php b/libs/Zend/Form/Decorator/FormElements.php deleted file mode 100644 index 5e80dccfa5cb2e447610a4eb82ff126143ba33f3..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/FormElements.php +++ /dev/null @@ -1,126 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_FormElements - * - * Render all form elements registered with current form - * - * Accepts following options: - * - separator: Separator to use between elements - * - * Any other options passed will be used as HTML attributes of the form tag. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: FormElements.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_FormElements extends Zend_Form_Decorator_Abstract -{ - /** - * Merges given two belongsTo (array notation) strings - * - * @param string $baseBelongsTo - * @param string $belongsTo - * @return string - */ - public function mergeBelongsTo($baseBelongsTo, $belongsTo) - { - $endOfArrayName = strpos($belongsTo, '['); - - if ($endOfArrayName === false) { - return $baseBelongsTo . '[' . $belongsTo . ']'; - } - - $arrayName = substr($belongsTo, 0, $endOfArrayName); - - return $baseBelongsTo . '[' . $arrayName . ']' . substr($belongsTo, $endOfArrayName); - } - - /** - * Render form elements - * - * @param string $content - * @return string - */ - public function render($content) - { - $form = $this->getElement(); - if ((!$form instanceof Zend_Form) && (!$form instanceof Zend_Form_DisplayGroup)) { - return $content; - } - - $belongsTo = ($form instanceof Zend_Form) ? $form->getElementsBelongTo() : null; - $elementContent = ''; - $separator = $this->getSeparator(); - $translator = $form->getTranslator(); - $items = array(); - $view = $form->getView(); - foreach ($form as $item) { - $item->setView($view) - ->setTranslator($translator); - if ($item instanceof Zend_Form_Element) { - $item->setBelongsTo($belongsTo); - } elseif (!empty($belongsTo) && ($item instanceof Zend_Form)) { - if ($item->isArray()) { - $name = $this->mergeBelongsTo($belongsTo, $item->getElementsBelongTo()); - $item->setElementsBelongTo($name, true); - } else { - $item->setElementsBelongTo($belongsTo, true); - } - } elseif (!empty($belongsTo) && ($item instanceof Zend_Form_DisplayGroup)) { - foreach ($item as $element) { - $element->setBelongsTo($belongsTo); - } - } - - $items[] = $item->render(); - - if (($item instanceof Zend_Form_Element_File) - || (($item instanceof Zend_Form) - && (Zend_Form::ENCTYPE_MULTIPART == $item->getEnctype())) - || (($item instanceof Zend_Form_DisplayGroup) - && (Zend_Form::ENCTYPE_MULTIPART == $item->getAttrib('enctype'))) - ) { - if ($form instanceof Zend_Form) { - $form->setEnctype(Zend_Form::ENCTYPE_MULTIPART); - } elseif ($form instanceof Zend_Form_DisplayGroup) { - $form->setAttrib('enctype', Zend_Form::ENCTYPE_MULTIPART); - } - } - } - $elementContent = implode($separator, $items); - - switch ($this->getPlacement()) { - case self::PREPEND: - return $elementContent . $separator . $content; - case self::APPEND: - default: - return $content . $separator . $elementContent; - } - } -} diff --git a/libs/Zend/Form/Decorator/FormErrors.php b/libs/Zend/Form/Decorator/FormErrors.php deleted file mode 100644 index 31a3d1570a22a0eaea1a82ec00e64e3c0d7b60dc..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/FormErrors.php +++ /dev/null @@ -1,461 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_FormErrors - * - * Displays all form errors in one view. - * - * Any options passed will be used as HTML attributes of the ul tag for the errors. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: FormErrors.php 22317 2010-05-29 10:13:31Z alab $ - */ -class Zend_Form_Decorator_FormErrors extends Zend_Form_Decorator_Abstract -{ - /** - * Default values for markup options - * @var array - */ - protected $_defaults = array( - 'ignoreSubForms' => false, - 'showCustomFormErrors' => true, - 'onlyCustomFormErrors' => false, - 'markupElementLabelEnd' => '</b>', - 'markupElementLabelStart' => '<b>', - 'markupListEnd' => '</ul>', - 'markupListItemEnd' => '</li>', - 'markupListItemStart' => '<li>', - 'markupListStart' => '<ul class="form-errors">', - ); - - /**#@+ - * Markup options - * @var string - */ - protected $_ignoreSubForms; - protected $_showCustomFormErrors; - protected $_onlyCustomFormErrors; - protected $_markupElementLabelEnd; - protected $_markupElementLabelStart; - protected $_markupListEnd; - protected $_markupListItemEnd; - protected $_markupListItemStart; - protected $_markupListStart; - /**#@-*/ - - /** - * Render errors - * - * @param string $content - * @return string - */ - public function render($content) - { - $form = $this->getElement(); - if (!$form instanceof Zend_Form) { - return $content; - } - - $view = $form->getView(); - if (null === $view) { - return $content; - } - - $this->initOptions(); - $markup = $this->_recurseForm($form, $view); - - if (empty($markup)) { - return $content; - } - - $markup = $this->getMarkupListStart() - . $markup - . $this->getMarkupListEnd(); - - switch ($this->getPlacement()) { - case self::APPEND: - return $content . $this->getSeparator() . $markup; - case self::PREPEND: - return $markup . $this->getSeparator() . $content; - } - } - - /** - * Initialize options - * - * @return void - */ - public function initOptions() - { - $this->getMarkupElementLabelEnd(); - $this->getMarkupElementLabelStart(); - $this->getMarkupListEnd(); - $this->getMarkupListItemEnd(); - $this->getMarkupListItemStart(); - $this->getMarkupListStart(); - $this->getPlacement(); - $this->getSeparator(); - $this->ignoreSubForms(); - $this->getShowCustomFormErrors(); - $this->getOnlyCustomFormErrors(); - } - - /** - * Retrieve markupElementLabelStart - * - * @return string - */ - public function getMarkupElementLabelStart() - { - if (null === $this->_markupElementLabelStart) { - if (null === ($markupElementLabelStart = $this->getOption('markupElementLabelStart'))) { - $this->setMarkupElementLabelStart($this->_defaults['markupElementLabelStart']); - } else { - $this->setMarkupElementLabelStart($markupElementLabelStart); - $this->removeOption('markupElementLabelStart'); - } - } - - return $this->_markupElementLabelStart; - } - - /** - * Set markupElementLabelStart - * - * @param string $markupElementLabelStart - * @return Zend_Form_Decorator_FormErrors - */ - public function setMarkupElementLabelStart($markupElementLabelStart) - { - $this->_markupElementLabelStart = $markupElementLabelStart; - return $this; - } - - /** - * Retrieve markupElementLabelEnd - * - * @return string - */ - public function getMarkupElementLabelEnd() - { - if (null === $this->_markupElementLabelEnd) { - if (null === ($markupElementLabelEnd = $this->getOption('markupElementLabelEnd'))) { - $this->setMarkupElementLabelEnd($this->_defaults['markupElementLabelEnd']); - } else { - $this->setMarkupElementLabelEnd($markupElementLabelEnd); - $this->removeOption('markupElementLabelEnd'); - } - } - - return $this->_markupElementLabelEnd; - } - - /** - * Set markupElementLabelEnd - * - * @param string $markupElementLabelEnd - * @return Zend_Form_Decorator_FormErrors - */ - public function setMarkupElementLabelEnd($markupElementLabelEnd) - { - $this->_markupElementLabelEnd = $markupElementLabelEnd; - return $this; - } - - /** - * Retrieve markupListStart - * - * @return string - */ - public function getMarkupListStart() - { - if (null === $this->_markupListStart) { - if (null === ($markupListStart = $this->getOption('markupListStart'))) { - $this->setMarkupListStart($this->_defaults['markupListStart']); - } else { - $this->setMarkupListStart($markupListStart); - $this->removeOption('markupListStart'); - } - } - - return $this->_markupListStart; - } - - /** - * Set markupListStart - * - * @param string $markupListStart - * @return Zend_Form_Decorator_FormErrors - */ - public function setMarkupListStart($markupListStart) - { - $this->_markupListStart = $markupListStart; - return $this; - } - - /** - * Retrieve markupListEnd - * - * @return string - */ - public function getMarkupListEnd() - { - if (null === $this->_markupListEnd) { - if (null === ($markupListEnd = $this->getOption('markupListEnd'))) { - $this->setMarkupListEnd($this->_defaults['markupListEnd']); - } else { - $this->setMarkupListEnd($markupListEnd); - $this->removeOption('markupListEnd'); - } - } - - return $this->_markupListEnd; - } - - /** - * Set markupListEnd - * - * @param string $markupListEnd - * @return Zend_Form_Decorator_FormErrors - */ - public function setMarkupListEnd($markupListEnd) - { - $this->_markupListEnd = $markupListEnd; - return $this; - } - - /** - * Retrieve markupListItemStart - * - * @return string - */ - public function getMarkupListItemStart() - { - if (null === $this->_markupListItemStart) { - if (null === ($markupListItemStart = $this->getOption('markupListItemStart'))) { - $this->setMarkupListItemStart($this->_defaults['markupListItemStart']); - } else { - $this->setMarkupListItemStart($markupListItemStart); - $this->removeOption('markupListItemStart'); - } - } - - return $this->_markupListItemStart; - } - - /** - * Set markupListItemStart - * - * @param string $markupListItemStart - * @return Zend_Form_Decorator_FormErrors - */ - public function setMarkupListItemStart($markupListItemStart) - { - $this->_markupListItemStart = $markupListItemStart; - return $this; - } - - /** - * Retrieve markupListItemEnd - * - * @return string - */ - public function getMarkupListItemEnd() - { - if (null === $this->_markupListItemEnd) { - if (null === ($markupListItemEnd = $this->getOption('markupListItemEnd'))) { - $this->setMarkupListItemEnd($this->_defaults['markupListItemEnd']); - } else { - $this->setMarkupListItemEnd($markupListItemEnd); - $this->removeOption('markupListItemEnd'); - } - } - - return $this->_markupListItemEnd; - } - - /** - * Set markupListItemEnd - * - * @param string $markupListItemEnd - * @return Zend_Form_Decorator_FormErrors - */ - public function setMarkupListItemEnd($markupListItemEnd) - { - $this->_markupListItemEnd = $markupListItemEnd; - return $this; - } - - /** - * Retrieve ignoreSubForms - * - * @return bool - */ - public function ignoreSubForms() - { - if (null === $this->_ignoreSubForms) { - if (null === ($ignoreSubForms = $this->getOption('ignoreSubForms'))) { - $this->setIgnoreSubForms($this->_defaults['ignoreSubForms']); - } else { - $this->setIgnoreSubForms($ignoreSubForms); - $this->removeOption('ignoreSubForms'); - } - } - - return $this->_ignoreSubForms; - } - - /** - * Set ignoreSubForms - * - * @param bool $ignoreSubForms - * @return Zend_Form_Decorator_FormErrors - */ - public function setIgnoreSubForms($ignoreSubForms) - { - $this->_ignoreSubForms = (bool) $ignoreSubForms; - return $this; - } - - /** - * Get showCustomFormErrors - * - * @return bool - */ - public function getShowCustomFormErrors() - { - if (null === $this->_showCustomFormErrors) { - if (null === ($how = $this->getOption('showCustomFormErrors'))) { - $this->setShowCustomFormErrors($this->_defaults['showCustomFormErrors']); - } else { - $this->setShowCustomFormErrors($show); - $this->removeOption('showCustomFormErrors'); - } - } - return $this->_showCustomFormErrors; - } - - /** - * Set showCustomFormErrors - * - * @param bool $showCustomFormErrors - * @return Zend_Form_Decorator_FormErrors - */ - public function setShowCustomFormErrors($showCustomFormErrors) - { - $this->_showCustomFormErrors = (bool)$showCustomFormErrors; - return $this; - } - - /** - * Get onlyCustomFormErrors - * - * @return bool - */ - public function getOnlyCustomFormErrors() - { - if (null === $this->_onlyCustomFormErrors) { - if (null === ($show = $this->getOption('onlyCustomFormErrors'))) { - $this->setOnlyCustomFormErrors($this->_defaults['onlyCustomFormErrors']); - } else { - $this->setOnlyCustomFormErrors($show); - $this->removeOption('onlyCustomFormErrors'); - } - } - return $this->_onlyCustomFormErrors; - } - - /** - * Set onlyCustomFormErrors, whether to display elements messages - * in addition to custom form messages. - * - * @param bool $onlyCustomFormErrors - * @return Zend_Form_Decorator_FormErrors - */ - public function setOnlyCustomFormErrors($onlyCustomFormErrors) - { - $this->_onlyCustomFormErrors = (bool)$onlyCustomFormErrors; - return $this; - } - - /** - * Render element label - * - * @param Zend_Form_Element $element - * @param Zend_View_Interface $view - * @return string - */ - public function renderLabel(Zend_Form_Element $element, Zend_View_Interface $view) - { - $label = $element->getLabel(); - if (empty($label)) { - $label = $element->getName(); - } - - return $this->getMarkupElementLabelStart() - . $view->escape($label) - . $this->getMarkupElementLabelEnd(); - } - - /** - * Recurse through a form object, rendering errors - * - * @param Zend_Form $form - * @param Zend_View_Interface $view - * @return string - */ - protected function _recurseForm(Zend_Form $form, Zend_View_Interface $view) - { - $content = ''; - - $custom = $form->getCustomMessages(); - if ($this->getShowCustomFormErrors() && count($custom)) { - $content .= $this->getMarkupListItemStart() - . $view->formErrors($custom, $this->getOptions()) - . $this->getMarkupListItemEnd(); - } - foreach ($form->getElementsAndSubFormsOrdered() as $subitem) { - if ($subitem instanceof Zend_Form_Element && !$this->getOnlyCustomFormErrors()) { - $messages = $subitem->getMessages(); - if (count($messages)) { - $subitem->setView($view); - $content .= $this->getMarkupListItemStart() - . $this->renderLabel($subitem, $view) - . $view->formErrors($messages, $this->getOptions()) - . $this->getMarkupListItemEnd(); - } - } else if ($subitem instanceof Zend_Form && !$this->ignoreSubForms()) { - $content .= $this->getMarkupListStart() - . $this->_recurseForm($subitem, $view) - . $this->getMarkupListEnd(); - } - } - return $content; - } -} diff --git a/libs/Zend/Form/Decorator/HtmlTag.php b/libs/Zend/Form/Decorator/HtmlTag.php deleted file mode 100644 index 111ae768ec71ac4e64fabc5538923ad07a75e306..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/HtmlTag.php +++ /dev/null @@ -1,251 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** - * @see Zend_Form_Decorator_Abstract - */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_Element_HtmlTag - * - * Wraps content in an HTML block tag. - * - * Options accepted are: - * - tag: tag to use in decorator - * - noAttribs: do not render attributes in the opening tag - * - placement: 'append' or 'prepend'. If 'append', renders opening and - * closing tag after content; if prepend, renders opening and closing tag - * before content. - * - openOnly: render opening tag only - * - closeOnly: render closing tag only - * - * Any other options passed are processed as HTML attributes of the tag. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: HtmlTag.php 20104 2010-01-06 21:26:01Z matthew $ - */ -class Zend_Form_Decorator_HtmlTag extends Zend_Form_Decorator_Abstract -{ - /** - * Character encoding to use when escaping attributes - * @var string - */ - protected $_encoding; - - /** - * Placement; default to surround content - * @var string - */ - protected $_placement = null; - - /** - * HTML tag to use - * @var string - */ - protected $_tag; - - /** - * @var Zend_Filter - */ - protected $_tagFilter; - - /** - * Convert options to tag attributes - * - * @return string - */ - protected function _htmlAttribs(array $attribs) - { - $xhtml = ''; - $enc = $this->_getEncoding(); - foreach ((array) $attribs as $key => $val) { - $key = htmlspecialchars($key, ENT_COMPAT, $enc); - if (is_array($val)) { - $val = implode(' ', $val); - } - $val = htmlspecialchars($val, ENT_COMPAT, $enc); - $xhtml .= " $key=\"$val\""; - } - return $xhtml; - } - - /** - * Normalize tag - * - * Ensures tag is alphanumeric characters only, and all lowercase. - * - * @param string $tag - * @return string - */ - public function normalizeTag($tag) - { - if (!isset($this->_tagFilter)) { - // require_once 'Zend/Filter.php'; - // require_once 'Zend/Filter/Alnum.php'; - // require_once 'Zend/Filter/StringToLower.php'; - $this->_tagFilter = new Zend_Filter(); - $this->_tagFilter->addFilter(new Zend_Filter_Alnum()) - ->addFilter(new Zend_Filter_StringToLower()); - } - return $this->_tagFilter->filter($tag); - } - - /** - * Set tag to use - * - * @param string $tag - * @return Zend_Form_Decorator_HtmlTag - */ - public function setTag($tag) - { - $this->_tag = $this->normalizeTag($tag); - return $this; - } - - /** - * Get tag - * - * If no tag is registered, either via setTag() or as an option, uses 'div'. - * - * @return string - */ - public function getTag() - { - if (null === $this->_tag) { - if (null === ($tag = $this->getOption('tag'))) { - $this->setTag('div'); - } else { - $this->setTag($tag); - $this->removeOption('tag'); - } - } - - return $this->_tag; - } - - /** - * Get the formatted open tag - * - * @param string $tag - * @param array $attribs - * @return string - */ - protected function _getOpenTag($tag, array $attribs = null) - { - $html = '<' . $tag; - if (null !== $attribs) { - $html .= $this->_htmlAttribs($attribs); - } - $html .= '>'; - return $html; - } - - /** - * Get formatted closing tag - * - * @param string $tag - * @return string - */ - protected function _getCloseTag($tag) - { - return '</' . $tag . '>'; - } - - /** - * Render content wrapped in an HTML tag - * - * @param string $content - * @return string - */ - public function render($content) - { - $tag = $this->getTag(); - $placement = $this->getPlacement(); - $noAttribs = $this->getOption('noAttribs'); - $openOnly = $this->getOption('openOnly'); - $closeOnly = $this->getOption('closeOnly'); - $this->removeOption('noAttribs'); - $this->removeOption('openOnly'); - $this->removeOption('closeOnly'); - - $attribs = null; - if (!$noAttribs) { - $attribs = $this->getOptions(); - } - - switch ($placement) { - case self::APPEND: - if ($closeOnly) { - return $content . $this->_getCloseTag($tag); - } - if ($openOnly) { - return $content . $this->_getOpenTag($tag, $attribs); - } - return $content - . $this->_getOpenTag($tag, $attribs) - . $this->_getCloseTag($tag); - case self::PREPEND: - if ($closeOnly) { - return $this->_getCloseTag($tag) . $content; - } - if ($openOnly) { - return $this->_getOpenTag($tag, $attribs) . $content; - } - return $this->_getOpenTag($tag, $attribs) - . $this->_getCloseTag($tag) - . $content; - default: - return (($openOnly || !$closeOnly) ? $this->_getOpenTag($tag, $attribs) : '') - . $content - . (($closeOnly || !$openOnly) ? $this->_getCloseTag($tag) : ''); - } - } - - /** - * Get encoding for use with htmlspecialchars() - * - * @return string - */ - protected function _getEncoding() - { - if (null !== $this->_encoding) { - return $this->_encoding; - } - - if (null === ($element = $this->getElement())) { - $this->_encoding = 'UTF-8'; - } elseif (null === ($view = $element->getView())) { - $this->_encoding = 'UTF-8'; - } elseif (!$view instanceof Zend_View_Abstract - && !method_exists($view, 'getEncoding') - ) { - $this->_encoding = 'UTF-8'; - } else { - $this->_encoding = $view->getEncoding(); - } - return $this->_encoding; - } -} diff --git a/libs/Zend/Form/Decorator/Image.php b/libs/Zend/Form/Decorator/Image.php deleted file mode 100644 index de0dc0021c40adebc932302e0c6a44a3d4298032..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Image.php +++ /dev/null @@ -1,154 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_Image - * - * Accepts the options: - * - separator: separator to use between image and content (defaults to PHP_EOL) - * - placement: whether to append or prepend label to content (defaults to append) - * - tag: if set, used to wrap the label in an additional HTML tag - * - * Any other options passed will be used as HTML attributes of the image tag. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Image.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_Image extends Zend_Form_Decorator_Abstract -{ - /** - * Attributes that should not be passed to helper - * @var array - */ - protected $_attribBlacklist = array('helper', 'placement', 'separator', 'tag'); - - /** - * Default placement: append - * @var string - */ - protected $_placement = 'APPEND'; - - /** - * HTML tag with which to surround image - * @var string - */ - protected $_tag; - - /** - * Set HTML tag with which to surround label - * - * @param string $tag - * @return Zend_Form_Decorator_Image - */ - public function setTag($tag) - { - $this->_tag = (string) $tag; - return $this; - } - - /** - * Get HTML tag, if any, with which to surround label - * - * @return void - */ - public function getTag() - { - if (null === $this->_tag) { - $tag = $this->getOption('tag'); - if (null !== $tag) { - $this->removeOption('tag'); - $this->setTag($tag); - } - return $tag; - } - - return $this->_tag; - } - - /** - * Get attributes to pass to image helper - * - * @return array - */ - public function getAttribs() - { - $attribs = $this->getOptions(); - - if (null !== ($element = $this->getElement())) { - $attribs['alt'] = $element->getLabel(); - $attribs = array_merge($attribs, $element->getAttribs()); - } - - foreach ($this->_attribBlacklist as $key) { - if (array_key_exists($key, $attribs)) { - unset($attribs[$key]); - } - } - - return $attribs; - } - - /** - * Render a form image - * - * @param string $content - * @return string - */ - public function render($content) - { - $element = $this->getElement(); - $view = $element->getView(); - if (null === $view) { - return $content; - } - - $tag = $this->getTag(); - $placement = $this->getPlacement(); - $separator = $this->getSeparator(); - $name = $element->getFullyQualifiedName(); - $attribs = $this->getAttribs(); - $attribs['id'] = $element->getId(); - - $image = $view->formImage($name, $element->getImageValue(), $attribs); - - if (null !== $tag) { - // require_once 'Zend/Form/Decorator/HtmlTag.php'; - $decorator = new Zend_Form_Decorator_HtmlTag(); - $decorator->setOptions(array('tag' => $tag)); - $image = $decorator->render($image); - } - - switch ($placement) { - case self::PREPEND: - return $image . $separator . $content; - case self::APPEND: - default: - return $content . $separator . $image; - } - } -} diff --git a/libs/Zend/Form/Decorator/Interface.php b/libs/Zend/Form/Decorator/Interface.php deleted file mode 100644 index 4a7d37263db99bcd1977f62170bf37c8fb82c40f..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Interface.php +++ /dev/null @@ -1,123 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** - * Zend_Form_Decorator_Interface - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Interface.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -interface Zend_Form_Decorator_Interface -{ - /** - * Constructor - * - * Accept options during initialization. - * - * @param array|Zend_Config $options - * @return void - */ - public function __construct($options = null); - - /** - * Set an element to decorate - * - * While the name is "setElement", a form decorator could decorate either - * an element or a form object. - * - * @param mixed $element - * @return Zend_Form_Decorator_Interface - */ - public function setElement($element); - - /** - * Retrieve current element - * - * @return mixed - */ - public function getElement(); - - /** - * Set decorator options from an array - * - * @param array $options - * @return Zend_Form_Decorator_Interface - */ - public function setOptions(array $options); - - /** - * Set decorator options from a config object - * - * @param Zend_Config $config - * @return Zend_Form_Decorator_Interface - */ - public function setConfig(Zend_Config $config); - - /** - * Set a single option - * - * @param string $key - * @param mixed $value - * @return Zend_Form_Decorator_Interface - */ - public function setOption($key, $value); - - /** - * Retrieve a single option - * - * @param string $key - * @return mixed - */ - public function getOption($key); - - /** - * Retrieve decorator options - * - * @return array - */ - public function getOptions(); - - /** - * Delete a single option - * - * @param string $key - * @return bool - */ - public function removeOption($key); - - /** - * Clear all options - * - * @return Zend_Form_Decorator_Interface - */ - public function clearOptions(); - - /** - * Render the element - * - * @param string $content Content to decorate - * @return string - */ - public function render($content); -} diff --git a/libs/Zend/Form/Decorator/Label.php b/libs/Zend/Form/Decorator/Label.php deleted file mode 100644 index 5840e8f3d537a7e069c5eaf4e110ab1c88891037..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Label.php +++ /dev/null @@ -1,332 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_Label - * - * Accepts the options: - * - separator: separator to use between label and content (defaults to PHP_EOL) - * - placement: whether to append or prepend label to content (defaults to prepend) - * - tag: if set, used to wrap the label in an additional HTML tag - * - opt(ional)Prefix: a prefix to the label to use when the element is optional - * - opt(iona)lSuffix: a suffix to the label to use when the element is optional - * - req(uired)Prefix: a prefix to the label to use when the element is required - * - req(uired)Suffix: a suffix to the label to use when the element is required - * - * Any other options passed will be used as HTML attributes of the label tag. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Label.php 22129 2010-05-06 11:20:39Z alab $ - */ -class Zend_Form_Decorator_Label extends Zend_Form_Decorator_Abstract -{ - /** - * Default placement: prepend - * @var string - */ - protected $_placement = 'PREPEND'; - - /** - * HTML tag with which to surround label - * @var string - */ - protected $_tag; - - /** - * Set element ID - * - * @param string $id - * @return Zend_Form_Decorator_Label - */ - public function setId($id) - { - $this->setOption('id', $id); - return $this; - } - - /** - * Retrieve element ID (used in 'for' attribute) - * - * If none set in decorator, looks first for element 'id' attribute, and - * defaults to element name. - * - * @return string - */ - public function getId() - { - $id = $this->getOption('id'); - if (null === $id) { - if (null !== ($element = $this->getElement())) { - $id = $element->getId(); - $this->setId($id); - } - } - - return $id; - } - - /** - * Set HTML tag with which to surround label - * - * @param string $tag - * @return Zend_Form_Decorator_Label - */ - public function setTag($tag) - { - if (empty($tag)) { - $this->_tag = null; - } else { - $this->_tag = (string) $tag; - } - - $this->removeOption('tag'); - - return $this; - } - - /** - * Get HTML tag, if any, with which to surround label - * - * @return void - */ - public function getTag() - { - if (null === $this->_tag) { - $tag = $this->getOption('tag'); - if (null !== $tag) { - $this->removeOption('tag'); - $this->setTag($tag); - } - return $tag; - } - - return $this->_tag; - } - - /** - * Get class with which to define label - * - * Appends either 'optional' or 'required' to class, depending on whether - * or not the element is required. - * - * @return string - */ - public function getClass() - { - $class = ''; - $element = $this->getElement(); - - $decoratorClass = $this->getOption('class'); - if (!empty($decoratorClass)) { - $class .= ' ' . $decoratorClass; - } - - $type = $element->isRequired() ? 'required' : 'optional'; - - if (!strstr($class, $type)) { - $class .= ' ' . $type; - $class = trim($class); - } - - return $class; - } - - /** - * Load an optional/required suffix/prefix key - * - * @param string $key - * @return void - */ - protected function _loadOptReqKey($key) - { - if (!isset($this->$key)) { - $value = $this->getOption($key); - $this->$key = (string) $value; - if (null !== $value) { - $this->removeOption($key); - } - } - } - - /** - * Overloading - * - * Currently overloads: - * - * - getOpt(ional)Prefix() - * - getOpt(ional)Suffix() - * - getReq(uired)Prefix() - * - getReq(uired)Suffix() - * - setOpt(ional)Prefix() - * - setOpt(ional)Suffix() - * - setReq(uired)Prefix() - * - setReq(uired)Suffix() - * - * @param string $method - * @param array $args - * @return mixed - * @throws Zend_Form_Exception for unsupported methods - */ - public function __call($method, $args) - { - $tail = substr($method, -6); - $head = substr($method, 0, 3); - if (in_array($head, array('get', 'set')) - && (('Prefix' == $tail) || ('Suffix' == $tail)) - ) { - $position = substr($method, -6); - $type = strtolower(substr($method, 3, 3)); - switch ($type) { - case 'req': - $key = 'required' . $position; - break; - case 'opt': - $key = 'optional' . $position; - break; - default: - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Invalid method "%s" called in Label decorator, and detected as type %s', $method, $type)); - } - - switch ($head) { - case 'set': - if (0 === count($args)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Method "%s" requires at least one argument; none provided', $method)); - } - $value = array_shift($args); - $this->$key = $value; - return $this; - case 'get': - default: - if (null === ($element = $this->getElement())) { - $this->_loadOptReqKey($key); - } elseif (isset($element->$key)) { - $this->$key = (string) $element->$key; - } else { - $this->_loadOptReqKey($key); - } - return $this->$key; - } - } - - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Invalid method "%s" called in Label decorator', $method)); - } - - /** - * Get label to render - * - * @return void - */ - public function getLabel() - { - if (null === ($element = $this->getElement())) { - return ''; - } - - $label = $element->getLabel(); - $label = trim($label); - - if (empty($label)) { - return ''; - } - - if (null !== ($translator = $element->getTranslator())) { - $label = $translator->translate($label); - } - - $optPrefix = $this->getOptPrefix(); - $optSuffix = $this->getOptSuffix(); - $reqPrefix = $this->getReqPrefix(); - $reqSuffix = $this->getReqSuffix(); - $separator = $this->getSeparator(); - - if (!empty($label)) { - if ($element->isRequired()) { - $label = $reqPrefix . $label . $reqSuffix; - } else { - $label = $optPrefix . $label . $optSuffix; - } - } - - return $label; - } - - - /** - * Render a label - * - * @param string $content - * @return string - */ - public function render($content) - { - $element = $this->getElement(); - $view = $element->getView(); - if (null === $view) { - return $content; - } - - $label = $this->getLabel(); - $separator = $this->getSeparator(); - $placement = $this->getPlacement(); - $tag = $this->getTag(); - $id = $this->getId(); - $class = $this->getClass(); - $options = $this->getOptions(); - - - if (empty($label) && empty($tag)) { - return $content; - } - - if (!empty($label)) { - $options['class'] = $class; - $label = $view->formLabel($element->getFullyQualifiedName(), trim($label), $options); - } else { - $label = ' '; - } - - if (null !== $tag) { - // require_once 'Zend/Form/Decorator/HtmlTag.php'; - $decorator = new Zend_Form_Decorator_HtmlTag(); - $decorator->setOptions(array('tag' => $tag, - 'id' => $this->getElement()->getName() . '-label')); - - $label = $decorator->render($label); - } - - switch ($placement) { - case self::APPEND: - return $content . $separator . $label; - case self::PREPEND: - return $label . $separator . $content; - } - } -} diff --git a/libs/Zend/Form/Decorator/Marker/File/Interface.php b/libs/Zend/Form/Decorator/Marker/File/Interface.php deleted file mode 100644 index 47f9b75afb408b358bc87070f6ecf48430067f0a..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Marker/File/Interface.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** - * Zend_Form_Decorator_Marker_File_Interface - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Interface.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -interface Zend_Form_Decorator_Marker_File_Interface -{ -} diff --git a/libs/Zend/Form/Decorator/PrepareElements.php b/libs/Zend/Form/Decorator/PrepareElements.php deleted file mode 100644 index 5a50537b9cfca7c704ef12f8f14010974d1ef8a8..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/PrepareElements.php +++ /dev/null @@ -1,90 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_FormElements */ -// require_once 'Zend/Form/Decorator/FormElements.php'; - -/** - * Zend_Form_Decorator_PrepareElements - * - * Render all form elements registered with current form - * - * Accepts following options: - * - separator: Separator to use between elements - * - * Any other options passed will be used as HTML attributes of the form tag. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: PrepareElements.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_PrepareElements extends Zend_Form_Decorator_FormElements -{ - /** - * Render form elements - * - * @param string $content - * @return string - */ - public function render($content) - { - $form = $this->getElement(); - if ((!$form instanceof Zend_Form) && (!$form instanceof Zend_Form_DisplayGroup)) { - return $content; - } - - $this->_recursivelyPrepareForm($form); - - return $content; - } - - protected function _recursivelyPrepareForm(Zend_Form $form) - { - $belongsTo = ($form instanceof Zend_Form) ? $form->getElementsBelongTo() : null; - $elementContent = ''; - $separator = $this->getSeparator(); - $translator = $form->getTranslator(); - $view = $form->getView(); - - foreach ($form as $item) { - $item->setView($view) - ->setTranslator($translator); - if ($item instanceof Zend_Form_Element) { - $item->setBelongsTo($belongsTo); - } elseif (!empty($belongsTo) && ($item instanceof Zend_Form)) { - if ($item->isArray()) { - $name = $this->mergeBelongsTo($belongsTo, $item->getElementsBelongTo()); - $item->setElementsBelongTo($name, true); - } else { - $item->setElementsBelongTo($belongsTo, true); - } - $this->_recursivelyPrepareForm($item); - } elseif (!empty($belongsTo) && ($item instanceof Zend_Form_DisplayGroup)) { - foreach ($item as $element) { - $element->setBelongsTo($belongsTo); - } - } - } - } -} diff --git a/libs/Zend/Form/Decorator/Tooltip.php b/libs/Zend/Form/Decorator/Tooltip.php deleted file mode 100644 index 807f78f2240e121b9e8b6ae24a7686fcb4f9196e..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/Tooltip.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_Tooltip - * - * Will translate the title attribute, if available - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Tooltip.php$ - */ -class Zend_Form_Decorator_Tooltip extends Zend_Form_Decorator_Abstract -{ - /** - * Translates the title attribute if it is available, if the translator is available - * and if the translator is not disable on the element being rendered. - * - * @param string $content - * @return string - */ - public function render($content) - { - if (null !== ($title = $this->getElement()->getAttrib('title'))) { - if (null !== ($translator = $this->getElement()->getTranslator())) { - $title = $translator->translate($title); - } - } - - $this->getElement()->setAttrib('title', $title); - return $content; - } - -} \ No newline at end of file diff --git a/libs/Zend/Form/Decorator/ViewHelper.php b/libs/Zend/Form/Decorator/ViewHelper.php deleted file mode 100644 index a84ad60dc5f2950d8c6c457eb20b1b6107209ae1..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/ViewHelper.php +++ /dev/null @@ -1,256 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_ViewHelper - * - * Decorate an element by using a view helper to render it. - * - * Accepts the following options: - * - separator: string with which to separate passed in content and generated content - * - placement: whether to append or prepend the generated content to the passed in content - * - helper: the name of the view helper to use - * - * Assumes the view helper accepts three parameters, the name, value, and - * optional attributes; these will be provided by the element. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: ViewHelper.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_ViewHelper extends Zend_Form_Decorator_Abstract -{ - /** - * Element types that represent buttons - * @var array - */ - protected $_buttonTypes = array( - 'Zend_Form_Element_Button', - 'Zend_Form_Element_Reset', - 'Zend_Form_Element_Submit', - ); - - /** - * View helper to use when rendering - * @var string - */ - protected $_helper; - - /** - * Set view helper to use when rendering - * - * @param string $helper - * @return Zend_Form_Decorator_Element_ViewHelper - */ - public function setHelper($helper) - { - $this->_helper = (string) $helper; - return $this; - } - - /** - * Retrieve view helper for rendering element - * - * @return string - */ - public function getHelper() - { - if (null === $this->_helper) { - $options = $this->getOptions(); - if (isset($options['helper'])) { - $this->setHelper($options['helper']); - $this->removeOption('helper'); - } else { - $element = $this->getElement(); - if (null !== $element) { - if (null !== ($helper = $element->getAttrib('helper'))) { - $this->setHelper($helper); - } else { - $type = $element->getType(); - if ($pos = strrpos($type, '_')) { - $type = substr($type, $pos + 1); - } - $this->setHelper('form' . ucfirst($type)); - } - } - } - } - - return $this->_helper; - } - - /** - * Get name - * - * If element is a Zend_Form_Element, will attempt to namespace it if the - * element belongs to an array. - * - * @return string - */ - public function getName() - { - if (null === ($element = $this->getElement())) { - return ''; - } - - $name = $element->getName(); - - if (!$element instanceof Zend_Form_Element) { - return $name; - } - - if (null !== ($belongsTo = $element->getBelongsTo())) { - $name = $belongsTo . '[' - . $name - . ']'; - } - - if ($element->isArray()) { - $name .= '[]'; - } - - return $name; - } - - /** - * Retrieve element attributes - * - * Set id to element name and/or array item. - * - * @return array - */ - public function getElementAttribs() - { - if (null === ($element = $this->getElement())) { - return null; - } - - $attribs = $element->getAttribs(); - if (isset($attribs['helper'])) { - unset($attribs['helper']); - } - - if (method_exists($element, 'getSeparator')) { - if (null !== ($listsep = $element->getSeparator())) { - $attribs['listsep'] = $listsep; - } - } - - if (isset($attribs['id'])) { - return $attribs; - } - - $id = $element->getName(); - - if ($element instanceof Zend_Form_Element) { - if (null !== ($belongsTo = $element->getBelongsTo())) { - $belongsTo = preg_replace('/\[([^\]]+)\]/', '-$1', $belongsTo); - $id = $belongsTo . '-' . $id; - } - } - - $element->setAttrib('id', $id); - $attribs['id'] = $id; - - return $attribs; - } - - /** - * Get value - * - * If element type is one of the button types, returns the label. - * - * @param Zend_Form_Element $element - * @return string|null - */ - public function getValue($element) - { - if (!$element instanceof Zend_Form_Element) { - return null; - } - - foreach ($this->_buttonTypes as $type) { - if ($element instanceof $type) { - if (stristr($type, 'button')) { - $element->content = $element->getLabel(); - return null; - } - return $element->getLabel(); - } - } - - return $element->getValue(); - } - - /** - * Render an element using a view helper - * - * Determine view helper from 'viewHelper' option, or, if none set, from - * the element type. Then call as - * helper($element->getName(), $element->getValue(), $element->getAttribs()) - * - * @param string $content - * @return string - * @throws Zend_Form_Decorator_Exception if element or view are not registered - */ - public function render($content) - { - $element = $this->getElement(); - - $view = $element->getView(); - if (null === $view) { - // require_once 'Zend/Form/Decorator/Exception.php'; - throw new Zend_Form_Decorator_Exception('ViewHelper decorator cannot render without a registered view object'); - } - - if (method_exists($element, 'getMultiOptions')) { - $element->getMultiOptions(); - } - - $helper = $this->getHelper(); - $separator = $this->getSeparator(); - $value = $this->getValue($element); - $attribs = $this->getElementAttribs(); - $name = $element->getFullyQualifiedName(); - $id = $element->getId(); - $attribs['id'] = $id; - - $helperObject = $view->getHelper($helper); - if (method_exists($helperObject, 'setTranslator')) { - $helperObject->setTranslator($element->getTranslator()); - } - - $elementContent = $view->$helper($name, $value, $attribs, $element->options); - switch ($this->getPlacement()) { - case self::APPEND: - return $content . $separator . $elementContent; - case self::PREPEND: - return $elementContent . $separator . $content; - default: - return $elementContent; - } - } -} diff --git a/libs/Zend/Form/Decorator/ViewScript.php b/libs/Zend/Form/Decorator/ViewScript.php deleted file mode 100644 index ebfc70c07b427724393f2b95f1751ed36a4cac7c..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Decorator/ViewScript.php +++ /dev/null @@ -1,144 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Decorator_Abstract */ -// require_once 'Zend/Form/Decorator/Abstract.php'; - -/** - * Zend_Form_Decorator_ViewScript - * - * Render a view script as a decorator - * - * Accepts the options: - * - separator: separator to use between view script content and provided content (defaults to PHP_EOL) - * - placement: whether to append or prepend view script content to provided content (defaults to prepend) - * - viewScript: view script to use - * - * The view script is rendered as a partial; the element being decorated is - * passed in as the 'element' variable: - * <code> - * // in view script: - * echo $this->element->getLabel(); - * </code> - * - * Any options other than separator, placement, and viewScript are passed to - * the partial as local variables. - * - * @category Zend - * @package Zend_Form - * @subpackage Decorator - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: ViewScript.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Decorator_ViewScript extends Zend_Form_Decorator_Abstract -{ - /** - * Default placement: append - * @var string - */ - protected $_placement = 'APPEND'; - - /** - * View script to render - * @var string - */ - protected $_viewScript; - - /** - * Set view script - * - * @param string $script - * @return Zend_Form_Decorator_ViewScript - */ - public function setViewScript($script) - { - $this->_viewScript = (string) $script; - return $this; - } - - /** - * Get view script - * - * @return string|null - */ - public function getViewScript() - { - if (null === $this->_viewScript) { - if (null !== ($element = $this->getElement())) { - if (null !== ($viewScript = $element->getAttrib('viewScript'))) { - $this->setViewScript($viewScript); - return $viewScript; - } - } - - if (null !== ($viewScript = $this->getOption('viewScript'))) { - $this->setViewScript($viewScript) - ->removeOption('viewScript'); - } - } - - return $this->_viewScript; - } - - /** - * Render a view script - * - * @param string $content - * @return string - */ - public function render($content) - { - $element = $this->getElement(); - $view = $element->getView(); - if (null === $view) { - return $content; - } - - $viewScript = $this->getViewScript(); - if (empty($viewScript)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('No view script registered with ViewScript decorator'); - } - - $separator = $this->getSeparator(); - $placement = $this->getPlacement(); - - $vars = $this->getOptions(); - $vars['element'] = $element; - $vars['content'] = $content; - $vars['decorator'] = $this; - - $renderedContent = $view->partial($viewScript, $vars); - - // Get placement again to see if it has changed - $placement = $this->getPlacement(); - - switch ($placement) { - case self::PREPEND: - return $renderedContent . $separator . $content; - case self::APPEND: - return $content . $separator . $renderedContent; - default: - return $renderedContent; - } - } -} diff --git a/libs/Zend/Form/DisplayGroup.php b/libs/Zend/Form/DisplayGroup.php deleted file mode 100644 index 88253b40a9606724f1ea9257189a11b512902272..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/DisplayGroup.php +++ /dev/null @@ -1,1130 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** - * Zend_Form_DisplayGroup - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: DisplayGroup.php 22465 2010-06-19 17:41:03Z alab $ - */ -class Zend_Form_DisplayGroup implements Iterator,Countable -{ - /** - * Group attributes - * @var array - */ - protected $_attribs = array(); - - /** - * Display group decorators - * @var array - */ - protected $_decorators = array(); - - /** - * Description - * @var string - */ - protected $_description; - - /** - * Should we disable loading the default decorators? - * @var bool - */ - protected $_disableLoadDefaultDecorators = false; - - /** - * Element order - * @var array - */ - protected $_elementOrder = array(); - - /** - * Elements - * @var array - */ - protected $_elements = array(); - - /** - * Whether or not a new element has been added to the group - * @var bool - */ - protected $_groupUpdated = false; - - /** - * Plugin loader for decorators - * @var Zend_Loader_PluginLoader - */ - protected $_loader; - - /** - * Group name - * @var string - */ - protected $_name; - - /** - * Group order - * @var int - */ - protected $_order; - - /** - * @var Zend_Translate - */ - protected $_translator; - - /** - * Is translation disabled? - * @var bool - */ - protected $_translatorDisabled = false; - - /** - * @var Zend_View_Interface - */ - protected $_view; - - /** - * Constructor - * - * @param string $name - * @param Zend_Loader_PluginLoader $loader - * @param array|Zend_Config $options - * @return void - */ - public function __construct($name, Zend_Loader_PluginLoader $loader, $options = null) - { - $this->setName($name); - - $this->setPluginLoader($loader); - - if (is_array($options)) { - $this->setOptions($options); - } elseif ($options instanceof Zend_Config) { - $this->setConfig($options); - } - - // Extensions... - $this->init(); - - $this->loadDefaultDecorators(); - } - - /** - * Initialize object; used by extending classes - * - * @return void - */ - public function init() - { - } - - /** - * Set options - * - * @param array $options - * @return Zend_Form_DisplayGroup - */ - public function setOptions(array $options) - { - $forbidden = array( - 'Options', 'Config', 'PluginLoader', 'View', - 'Translator', 'Attrib' - ); - foreach ($options as $key => $value) { - $normalized = ucfirst($key); - - if (in_array($normalized, $forbidden)) { - continue; - } - - $method = 'set' . $normalized; - if (method_exists($this, $method)) { - $this->$method($value); - } else { - $this->setAttrib($key, $value); - } - } - return $this; - } - - /** - * Set options from config object - * - * @param Zend_Config $config - * @return Zend_Form_DisplayGroup - */ - public function setConfig(Zend_Config $config) - { - return $this->setOptions($config->toArray()); - } - - /** - * Set group attribute - * - * @param string $key - * @param mixed $value - * @return Zend_Form_DisplayGroup - */ - public function setAttrib($key, $value) - { - $key = (string) $key; - $this->_attribs[$key] = $value; - return $this; - } - - /** - * Add multiple form attributes at once - * - * @param array $attribs - * @return Zend_Form_DisplayGroup - */ - public function addAttribs(array $attribs) - { - foreach ($attribs as $key => $value) { - $this->setAttrib($key, $value); - } - return $this; - } - - /** - * Set multiple form attributes at once - * - * Overwrites any previously set attributes. - * - * @param array $attribs - * @return Zend_Form_DisplayGroup - */ - public function setAttribs(array $attribs) - { - $this->clearAttribs(); - return $this->addAttribs($attribs); - } - - /** - * Retrieve a single form attribute - * - * @param string $key - * @return mixed - */ - public function getAttrib($key) - { - $key = (string) $key; - if (!isset($this->_attribs[$key])) { - return null; - } - - return $this->_attribs[$key]; - } - - /** - * Retrieve all form attributes/metadata - * - * @return array - */ - public function getAttribs() - { - return $this->_attribs; - } - - /** - * Remove attribute - * - * @param string $key - * @return bool - */ - public function removeAttrib($key) - { - if (array_key_exists($key, $this->_attribs)) { - unset($this->_attribs[$key]); - return true; - } - - return false; - } - - /** - * Clear all form attributes - * - * @return Zend_Form - */ - public function clearAttribs() - { - $this->_attribs = array(); - return $this; - } - - /** - * Filter a name to only allow valid variable characters - * - * @param string $value - * @return string - */ - public function filterName($value) - { - return preg_replace('/[^a-zA-Z0-9_\x7f-\xff]/', '', (string) $value); - } - - /** - * Set group name - * - * @param string $name - * @return Zend_Form_DisplayGroup - */ - public function setName($name) - { - $name = $this->filtername($name); - if (('0' !== $name) && empty($name)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid name provided; must contain only valid variable characters and be non-empty'); - } - - $this->_name = $name; - return $this; - } - - /** - * Retrieve group name - * - * @return string - */ - public function getName() - { - return $this->_name; - } - - /** - * Get fully qualified name - * - * Places name as subitem of array and/or appends brackets. - * - * @return string - */ - public function getFullyQualifiedName() - { - return $this->getName(); - } - - /** - * Get element id - * - * @return string - */ - public function getId() - { - if (isset($this->id)) { - return $this->id; - } - - $id = $this->getFullyQualifiedName(); - - // Bail early if no array notation detected - if (!strstr($id, '[')) { - return $id; - } - - // Strip array notation - if ('[]' == substr($id, -2)) { - $id = substr($id, 0, strlen($id) - 2); - } - $id = str_replace('][', '-', $id); - $id = str_replace(array(']', '['), '-', $id); - $id = trim($id, '-'); - - return $id; - } - - /** - * Set group legend - * - * @param string $legend - * @return Zend_Form_DisplayGroup - */ - public function setLegend($legend) - { - return $this->setAttrib('legend', (string) $legend); - } - - /** - * Retrieve group legend - * - * @return string - */ - public function getLegend() - { - return $this->getAttrib('legend'); - } - - /** - * Set description - * - * @param string $value - * @return Zend_Form_DisplayGroup - */ - public function setDescription($value) - { - $this->_description = (string) $value; - return $this; - } - - /** - * Get description - * - * @return string - */ - public function getDescription() - { - return $this->_description; - } - - /** - * Set group order - * - * @param int $order - * @return Zend_Form_Element - */ - public function setOrder($order) - { - $this->_order = (int) $order; - return $this; - } - - /** - * Retrieve group order - * - * @return int - */ - public function getOrder() - { - return $this->_order; - } - - // Elements - - /** - * Add element to stack - * - * @param Zend_Form_Element $element - * @return Zend_Form_DisplayGroup - */ - public function addElement(Zend_Form_Element $element) - { - $this->_elements[$element->getName()] = $element; - $this->_groupUpdated = true; - return $this; - } - - /** - * Add multiple elements at once - * - * @param array $elements - * @return Zend_Form_DisplayGroup - * @throws Zend_Form_Exception if any element is not a Zend_Form_Element - */ - public function addElements(array $elements) - { - foreach ($elements as $element) { - if (!$element instanceof Zend_Form_Element) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('elements passed via array to addElements() must be Zend_Form_Elements only'); - } - $this->addElement($element); - } - return $this; - } - - /** - * Set multiple elements at once (overwrites) - * - * @param array $elements - * @return Zend_Form_DisplayGroup - */ - public function setElements(array $elements) - { - $this->clearElements(); - return $this->addElements($elements); - } - - /** - * Retrieve element - * - * @param string $name - * @return Zend_Form_Element|null - */ - public function getElement($name) - { - $name = (string) $name; - if (isset($this->_elements[$name])) { - return $this->_elements[$name]; - } - - return null; - } - - /** - * Retrieve elements - * @return array - */ - public function getElements() - { - return $this->_elements; - } - - /** - * Remove a single element - * - * @param string $name - * @return boolean - */ - public function removeElement($name) - { - $name = (string) $name; - if (array_key_exists($name, $this->_elements)) { - unset($this->_elements[$name]); - $this->_groupUpdated = true; - return true; - } - - return false; - } - - /** - * Remove all elements - * - * @return Zend_Form_DisplayGroup - */ - public function clearElements() - { - $this->_elements = array(); - $this->_groupUpdated = true; - return $this; - } - - // Plugin loader (for decorators) - - /** - * Set plugin loader - * - * @param Zend_Loader_PluginLoader $loader - * @return Zend_Form_DisplayGroup - */ - public function setPluginLoader(Zend_Loader_PluginLoader $loader) - { - $this->_loader = $loader; - return $this; - } - - /** - * Retrieve plugin loader - * - * @return Zend_Loader_PluginLoader - */ - public function getPluginLoader() - { - return $this->_loader; - } - - /** - * Add a prefix path for the plugin loader - * - * @param string $prefix - * @param string $path - * @return Zend_Form_DisplayGroup - */ - public function addPrefixPath($prefix, $path) - { - $this->getPluginLoader()->addPrefixPath($prefix, $path); - return $this; - } - - /** - * Add several prefix paths at once - * - * @param array $spec - * @return Zend_Form_DisplayGroup - */ - public function addPrefixPaths(array $spec) - { - if (isset($spec['prefix']) && isset($spec['path'])) { - return $this->addPrefixPath($spec['prefix'], $spec['path']); - } - foreach ($spec as $prefix => $paths) { - if (is_numeric($prefix) && is_array($paths)) { - $prefix = null; - if (isset($paths['prefix']) && isset($paths['path'])) { - $this->addPrefixPath($paths['prefix'], $paths['path']); - } - } elseif (!is_numeric($prefix)) { - if (is_string($paths)) { - $this->addPrefixPath($prefix, $paths); - } elseif (is_array($paths)) { - foreach ($paths as $path) { - $this->addPrefixPath($prefix, $path); - } - } - } - } - return $this; - } - - // Decorators - - /** - * Set flag to disable loading default decorators - * - * @param bool $flag - * @return Zend_Form_Element - */ - public function setDisableLoadDefaultDecorators($flag) - { - $this->_disableLoadDefaultDecorators = (bool) $flag; - return $this; - } - - /** - * Should we load the default decorators? - * - * @return bool - */ - public function loadDefaultDecoratorsIsDisabled() - { - return $this->_disableLoadDefaultDecorators; - } - - /** - * Load default decorators - * - * @return void - */ - public function loadDefaultDecorators() - { - if ($this->loadDefaultDecoratorsIsDisabled()) { - return $this; - } - - $decorators = $this->getDecorators(); - if (empty($decorators)) { - $this->addDecorator('FormElements') - ->addDecorator('HtmlTag', array('tag' => 'dl')) - ->addDecorator('Fieldset') - ->addDecorator('DtDdWrapper'); - } - return $this; - } - - /** - * Instantiate a decorator based on class name or class name fragment - * - * @param string $name - * @param null|array $options - * @return Zend_Form_Decorator_Interface - */ - protected function _getDecorator($name, $options = null) - { - $class = $this->getPluginLoader()->load($name); - if (null === $options) { - $decorator = new $class; - } else { - $decorator = new $class($options); - } - - return $decorator; - } - - /** - * Add a decorator for rendering the group - * - * @param string|Zend_Form_Decorator_Interface $decorator - * @param array|Zend_Config $options Options with which to initialize decorator - * @return Zend_Form_DisplayGroup - */ - public function addDecorator($decorator, $options = null) - { - if ($decorator instanceof Zend_Form_Decorator_Interface) { - $name = get_class($decorator); - } elseif (is_string($decorator)) { - $name = $decorator; - $decorator = array( - 'decorator' => $name, - 'options' => $options, - ); - } elseif (is_array($decorator)) { - foreach ($decorator as $name => $spec) { - break; - } - if (is_numeric($name)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid alias provided to addDecorator; must be alphanumeric string'); - } - if (is_string($spec)) { - $decorator = array( - 'decorator' => $spec, - 'options' => $options, - ); - } elseif ($spec instanceof Zend_Form_Decorator_Interface) { - $decorator = $spec; - } - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid decorator provided to addDecorator; must be string or Zend_Form_Decorator_Interface'); - } - - $this->_decorators[$name] = $decorator; - - return $this; - } - - /** - * Add many decorators at once - * - * @param array $decorators - * @return Zend_Form_DisplayGroup - */ - public function addDecorators(array $decorators) - { - foreach ($decorators as $decoratorName => $decoratorInfo) { - if (is_string($decoratorInfo) || - $decoratorInfo instanceof Zend_Form_Decorator_Interface) { - if (!is_numeric($decoratorName)) { - $this->addDecorator(array($decoratorName => $decoratorInfo)); - } else { - $this->addDecorator($decoratorInfo); - } - } elseif (is_array($decoratorInfo)) { - $argc = count($decoratorInfo); - $options = array(); - if (isset($decoratorInfo['decorator'])) { - $decorator = $decoratorInfo['decorator']; - if (isset($decoratorInfo['options'])) { - $options = $decoratorInfo['options']; - } - $this->addDecorator($decorator, $options); - } else { - switch (true) { - case (0 == $argc): - break; - case (1 <= $argc): - $decorator = array_shift($decoratorInfo); - case (2 <= $argc): - $options = array_shift($decoratorInfo); - default: - $this->addDecorator($decorator, $options); - break; - } - } - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid decorator passed to addDecorators()'); - } - } - - return $this; - } - - /** - * Overwrite all decorators - * - * @param array $decorators - * @return Zend_Form_DisplayGroup - */ - public function setDecorators(array $decorators) - { - $this->clearDecorators(); - return $this->addDecorators($decorators); - } - - /** - * Retrieve a registered decorator - * - * @param string $name - * @return false|Zend_Form_Decorator_Abstract - */ - public function getDecorator($name) - { - if (!isset($this->_decorators[$name])) { - $len = strlen($name); - foreach ($this->_decorators as $localName => $decorator) { - if ($len > strlen($localName)) { - continue; - } - - if (0 === substr_compare($localName, $name, -$len, $len, true)) { - if (is_array($decorator)) { - return $this->_loadDecorator($decorator, $localName); - } - return $decorator; - } - } - return false; - } - - if (is_array($this->_decorators[$name])) { - return $this->_loadDecorator($this->_decorators[$name], $name); - } - - return $this->_decorators[$name]; - } - - /** - * Retrieve all decorators - * - * @return array - */ - public function getDecorators() - { - foreach ($this->_decorators as $key => $value) { - if (is_array($value)) { - $this->_loadDecorator($value, $key); - } - } - return $this->_decorators; - } - - /** - * Remove a single decorator - * - * @param string $name - * @return bool - */ - public function removeDecorator($name) - { - $decorator = $this->getDecorator($name); - if ($decorator) { - if (array_key_exists($name, $this->_decorators)) { - unset($this->_decorators[$name]); - } else { - $class = get_class($decorator); - unset($this->_decorators[$class]); - } - return true; - } - - return false; - } - - /** - * Clear all decorators - * - * @return Zend_Form_DisplayGroup - */ - public function clearDecorators() - { - $this->_decorators = array(); - return $this; - } - - /** - * Set view - * - * @param Zend_View_Interface $view - * @return Zend_Form_DisplayGroup - */ - public function setView(Zend_View_Interface $view = null) - { - $this->_view = $view; - return $this; - } - - /** - * Retrieve view - * - * @return Zend_View_Interface - */ - public function getView() - { - if (null === $this->_view) { - // require_once 'Zend/Controller/Action/HelperBroker.php'; - $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); - $this->setView($viewRenderer->view); - } - - return $this->_view; - } - - /** - * Render display group - * - * @return string - */ - public function render(Zend_View_Interface $view = null) - { - if (null !== $view) { - $this->setView($view); - } - $content = ''; - foreach ($this->getDecorators() as $decorator) { - $decorator->setElement($this); - $content = $decorator->render($content); - } - return $content; - } - - /** - * String representation of group - * - * @return string - */ - public function __toString() - { - try { - $return = $this->render(); - return $return; - } catch (Exception $e) { - trigger_error($e->getMessage(), E_USER_WARNING); - return ''; - } - } - - /** - * Set translator object - * - * @param Zend_Translate|Zend_Translate_Adapter|null $translator - * @return Zend_Form_DisplayGroup - */ - public function setTranslator($translator = null) - { - if ((null === $translator) || ($translator instanceof Zend_Translate_Adapter)) { - $this->_translator = $translator; - } elseif ($translator instanceof Zend_Translate) { - $this->_translator = $translator->getAdapter(); - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid translator specified'); - } - return $this; - } - - /** - * Retrieve translator object - * - * @return Zend_Translate_Adapter|null - */ - public function getTranslator() - { - if ($this->translatorIsDisabled()) { - return null; - } - - if (null === $this->_translator) { - // require_once 'Zend/Form.php'; - return Zend_Form::getDefaultTranslator(); - } - - return $this->_translator; - } - - /** - * Indicate whether or not translation should be disabled - * - * @param bool $flag - * @return Zend_Form_DisplayGroup - */ - public function setDisableTranslator($flag) - { - $this->_translatorDisabled = (bool) $flag; - return $this; - } - - /** - * Is translation disabled? - * - * @return bool - */ - public function translatorIsDisabled() - { - return $this->_translatorDisabled; - } - - /** - * Overloading: allow rendering specific decorators - * - * Call renderDecoratorName() to render a specific decorator. - * - * @param string $method - * @param array $args - * @return string - * @throws Zend_Form_Exception for invalid decorator or invalid method call - */ - public function __call($method, $args) - { - if ('render' == substr($method, 0, 6)) { - $decoratorName = substr($method, 6); - if (false !== ($decorator = $this->getDecorator($decoratorName))) { - $decorator->setElement($this); - $seed = ''; - if (0 < count($args)) { - $seed = array_shift($args); - } - return $decorator->render($seed); - } - - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Decorator by name %s does not exist', $decoratorName)); - } - - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Method %s does not exist', $method)); - } - - // Interfaces: Iterator, Countable - - /** - * Current element - * - * @return Zend_Form_Element - */ - public function current() - { - $this->_sort(); - current($this->_elementOrder); - $key = key($this->_elementOrder); - return $this->getElement($key); - } - - /** - * Current element - * - * @return string - */ - public function key() - { - $this->_sort(); - return key($this->_elementOrder); - } - - /** - * Move pointer to next element - * - * @return void - */ - public function next() - { - $this->_sort(); - next($this->_elementOrder); - } - - /** - * Move pointer to beginning of element loop - * - * @return void - */ - public function rewind() - { - $this->_sort(); - reset($this->_elementOrder); - } - - /** - * Determine if current element/subform/display group is valid - * - * @return bool - */ - public function valid() - { - $this->_sort(); - return (current($this->_elementOrder) !== false); - } - - /** - * Count of elements/subforms that are iterable - * - * @return int - */ - public function count() - { - return count($this->_elements); - } - - /** - * Sort items according to their order - * - * @return void - */ - protected function _sort() - { - if ($this->_groupUpdated || !is_array($this->_elementOrder)) { - $elementOrder = array(); - foreach ($this->getElements() as $key => $element) { - $elementOrder[$key] = $element->getOrder(); - } - - $items = array(); - $index = 0; - foreach ($elementOrder as $key => $order) { - if (null === $order) { - while (array_search($index, $elementOrder, true)) { - ++$index; - } - $items[$index] = $key; - ++$index; - } else { - $items[$order] = $key; - } - } - - $items = array_flip($items); - asort($items); - $this->_elementOrder = $items; - $this->_groupUpdated = false; - } - } - - /** - * Lazy-load a decorator - * - * @param array $decorator Decorator type and options - * @param mixed $name Decorator name or alias - * @return Zend_Form_Decorator_Interface - */ - protected function _loadDecorator(array $decorator, $name) - { - $sameName = false; - if ($name == $decorator['decorator']) { - $sameName = true; - } - - $instance = $this->_getDecorator($decorator['decorator'], $decorator['options']); - if ($sameName) { - $newName = get_class($instance); - $decoratorNames = array_keys($this->_decorators); - $order = array_flip($decoratorNames); - $order[$newName] = $order[$name]; - $decoratorsExchange = array(); - unset($order[$name]); - asort($order); - foreach ($order as $key => $index) { - if ($key == $newName) { - $decoratorsExchange[$key] = $instance; - continue; - } - $decoratorsExchange[$key] = $this->_decorators[$key]; - } - $this->_decorators = $decoratorsExchange; - } else { - $this->_decorators[$name] = $instance; - } - - return $instance; - } -} diff --git a/libs/Zend/Form/Element.php b/libs/Zend/Form/Element.php deleted file mode 100644 index 7333c0b5d4f5bc145968df8def7d90cd775cebf5..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element.php +++ /dev/null @@ -1,2247 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** @see Zend_Filter */ -// require_once 'Zend/Filter.php'; - -/** @see Zend_Form */ -// require_once 'Zend/Form.php'; - -/** @see Zend_Validate_Interface */ -// require_once 'Zend/Validate/Interface.php'; - -/** @see Zend_Validate_Abstract */ -// require_once 'Zend/Validate/Abstract.php'; - -/** - * Zend_Form_Element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Element.php 22465 2010-06-19 17:41:03Z alab $ - */ -class Zend_Form_Element implements Zend_Validate_Interface -{ - /** - * Element Constants - */ - const DECORATOR = 'DECORATOR'; - const FILTER = 'FILTER'; - const VALIDATE = 'VALIDATE'; - - /** - * Default view helper to use - * @var string - */ - public $helper = 'formText'; - - /** - * 'Allow empty' flag - * @var bool - */ - protected $_allowEmpty = true; - - /** - * Flag indicating whether or not to insert NotEmpty validator when element is required - * @var bool - */ - protected $_autoInsertNotEmptyValidator = true; - - /** - * Array to which element belongs - * @var string - */ - protected $_belongsTo; - - /** - * Element decorators - * @var array - */ - protected $_decorators = array(); - - /** - * Element description - * @var string - */ - protected $_description; - - /** - * Should we disable loading the default decorators? - * @var bool - */ - protected $_disableLoadDefaultDecorators = false; - - /** - * Custom error messages - * @var array - */ - protected $_errorMessages = array(); - - /** - * Validation errors - * @var array - */ - protected $_errors = array(); - - /** - * Separator to use when concatenating aggregate error messages (for - * elements having array values) - * @var string - */ - protected $_errorMessageSeparator = '; '; - - /** - * Element filters - * @var array - */ - protected $_filters = array(); - - /** - * Ignore flag (used when retrieving values at form level) - * @var bool - */ - protected $_ignore = false; - - /** - * Does the element represent an array? - * @var bool - */ - protected $_isArray = false; - - /** - * Is the error marked as in an invalid state? - * @var bool - */ - protected $_isError = false; - - /** - * Has the element been manually marked as invalid? - * @var bool - */ - protected $_isErrorForced = false; - - /** - * Element label - * @var string - */ - protected $_label; - - /** - * Plugin loaders for filter and validator chains - * @var array - */ - protected $_loaders = array(); - - /** - * Formatted validation error messages - * @var array - */ - protected $_messages = array(); - - /** - * Element name - * @var string - */ - protected $_name; - - /** - * Order of element - * @var int - */ - protected $_order; - - /** - * Required flag - * @var bool - */ - protected $_required = false; - - /** - * @var Zend_Translate - */ - protected $_translator; - - /** - * Is translation disabled? - * @var bool - */ - protected $_translatorDisabled = false; - - /** - * Element type - * @var string - */ - protected $_type; - - /** - * Array of initialized validators - * @var array Validators - */ - protected $_validators = array(); - - /** - * Array of un-initialized validators - * @var array - */ - protected $_validatorRules = array(); - - /** - * Element value - * @var mixed - */ - protected $_value; - - /** - * @var Zend_View_Interface - */ - protected $_view; - - /** - * Is a specific decorator being rendered via the magic renderDecorator()? - * - * This is to allow execution of logic inside the render() methods of child - * elements during the magic call while skipping the parent render() method. - * - * @var bool - */ - protected $_isPartialRendering = false; - - /** - * Constructor - * - * $spec may be: - * - string: name of element - * - array: options with which to configure element - * - Zend_Config: Zend_Config with options for configuring element - * - * @param string|array|Zend_Config $spec - * @param array|Zend_Config $options - * @return void - * @throws Zend_Form_Exception if no element name after initialization - */ - public function __construct($spec, $options = null) - { - if (is_string($spec)) { - $this->setName($spec); - } elseif (is_array($spec)) { - $this->setOptions($spec); - } elseif ($spec instanceof Zend_Config) { - $this->setConfig($spec); - } - - if (is_string($spec) && is_array($options)) { - $this->setOptions($options); - } elseif (is_string($spec) && ($options instanceof Zend_Config)) { - $this->setConfig($options); - } - - if (null === $this->getName()) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Zend_Form_Element requires each element to have a name'); - } - - /** - * Extensions - */ - $this->init(); - - /** - * Register ViewHelper decorator by default - */ - $this->loadDefaultDecorators(); - } - - /** - * Initialize object; used by extending classes - * - * @return void - */ - public function init() - { - } - - /** - * Set flag to disable loading default decorators - * - * @param bool $flag - * @return Zend_Form_Element - */ - public function setDisableLoadDefaultDecorators($flag) - { - $this->_disableLoadDefaultDecorators = (bool) $flag; - return $this; - } - - /** - * Should we load the default decorators? - * - * @return bool - */ - public function loadDefaultDecoratorsIsDisabled() - { - return $this->_disableLoadDefaultDecorators; - } - - /** - * Load default decorators - * - * @return Zend_Form_Element - */ - public function loadDefaultDecorators() - { - if ($this->loadDefaultDecoratorsIsDisabled()) { - return $this; - } - - $decorators = $this->getDecorators(); - if (empty($decorators)) { - $this->addDecorator('ViewHelper') - ->addDecorator('Errors') - ->addDecorator('Description', array('tag' => 'p', 'class' => 'description')) - ->addDecorator('HtmlTag', array('tag' => 'dd', - 'id' => $this->getName() . '-element')) - ->addDecorator('Label', array('tag' => 'dt')); - } - return $this; - } - - /** - * Set object state from options array - * - * @param array $options - * @return Zend_Form_Element - */ - public function setOptions(array $options) - { - if (isset($options['prefixPath'])) { - $this->addPrefixPaths($options['prefixPath']); - unset($options['prefixPath']); - } - - if (isset($options['disableTranslator'])) { - $this->setDisableTranslator($options['disableTranslator']); - unset($options['disableTranslator']); - } - - unset($options['options']); - unset($options['config']); - - foreach ($options as $key => $value) { - $method = 'set' . ucfirst($key); - - if (in_array($method, array('setTranslator', 'setPluginLoader', 'setView'))) { - if (!is_object($value)) { - continue; - } - } - - if (method_exists($this, $method)) { - // Setter exists; use it - $this->$method($value); - } else { - // Assume it's metadata - $this->setAttrib($key, $value); - } - } - return $this; - } - - /** - * Set object state from Zend_Config object - * - * @param Zend_Config $config - * @return Zend_Form_Element - */ - public function setConfig(Zend_Config $config) - { - return $this->setOptions($config->toArray()); - } - - - // Localization: - - /** - * Set translator object for localization - * - * @param Zend_Translate|null $translator - * @return Zend_Form_Element - */ - public function setTranslator($translator = null) - { - if (null === $translator) { - $this->_translator = null; - } elseif ($translator instanceof Zend_Translate_Adapter) { - $this->_translator = $translator; - } elseif ($translator instanceof Zend_Translate) { - $this->_translator = $translator->getAdapter(); - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid translator specified'); - } - return $this; - } - - /** - * Retrieve localization translator object - * - * @return Zend_Translate_Adapter|null - */ - public function getTranslator() - { - if ($this->translatorIsDisabled()) { - return null; - } - - if (null === $this->_translator) { - return Zend_Form::getDefaultTranslator(); - } - return $this->_translator; - } - - /** - * Does this element have its own specific translator? - * - * @return bool - */ - public function hasTranslator() - { - return (bool)$this->_translator; - } - - /** - * Indicate whether or not translation should be disabled - * - * @param bool $flag - * @return Zend_Form_Element - */ - public function setDisableTranslator($flag) - { - $this->_translatorDisabled = (bool) $flag; - return $this; - } - - /** - * Is translation disabled? - * - * @return bool - */ - public function translatorIsDisabled() - { - return $this->_translatorDisabled; - } - - // Metadata - - /** - * Filter a name to only allow valid variable characters - * - * @param string $value - * @param bool $allowBrackets - * @return string - */ - public function filterName($value, $allowBrackets = false) - { - $charset = '^a-zA-Z0-9_\x7f-\xff'; - if ($allowBrackets) { - $charset .= '\[\]'; - } - return preg_replace('/[' . $charset . ']/', '', (string) $value); - } - - /** - * Set element name - * - * @param string $name - * @return Zend_Form_Element - */ - public function setName($name) - { - $name = $this->filterName($name); - if ('' === $name) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid name provided; must contain only valid variable characters and be non-empty'); - } - - $this->_name = $name; - return $this; - } - - /** - * Return element name - * - * @return string - */ - public function getName() - { - return $this->_name; - } - - /** - * Get fully qualified name - * - * Places name as subitem of array and/or appends brackets. - * - * @return string - */ - public function getFullyQualifiedName() - { - $name = $this->getName(); - - if (null !== ($belongsTo = $this->getBelongsTo())) { - $name = $belongsTo . '[' . $name . ']'; - } - - if ($this->isArray()) { - $name .= '[]'; - } - - return $name; - } - - /** - * Get element id - * - * @return string - */ - public function getId() - { - if (isset($this->id)) { - return $this->id; - } - - $id = $this->getFullyQualifiedName(); - - // Bail early if no array notation detected - if (!strstr($id, '[')) { - return $id; - } - - // Strip array notation - if ('[]' == substr($id, -2)) { - $id = substr($id, 0, strlen($id) - 2); - } - $id = str_replace('][', '-', $id); - $id = str_replace(array(']', '['), '-', $id); - $id = trim($id, '-'); - - return $id; - } - - /** - * Set element value - * - * @param mixed $value - * @return Zend_Form_Element - */ - public function setValue($value) - { - $this->_value = $value; - return $this; - } - - /** - * Filter a value - * - * @param string $value - * @param string $key - * @return void - */ - protected function _filterValue(&$value, &$key) - { - foreach ($this->getFilters() as $filter) { - $value = $filter->filter($value); - } - } - - /** - * Retrieve filtered element value - * - * @return mixed - */ - public function getValue() - { - $valueFiltered = $this->_value; - - if ($this->isArray() && is_array($valueFiltered)) { - array_walk_recursive($valueFiltered, array($this, '_filterValue')); - } else { - $this->_filterValue($valueFiltered, $valueFiltered); - } - - return $valueFiltered; - } - - /** - * Retrieve unfiltered element value - * - * @return mixed - */ - public function getUnfilteredValue() - { - return $this->_value; - } - - /** - * Set element label - * - * @param string $label - * @return Zend_Form_Element - */ - public function setLabel($label) - { - $this->_label = (string) $label; - return $this; - } - - /** - * Retrieve element label - * - * @return string - */ - public function getLabel() - { - $translator = $this->getTranslator(); - if (null !== $translator) { - return $translator->translate($this->_label); - } - - return $this->_label; - } - - /** - * Set element order - * - * @param int $order - * @return Zend_Form_Element - */ - public function setOrder($order) - { - $this->_order = (int) $order; - return $this; - } - - /** - * Retrieve element order - * - * @return int - */ - public function getOrder() - { - return $this->_order; - } - - /** - * Set required flag - * - * @param bool $flag Default value is true - * @return Zend_Form_Element - */ - public function setRequired($flag = true) - { - $this->_required = (bool) $flag; - return $this; - } - - /** - * Is the element required? - * - * @return bool - */ - public function isRequired() - { - return $this->_required; - } - - /** - * Set flag indicating whether a NotEmpty validator should be inserted when element is required - * - * @param bool $flag - * @return Zend_Form_Element - */ - public function setAutoInsertNotEmptyValidator($flag) - { - $this->_autoInsertNotEmptyValidator = (bool) $flag; - return $this; - } - - /** - * Get flag indicating whether a NotEmpty validator should be inserted when element is required - * - * @return bool - */ - public function autoInsertNotEmptyValidator() - { - return $this->_autoInsertNotEmptyValidator; - } - - /** - * Set element description - * - * @param string $description - * @return Zend_Form_Element - */ - public function setDescription($description) - { - $this->_description = (string) $description; - return $this; - } - - /** - * Retrieve element description - * - * @return string - */ - public function getDescription() - { - return $this->_description; - } - - /** - * Set 'allow empty' flag - * - * When the allow empty flag is enabled and the required flag is false, the - * element will validate with empty values. - * - * @param bool $flag - * @return Zend_Form_Element - */ - public function setAllowEmpty($flag) - { - $this->_allowEmpty = (bool) $flag; - return $this; - } - - /** - * Get 'allow empty' flag - * - * @return bool - */ - public function getAllowEmpty() - { - return $this->_allowEmpty; - } - - /** - * Set ignore flag (used when retrieving values at form level) - * - * @param bool $flag - * @return Zend_Form_Element - */ - public function setIgnore($flag) - { - $this->_ignore = (bool) $flag; - return $this; - } - - /** - * Get ignore flag (used when retrieving values at form level) - * - * @return bool - */ - public function getIgnore() - { - return $this->_ignore; - } - - /** - * Set flag indicating if element represents an array - * - * @param bool $flag - * @return Zend_Form_Element - */ - public function setIsArray($flag) - { - $this->_isArray = (bool) $flag; - return $this; - } - - /** - * Is the element representing an array? - * - * @return bool - */ - public function isArray() - { - return $this->_isArray; - } - - /** - * Set array to which element belongs - * - * @param string $array - * @return Zend_Form_Element - */ - public function setBelongsTo($array) - { - $array = $this->filterName($array, true); - if (!empty($array)) { - $this->_belongsTo = $array; - } - - return $this; - } - - /** - * Return array name to which element belongs - * - * @return string - */ - public function getBelongsTo() - { - return $this->_belongsTo; - } - - /** - * Return element type - * - * @return string - */ - public function getType() - { - if (null === $this->_type) { - $this->_type = get_class($this); - } - - return $this->_type; - } - - /** - * Set element attribute - * - * @param string $name - * @param mixed $value - * @return Zend_Form_Element - * @throws Zend_Form_Exception for invalid $name values - */ - public function setAttrib($name, $value) - { - $name = (string) $name; - if ('_' == $name[0]) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Invalid attribute "%s"; must not contain a leading underscore', $name)); - } - - if (null === $value) { - unset($this->$name); - } else { - $this->$name = $value; - } - - return $this; - } - - /** - * Set multiple attributes at once - * - * @param array $attribs - * @return Zend_Form_Element - */ - public function setAttribs(array $attribs) - { - foreach ($attribs as $key => $value) { - $this->setAttrib($key, $value); - } - - return $this; - } - - /** - * Retrieve element attribute - * - * @param string $name - * @return string - */ - public function getAttrib($name) - { - $name = (string) $name; - if (isset($this->$name)) { - return $this->$name; - } - - return null; - } - - /** - * Return all attributes - * - * @return array - */ - public function getAttribs() - { - $attribs = get_object_vars($this); - foreach ($attribs as $key => $value) { - if ('_' == substr($key, 0, 1)) { - unset($attribs[$key]); - } - } - - return $attribs; - } - - /** - * Overloading: retrieve object property - * - * Prevents access to properties beginning with '_'. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - if ('_' == $key[0]) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Cannot retrieve value for protected/private property "%s"', $key)); - } - - if (!isset($this->$key)) { - return null; - } - - return $this->$key; - } - - /** - * Overloading: set object property - * - * @param string $key - * @param mixed $value - * @return voide - */ - public function __set($key, $value) - { - $this->setAttrib($key, $value); - } - - /** - * Overloading: allow rendering specific decorators - * - * Call renderDecoratorName() to render a specific decorator. - * - * @param string $method - * @param array $args - * @return string - * @throws Zend_Form_Exception for invalid decorator or invalid method call - */ - public function __call($method, $args) - { - if ('render' == substr($method, 0, 6)) { - $this->_isPartialRendering = true; - $this->render(); - $this->_isPartialRendering = false; - $decoratorName = substr($method, 6); - if (false !== ($decorator = $this->getDecorator($decoratorName))) { - $decorator->setElement($this); - $seed = ''; - if (0 < count($args)) { - $seed = array_shift($args); - } - return $decorator->render($seed); - } - - // require_once 'Zend/Form/Element/Exception.php'; - throw new Zend_Form_Element_Exception(sprintf('Decorator by name %s does not exist', $decoratorName)); - } - - // require_once 'Zend/Form/Element/Exception.php'; - throw new Zend_Form_Element_Exception(sprintf('Method %s does not exist', $method)); - } - - // Loaders - - /** - * Set plugin loader to use for validator or filter chain - * - * @param Zend_Loader_PluginLoader_Interface $loader - * @param string $type 'decorator', 'filter', or 'validate' - * @return Zend_Form_Element - * @throws Zend_Form_Exception on invalid type - */ - public function setPluginLoader(Zend_Loader_PluginLoader_Interface $loader, $type) - { - $type = strtoupper($type); - switch ($type) { - case self::DECORATOR: - case self::FILTER: - case self::VALIDATE: - $this->_loaders[$type] = $loader; - return $this; - default: - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to setPluginLoader()', $type)); - } - } - - /** - * Retrieve plugin loader for validator or filter chain - * - * Instantiates with default rules if none available for that type. Use - * 'decorator', 'filter', or 'validate' for $type. - * - * @param string $type - * @return Zend_Loader_PluginLoader - * @throws Zend_Loader_Exception on invalid type. - */ - public function getPluginLoader($type) - { - $type = strtoupper($type); - switch ($type) { - case self::FILTER: - case self::VALIDATE: - $prefixSegment = ucfirst(strtolower($type)); - $pathSegment = $prefixSegment; - case self::DECORATOR: - if (!isset($prefixSegment)) { - $prefixSegment = 'Form_Decorator'; - $pathSegment = 'Form/Decorator'; - } - if (!isset($this->_loaders[$type])) { - // require_once 'Zend/Loader/PluginLoader.php'; - $this->_loaders[$type] = new Zend_Loader_PluginLoader( - array('Zend_' . $prefixSegment . '_' => 'Zend/' . $pathSegment . '/') - ); - } - return $this->_loaders[$type]; - default: - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to getPluginLoader()', $type)); - } - } - - /** - * Add prefix path for plugin loader - * - * If no $type specified, assumes it is a base path for both filters and - * validators, and sets each according to the following rules: - * - decorators: $prefix = $prefix . '_Decorator' - * - filters: $prefix = $prefix . '_Filter' - * - validators: $prefix = $prefix . '_Validate' - * - * Otherwise, the path prefix is set on the appropriate plugin loader. - * - * @param string $prefix - * @param string $path - * @param string $type - * @return Zend_Form_Element - * @throws Zend_Form_Exception for invalid type - */ - public function addPrefixPath($prefix, $path, $type = null) - { - $type = strtoupper($type); - switch ($type) { - case self::DECORATOR: - case self::FILTER: - case self::VALIDATE: - $loader = $this->getPluginLoader($type); - $loader->addPrefixPath($prefix, $path); - return $this; - case null: - $prefix = rtrim($prefix, '_'); - $path = rtrim($path, DIRECTORY_SEPARATOR); - foreach (array(self::DECORATOR, self::FILTER, self::VALIDATE) as $type) { - $cType = ucfirst(strtolower($type)); - $pluginPath = $path . DIRECTORY_SEPARATOR . $cType . DIRECTORY_SEPARATOR; - $pluginPrefix = $prefix . '_' . $cType; - $loader = $this->getPluginLoader($type); - $loader->addPrefixPath($pluginPrefix, $pluginPath); - } - return $this; - default: - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to getPluginLoader()', $type)); - } - } - - /** - * Add many prefix paths at once - * - * @param array $spec - * @return Zend_Form_Element - */ - public function addPrefixPaths(array $spec) - { - if (isset($spec['prefix']) && isset($spec['path'])) { - return $this->addPrefixPath($spec['prefix'], $spec['path']); - } - foreach ($spec as $type => $paths) { - if (is_numeric($type) && is_array($paths)) { - $type = null; - if (isset($paths['prefix']) && isset($paths['path'])) { - if (isset($paths['type'])) { - $type = $paths['type']; - } - $this->addPrefixPath($paths['prefix'], $paths['path'], $type); - } - } elseif (!is_numeric($type)) { - if (!isset($paths['prefix']) || !isset($paths['path'])) { - foreach ($paths as $prefix => $spec) { - if (is_array($spec)) { - foreach ($spec as $path) { - if (!is_string($path)) { - continue; - } - $this->addPrefixPath($prefix, $path, $type); - } - } elseif (is_string($spec)) { - $this->addPrefixPath($prefix, $spec, $type); - } - } - } else { - $this->addPrefixPath($paths['prefix'], $paths['path'], $type); - } - } - } - return $this; - } - - // Validation - - /** - * Add validator to validation chain - * - * Note: will overwrite existing validators if they are of the same class. - * - * @param string|Zend_Validate_Interface $validator - * @param bool $breakChainOnFailure - * @param array $options - * @return Zend_Form_Element - * @throws Zend_Form_Exception if invalid validator type - */ - public function addValidator($validator, $breakChainOnFailure = false, $options = array()) - { - if ($validator instanceof Zend_Validate_Interface) { - $name = get_class($validator); - - if (!isset($validator->zfBreakChainOnFailure)) { - $validator->zfBreakChainOnFailure = $breakChainOnFailure; - } - } elseif (is_string($validator)) { - $name = $validator; - $validator = array( - 'validator' => $validator, - 'breakChainOnFailure' => $breakChainOnFailure, - 'options' => $options, - ); - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid validator provided to addValidator; must be string or Zend_Validate_Interface'); - } - - - $this->_validators[$name] = $validator; - - return $this; - } - - /** - * Add multiple validators - * - * @param array $validators - * @return Zend_Form_Element - */ - public function addValidators(array $validators) - { - foreach ($validators as $validatorInfo) { - if (is_string($validatorInfo)) { - $this->addValidator($validatorInfo); - } elseif ($validatorInfo instanceof Zend_Validate_Interface) { - $this->addValidator($validatorInfo); - } elseif (is_array($validatorInfo)) { - $argc = count($validatorInfo); - $breakChainOnFailure = false; - $options = array(); - if (isset($validatorInfo['validator'])) { - $validator = $validatorInfo['validator']; - if (isset($validatorInfo['breakChainOnFailure'])) { - $breakChainOnFailure = $validatorInfo['breakChainOnFailure']; - } - if (isset($validatorInfo['options'])) { - $options = $validatorInfo['options']; - } - $this->addValidator($validator, $breakChainOnFailure, $options); - } else { - switch (true) { - case (0 == $argc): - break; - case (1 <= $argc): - $validator = array_shift($validatorInfo); - case (2 <= $argc): - $breakChainOnFailure = array_shift($validatorInfo); - case (3 <= $argc): - $options = array_shift($validatorInfo); - default: - $this->addValidator($validator, $breakChainOnFailure, $options); - break; - } - } - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid validator passed to addValidators()'); - } - } - - return $this; - } - - /** - * Set multiple validators, overwriting previous validators - * - * @param array $validators - * @return Zend_Form_Element - */ - public function setValidators(array $validators) - { - $this->clearValidators(); - return $this->addValidators($validators); - } - - /** - * Retrieve a single validator by name - * - * @param string $name - * @return Zend_Validate_Interface|false False if not found, validator otherwise - */ - public function getValidator($name) - { - if (!isset($this->_validators[$name])) { - $len = strlen($name); - foreach ($this->_validators as $localName => $validator) { - if ($len > strlen($localName)) { - continue; - } - if (0 === substr_compare($localName, $name, -$len, $len, true)) { - if (is_array($validator)) { - return $this->_loadValidator($validator); - } - return $validator; - } - } - return false; - } - - if (is_array($this->_validators[$name])) { - return $this->_loadValidator($this->_validators[$name]); - } - - return $this->_validators[$name]; - } - - /** - * Retrieve all validators - * - * @return array - */ - public function getValidators() - { - $validators = array(); - foreach ($this->_validators as $key => $value) { - if ($value instanceof Zend_Validate_Interface) { - $validators[$key] = $value; - continue; - } - $validator = $this->_loadValidator($value); - $validators[get_class($validator)] = $validator; - } - return $validators; - } - - /** - * Remove a single validator by name - * - * @param string $name - * @return bool - */ - public function removeValidator($name) - { - if (isset($this->_validators[$name])) { - unset($this->_validators[$name]); - } else { - $len = strlen($name); - foreach (array_keys($this->_validators) as $validator) { - if ($len > strlen($validator)) { - continue; - } - if (0 === substr_compare($validator, $name, -$len, $len, true)) { - unset($this->_validators[$validator]); - break; - } - } - } - - return $this; - } - - /** - * Clear all validators - * - * @return Zend_Form_Element - */ - public function clearValidators() - { - $this->_validators = array(); - return $this; - } - - /** - * Validate element value - * - * If a translation adapter is registered, any error messages will be - * translated according to the current locale, using the given error code; - * if no matching translation is found, the original message will be - * utilized. - * - * Note: The *filtered* value is validated. - * - * @param mixed $value - * @param mixed $context - * @return boolean - */ - public function isValid($value, $context = null) - { - $this->setValue($value); - $value = $this->getValue(); - - if ((('' === $value) || (null === $value)) - && !$this->isRequired() - && $this->getAllowEmpty() - ) { - return true; - } - - if ($this->isRequired() - && $this->autoInsertNotEmptyValidator() - && !$this->getValidator('NotEmpty')) - { - $validators = $this->getValidators(); - $notEmpty = array('validator' => 'NotEmpty', 'breakChainOnFailure' => true); - array_unshift($validators, $notEmpty); - $this->setValidators($validators); - } - - // Find the correct translator. Zend_Validate_Abstract::getDefaultTranslator() - // will get either the static translator attached to Zend_Validate_Abstract - // or the 'Zend_Translate' from Zend_Registry. - if (Zend_Validate_Abstract::hasDefaultTranslator() && - !Zend_Form::hasDefaultTranslator()) - { - $translator = Zend_Validate_Abstract::getDefaultTranslator(); - if ($this->hasTranslator()) { - // only pick up this element's translator if it was attached directly. - $translator = $this->getTranslator(); - } - } else { - $translator = $this->getTranslator(); - } - - $this->_messages = array(); - $this->_errors = array(); - $result = true; - $isArray = $this->isArray(); - foreach ($this->getValidators() as $key => $validator) { - if (method_exists($validator, 'setTranslator')) { - if (method_exists($validator, 'hasTranslator')) { - if (!$validator->hasTranslator()) { - $validator->setTranslator($translator); - } - } else { - $validator->setTranslator($translator); - } - } - - if (method_exists($validator, 'setDisableTranslator')) { - $validator->setDisableTranslator($this->translatorIsDisabled()); - } - - if ($isArray && is_array($value)) { - $messages = array(); - $errors = array(); - foreach ($value as $val) { - if (!$validator->isValid($val, $context)) { - $result = false; - if ($this->_hasErrorMessages()) { - $messages = $this->_getErrorMessages(); - $errors = $messages; - } else { - $messages = array_merge($messages, $validator->getMessages()); - $errors = array_merge($errors, $validator->getErrors()); - } - } - } - if ($result) { - continue; - } - } elseif ($validator->isValid($value, $context)) { - continue; - } else { - $result = false; - if ($this->_hasErrorMessages()) { - $messages = $this->_getErrorMessages(); - $errors = $messages; - } else { - $messages = $validator->getMessages(); - $errors = array_keys($messages); - } - } - - $result = false; - $this->_messages = array_merge($this->_messages, $messages); - $this->_errors = array_merge($this->_errors, $errors); - - if ($validator->zfBreakChainOnFailure) { - break; - } - } - - // If element manually flagged as invalid, return false - if ($this->_isErrorForced) { - return false; - } - - return $result; - } - - /** - * Add a custom error message to return in the event of failed validation - * - * @param string $message - * @return Zend_Form_Element - */ - public function addErrorMessage($message) - { - $this->_errorMessages[] = (string) $message; - return $this; - } - - /** - * Add multiple custom error messages to return in the event of failed validation - * - * @param array $messages - * @return Zend_Form_Element - */ - public function addErrorMessages(array $messages) - { - foreach ($messages as $message) { - $this->addErrorMessage($message); - } - return $this; - } - - /** - * Same as addErrorMessages(), but clears custom error message stack first - * - * @param array $messages - * @return Zend_Form_Element - */ - public function setErrorMessages(array $messages) - { - $this->clearErrorMessages(); - return $this->addErrorMessages($messages); - } - - /** - * Retrieve custom error messages - * - * @return array - */ - public function getErrorMessages() - { - return $this->_errorMessages; - } - - /** - * Clear custom error messages stack - * - * @return Zend_Form_Element - */ - public function clearErrorMessages() - { - $this->_errorMessages = array(); - return $this; - } - - /** - * Get errorMessageSeparator - * - * @return string - */ - public function getErrorMessageSeparator() - { - return $this->_errorMessageSeparator; - } - - /** - * Set errorMessageSeparator - * - * @param string $separator - * @return Zend_Form_Element - */ - public function setErrorMessageSeparator($separator) - { - $this->_errorMessageSeparator = $separator; - return $this; - } - - /** - * Mark the element as being in a failed validation state - * - * @return Zend_Form_Element - */ - public function markAsError() - { - $messages = $this->getMessages(); - $customMessages = $this->_getErrorMessages(); - $messages = $messages + $customMessages; - if (empty($messages)) { - $this->_isError = true; - } else { - $this->_messages = $messages; - } - $this->_isErrorForced = true; - return $this; - } - - /** - * Add an error message and mark element as failed validation - * - * @param string $message - * @return Zend_Form_Element - */ - public function addError($message) - { - $this->addErrorMessage($message); - $this->markAsError(); - return $this; - } - - /** - * Add multiple error messages and flag element as failed validation - * - * @param array $messages - * @return Zend_Form_Element - */ - public function addErrors(array $messages) - { - foreach ($messages as $message) { - $this->addError($message); - } - return $this; - } - - /** - * Overwrite any previously set error messages and flag as failed validation - * - * @param array $messages - * @return Zend_Form_Element - */ - public function setErrors(array $messages) - { - $this->clearErrorMessages(); - return $this->addErrors($messages); - } - - /** - * Are there errors registered? - * - * @return bool - */ - public function hasErrors() - { - return (!empty($this->_messages) || $this->_isError); - } - - /** - * Retrieve validator chain errors - * - * @return array - */ - public function getErrors() - { - return $this->_errors; - } - - /** - * Retrieve error messages - * - * @return array - */ - public function getMessages() - { - return $this->_messages; - } - - - // Filtering - - /** - * Add a filter to the element - * - * @param string|Zend_Filter_Interface $filter - * @return Zend_Form_Element - */ - public function addFilter($filter, $options = array()) - { - if ($filter instanceof Zend_Filter_Interface) { - $name = get_class($filter); - } elseif (is_string($filter)) { - $name = $filter; - $filter = array( - 'filter' => $filter, - 'options' => $options, - ); - $this->_filters[$name] = $filter; - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid filter provided to addFilter; must be string or Zend_Filter_Interface'); - } - - $this->_filters[$name] = $filter; - - return $this; - } - - /** - * Add filters to element - * - * @param array $filters - * @return Zend_Form_Element - */ - public function addFilters(array $filters) - { - foreach ($filters as $filterInfo) { - if (is_string($filterInfo)) { - $this->addFilter($filterInfo); - } elseif ($filterInfo instanceof Zend_Filter_Interface) { - $this->addFilter($filterInfo); - } elseif (is_array($filterInfo)) { - $argc = count($filterInfo); - $options = array(); - if (isset($filterInfo['filter'])) { - $filter = $filterInfo['filter']; - if (isset($filterInfo['options'])) { - $options = $filterInfo['options']; - } - $this->addFilter($filter, $options); - } else { - switch (true) { - case (0 == $argc): - break; - case (1 <= $argc): - $filter = array_shift($filterInfo); - case (2 <= $argc): - $options = array_shift($filterInfo); - default: - $this->addFilter($filter, $options); - break; - } - } - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid filter passed to addFilters()'); - } - } - - return $this; - } - - /** - * Add filters to element, overwriting any already existing - * - * @param array $filters - * @return Zend_Form_Element - */ - public function setFilters(array $filters) - { - $this->clearFilters(); - return $this->addFilters($filters); - } - - /** - * Retrieve a single filter by name - * - * @param string $name - * @return Zend_Filter_Interface - */ - public function getFilter($name) - { - if (!isset($this->_filters[$name])) { - $len = strlen($name); - foreach ($this->_filters as $localName => $filter) { - if ($len > strlen($localName)) { - continue; - } - - if (0 === substr_compare($localName, $name, -$len, $len, true)) { - if (is_array($filter)) { - return $this->_loadFilter($filter); - } - return $filter; - } - } - return false; - } - - if (is_array($this->_filters[$name])) { - return $this->_loadFilter($this->_filters[$name]); - } - - return $this->_filters[$name]; - } - - /** - * Get all filters - * - * @return array - */ - public function getFilters() - { - $filters = array(); - foreach ($this->_filters as $key => $value) { - if ($value instanceof Zend_Filter_Interface) { - $filters[$key] = $value; - continue; - } - $filter = $this->_loadFilter($value); - $filters[get_class($filter)] = $filter; - } - return $filters; - } - - /** - * Remove a filter by name - * - * @param string $name - * @return Zend_Form_Element - */ - public function removeFilter($name) - { - if (isset($this->_filters[$name])) { - unset($this->_filters[$name]); - } else { - $len = strlen($name); - foreach (array_keys($this->_filters) as $filter) { - if ($len > strlen($filter)) { - continue; - } - if (0 === substr_compare($filter, $name, -$len, $len, true)) { - unset($this->_filters[$filter]); - break; - } - } - } - - return $this; - } - - /** - * Clear all filters - * - * @return Zend_Form_Element - */ - public function clearFilters() - { - $this->_filters = array(); - return $this; - } - - // Rendering - - /** - * Set view object - * - * @param Zend_View_Interface $view - * @return Zend_Form_Element - */ - public function setView(Zend_View_Interface $view = null) - { - $this->_view = $view; - return $this; - } - - /** - * Retrieve view object - * - * Retrieves from ViewRenderer if none previously set. - * - * @return null|Zend_View_Interface - */ - public function getView() - { - if (null === $this->_view) { - // require_once 'Zend/Controller/Action/HelperBroker.php'; - $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); - $this->setView($viewRenderer->view); - } - return $this->_view; - } - - /** - * Instantiate a decorator based on class name or class name fragment - * - * @param string $name - * @param null|array $options - * @return Zend_Form_Decorator_Interface - */ - protected function _getDecorator($name, $options) - { - $class = $this->getPluginLoader(self::DECORATOR)->load($name); - if (null === $options) { - $decorator = new $class; - } else { - $decorator = new $class($options); - } - - return $decorator; - } - - /** - * Add a decorator for rendering the element - * - * @param string|Zend_Form_Decorator_Interface $decorator - * @param array|Zend_Config $options Options with which to initialize decorator - * @return Zend_Form_Element - */ - public function addDecorator($decorator, $options = null) - { - if ($decorator instanceof Zend_Form_Decorator_Interface) { - $name = get_class($decorator); - } elseif (is_string($decorator)) { - $name = $decorator; - $decorator = array( - 'decorator' => $name, - 'options' => $options, - ); - } elseif (is_array($decorator)) { - foreach ($decorator as $name => $spec) { - break; - } - if (is_numeric($name)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid alias provided to addDecorator; must be alphanumeric string'); - } - if (is_string($spec)) { - $decorator = array( - 'decorator' => $spec, - 'options' => $options, - ); - } elseif ($spec instanceof Zend_Form_Decorator_Interface) { - $decorator = $spec; - } - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid decorator provided to addDecorator; must be string or Zend_Form_Decorator_Interface'); - } - - $this->_decorators[$name] = $decorator; - - return $this; - } - - /** - * Add many decorators at once - * - * @param array $decorators - * @return Zend_Form_Element - */ - public function addDecorators(array $decorators) - { - foreach ($decorators as $decoratorName => $decoratorInfo) { - if (is_string($decoratorInfo) || - $decoratorInfo instanceof Zend_Form_Decorator_Interface) { - if (!is_numeric($decoratorName)) { - $this->addDecorator(array($decoratorName => $decoratorInfo)); - } else { - $this->addDecorator($decoratorInfo); - } - } elseif (is_array($decoratorInfo)) { - $argc = count($decoratorInfo); - $options = array(); - if (isset($decoratorInfo['decorator'])) { - $decorator = $decoratorInfo['decorator']; - if (isset($decoratorInfo['options'])) { - $options = $decoratorInfo['options']; - } - $this->addDecorator($decorator, $options); - } else { - switch (true) { - case (0 == $argc): - break; - case (1 <= $argc): - $decorator = array_shift($decoratorInfo); - case (2 <= $argc): - $options = array_shift($decoratorInfo); - default: - $this->addDecorator($decorator, $options); - break; - } - } - } else { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception('Invalid decorator passed to addDecorators()'); - } - } - - return $this; - } - - /** - * Overwrite all decorators - * - * @param array $decorators - * @return Zend_Form_Element - */ - public function setDecorators(array $decorators) - { - $this->clearDecorators(); - return $this->addDecorators($decorators); - } - - /** - * Retrieve a registered decorator - * - * @param string $name - * @return false|Zend_Form_Decorator_Abstract - */ - public function getDecorator($name) - { - if (!isset($this->_decorators[$name])) { - $len = strlen($name); - foreach ($this->_decorators as $localName => $decorator) { - if ($len > strlen($localName)) { - continue; - } - - if (0 === substr_compare($localName, $name, -$len, $len, true)) { - if (is_array($decorator)) { - return $this->_loadDecorator($decorator, $localName); - } - return $decorator; - } - } - return false; - } - - if (is_array($this->_decorators[$name])) { - return $this->_loadDecorator($this->_decorators[$name], $name); - } - - return $this->_decorators[$name]; - } - - /** - * Retrieve all decorators - * - * @return array - */ - public function getDecorators() - { - foreach ($this->_decorators as $key => $value) { - if (is_array($value)) { - $this->_loadDecorator($value, $key); - } - } - return $this->_decorators; - } - - /** - * Remove a single decorator - * - * @param string $name - * @return Zend_Form_Element - */ - public function removeDecorator($name) - { - if (isset($this->_decorators[$name])) { - unset($this->_decorators[$name]); - } else { - $len = strlen($name); - foreach (array_keys($this->_decorators) as $decorator) { - if ($len > strlen($decorator)) { - continue; - } - if (0 === substr_compare($decorator, $name, -$len, $len, true)) { - unset($this->_decorators[$decorator]); - break; - } - } - } - - return $this; - } - - /** - * Clear all decorators - * - * @return Zend_Form_Element - */ - public function clearDecorators() - { - $this->_decorators = array(); - return $this; - } - - /** - * Render form element - * - * @param Zend_View_Interface $view - * @return string - */ - public function render(Zend_View_Interface $view = null) - { - if ($this->_isPartialRendering) { - return ''; - } - - if (null !== $view) { - $this->setView($view); - } - - $content = ''; - foreach ($this->getDecorators() as $decorator) { - $decorator->setElement($this); - $content = $decorator->render($content); - } - return $content; - } - - /** - * String representation of form element - * - * Proxies to {@link render()}. - * - * @return string - */ - public function __toString() - { - try { - $return = $this->render(); - return $return; - } catch (Exception $e) { - trigger_error($e->getMessage(), E_USER_WARNING); - return ''; - } - } - - /** - * Lazy-load a filter - * - * @param array $filter - * @return Zend_Filter_Interface - */ - protected function _loadFilter(array $filter) - { - $origName = $filter['filter']; - $name = $this->getPluginLoader(self::FILTER)->load($filter['filter']); - - if (array_key_exists($name, $this->_filters)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Filter instance already exists for filter "%s"', $origName)); - } - - if (empty($filter['options'])) { - $instance = new $name; - } else { - $r = new ReflectionClass($name); - if ($r->hasMethod('__construct')) { - $instance = $r->newInstanceArgs((array) $filter['options']); - } else { - $instance = $r->newInstance(); - } - } - - if ($origName != $name) { - $filterNames = array_keys($this->_filters); - $order = array_flip($filterNames); - $order[$name] = $order[$origName]; - $filtersExchange = array(); - unset($order[$origName]); - asort($order); - foreach ($order as $key => $index) { - if ($key == $name) { - $filtersExchange[$key] = $instance; - continue; - } - $filtersExchange[$key] = $this->_filters[$key]; - } - $this->_filters = $filtersExchange; - } else { - $this->_filters[$name] = $instance; - } - - return $instance; - } - - /** - * Lazy-load a validator - * - * @param array $validator Validator definition - * @return Zend_Validate_Interface - */ - protected function _loadValidator(array $validator) - { - $origName = $validator['validator']; - $name = $this->getPluginLoader(self::VALIDATE)->load($validator['validator']); - - if (array_key_exists($name, $this->_validators)) { - // require_once 'Zend/Form/Exception.php'; - throw new Zend_Form_Exception(sprintf('Validator instance already exists for validator "%s"', $origName)); - } - - $messages = false; - if (isset($validator['options']) && array_key_exists('messages', (array)$validator['options'])) { - $messages = $validator['options']['messages']; - unset($validator['options']['messages']); - } - - if (empty($validator['options'])) { - $instance = new $name; - } else { - $r = new ReflectionClass($name); - if ($r->hasMethod('__construct')) { - $numeric = false; - if (is_array($validator['options'])) { - $keys = array_keys($validator['options']); - foreach($keys as $key) { - if (is_numeric($key)) { - $numeric = true; - break; - } - } - } - - if ($numeric) { - $instance = $r->newInstanceArgs((array) $validator['options']); - } else { - $instance = $r->newInstance($validator['options']); - } - } else { - $instance = $r->newInstance(); - } - } - - if ($messages) { - if (is_array($messages)) { - $instance->setMessages($messages); - } elseif (is_string($messages)) { - $instance->setMessage($messages); - } - } - $instance->zfBreakChainOnFailure = $validator['breakChainOnFailure']; - - if ($origName != $name) { - $validatorNames = array_keys($this->_validators); - $order = array_flip($validatorNames); - $order[$name] = $order[$origName]; - $validatorsExchange = array(); - unset($order[$origName]); - asort($order); - foreach ($order as $key => $index) { - if ($key == $name) { - $validatorsExchange[$key] = $instance; - continue; - } - $validatorsExchange[$key] = $this->_validators[$key]; - } - $this->_validators = $validatorsExchange; - } else { - $this->_validators[$name] = $instance; - } - - return $instance; - } - - /** - * Lazy-load a decorator - * - * @param array $decorator Decorator type and options - * @param mixed $name Decorator name or alias - * @return Zend_Form_Decorator_Interface - */ - protected function _loadDecorator(array $decorator, $name) - { - $sameName = false; - if ($name == $decorator['decorator']) { - $sameName = true; - } - - $instance = $this->_getDecorator($decorator['decorator'], $decorator['options']); - if ($sameName) { - $newName = get_class($instance); - $decoratorNames = array_keys($this->_decorators); - $order = array_flip($decoratorNames); - $order[$newName] = $order[$name]; - $decoratorsExchange = array(); - unset($order[$name]); - asort($order); - foreach ($order as $key => $index) { - if ($key == $newName) { - $decoratorsExchange[$key] = $instance; - continue; - } - $decoratorsExchange[$key] = $this->_decorators[$key]; - } - $this->_decorators = $decoratorsExchange; - } else { - $this->_decorators[$name] = $instance; - } - - return $instance; - } - - /** - * Retrieve error messages and perform translation and value substitution - * - * @return array - */ - protected function _getErrorMessages() - { - $translator = $this->getTranslator(); - $messages = $this->getErrorMessages(); - $value = $this->getValue(); - foreach ($messages as $key => $message) { - if (null !== $translator) { - $message = $translator->translate($message); - } - if (($this->isArray() || is_array($value)) - && !empty($value) - ) { - $aggregateMessages = array(); - foreach ($value as $val) { - $aggregateMessages[] = str_replace('%value%', $val, $message); - } - $messages[$key] = implode($this->getErrorMessageSeparator(), $aggregateMessages); - } else { - $messages[$key] = str_replace('%value%', $value, $message); - } - } - return $messages; - } - - /** - * Are there custom error messages registered? - * - * @return bool - */ - protected function _hasErrorMessages() - { - return !empty($this->_errorMessages); - } -} diff --git a/libs/Zend/Form/Element/Button.php b/libs/Zend/Form/Element/Button.php deleted file mode 100644 index e8413f43062ca57cf614e1358deb7ed448533f0e..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Button.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Submit */ -// require_once 'Zend/Form/Element/Submit.php'; - -/** - * Button form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Button.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_Button extends Zend_Form_Element_Submit -{ - /** - * Use formButton view helper by default - * @var string - */ - public $helper = 'formButton'; -} diff --git a/libs/Zend/Form/Element/Captcha.php b/libs/Zend/Form/Element/Captcha.php deleted file mode 100644 index 8d11d26a9f839ddde93c50e726383d1a39f3f3e0..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Captcha.php +++ /dev/null @@ -1,306 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Captcha.php 22329 2010-05-30 15:12:58Z bittarman $ - */ - -/** @see Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** @see Zend_Captcha_Adapter */ -// require_once 'Zend/Captcha/Adapter.php'; - -/** - * Generic captcha element - * - * This element allows to insert CAPTCHA into the form in order - * to validate that human is submitting the form. The actual - * logic is contained in the captcha adapter. - * - * @see http://en.wikipedia.org/wiki/Captcha - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ -class Zend_Form_Element_Captcha extends Zend_Form_Element_Xhtml -{ - /** - * Captcha plugin type constant - */ - const CAPTCHA = 'CAPTCHA'; - - /** - * Captcha adapter - * - * @var Zend_Captcha_Adapter - */ - protected $_captcha; - - /** - * Get captcha adapter - * - * @return Zend_Captcha_Adapter - */ - public function getCaptcha() - { - return $this->_captcha; - } - - /** - * Set captcha adapter - * - * @param string|array|Zend_Captcha_Adapter $captcha - * @param array $options - */ - public function setCaptcha($captcha, $options = array()) - { - if ($captcha instanceof Zend_Captcha_Adapter) { - $instance = $captcha; - } else { - if (is_array($captcha)) { - if (array_key_exists('captcha', $captcha)) { - $name = $captcha['captcha']; - unset($captcha['captcha']); - } else { - $name = array_shift($captcha); - } - $options = array_merge($options, $captcha); - } else { - $name = $captcha; - } - - $name = $this->getPluginLoader(self::CAPTCHA)->load($name); - if (empty($options)) { - $instance = new $name; - } else { - $r = new ReflectionClass($name); - if ($r->hasMethod('__construct')) { - $instance = $r->newInstanceArgs(array($options)); - } else { - $instance = $r->newInstance(); - } - } - } - - $this->_captcha = $instance; - $this->_captcha->setName($this->getName()); - return $this; - } - - /** - * Constructor - * - * $spec may be: - * - string: name of element - * - array: options with which to configure element - * - Zend_Config: Zend_Config with options for configuring element - * - * @param string|array|Zend_Config $spec - * @return void - */ - public function __construct($spec, $options = null) - { - parent::__construct($spec, $options); - $this->setAllowEmpty(true) - ->setRequired(true) - ->setAutoInsertNotEmptyValidator(false) - ->addValidator($this->getCaptcha(), true); - } - - /** - * Return all attributes - * - * @return array - */ - public function getAttribs() - { - $attribs = get_object_vars($this); - unset($attribs['helper']); - foreach ($attribs as $key => $value) { - if ('_' == substr($key, 0, 1)) { - unset($attribs[$key]); - } - } - - return $attribs; - } - - /** - * Set options - * - * Overrides to allow passing captcha options - * - * @param array $options - * @return Zend_Form_Element_Captcha - */ - public function setOptions(array $options) - { - if (array_key_exists('captcha', $options)) { - if (array_key_exists('captchaOptions', $options)) { - $this->setCaptcha($options['captcha'], $options['captchaOptions']); - unset($options['captchaOptions']); - } else { - $this->setCaptcha($options['captcha']); - } - unset($options['captcha']); - } - parent::setOptions($options); - return $this; - } - - /** - * Render form element - * - * @param Zend_View_Interface $view - * @return string - */ - public function render(Zend_View_Interface $view = null) - { - $captcha = $this->getCaptcha(); - $captcha->setName($this->getFullyQualifiedName()); - - $decorators = $this->getDecorators(); - - $decorator = $captcha->getDecorator(); - if (!empty($decorator)) { - array_unshift($decorators, $decorator); - } - - $decorator = array('Captcha', array('captcha' => $captcha)); - array_unshift($decorators, $decorator); - - $this->setDecorators($decorators); - - $this->setValue($this->getCaptcha()->generate()); - - return parent::render($view); - } - - /** - * Retrieve plugin loader for validator or filter chain - * - * Support for plugin loader for Captcha adapters - * - * @param string $type - * @return Zend_Loader_PluginLoader - * @throws Zend_Loader_Exception on invalid type. - */ - public function getPluginLoader($type) - { - $type = strtoupper($type); - if ($type == self::CAPTCHA) { - if (!isset($this->_loaders[$type])) { - // require_once 'Zend/Loader/PluginLoader.php'; - $this->_loaders[$type] = new Zend_Loader_PluginLoader( - array('Zend_Captcha' => 'Zend/Captcha/') - ); - } - return $this->_loaders[$type]; - } else { - return parent::getPluginLoader($type); - } - } - - /** - * Add prefix path for plugin loader for captcha adapters - * - * This method handles the captcha type, the rest is handled by - * the parent - * @param string $prefix - * @param string $path - * @param string $type - * @return Zend_Form_Element - * @see Zend_Form_Element::addPrefixPath - */ - public function addPrefixPath($prefix, $path, $type = null) - { - $type = strtoupper($type); - switch ($type) { - case null: - $loader = $this->getPluginLoader(self::CAPTCHA); - $cPrefix = rtrim($prefix, '_') . '_Captcha'; - $cPath = rtrim($path, '/\\') . '/Captcha'; - $loader->addPrefixPath($cPrefix, $cPath); - return parent::addPrefixPath($prefix, $path); - case self::CAPTCHA: - $loader = $this->getPluginLoader($type); - $loader->addPrefixPath($prefix, $path); - return $this; - default: - return parent::addPrefixPath($prefix, $path, $type); - } - } - - /** - * Load default decorators - * - * @return void - */ - public function loadDefaultDecorators() - { - if ($this->loadDefaultDecoratorsIsDisabled()) { - return $this; - } - - $decorators = $this->getDecorators(); - if (empty($decorators)) { - $this->addDecorator('Errors') - ->addDecorator('Description', array('tag' => 'p', 'class' => 'description')) - ->addDecorator('HtmlTag', array('tag' => 'dd')) - ->addDecorator('Label', array('tag' => 'dt')); - } - return $this; - } - - /** - * Is the captcha valid? - * - * @param mixed $value - * @param mixed $context - * @return boolean - */ - public function isValid($value, $context = null) - { - $this->getCaptcha()->setName($this->getName()); - $belongsTo = $this->getBelongsTo(); - if (empty($belongsTo) || !is_array($context)) { - return parent::isValid($value, $context); - } - - $name = $this->getFullyQualifiedName(); - $root = substr($name, 0, strpos($name, '[')); - $segments = substr($name, strpos($name, '[')); - $segments = ltrim($segments, '['); - $segments = rtrim($segments, ']'); - $segments = explode('][', $segments); - array_unshift($segments, $root); - array_pop($segments); - $newContext = $context; - foreach ($segments as $segment) { - if (array_key_exists($segment, $newContext)) { - $newContext = $newContext[$segment]; - } - } - - return parent::isValid($value, $newContext); - } -} diff --git a/libs/Zend/Form/Element/Checkbox.php b/libs/Zend/Form/Element/Checkbox.php deleted file mode 100644 index 2d52bcc56cc93c8781efe42f8e1b1c2d953cdc84..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Checkbox.php +++ /dev/null @@ -1,203 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** - * Checkbox form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Checkbox.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_Checkbox extends Zend_Form_Element_Xhtml -{ - /** - * Is the checkbox checked? - * @var bool - */ - public $checked = false; - - /** - * Use formCheckbox view helper by default - * @var string - */ - public $helper = 'formCheckbox'; - - /** - * Options that will be passed to the view helper - * @var array - */ - public $options = array( - 'checkedValue' => '1', - 'uncheckedValue' => '0', - ); - - /** - * Value when checked - * @var string - */ - protected $_checkedValue = '1'; - - /** - * Value when not checked - * @var string - */ - protected $_uncheckedValue = '0'; - - /** - * Current value - * @var string 0 or 1 - */ - protected $_value = '0'; - - /** - * Set options - * - * Intercept checked and unchecked values and set them early; test stored - * value against checked and unchecked values after configuration. - * - * @param array $options - * @return Zend_Form_Element_Checkbox - */ - public function setOptions(array $options) - { - if (array_key_exists('checkedValue', $options)) { - $this->setCheckedValue($options['checkedValue']); - unset($options['checkedValue']); - } - if (array_key_exists('uncheckedValue', $options)) { - $this->setUncheckedValue($options['uncheckedValue']); - unset($options['uncheckedValue']); - } - parent::setOptions($options); - - $curValue = $this->getValue(); - $test = array($this->getCheckedValue(), $this->getUncheckedValue()); - if (!in_array($curValue, $test)) { - $this->setValue($curValue); - } - - return $this; - } - - /** - * Set value - * - * If value matches checked value, sets to that value, and sets the checked - * flag to true. - * - * Any other value causes the unchecked value to be set as the current - * value, and the checked flag to be set as false. - * - * - * @param mixed $value - * @return Zend_Form_Element_Checkbox - */ - public function setValue($value) - { - if ($value == $this->getCheckedValue()) { - parent::setValue($value); - $this->checked = true; - } else { - parent::setValue($this->getUncheckedValue()); - $this->checked = false; - } - return $this; - } - - /** - * Set checked value - * - * @param string $value - * @return Zend_Form_Element_Checkbox - */ - public function setCheckedValue($value) - { - $this->_checkedValue = (string) $value; - $this->options['checkedValue'] = $value; - return $this; - } - - /** - * Get value when checked - * - * @return string - */ - public function getCheckedValue() - { - return $this->_checkedValue; - } - - /** - * Set unchecked value - * - * @param string $value - * @return Zend_Form_Element_Checkbox - */ - public function setUncheckedValue($value) - { - $this->_uncheckedValue = (string) $value; - $this->options['uncheckedValue'] = $value; - return $this; - } - - /** - * Get value when not checked - * - * @return string - */ - public function getUncheckedValue() - { - return $this->_uncheckedValue; - } - - /** - * Set checked flag - * - * @param bool $flag - * @return Zend_Form_Element_Checkbox - */ - public function setChecked($flag) - { - $this->checked = (bool) $flag; - if ($this->checked) { - $this->setValue($this->getCheckedValue()); - } else { - $this->setValue($this->getUncheckedValue()); - } - return $this; - } - - /** - * Get checked flag - * - * @return bool - */ - public function isChecked() - { - return $this->checked; - } -} diff --git a/libs/Zend/Form/Element/Exception.php b/libs/Zend/Form/Element/Exception.php deleted file mode 100644 index 6e3c9a6c248486c74aa58e5801fdec1aca9e8cb0..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Exception.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @version $Id: Exception.php 20096 2010-01-06 02:05:09Z bkarwin $ - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Exception */ -// require_once 'Zend/Form/Exception.php'; - -/** - * Exception for Zend_Form component. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ -class Zend_Form_Element_Exception extends Zend_Form_Exception -{ -} diff --git a/libs/Zend/Form/Element/File.php b/libs/Zend/Form/Element/File.php deleted file mode 100644 index dc990bc2a5ddf51e1dac69fbbe4ecacd7bfb2149..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/File.php +++ /dev/null @@ -1,907 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** - * Zend_Form_Element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: File.php 22372 2010-06-04 20:17:58Z thomas $ - */ -class Zend_Form_Element_File extends Zend_Form_Element_Xhtml -{ - /** - * Plugin loader type - */ - const TRANSFER_ADAPTER = 'TRANSFER_ADAPTER'; - - /** - * @var string Default view helper - */ - public $helper = 'formFile'; - - /** - * @var Zend_File_Transfer_Adapter_Abstract - */ - protected $_adapter; - - /** - * @var boolean Already validated ? - */ - protected $_validated = false; - - /** - * @var boolean Disable value to be equal to file content - */ - protected $_valueDisabled = false; - - /** - * @var integer Internal multifile counter - */ - protected $_counter = 1; - - /** - * @var integer Maximum file size for MAX_FILE_SIZE attribut of form - */ - protected static $_maxFileSize = -1; - - /** - * Load default decorators - * - * @return void - */ - public function loadDefaultDecorators() - { - if ($this->loadDefaultDecoratorsIsDisabled()) { - return $this; - } - - $decorators = $this->getDecorators(); - if (empty($decorators)) { - $this->addDecorator('File') - ->addDecorator('Errors') - ->addDecorator('Description', array('tag' => 'p', 'class' => 'description')) - ->addDecorator('HtmlTag', array('tag' => 'dd')) - ->addDecorator('Label', array('tag' => 'dt')); - } - return $this; - } - - /** - * Set plugin loader - * - * @param Zend_Loader_PluginLoader_Interface $loader - * @param string $type - * @return Zend_Form_Element_File - */ - public function setPluginLoader(Zend_Loader_PluginLoader_Interface $loader, $type) - { - $type = strtoupper($type); - - if ($type != self::TRANSFER_ADAPTER) { - return parent::setPluginLoader($loader, $type); - } - - $this->_loaders[$type] = $loader; - return $this; - } - - /** - * Get Plugin Loader - * - * @param string $type - * @return Zend_Loader_PluginLoader_Interface - */ - public function getPluginLoader($type) - { - $type = strtoupper($type); - - if ($type != self::TRANSFER_ADAPTER) { - return parent::getPluginLoader($type); - } - - if (!array_key_exists($type, $this->_loaders)) { - // require_once 'Zend/Loader/PluginLoader.php'; - $loader = new Zend_Loader_PluginLoader(array( - 'Zend_File_Transfer_Adapter' => 'Zend/File/Transfer/Adapter/', - )); - $this->setPluginLoader($loader, self::TRANSFER_ADAPTER); - } - - return $this->_loaders[$type]; - } - - /** - * Add prefix path for plugin loader - * - * @param string $prefix - * @param string $path - * @param string $type - * @return Zend_Form_Element_File - */ - public function addPrefixPath($prefix, $path, $type = null) - { - $type = strtoupper($type); - if (!empty($type) && ($type != self::TRANSFER_ADAPTER)) { - return parent::addPrefixPath($prefix, $path, $type); - } - - if (empty($type)) { - $pluginPrefix = rtrim($prefix, '_') . '_Transfer_Adapter'; - $pluginPath = rtrim($path, DIRECTORY_SEPARATOR) . '/Transfer/Adapter/'; - $loader = $this->getPluginLoader(self::TRANSFER_ADAPTER); - $loader->addPrefixPath($pluginPrefix, $pluginPath); - return parent::addPrefixPath($prefix, $path, null); - } - - $loader = $this->getPluginLoader($type); - $loader->addPrefixPath($prefix, $path); - return $this; - } - - /** - * Set transfer adapter - * - * @param string|Zend_File_Transfer_Adapter_Abstract $adapter - * @return Zend_Form_Element_File - */ - public function setTransferAdapter($adapter) - { - if ($adapter instanceof Zend_File_Transfer_Adapter_Abstract) { - $this->_adapter = $adapter; - } elseif (is_string($adapter)) { - $loader = $this->getPluginLoader(self::TRANSFER_ADAPTER); - $class = $loader->load($adapter); - $this->_adapter = new $class; - } else { - // require_once 'Zend/Form/Element/Exception.php'; - throw new Zend_Form_Element_Exception('Invalid adapter specified'); - } - - foreach (array('filter', 'validate') as $type) { - $loader = $this->getPluginLoader($type); - $this->_adapter->setPluginLoader($loader, $type); - } - - return $this; - } - - /** - * Get transfer adapter - * - * Lazy loads HTTP transfer adapter when no adapter registered. - * - * @return Zend_File_Transfer_Adapter_Abstract - */ - public function getTransferAdapter() - { - if (null === $this->_adapter) { - $this->setTransferAdapter('Http'); - } - return $this->_adapter; - } - - /** - * Add Validator; proxy to adapter - * - * @param string|Zend_Validate_Interface $validator - * @param bool $breakChainOnFailure - * @param mixed $options - * @return Zend_Form_Element_File - */ - public function addValidator($validator, $breakChainOnFailure = false, $options = array()) - { - $adapter = $this->getTransferAdapter(); - $adapter->addValidator($validator, $breakChainOnFailure, $options, $this->getName()); - $this->_validated = false; - - return $this; - } - - /** - * Add multiple validators at once; proxy to adapter - * - * @param array $validators - * @return Zend_Form_Element_File - */ - public function addValidators(array $validators) - { - $adapter = $this->getTransferAdapter(); - $adapter->addValidators($validators, $this->getName()); - $this->_validated = false; - - return $this; - } - - /** - * Add multiple validators at once, overwriting; proxy to adapter - * - * @param array $validators - * @return Zend_Form_Element_File - */ - public function setValidators(array $validators) - { - $adapter = $this->getTransferAdapter(); - $adapter->setValidators($validators, $this->getName()); - $this->_validated = false; - - return $this; - } - - /** - * Retrieve validator by name; proxy to adapter - * - * @param string $name - * @return Zend_Validate_Interface|null - */ - public function getValidator($name) - { - $adapter = $this->getTransferAdapter(); - return $adapter->getValidator($name); - } - - /** - * Retrieve all validators; proxy to adapter - * - * @return array - */ - public function getValidators() - { - $adapter = $this->getTransferAdapter(); - $validators = $adapter->getValidators($this->getName()); - if ($validators === null) { - $validators = array(); - } - - return $validators; - } - - /** - * Remove validator by name; proxy to adapter - * - * @param string $name - * @return Zend_Form_Element_File - */ - public function removeValidator($name) - { - $adapter = $this->getTransferAdapter(); - $adapter->removeValidator($name); - $this->_validated = false; - - return $this; - } - - /** - * Remove all validators; proxy to adapter - * - * @return Zend_Form_Element_File - */ - public function clearValidators() - { - $adapter = $this->getTransferAdapter(); - $adapter->clearValidators(); - $this->_validated = false; - - return $this; - } - - /** - * Add Filter; proxy to adapter - * - * @param string|array $filter Type of filter to add - * @param string|array $options Options to set for the filter - * @return Zend_Form_Element_File - */ - public function addFilter($filter, $options = null) - { - $adapter = $this->getTransferAdapter(); - $adapter->addFilter($filter, $options, $this->getName()); - - return $this; - } - - /** - * Add Multiple filters at once; proxy to adapter - * - * @param array $filters - * @return Zend_Form_Element_File - */ - public function addFilters(array $filters) - { - $adapter = $this->getTransferAdapter(); - $adapter->addFilters($filters, $this->getName()); - - return $this; - } - - /** - * Sets a filter for the class, erasing all previous set; proxy to adapter - * - * @param string|array $filter Filter to set - * @return Zend_Form_Element_File - */ - public function setFilters(array $filters) - { - $adapter = $this->getTransferAdapter(); - $adapter->setFilters($filters, $this->getName()); - - return $this; - } - - /** - * Retrieve individual filter; proxy to adapter - * - * @param string $name - * @return Zend_Filter_Interface|null - */ - public function getFilter($name) - { - $adapter = $this->getTransferAdapter(); - return $adapter->getFilter($name); - } - - /** - * Returns all set filters; proxy to adapter - * - * @return array List of set filters - */ - public function getFilters() - { - $adapter = $this->getTransferAdapter(); - $filters = $adapter->getFilters($this->getName()); - - if ($filters === null) { - $filters = array(); - } - return $filters; - } - - /** - * Remove an individual filter; proxy to adapter - * - * @param string $name - * @return Zend_Form_Element_File - */ - public function removeFilter($name) - { - $adapter = $this->getTransferAdapter(); - $adapter->removeFilter($name); - - return $this; - } - - /** - * Remove all filters; proxy to adapter - * - * @return Zend_Form_Element_File - */ - public function clearFilters() - { - $adapter = $this->getTransferAdapter(); - $adapter->clearFilters(); - - return $this; - } - - /** - * Validate upload - * - * @param string $value File, can be optional, give null to validate all files - * @param mixed $context - * @return bool - */ - public function isValid($value, $context = null) - { - if ($this->_validated) { - return true; - } - - $adapter = $this->getTransferAdapter(); - $translator = $this->getTranslator(); - if ($translator !== null) { - $adapter->setTranslator($translator); - } - - if (!$this->isRequired()) { - $adapter->setOptions(array('ignoreNoFile' => true), $this->getName()); - } else { - $adapter->setOptions(array('ignoreNoFile' => false), $this->getName()); - if ($this->autoInsertNotEmptyValidator() && !$this->getValidator('NotEmpty')) { - $this->addValidator = array('validator' => 'NotEmpty', 'breakChainOnFailure' => true); - } - } - - if($adapter->isValid($this->getName())) { - $this->_validated = true; - return true; - } - - $this->_validated = false; - return false; - } - - /** - * Receive the uploaded file - * - * @return boolean - */ - public function receive() - { - if (!$this->_validated) { - if (!$this->isValid($this->getName())) { - return false; - } - } - - $adapter = $this->getTransferAdapter(); - if ($adapter->receive($this->getName())) { - return true; - } - - return false; - } - - /** - * Retrieve error codes; proxy to transfer adapter - * - * @return array - */ - public function getErrors() - { - return parent::getErrors() + $this->getTransferAdapter()->getErrors(); - } - - /** - * Are there errors registered? - * - * @return bool - */ - public function hasErrors() - { - return (parent::hasErrors() || $this->getTransferAdapter()->hasErrors()); - } - - /** - * Retrieve error messages; proxy to transfer adapter - * - * @return array - */ - public function getMessages() - { - return parent::getMessages() + $this->getTransferAdapter()->getMessages(); - } - - /** - * Set the upload destination - * - * @param string $path - * @return Zend_Form_Element_File - */ - public function setDestination($path) - { - $this->getTransferAdapter()->setDestination($path, $this->getName()); - return $this; - } - - /** - * Get the upload destination - * - * @return string - */ - public function getDestination() - { - return $this->getTransferAdapter()->getDestination($this->getName()); - } - - /** - * Get the final filename - * - * @param string $value (Optional) Element or file to return - * @param boolean $path (Optional) Return also the path, defaults to true - * @return string - */ - public function getFileName($value = null, $path = true) - { - if (empty($value)) { - $value = $this->getName(); - } - - return $this->getTransferAdapter()->getFileName($value, $path); - } - - /** - * Get internal file informations - * - * @param string $value (Optional) Element or file to return - * @return array - */ - public function getFileInfo($value = null) - { - if (empty($value)) { - $value = $this->getName(); - } - - return $this->getTransferAdapter()->getFileInfo($value); - } - - /** - * Set a multifile element - * - * @param integer $count Number of file elements - * @return Zend_Form_Element_File Provides fluent interface - */ - public function setMultiFile($count) - { - if ((integer) $count < 2) { - $this->setIsArray(false); - $this->_counter = 1; - } else { - $this->setIsArray(true); - $this->_counter = (integer) $count; - } - - return $this; - } - - /** - * Returns the multifile element number - * - * @return integer - */ - public function getMultiFile() - { - return $this->_counter; - } - - /** - * Sets the maximum file size of the form - * - * @return integer - */ - public function getMaxFileSize() - { - if (self::$_maxFileSize < 0) { - $ini = $this->_convertIniToInteger(trim(ini_get('post_max_size'))); - $max = $this->_convertIniToInteger(trim(ini_get('upload_max_filesize'))); - $min = max($ini, $max); - if ($ini > 0) { - $min = min($min, $ini); - } - - if ($max > 0) { - $min = min($min, $max); - } - - self::$_maxFileSize = $min; - } - - return self::$_maxFileSize; - } - - /** - * Sets the maximum file size of the form - * - * @param integer $size - * @return integer - */ - public function setMaxFileSize($size) - { - $ini = $this->_convertIniToInteger(trim(ini_get('post_max_size'))); - $max = $this->_convertIniToInteger(trim(ini_get('upload_max_filesize'))); - - if (($max > -1) && ($size > $max)) { - trigger_error("Your 'upload_max_filesize' config setting limits the maximum filesize to '$max'. You tried to set '$size'.", E_USER_NOTICE); - $size = $max; - } - - if (($ini > -1) && ($size > $ini)) { - trigger_error("Your 'post_max_size' config setting limits the maximum filesize to '$ini'. You tried to set '$size'.", E_USER_NOTICE); - $size = $ini; - } - - self::$_maxFileSize = $size; - return $this; - } - - /** - * Converts a ini setting to a integer value - * - * @param string $setting - * @return integer - */ - private function _convertIniToInteger($setting) - { - if (!is_numeric($setting)) { - $type = strtoupper(substr($setting, -1)); - $setting = (integer) substr($setting, 0, -1); - - switch ($type) { - case 'K' : - $setting *= 1024; - break; - - case 'M' : - $setting *= 1024 * 1024; - break; - - case 'G' : - $setting *= 1024 * 1024 * 1024; - break; - - default : - break; - } - } - - return (integer) $setting; - } - - /** - * Set if the file will be uploaded when getting the value - * This defaults to false which will force receive() when calling getValues() - * - * @param boolean $flag Sets if the file is handled as the elements value - * @return Zend_Form_Element_File - */ - public function setValueDisabled($flag) - { - $this->_valueDisabled = (bool) $flag; - return $this; - } - - /** - * Returns if the file will be uploaded when calling getValues() - * - * @return boolean Receive the file on calling getValues()? - */ - public function isValueDisabled() - { - return $this->_valueDisabled; - } - - /** - * Processes the file, returns null or the filename only - * For the complete path, use getFileName - * - * @return null|string - */ - public function getValue() - { - if ($this->_value !== null) { - return $this->_value; - } - - $content = $this->getTransferAdapter()->getFileName($this->getName()); - if (empty($content)) { - return null; - } - - if (!$this->isValid(null)) { - return null; - } - - if (!$this->_valueDisabled && !$this->receive()) { - return null; - } - - return $this->getFileName(null, false); - } - - /** - * Disallow setting the value - * - * @param mixed $value - * @return Zend_Form_Element_File - */ - public function setValue($value) - { - return $this; - } - - /** - * Set translator object for localization - * - * @param Zend_Translate|null $translator - * @return Zend_Form_Element_File - */ - public function setTranslator($translator = null) - { - $adapter = $this->getTransferAdapter(); - $adapter->setTranslator($translator); - parent::setTranslator($translator); - - return $this; - } - - /** - * Retrieve localization translator object - * - * @return Zend_Translate_Adapter|null - */ - public function getTranslator() - { - if ($this->translatorIsDisabled()) { - return null; - } - - $translator = $this->getTransferAdapter()->getTranslator(); - if (null === $translator) { - // require_once 'Zend/Form.php'; - return Zend_Form::getDefaultTranslator(); - } - - return $translator; - } - - /** - * Indicate whether or not translation should be disabled - * - * @param bool $flag - * @return Zend_Form_Element_File - */ - public function setDisableTranslator($flag) - { - $adapter = $this->getTransferAdapter(); - $adapter->setDisableTranslator($flag); - $this->_translatorDisabled = (bool) $flag; - - return $this; - } - - /** - * Is translation disabled? - * - * @return bool - */ - public function translatorIsDisabled() - { - $adapter = $this->getTransferAdapter(); - return $adapter->translatorIsDisabled(); - } - - /** - * Was the file received? - * - * @return bool - */ - public function isReceived() - { - $adapter = $this->getTransferAdapter(); - return $adapter->isReceived($this->getName()); - } - - /** - * Was the file uploaded? - * - * @return bool - */ - public function isUploaded() - { - $adapter = $this->getTransferAdapter(); - return $adapter->isUploaded($this->getName()); - } - - /** - * Has the file been filtered? - * - * @return bool - */ - public function isFiltered() - { - $adapter = $this->getTransferAdapter(); - return $adapter->isFiltered($this->getName()); - } - - /** - * Returns the hash for this file element - * - * @param string $hash (Optional) Hash algorithm to use - * @return string|array Hashstring - */ - public function getHash($hash = 'crc32') - { - $adapter = $this->getTransferAdapter(); - return $adapter->getHash($hash, $this->getName()); - } - - /** - * Returns the filesize for this file element - * - * @return string|array Filesize - */ - public function getFileSize() - { - $adapter = $this->getTransferAdapter(); - return $adapter->getFileSize($this->getName()); - } - - /** - * Returns the mimetype for this file element - * - * @return string|array Mimetype - */ - public function getMimeType() - { - $adapter = $this->getTransferAdapter(); - return $adapter->getMimeType($this->getName()); - } - - /** - * Render form element - * Checks for decorator interface to prevent errors - * - * @param Zend_View_Interface $view - * @return string - */ - public function render(Zend_View_Interface $view = null) - { - $marker = false; - foreach ($this->getDecorators() as $decorator) { - if ($decorator instanceof Zend_Form_Decorator_Marker_File_Interface) { - $marker = true; - } - } - - if (!$marker) { - // require_once 'Zend/Form/Element/Exception.php'; - throw new Zend_Form_Element_Exception('No file decorator found... unable to render file element'); - } - - return parent::render($view); - } - - /** - * Retrieve error messages and perform translation and value substitution - * - * @return array - */ - protected function _getErrorMessages() - { - $translator = $this->getTranslator(); - $messages = $this->getErrorMessages(); - $value = $this->getFileName(); - foreach ($messages as $key => $message) { - if (null !== $translator) { - $message = $translator->translate($message); - } - - if ($this->isArray() || is_array($value)) { - $aggregateMessages = array(); - foreach ($value as $val) { - $aggregateMessages[] = str_replace('%value%', $val, $message); - } - - if (!empty($aggregateMessages)) { - $messages[$key] = $aggregateMessages; - } - } else { - $messages[$key] = str_replace('%value%', $value, $message); - } - } - - return $messages; - } -} diff --git a/libs/Zend/Form/Element/Hash.php b/libs/Zend/Form/Element/Hash.php deleted file mode 100644 index c6501b55466346d4c531d169eb2ddeee40bec6c4..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Hash.php +++ /dev/null @@ -1,259 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** - * CSRF form protection - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Hash.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_Hash extends Zend_Form_Element_Xhtml -{ - /** - * Use formHidden view helper by default - * @var string - */ - public $helper = 'formHidden'; - - /** - * Actual hash used. - * - * @var mixed - */ - protected $_hash; - - /** - * Salt for CSRF token - * @var string - */ - protected $_salt = 'salt'; - - /** - * @var Zend_Session_Namespace - */ - protected $_session; - - /** - * TTL for CSRF token - * @var int - */ - protected $_timeout = 300; - - /** - * Constructor - * - * Creates session namespace for CSRF token, and adds validator for CSRF - * token. - * - * @param string|array|Zend_Config $spec - * @param array|Zend_Config $options - * @return void - */ - public function __construct($spec, $options = null) - { - parent::__construct($spec, $options); - - $this->setAllowEmpty(false) - ->setRequired(true) - ->initCsrfValidator(); - } - - /** - * Set session object - * - * @param Zend_Session_Namespace $session - * @return Zend_Form_Element_Hash - */ - public function setSession($session) - { - $this->_session = $session; - return $this; - } - - /** - * Get session object - * - * Instantiate session object if none currently exists - * - * @return Zend_Session_Namespace - */ - public function getSession() - { - if (null === $this->_session) { - // require_once 'Zend/Session/Namespace.php'; - $this->_session = new Zend_Session_Namespace($this->getSessionName()); - } - return $this->_session; - } - - /** - * Initialize CSRF validator - * - * Creates Session namespace, and initializes CSRF token in session. - * Additionally, adds validator for validating CSRF token. - * - * @return Zend_Form_Element_Hash - */ - public function initCsrfValidator() - { - $session = $this->getSession(); - if (isset($session->hash)) { - $rightHash = $session->hash; - } else { - $rightHash = null; - } - - $this->addValidator('Identical', true, array($rightHash)); - return $this; - } - - /** - * Salt for CSRF token - * - * @param string $salt - * @return Zend_Form_Element_Hash - */ - public function setSalt($salt) - { - $this->_salt = (string) $salt; - return $this; - } - - /** - * Retrieve salt for CSRF token - * - * @return string - */ - public function getSalt() - { - return $this->_salt; - } - - /** - * Retrieve CSRF token - * - * If no CSRF token currently exists, generates one. - * - * @return string - */ - public function getHash() - { - if (null === $this->_hash) { - $this->_generateHash(); - } - return $this->_hash; - } - - /** - * Get session namespace for CSRF token - * - * Generates a session namespace based on salt, element name, and class. - * - * @return string - */ - public function getSessionName() - { - return __CLASS__ . '_' . $this->getSalt() . '_' . $this->getName(); - } - - /** - * Set timeout for CSRF session token - * - * @param int $ttl - * @return Zend_Form_Element_Hash - */ - public function setTimeout($ttl) - { - $this->_timeout = (int) $ttl; - return $this; - } - - /** - * Get CSRF session token timeout - * - * @return int - */ - public function getTimeout() - { - return $this->_timeout; - } - - /** - * Override getLabel() to always be empty - * - * @return null - */ - public function getLabel() - { - return null; - } - - /** - * Initialize CSRF token in session - * - * @return void - */ - public function initCsrfToken() - { - $session = $this->getSession(); - $session->setExpirationHops(1, null, true); - $session->setExpirationSeconds($this->getTimeout()); - $session->hash = $this->getHash(); - } - - /** - * Render CSRF token in form - * - * @param Zend_View_Interface $view - * @return string - */ - public function render(Zend_View_Interface $view = null) - { - $this->initCsrfToken(); - return parent::render($view); - } - - /** - * Generate CSRF token - * - * Generates CSRF token and stores both in {@link $_hash} and element - * value. - * - * @return void - */ - protected function _generateHash() - { - $this->_hash = md5( - mt_rand(1,1000000) - . $this->getSalt() - . $this->getName() - . mt_rand(1,1000000) - ); - $this->setValue($this->_hash); - } -} diff --git a/libs/Zend/Form/Element/Hidden.php b/libs/Zend/Form/Element/Hidden.php deleted file mode 100644 index 28bae576df7cd4cb996e197cd87e920cfe7502c0..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Hidden.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** - * Hidden form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Hidden.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_Hidden extends Zend_Form_Element_Xhtml -{ - /** - * Use formHidden view helper by default - * @var string - */ - public $helper = 'formHidden'; -} diff --git a/libs/Zend/Form/Element/Image.php b/libs/Zend/Form/Element/Image.php deleted file mode 100644 index 67b72d79aa340ec1c5595ddb9ea15c793d609ad2..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Image.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** - * Image form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Image.php 22329 2010-05-30 15:12:58Z bittarman $ - */ -class Zend_Form_Element_Image extends Zend_Form_Element_Xhtml -{ - /** - * What view helper to use when using view helper decorator - * @var string - */ - public $helper = 'formImage'; - - /** - * Image source - * @var string - */ - public $src; - - /** - * Image value - * @var mixed - */ - protected $_imageValue; - - /** - * Load default decorators - * - * @return void - */ - public function loadDefaultDecorators() - { - if ($this->loadDefaultDecoratorsIsDisabled()) { - return $this; - } - - $decorators = $this->getDecorators(); - if (empty($decorators)) { - $this->addDecorator('Tooltip') - ->addDecorator('Image') - ->addDecorator('Errors') - ->addDecorator('HtmlTag', array('tag' => 'dd')) - ->addDecorator('Label', array('tag' => 'dt')); - } - return $this; - } - - /** - * Set image path - * - * @param string $path - * @return Zend_Form_Element_Image - */ - public function setImage($path) - { - $this->src = (string) $path; - return $this; - } - - /** - * Get image path - * - * @return string - */ - public function getImage() - { - return $this->src; - } - - /** - * Set image value to use when submitted - * - * @param mixed $value - * @return Zend_Form_Element_Image - */ - public function setImageValue($value) - { - $this->_imageValue = $value; - return $this; - } - - /** - * Get image value to use when submitted - * - * @return mixed - */ - public function getImageValue() - { - return $this->_imageValue; - } - - /** - * Was this element used to submit the form? - * - * @return bool - */ - public function isChecked() - { - $imageValue = $this->getImageValue(); - return ((null !== $imageValue) && ($this->getValue() == $imageValue)); - } - -} diff --git a/libs/Zend/Form/Element/Multi.php b/libs/Zend/Form/Element/Multi.php deleted file mode 100644 index 09b49807f7c0929ce0325eed12aa65d0f91e92e5..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Multi.php +++ /dev/null @@ -1,317 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** - * Base class for multi-option form elements - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Multi.php 22323 2010-05-30 11:15:38Z thomas $ - */ -abstract class Zend_Form_Element_Multi extends Zend_Form_Element_Xhtml -{ - /** - * Array of options for multi-item - * @var array - */ - public $options = array(); - - /** - * Flag: autoregister inArray validator? - * @var bool - */ - protected $_registerInArrayValidator = true; - - /** - * Separator to use between options; defaults to '<br />'. - * @var string - */ - protected $_separator = '<br />'; - - /** - * Which values are translated already? - * @var array - */ - protected $_translated = array(); - - /** - * Retrieve separator - * - * @return mixed - */ - public function getSeparator() - { - return $this->_separator; - } - - /** - * Set separator - * - * @param mixed $separator - * @return self - */ - public function setSeparator($separator) - { - $this->_separator = $separator; - return $this; - } - - /** - * Retrieve options array - * - * @return array - */ - protected function _getMultiOptions() - { - if (null === $this->options || !is_array($this->options)) { - $this->options = array(); - } - - return $this->options; - } - - /** - * Add an option - * - * @param string $option - * @param string $value - * @return Zend_Form_Element_Multi - */ - public function addMultiOption($option, $value = '') - { - $option = (string) $option; - $this->_getMultiOptions(); - if (!$this->_translateOption($option, $value)) { - $this->options[$option] = $value; - } - - return $this; - } - - /** - * Add many options at once - * - * @param array $options - * @return Zend_Form_Element_Multi - */ - public function addMultiOptions(array $options) - { - foreach ($options as $option => $value) { - if (is_array($value) - && array_key_exists('key', $value) - && array_key_exists('value', $value) - ) { - $this->addMultiOption($value['key'], $value['value']); - } else { - $this->addMultiOption($option, $value); - } - } - return $this; - } - - /** - * Set all options at once (overwrites) - * - * @param array $options - * @return Zend_Form_Element_Multi - */ - public function setMultiOptions(array $options) - { - $this->clearMultiOptions(); - return $this->addMultiOptions($options); - } - - /** - * Retrieve single multi option - * - * @param string $option - * @return mixed - */ - public function getMultiOption($option) - { - $option = (string) $option; - $this->_getMultiOptions(); - if (isset($this->options[$option])) { - $this->_translateOption($option, $this->options[$option]); - return $this->options[$option]; - } - - return null; - } - - /** - * Retrieve options - * - * @return array - */ - public function getMultiOptions() - { - $this->_getMultiOptions(); - foreach ($this->options as $option => $value) { - $this->_translateOption($option, $value); - } - return $this->options; - } - - /** - * Remove a single multi option - * - * @param string $option - * @return bool - */ - public function removeMultiOption($option) - { - $option = (string) $option; - $this->_getMultiOptions(); - if (isset($this->options[$option])) { - unset($this->options[$option]); - if (isset($this->_translated[$option])) { - unset($this->_translated[$option]); - } - return true; - } - - return false; - } - - /** - * Clear all options - * - * @return Zend_Form_Element_Multi - */ - public function clearMultiOptions() - { - $this->options = array(); - $this->_translated = array(); - return $this; - } - - /** - * Set flag indicating whether or not to auto-register inArray validator - * - * @param bool $flag - * @return Zend_Form_Element_Multi - */ - public function setRegisterInArrayValidator($flag) - { - $this->_registerInArrayValidator = (bool) $flag; - return $this; - } - - /** - * Get status of auto-register inArray validator flag - * - * @return bool - */ - public function registerInArrayValidator() - { - return $this->_registerInArrayValidator; - } - - /** - * Is the value provided valid? - * - * Autoregisters InArray validator if necessary. - * - * @param string $value - * @param mixed $context - * @return bool - */ - public function isValid($value, $context = null) - { - if ($this->registerInArrayValidator()) { - if (!$this->getValidator('InArray')) { - $multiOptions = $this->getMultiOptions(); - $options = array(); - - foreach ($multiOptions as $opt_value => $opt_label) { - // optgroup instead of option label - if (is_array($opt_label)) { - $options = array_merge($options, array_keys($opt_label)); - } - else { - $options[] = $opt_value; - } - } - - $this->addValidator( - 'InArray', - true, - array($options) - ); - } - } - return parent::isValid($value, $context); - } - - /** - * Translate an option - * - * @param string $option - * @param string $value - * @return bool - */ - protected function _translateOption($option, $value) - { - if ($this->translatorIsDisabled()) { - return false; - } - - if (!isset($this->_translated[$option]) && !empty($value)) { - $this->options[$option] = $this->_translateValue($value); - if ($this->options[$option] === $value) { - return false; - } - $this->_translated[$option] = true; - return true; - } - - return false; - } - - /** - * Translate a multi option value - * - * @param string $value - * @return string - */ - protected function _translateValue($value) - { - if (is_array($value)) { - foreach ($value as $key => $val) { - $value[$key] = $this->_translateValue($val); - } - return $value; - } else { - if (null !== ($translator = $this->getTranslator())) { - return $translator->translate($value); - } - - return $value; - } - } -} diff --git a/libs/Zend/Form/Element/MultiCheckbox.php b/libs/Zend/Form/Element/MultiCheckbox.php deleted file mode 100644 index b5cec8a8bf7782df703870ac7a1255ab778fa81b..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/MultiCheckbox.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Multi */ -// require_once 'Zend/Form/Element/Multi.php'; - -/** - * MultiCheckbox form element - * - * Allows specifyinc a (multi-)dimensional associative array of values to use - * as labelled checkboxes; these will return an array of values for those - * checkboxes selected. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: MultiCheckbox.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_MultiCheckbox extends Zend_Form_Element_Multi -{ - /** - * Use formMultiCheckbox view helper by default - * @var string - */ - public $helper = 'formMultiCheckbox'; - - /** - * MultiCheckbox is an array of values by default - * @var bool - */ - protected $_isArray = true; -} diff --git a/libs/Zend/Form/Element/Multiselect.php b/libs/Zend/Form/Element/Multiselect.php deleted file mode 100644 index 83c417ef2688291969de4b2a60aaafdefe675691..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Multiselect.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Select */ -// require_once 'Zend/Form/Element/Select.php'; - -/** - * Multiselect form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Multiselect.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_Multiselect extends Zend_Form_Element_Select -{ - /** - * 'multiple' attribute - * @var string - */ - public $multiple = 'multiple'; - - /** - * Use formSelect view helper by default - * @var string - */ - public $helper = 'formSelect'; - - /** - * Multiselect is an array of values by default - * @var bool - */ - protected $_isArray = true; -} diff --git a/libs/Zend/Form/Element/Password.php b/libs/Zend/Form/Element/Password.php deleted file mode 100644 index 20b2c6af8056b03b85d4ec8e58e8d7af468e08f2..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Password.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** - * Password form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Password.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_Password extends Zend_Form_Element_Xhtml -{ - /** - * Use formPassword view helper by default - * @var string - */ - public $helper = 'formPassword'; - - /** - * Whether or not to render the password - * @var bool - */ - public $renderPassword = false; - - /** - * Set flag indicating whether or not to render the password - * @param bool $flag - * @return Zend_Form_Element_Password - */ - public function setRenderPassword($flag) - { - $this->renderPassword = (bool) $flag; - return $this; - } - - /** - * Get value of renderPassword flag - * - * @return bool - */ - public function renderPassword() - { - return $this->renderPassword; - } - - /** - * Override isValid() - * - * Ensure that validation error messages mask password value. - * - * @param string $value - * @param mixed $context - * @return bool - */ - public function isValid($value, $context = null) - { - foreach ($this->getValidators() as $validator) { - if ($validator instanceof Zend_Validate_Abstract) { - $validator->setObscureValue(true); - } - } - return parent::isValid($value, $context); - } -} diff --git a/libs/Zend/Form/Element/Radio.php b/libs/Zend/Form/Element/Radio.php deleted file mode 100644 index 85f523a2faaf79ed0b02481dae55d3378a93dbec..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Radio.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Multi */ -// require_once 'Zend/Form/Element/Multi.php'; - -/** - * Radio form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Radio.php 22329 2010-05-30 15:12:58Z bittarman $ - */ -class Zend_Form_Element_Radio extends Zend_Form_Element_Multi -{ - /** - * Use formRadio view helper by default - * @var string - */ - public $helper = 'formRadio'; - - /** - * Load default decorators - * - * Disables "for" attribute of label if label decorator enabled. - * - * @return void - */ - public function loadDefaultDecorators() - { - if ($this->loadDefaultDecoratorsIsDisabled()) { - return $this; - } - parent::loadDefaultDecorators(); - $this->addDecorator('Label', array('tag' => 'dt', - 'disableFor' => true)); - return $this; - } -} diff --git a/libs/Zend/Form/Element/Reset.php b/libs/Zend/Form/Element/Reset.php deleted file mode 100644 index 6d4bec4c96d06f39439338888b5444a3c1019f0c..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Reset.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Submit */ -// require_once 'Zend/Form/Element/Submit.php'; - -/** - * Reset form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Reset.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_Reset extends Zend_Form_Element_Submit -{ - /** - * Use formReset view helper by default - * @var string - */ - public $helper = 'formReset'; -} diff --git a/libs/Zend/Form/Element/Select.php b/libs/Zend/Form/Element/Select.php deleted file mode 100644 index 132e033a7a8c3b84e8f9c96fb693bd8304038723..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Select.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Multi */ -// require_once 'Zend/Form/Element/Multi.php'; - -/** - * Select.php form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Select.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_Select extends Zend_Form_Element_Multi -{ - /** - * Use formSelect view helper by default - * @var string - */ - public $helper = 'formSelect'; -} diff --git a/libs/Zend/Form/Element/Submit.php b/libs/Zend/Form/Element/Submit.php deleted file mode 100644 index 256b00ffb8cd0469aa805856d7eb1ae18127cf59..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Submit.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** - * Submit form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Submit.php 22329 2010-05-30 15:12:58Z bittarman $ - */ -class Zend_Form_Element_Submit extends Zend_Form_Element_Xhtml -{ - /** - * Default view helper to use - * @var string - */ - public $helper = 'formSubmit'; - - /** - * Constructor - * - * @param string|array|Zend_Config $spec Element name or configuration - * @param string|array|Zend_Config $options Element value or configuration - * @return void - */ - public function __construct($spec, $options = null) - { - if (is_string($spec) && ((null !== $options) && is_string($options))) { - $options = array('label' => $options); - } - - if (!isset($options['ignore'])) { - $options['ignore'] = true; - } - - parent::__construct($spec, $options); - } - - /** - * Return label - * - * If no label is present, returns the currently set name. - * - * If a translator is present, returns the translated label. - * - * @return string - */ - public function getLabel() - { - $value = parent::getLabel(); - - if (null === $value) { - $value = $this->getName(); - } - - if (null !== ($translator = $this->getTranslator())) { - return $translator->translate($value); - } - - return $value; - } - - /** - * Has this submit button been selected? - * - * @return bool - */ - public function isChecked() - { - $value = $this->getValue(); - - if (empty($value)) { - return false; - } - if ($value != $this->getLabel()) { - return false; - } - - return true; - } - - /** - * Default decorators - * - * Uses only 'Submit' and 'DtDdWrapper' decorators by default. - * - * @return void - */ - public function loadDefaultDecorators() - { - if ($this->loadDefaultDecoratorsIsDisabled()) { - return $this; - } - - $decorators = $this->getDecorators(); - if (empty($decorators)) { - $this->addDecorator('Tooltip') - ->addDecorator('ViewHelper') - ->addDecorator('DtDdWrapper'); - } - return $this; - } -} diff --git a/libs/Zend/Form/Element/Text.php b/libs/Zend/Form/Element/Text.php deleted file mode 100644 index fa30d44cf2ba81f89cc66ff971e5e912da001eaf..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Text.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** - * Text form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Text.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_Text extends Zend_Form_Element_Xhtml -{ - /** - * Default form view helper to use for rendering - * @var string - */ - public $helper = 'formText'; -} diff --git a/libs/Zend/Form/Element/Textarea.php b/libs/Zend/Form/Element/Textarea.php deleted file mode 100644 index 8dbce4553a328d941bdee1dfbac7139e3c1e52f2..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Textarea.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element_Xhtml */ -// require_once 'Zend/Form/Element/Xhtml.php'; - -/** - * Textarea form element - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Textarea.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -class Zend_Form_Element_Textarea extends Zend_Form_Element_Xhtml -{ - /** - * Use formTextarea view helper by default - * @var string - */ - public $helper = 'formTextarea'; -} diff --git a/libs/Zend/Form/Element/Xhtml.php b/libs/Zend/Form/Element/Xhtml.php deleted file mode 100644 index 24cf69303670cefedbf365012fb8fe0b439e7744..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Element/Xhtml.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form_Element */ -// require_once 'Zend/Form/Element.php'; - -/** - * Base element for XHTML elements - * - * @category Zend - * @package Zend_Form - * @subpackage Element - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Xhtml.php 20096 2010-01-06 02:05:09Z bkarwin $ - */ -abstract class Zend_Form_Element_Xhtml extends Zend_Form_Element -{ -} diff --git a/libs/Zend/Form/Exception.php b/libs/Zend/Form/Exception.php deleted file mode 100644 index 8ec65aa9b9d705cc9c90d628910a804a9fd17fc6..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/Exception.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @version $Id: Exception.php 20096 2010-01-06 02:05:09Z bkarwin $ - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Exception */ -// require_once 'Zend/Exception.php'; - -/** - * Exception for Zend_Form component. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ -class Zend_Form_Exception extends Zend_Exception -{ -} diff --git a/libs/Zend/Form/SubForm.php b/libs/Zend/Form/SubForm.php deleted file mode 100644 index dd20c0e06401f0a48946114eafbe31c5a5a92b3c..0000000000000000000000000000000000000000 --- a/libs/Zend/Form/SubForm.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -/** Zend_Form */ -// require_once 'Zend/Form.php'; - -/** - * Zend_Form_SubForm - * - * @category Zend - * @package Zend_Form - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: SubForm.php 22329 2010-05-30 15:12:58Z bittarman $ - */ -class Zend_Form_SubForm extends Zend_Form -{ - /** - * Whether or not form elements are members of an array - * @var bool - */ - protected $_isArray = true; - - /** - * Load the default decorators - * - * @return Zend_Form_SubForm - */ - public function loadDefaultDecorators() - { - if ($this->loadDefaultDecoratorsIsDisabled()) { - return $this; - } - - $decorators = $this->getDecorators(); - if (empty($decorators)) { - $this->addDecorator('FormElements') - ->addDecorator('HtmlTag', array('tag' => 'dl')) - ->addDecorator('Fieldset') - ->addDecorator('DtDdWrapper'); - } - return $this; - } -}