/** * @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; }
/** * Creates the form to edit / create a new navi-point * * @param string $strMode new || edit * @param class_admin_formgenerator|null $objForm * @return string * @permissions edit */ protected function actionNewNaviPoint($strMode = "new", class_admin_formgenerator $objForm = null) { $objPoint = new class_module_navigation_point(); if ($strMode == "edit") { //Load Point data $objPoint = new class_module_navigation_point($this->getSystemid()); } else { $objPoint->setSystemid($this->getSystemid()); } if ($objForm == null) { $objForm = $this->getPointAdminForm($objPoint, $strMode); } $objForm->addField(new class_formentry_hidden("", "mode"))->setStrValue($strMode); return $objForm->renderForm(class_link::getLinkAdminHref($this->getArrModule("modul"), "saveNaviPoint")); }
/** * 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; }