diff -r 000000000000 -r 4eba9c11703f web/Zend/Tag/Item.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/Zend/Tag/Item.php Mon Dec 13 18:29:26 2010 +0100 @@ -0,0 +1,220 @@ +toArray(); + } + + if (!is_array($options)) { + require_once 'Zend/Tag/Exception.php'; + throw new Zend_Tag_Exception('Invalid options provided to constructor'); + } + + $this->setOptions($options); + + if ($this->_title === null) { + require_once 'Zend/Tag/Exception.php'; + throw new Zend_Tag_Exception('Title was not set'); + } + + if ($this->_weight === null) { + require_once 'Zend/Tag/Exception.php'; + throw new Zend_Tag_Exception('Weight was not set'); + } + } + + /** + * Set options of the tag + * + * @param array $options + * @return Zend_Tag_Item + */ + public function setOptions(array $options) + { + foreach ($options as $key => $value) { + if (in_array(strtolower($key), $this->_skipOptions)) { + continue; + } + + $method = 'set' . $key; + if (method_exists($this, $method)) { + $this->$method($value); + } + } + + return $this; + } + + /** + * Defined by Zend_Tag_Taggable + * + * @return string + */ + public function getTitle() + { + return $this->_title; + } + + /** + * Set the title + * + * @param string $title + * @throws Zend_Tag_Exception When title is no string + * @return Zend_Tag_Item + */ + public function setTitle($title) + { + if (!is_string($title)) { + require_once 'Zend/Tag/Exception.php'; + throw new Zend_Tag_Exception('Title must be a string'); + } + + $this->_title = (string) $title; + return $this; + } + + /** + * Defined by Zend_Tag_Taggable + * + * @return float + */ + public function getWeight() + { + return $this->_weight; + } + + /** + * Set the weight + * + * @param float $weight + * @throws Zend_Tag_Exception When weight is not numeric + * @return Zend_Tag_Item + */ + public function setWeight($weight) + { + if (!is_numeric($weight)) { + require_once 'Zend/Tag/Exception.php'; + throw new Zend_Tag_Exception('Weight must be numeric'); + } + + $this->_weight = (float) $weight; + return $this; + } + + /** + * Set multiple params at once + * + * @param array $params + * @return Zend_Tag_Item + */ + public function setParams(array $params) + { + foreach ($params as $name => $value) { + $this->setParam($name, $value); + } + + return $this; + } + + /** + * Defined by Zend_Tag_Taggable + * + * @param string $name + * @param mixed $value + * @return Zend_Tag_Item + */ + public function setParam($name, $value) + { + $this->_params[$name] = $value; + return $this; + } + + /** + * Defined by Zend_Tag_Taggable + * + * @param string $name + * @return mixed + */ + public function getParam($name) + { + if (isset($this->_params[$name])) { + return $this->_params[$name]; + } + return null; + } +}