/** * Get the data rows and return a renderer ready to be used * * @param string $action The action template string * @return HTML_Menu_TipRenderer|null The renderer or * null on errors * @internal */ protected function &_getRenderer($action) { if (is_null($this->_model)) { $this->startDataView() && $this->endView(); } if (is_null($this->_model)) { $fake_null = null; return $fake_null; } // Duplicate the model and update the URLs on the copy $model = $this->_model; $this->_updateModelUrl($model, $action); require_once 'HTML/Menu.php'; $menu = new HTML_Menu($model); empty($action) || $menu->forceCurrentUrl(TIP::getRequestUri()); $renderer =& TIP_Renderer::getMenu(); $menu->render($renderer, 'sitemap'); return $renderer; }
/** * Render this chronology in XHTML format * @return string The rendered html */ public function toHtml() { if (!$this->_render()) { return ''; } require_once 'HTML/Menu.php'; $model =& new HTML_Menu($this->_tree); $model->forceCurrentUrl(TIP::getRequestUri()); $renderer =& TIP_Renderer::getMenu($this->levels); $model->render($renderer, 'sitemap'); $html = $renderer->toHtml(); if ($renderer->isCurrentContainer()) { // If the current row is a container, don't index this page TIP_Application::setRobots(false, null); } return $html; }