/** * Construct a new Joppa request * @param string $baseUrl the base url of the request * @param joppa\model\Node $node The node of this request * @param string $controllerName the full name of the controller class (including namespace) * @param string $actionName the action method in the controller class * @param array $parameters an array containing the parameters for the action method * @return null */ public function __construct($baseUrl, Node $node, $controllerName, $actionName, array $parameters) { $basePath = $baseUrl . Request::QUERY_SEPARATOR . $node->getRoute(); parent::__construct($baseUrl, $basePath, $controllerName, $actionName, $parameters); $this->setNode($node); }
/** * Get the breadcrumbs of a node * @param joppa\model\Node $node * @param string $baseUrl base url for the node routes * @return zibo\library\html\Breadcrumbs */ public function getBreadcrumbsForNode(Node $node, $baseUrl) { $nodeTypeFacade = NodeTypeFacade::getInstance(); $urls = array($baseUrl . Request::QUERY_SEPARATOR . $node->getRoute() => $node->name); $parent = $node->getParentNode(); do { if ($nodeTypeFacade->isAvailableInFrontend($parent->type)) { $url = $baseUrl . Request::QUERY_SEPARATOR . $parent->getRoute(); $urls[$url] = $parent->name; } $parent = $parent->getParentNode(); } while ($parent); $urls = array_reverse($urls, true); $breadcrumbs = new Breadcrumbs(); foreach ($urls as $url => $name) { $breadcrumbs->addBreadcrumb($url, $name); } return $breadcrumbs; }