/ */ class P4Cms_Navigation_Page_Dynamic extends Zend_Navigation_Page { /** * Dynamic menu item handler. * * @var string|null */ protected $_handler; /** * Returns the id of the dynamic handler associated with this item. * * @return string|null id of the associated dynamic handler or null */ public function getHandler() { return $this->_handler; } /** * Set the id of the dynamic handler associated with this item. * * @param string|null $id id of the associated dynamic handler or null for none * @return P4Cms_Navigation_Page_Dynamic to maintain a fluent interface */ public function setHandler($id) { $this->_handler = $id; return $this; } /** * Implement getHref as it is abstract in parent. * We don't actually use it so returns "" * * @return string the page's href */ public function getHref() { return ""; } /** * Returns an array representation of the page * * @return array associative array containing all page properties */ public function toArray() { return array_merge( parent::toArray(), array( 'handler' => $this->getHandler(), 'label' => $this->_label ) ); } /** * If we have a handler set, and no label has been set on * this page, returns the handlers label. * Otherwise returns the title as per normal. * * @return string|null page title or null */ public function getLabel() { if ($this->_label || !$this->getHandler()) { return $this->_label; } return P4Cms_Navigation_DynamicHandler::fetch($this->getHandler())->getLabel(); } }