private function generateDepthAndLink() { global $site; $tmpUrlVars = array(); $tmpId = $this->getId(); $element = DbFrontend::getElement($tmpId); while ($element['parent'] !== null) { $tmpUrlVars[] = $element['url']; $element = DbFrontend::getElement($element['parent']); } $languageId = DbFrontend::languageByRootElement($element['id']); $urlVars = array(); for ($i = sizeof($tmpUrlVars) - 1; $i >= 0; $i--) { $urlVars[] = $tmpUrlVars[$i]; } $this->depth = sizeof($urlVars); switch ($this->type) { case 'subpage': $tmpChildren = $site->getZone($this->zoneName)->getElements($languageId, $this->id, 0, $limit = 1); if (sizeof($tmpChildren) == 1) { $this->link = $tmpChildren[0]->getLink(); } else { $this->link = $site->generateUrl($languageId, $this->zoneName, $urlVars); } //open current page if no subpages exist break; case 'redirect': if ($site->managementState()) { if (strpos($this->redirectUrl, BASE_URL) === 0) { if (strpos($this->redirectUrl, 'cms_action=manage') === false) { if (strpos($this->redirectUrl, '?') === false) { $this->redirectUrl .= '?cms_action=manage'; } else { $this->redirectUrl .= '&cms_action=manage'; } } } } $this->link = $this->redirectUrl; break; case 'inactive': case 'default': default: $this->link = $site->generateUrl($languageId, $this->zoneName, $urlVars); break; } $this->linkIgnoreRedirect = $site->generateUrl($languageId, $this->zoneName, $urlVars); }