private function processSinglePoint(class_module_navigation_point $objPoint) { $strReturn = ""; $bitError = false; $strReturn .= $objPoint->getStrName() . ": "; if ($objPoint->getStrPageI() == "" && $objPoint->getStrPageE() == "") { $strReturn .= $this->getLang("systemtask_navigationcheck_invalidEmpty"); $bitError = true; } else { if ($objPoint->getStrPageI() != "" && $objPoint->getStrPageE() != "") { $strReturn .= $this->getLang("systemtask_navigationcheck_invalidBoth"); $bitError = true; } else { if ($objPoint->getStrPageI() != "" && $objPoint->getStrPageE() == "") { //try to load internal page and check if it exists $objPage = class_module_pages_page::getPageByName($objPoint->getStrPageI()); if ($objPage == null) { $strReturn .= $this->getLang("systemtask_navigationcheck_invalidInternal") . " " . $objPoint->getStrPageI() . ")"; $bitError = true; } else { $strReturn .= $this->getLang("systemtask_navigationcheck_valid") . " " . $objPoint->getStrPageI() . $objPoint->getStrPageE() . ")"; } } else { $strReturn .= $this->getLang("systemtask_navigationcheck_valid") . " " . $objPoint->getStrPageI() . $objPoint->getStrPageE() . ")"; } } } if ($bitError) { $strReturn = "<b>" . $strReturn . "</b>"; } return $strReturn . "<br />"; }
/** * Fetches all child-nodes of the passed node. * Used by the tree-view in module-navigation admin view. * * @return string * @since 3.3.0 * @xml * @permissions view */ protected function actionGetChildNodes() { $arrNavigations = class_module_navigation_point::getNaviLayer($this->getSystemid()); $arrReturn = array(); if (count($arrNavigations) > 0) { /** @var class_module_navigation_point $objSinglePoint */ foreach ($arrNavigations as $objSinglePoint) { if ($objSinglePoint->rightView()) { $arrReturn[] = array("data" => array("title" => class_adminskin_helper::getAdminImage($objSinglePoint->getStrIcon()) . " " . $objSinglePoint->getStrDisplayName()), "state" => count(class_module_navigation_point::getNaviLayer($objSinglePoint->getSystemid())) == 0 ? "" : "closed", "attr" => array("id" => $objSinglePoint->getSystemid(), "systemid" => $objSinglePoint->getSystemid(), "link" => class_link::getLinkAdminHref("navigation", "list", "&systemid=" . $objSinglePoint->getSystemid(), false))); } } } $objCurNode = class_objectfactory::getInstance()->getObject($this->getSystemid()); if ($objCurNode instanceof class_module_navigation_tree) { $arrReturn = array("data" => array("title" => class_adminskin_helper::getAdminImage($objCurNode->getStrIcon()) . " " . $objCurNode->getStrDisplayName()), "state" => "", "attr" => array("id" => $objCurNode->getSystemid(), "systemid" => $objCurNode->getSystemid(), "link" => ""), "children" => $arrReturn); } class_response_object::getInstance()->setStrResponseType(class_http_responsetypes::STR_TYPE_JSON); return json_encode($arrReturn); }
/** * Creates the html-code for one single navigationpoint. The check if the user has the needed rights should have been made before! * * @param class_module_navigation_point $objPointData * @param bool $bitActive * @param int $intLevel * @param bool $bitFirst * @param bool $bitLast * * @return string */ private function createNavigationPoint(class_module_navigation_point $objPointData, $bitActive, $intLevel, $bitFirst = false, $bitLast = false) { //and start to create a link and all needed stuff $arrTemp = array(); $arrTemp["page_intern"] = $objPointData->getStrPageI(); $arrTemp["page_extern"] = $objPointData->getStrPageE(); $arrTemp["systemid"] = $objPointData->getSystemid(); $arrTemp["text"] = $objPointData->getStrName(); $arrTemp["link"] = getLinkPortal($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrTarget(), $arrTemp["text"], $objPointData->getStrLinkAction(), "", $objPointData->getStrLinkSystemid()); $arrTemp["href"] = getLinkPortalHref($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrLinkAction(), "", $objPointData->getStrLinkSystemid()); $arrTemp["target"] = $objPointData->getStrTarget(); if ($objPointData->getStrImage() != "") { $arrTemp["image"] = getLinkPortal($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrTarget(), "<img src=\"" . _webpath_ . $objPointData->getStrImage() . "\" border=\"0\" alt=\"" . $arrTemp["text"] . "\"/>", $objPointData->getStrLinkAction(), "", $objPointData->getStrSystemid()); $arrTemp["image_src"] = $objPointData->getStrImage(); } if ($objPointData->getStrPageI() != "") { $objPage = class_module_pages_page::getPageByName($objPointData->getStrPageI()); if ($objPage != null && $objPage->getIntLmTime() != "") { $arrTemp["lastmodified"] = strftime("%Y-%m-%dT%H:%M:%S", $objPage->getIntLmTime()); } } //Load the correct template $strSection = "level_" . $intLevel . "_" . ($bitActive ? "active" : "inactive") . ($bitFirst ? "_first" : "") . ($bitLast ? "_last" : ""); $strTemplateId = $this->objTemplate->readTemplate("/module_navigation/" . $this->arrElementData["navigation_template"], $strSection); //Fill the template $strReturn = $this->objTemplate->fillTemplate($arrTemp, $strTemplateId, false); //BUT: if we received an empty string and are in the situation of a first or last point, then maybe the template // didn't supply a first / last section. so we'll try to load a regular point if ($strReturn == "" && ($bitFirst || $bitLast)) { $strSection = "level_" . $intLevel . "_" . ($bitActive ? "active" : "inactive"); $strTemplateId = $this->objTemplate->readTemplate("/module_navigation/" . $this->arrElementData["navigation_template"], $strSection); //And fill it once more $strReturn = $this->objTemplate->fillTemplate($arrTemp, $strTemplateId, false); } return $strReturn; }
/** * Does the hard work: installs the module and registers needed constants * * @return string */ public function install() { //search the master page $objMaster = class_module_pages_page::getPageByName("master"); if ($objMaster != null) { $this->strMasterID = $objMaster->getSystemid(); } //fetch navifolder-id $strNaviFolderId = ""; $arrFolder = class_module_pages_folder::getFolderList(); foreach ($arrFolder as $objOneFolder) { if ($objOneFolder->getStrName() == "mainnavigation") { $strNaviFolderId = $objOneFolder->getSystemid(); } } $strReturn = ""; $strReturn .= "Creating new mainnavigation-tree\n"; $objNaviTree = new class_module_navigation_tree(); $objNaviTree->setStrName("mainnavigation"); $objNaviTree->setStrFolderId($strNaviFolderId); $objNaviTree->updateObjectToDb(); $strTreeId = $objNaviTree->getSystemid(); $strReturn .= "ID of new navigation-tree: " . $strTreeId . "\n"; $strReturn .= "Creating new portalnavigation-tree\n"; $objNaviTree = new class_module_navigation_tree(); $objNaviTree->setStrName("portalnavigation"); $objNaviTree->updateObjectToDb(); $strTreePortalId = $objNaviTree->getSystemid(); $strReturn .= "ID of new navigation-tree: " . $strTreePortalId . "\n"; $strReturn .= "Creating navigation points\n"; $objNaviPoint = new class_module_navigation_point(); $objNaviPoint->setStrName("Home"); $objNaviPoint->setStrPageI("index"); $objNaviPoint->updateObjectToDb($strTreePortalId); if ($this->strMasterID != "") { $strReturn .= "Adding mainnavigation to master page\n"; $strReturn .= "ID of master page: " . $this->strMasterID . "\n"; if (class_module_pages_element::getElement("navigation") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("mastermainnavi_navigation"); $objPagelement->setStrName("mastermainnavi"); $objPagelement->setStrElement("navigation"); $objPagelement->updateObjectToDb($this->strMasterID); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_navigation\n SET navigation_id= ?,\n navigation_template = ?\n WHERE content_id = ?"; if ($this->objDB->_pQuery($strQuery, array($strTreeId, "mainnavi.tpl", $strElementId))) { $strReturn .= "Navigation element created.\n"; } else { $strReturn .= "Error creating navigation element.\n"; } } $strReturn .= "Adding portalnavigation to master page\n"; $strReturn .= "ID of master page: " . $this->strMasterID . "\n"; if (class_module_pages_element::getElement("navigation") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("masterportalnavi_navigation"); $objPagelement->setStrName("masterportalnavi"); $objPagelement->setStrElement("navigation"); $objPagelement->updateObjectToDb($this->strMasterID); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_navigation\n SET navigation_id= ?,\n navigation_template = ?\n WHERE content_id = ?"; if ($this->objDB->_pQuery($strQuery, array($strTreePortalId, "portalnavi.tpl", $strElementId))) { $strReturn .= "Navigation element created.\n"; } else { $strReturn .= "Error creating navigation element.\n"; } } $strReturn .= "Adding pathnavigation to master page\n"; $strReturn .= "ID of master page: " . $this->strMasterID . "\n"; if (class_module_pages_element::getElement("navigation") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("masterpathnavi_navigation"); $objPagelement->setStrName("masterpathnavi"); $objPagelement->setStrElement("navigation"); $objPagelement->updateObjectToDb($this->strMasterID); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_navigation\n SET navigation_id= ?,\n navigation_template = ?\n WHERE content_id = ?"; if ($this->objDB->_pQuery($strQuery, array($strTreeId, "breadcrumbnavi.tpl", $strElementId))) { $strReturn .= "Navigation element created.\n"; } else { $strReturn .= "Error creating navigation element.\n"; } } } $strReturn .= "Creating simple sitemap...\n"; $objPage = new class_module_pages_page(); $objPage->setStrName("sitemap"); $objPage->setStrBrowsername("Sitemap"); $objPage->setStrTemplate("standard.tpl"); $objPage->updateObjectToDb(); $strSitemapId = $objPage->getSystemid(); $strReturn .= "ID of new page: " . $strSitemapId . "\n"; $strReturn .= "Adding sitemap to new page\n"; if (class_module_pages_element::getElement("navigation") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("special_news|guestbook|downloads|gallery|galleryRandom|form|tellafriend|maps|search|navigation|faqs|postacomment|votings|userlist|rssfeed|tagto|portallogin|portalregistration|portalupload|directorybrowser|lastmodified|tagcloud|downloadstoplist|flash|mediaplayer|tags|eventmanager"); $objPagelement->setStrName("special"); $objPagelement->setStrElement("navigation"); $objPagelement->updateObjectToDb($strSitemapId); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_navigation\n SET navigation_id=?,\n navigation_template = ?\n WHERE content_id = ?"; if ($this->objDB->_pQuery($strQuery, array($strTreeId, "sitemap.tpl", $strElementId))) { $strReturn .= "Sitemapelement created.\n"; } else { $strReturn .= "Error creating sitemapelement.\n"; } } $strReturn .= "Adding headline-element to new page\n"; if (class_module_pages_element::getElement("row") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("headline_row"); $objPagelement->setStrName("headline"); $objPagelement->setStrElement("row"); $objPagelement->updateObjectToDb($strSitemapId); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n SET paragraph_title = ?\n WHERE content_id = ? "; if ($this->objDB->_pQuery($strQuery, array("Sitemap", $strElementId))) { $strReturn .= "Headline element created.\n"; } else { $strReturn .= "Error creating headline element.\n"; } } $strReturn .= "Creating navigation points\n"; $objNaviPoint = new class_module_navigation_point(); $objNaviPoint->setStrName("Sitemap"); $objNaviPoint->setStrPageI("sitemap"); $objNaviPoint->updateObjectToDb($strTreePortalId); $strReturn .= "ID of new navigation point " . $objNaviPoint->getSystemid() . ".\n"; $objNaviPoint = new class_module_navigation_point(); if ($this->strContentLanguage == "de") { $objNaviPoint->setStrName("Impressum"); } else { $objNaviPoint->setStrName("Imprint"); } $objNaviPoint->setStrPageI("imprint"); $objNaviPoint->updateObjectToDb($strTreePortalId); $strReturn .= "ID of new navigation point " . $objNaviPoint->getSystemid() . ".\n"; return $strReturn; }
/** * @param string $strParentId * * @return array */ private function getNavigationNodesHelper($strParentId) { $arrFoldersDB = class_module_mediamanager_file::loadFilesDB($strParentId, class_module_mediamanager_file::$INT_TYPE_FOLDER, true); $arrReturn = array(); foreach ($arrFoldersDB as $objOneFolder) { $objPoint = new class_module_navigation_point(); $objPoint->setIntRecordStatus(1); $objPoint->setStrName($objOneFolder->getStrName()); $objPoint->setStrPageI($this->getPagename()); $objPoint->setSystemid($objOneFolder->getSystemid()); $objPoint->setStrLinkSystemid($objOneFolder->getSystemid()); $objPoint->setStrLinkAction("mediaFolder"); $objPoint->setBitIsForeignNode(true); $arrTemp = array("node" => $objPoint, "subnodes" => $this->getNavigationNodesHelper($objOneFolder->getSystemid())); $arrReturn[] = $arrTemp; } return $arrReturn; }
/** * Loads the level of pages and/or folders stored under a single systemid. * Transforms a page- or a folder-node into a navigation-node. * This node is used for portal-actions only, so there's no way to edit the node. * * @param string $strSourceId * * @return class_module_navigation_point[]|array * @since 3.4 */ private static function loadPageLevelToNavigationNodes($strSourceId) { $arrPages = class_module_pages_page::getObjectList($strSourceId); $arrReturn = array(); //transform the sublevel foreach ($arrPages as $objOneEntry) { //validate status if ($objOneEntry->getIntRecordStatus() == 0 || !$objOneEntry->rightView()) { continue; } $objLanguage = new class_module_languages_language(); if ($objOneEntry instanceof class_module_pages_page) { //validate if the page to be linked has a template assigned and at least a single element created if ($objOneEntry->getIntType() == class_module_pages_page::$INT_TYPE_ALIAS || $objOneEntry->getStrTemplate() != "" && count(class_module_pages_pageelement::getPlainElementsOnPage($objOneEntry->getSystemid(), true, $objLanguage->getStrPortalLanguage())) > 0) { $objPoint = new class_module_navigation_point(); $objPoint->setStrName($objOneEntry->getStrBrowsername() != "" ? $objOneEntry->getStrBrowsername() : $objOneEntry->getStrName()); $objPoint->setIntRecordStatus(1); //if in alias mode, then check what type of target is requested if ($objOneEntry->getIntType() == class_module_pages_page::$INT_TYPE_ALIAS) { $strAlias = uniStrtolower($objOneEntry->getStrAlias()); if (uniStrpos($strAlias, "http") !== false) { $objPoint->setStrPageE($objOneEntry->getStrAlias()); } else { $objPoint->setStrPageI($objOneEntry->getStrAlias()); } $objPoint->setStrTarget($objOneEntry->getStrTarget()); } else { $objPoint->setStrPageI($objOneEntry->getStrName()); } $objPoint->setSystemid($objOneEntry->getSystemid()); $arrReturn[] = $objPoint; } } } //merge with elements on the page - if given /** @var $objInstance class_module_pages_page */ $objInstance = class_objectfactory::getInstance()->getObject($strSourceId); if ($objInstance instanceof class_module_pages_page) { if ($objInstance->getIntType() != class_module_pages_page::$INT_TYPE_ALIAS) { $arrReturn = array_merge($arrReturn, self::getAdditionalEntriesForPage($objInstance)); } //else // $arrReturn = array_merge($arrReturn, self::getAdditionalEntriesForPage(class_module_pages_page::getPageByName($objInstance->getStrAlias()))); } return $arrReturn; }
/** * Loads a singe level of nodes, internal recursion helper * * @param string $strParentNode * * @return array */ private function loadSingleLevel($strParentNode) { $arrReturn = array(); $arrCurLevel = class_module_navigation_point::getDynamicNaviLayer($strParentNode); if (isset($arrCurLevel["node"]) && isset($arrCurLevel["subnodes"])) { //switch between added nodes and "real" nodes $arrTemp = array(); $arrTemp["node"] = $arrCurLevel["node"]; $arrTemp["subnodes"] = $arrCurLevel["subnodes"]; $arrReturn[] = $arrCurLevel; } /** @var class_module_navigation_point $objOneNode */ foreach ($arrCurLevel as $strKey => $objOneNode) { if ($strKey !== "node" && $strKey !== "subnodes") { if ($objOneNode->getIntRecordStatus() == 1 && $objOneNode->rightView()) { $arrTemp = array(); $arrTemp["node"] = $objOneNode; $arrTemp["subnodes"] = $this->loadSingleLevel($objOneNode->getSystemid()); $arrReturn[] = $arrTemp; } } } return $arrReturn; }
/** * Does the hard work: installs the module and registers needed constants */ public function install() { $strReturn = ""; //fetch navifolder-id //navigations installed? $objModule = null; try { $objModule = class_module_system_module::getModuleByName("pages", true); } catch (class_exception $objException) { $objModule = null; } if ($objModule != null) { $strSystemFolderId = ""; $arrFolder = class_module_pages_folder::getFolderList(); foreach ($arrFolder as $objOneFolder) { if ($objOneFolder->getStrName() == "_system") { $strSystemFolderId = $objOneFolder->getSystemid(); } } //search the master page $objMaster = class_module_pages_page::getPageByName("master"); if ($objMaster != null) { $this->strMasterID = $objMaster->getSystemid(); } $strReturn .= "Adding search-element to master page\n"; if ($this->strMasterID != "" && class_module_pages_element::getElement("search") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("mastersearch_search"); $objPagelement->setStrName("mastersearch"); $objPagelement->setStrElement("search"); $objPagelement->updateObjectToDb($this->strMasterID); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_search\n SET search_template = ?,\n search_amount = ?,\n search_page = ?\n WHERE content_id = ?"; if ($this->objDB->_pQuery($strQuery, array("search_ajax_small.tpl", 0, "search", $strElementId))) { $strReturn .= "Search element created.\n"; } else { $strReturn .= "Error creating search element.\n"; } } $strReturn .= "Creating search page\n"; $objPage = new class_module_pages_page(); $objPage->setStrName("search"); if ($this->strContentLanguage == "de") { $objPage->setStrBrowsername("Suchergebnisse"); } else { $objPage->setStrBrowsername("Search results"); } $objPage->setStrTemplate("standard.tpl"); $objPage->updateObjectToDb($strSystemFolderId); $strSearchresultsId = $objPage->getSystemid(); $strReturn .= "ID of new page: " . $strSearchresultsId . "\n"; $strReturn .= "Adding search-element to new page\n"; if (class_module_pages_element::getElement("search") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("special_news|guestbook|downloads|gallery|galleryRandom|form|tellafriend|maps|search|navigation|faqs|postacomment|votings|userlist|rssfeed|tagto|portallogin|portalregistration|portalupload|directorybrowser|lastmodified|tagcloud|downloadstoplist|flash|mediaplayer|tags|eventmanager"); $objPagelement->setStrName("special"); $objPagelement->setStrElement("search"); $objPagelement->updateObjectToDb($strSearchresultsId); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_search\n SET search_template = ?,\n search_amount = ?,\n search_page = ?\n WHERE content_id = ?"; if ($this->objDB->_pQuery($strQuery, array("search_ajax.tpl", 0, "", $strElementId))) { $strReturn .= "Search element created.\n"; } else { $strReturn .= "Error creating search element.\n"; } } $strReturn .= "Adding headline-element to new page\n"; if (class_module_pages_element::getElement("row") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("headline_row"); $objPagelement->setStrName("headline"); $objPagelement->setStrElement("row"); $objPagelement->updateObjectToDb($strSearchresultsId); $strElementId = $objPagelement->getSystemid(); $arrParams = array(); if ($this->strContentLanguage == "de") { $arrParams = array("Suchergebnisse", $strElementId); } else { $arrParams = array("Search results", $strElementId); } $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n SET paragraph_title = ?\n WHERE content_id = ?"; if ($this->objDB->_pQuery($strQuery, $arrParams)) { $strReturn .= "Headline element created.\n"; } else { $strReturn .= "Error creating headline element.\n"; } } } $strReturn .= "Creating navigation point.\n"; //navigations installed? $objModule = null; try { $objModule = class_module_system_module::getModuleByName("navigation", true); } catch (class_exception $objException) { $objModule = null; } if ($objModule != null) { $objNavi = class_module_navigation_tree::getNavigationByName("portalnavigation"); $strTreeId = $objNavi->getSystemid(); $objNaviPoint = new class_module_navigation_point(); if ($this->strContentLanguage == "de") { $objNaviPoint->setStrName("Suche"); } else { $objNaviPoint->setStrName("Search"); } $objNaviPoint->setStrPageI("search"); $objNaviPoint->updateObjectToDb($strTreeId); $strReturn .= "ID of new navigation point: " . $objNaviPoint->getSystemid() . "\n"; } return $strReturn; }