/** * Returns an escaped absolute URL for the given page * * @param \Zend\Navigation\AbstractPage $page page to get URL from * @return string */ public function url(AbstractPage $page) { $href = $page->getHref(); if (!isset($href[0])) { // no href return ''; } elseif ($href[0] == '/') { // href is relative to root; use serverUrl helper $url = $this->getServerUrl() . $href; } elseif (preg_match('/^[a-z]+:/im', (string) $href)) { // scheme is given in href; assume absolute URL already $url = (string) $href; } else { throw new \RuntimeException("Relative url cannot be rendered."); } return $this->_xmlEscape($url); }
/** * @param array|Config $page * @return AbstractPage */ public function addPage($page) { if (is_array($page) || $page instanceof Config) { if (isset($page['route']) && !isset($page['type'])) { $page['type'] = "Bundle\\ZendNavigationBundle\\Page\\RouterPage"; } else { if (isset($page['uri']) && !isset($page['uri'])) { $page['type'] = "Bundle\\ZendNavigationBundle\\Page\\UriPage"; } } $page = AbstractPage::factory($page); } parent::addPage($page); return $this; }
public function toArray() { return array_merge(parent::toArray(), array('route' => $this->route, 'params' => $this->params)); }