/** * Fetches all child-nodes (folders and pages) of the passed node. * Used by the tree-view in module-pages. * * @return string * @since 3.3.0 * @xml * @permissions view */ protected function actionGetChildNodes() { $arrReturn = array(); $arrPages = class_module_pages_folder::getPagesAndFolderList($this->getSystemid()); if (count($arrPages) > 0) { foreach ($arrPages as $objSingleEntry) { if ($objSingleEntry->rightView()) { /** @var class_module_pages_folder $objSingleEntry */ if ($objSingleEntry instanceof class_module_pages_folder) { $strLink = ""; if ($objSingleEntry->rightEdit()) { $strLink = class_link::getLinkAdminHref("pages", "list", "systemid=" . $objSingleEntry->getSystemid(), false); } $arrReturn[] = array("data" => array("title" => class_adminskin_helper::getAdminImage($objSingleEntry->getStrIcon()) . " " . $objSingleEntry->getStrDisplayName()), "state" => count(class_module_pages_folder::getPagesAndFolderList($objSingleEntry->getSystemid())) == 0 ? "" : "closed", "attr" => array("id" => $objSingleEntry->getSystemid(), "systemid" => $objSingleEntry->getSystemid(), "link" => $strLink, "isleaf" => count(class_module_pages_folder::getPagesAndFolderList($objSingleEntry->getSystemid())) == 0 ? true : false)); } /** @var class_module_pages_page $objSingleEntry */ if ($objSingleEntry instanceof class_module_pages_page) { $strTargetId = $objSingleEntry->getSystemid(); if ($objSingleEntry->getIntType() == class_module_pages_page::$INT_TYPE_ALIAS && class_module_pages_page::getPageByName($objSingleEntry->getStrAlias()) != null) { $strTargetId = class_module_pages_page::getPageByName($objSingleEntry->getStrAlias())->getSystemid(); } $strLink = ""; if ($objSingleEntry->getIntType() == class_module_pages_page::$INT_TYPE_ALIAS && class_objectfactory::getInstance()->getObject($strTargetId)->rightEdit()) { $strLink = class_link::getLinkAdminHref("pages_content", "list", "systemid=" . $strTargetId, false); } else { if ($objSingleEntry->getIntType() == class_module_pages_page::$INT_TYPE_PAGE && $objSingleEntry->rightEdit()) { $strLink = class_link::getLinkAdminHref("pages_content", "list", "systemid=" . $objSingleEntry->getSystemid(), false); } } $arrReturn[] = array("data" => array("title" => class_adminskin_helper::getAdminImage($objSingleEntry->getStrIcon()) . " " . $objSingleEntry->getStrDisplayName()), "state" => count(class_module_pages_folder::getPagesAndFolderList($objSingleEntry->getSystemid())) == 0 ? "" : "closed", "attr" => array("id" => $objSingleEntry->getSystemid(), "systemid" => $objSingleEntry->getSystemid(), "link" => $strLink, "type" => $objSingleEntry->getIntType(), "isleaf" => count(class_module_pages_folder::getPagesAndFolderList($objSingleEntry->getSystemid())) == 0 ? true : false)); } } } } class_response_object::getInstance()->setStrResponseType(class_http_responsetypes::STR_TYPE_JSON); return json_encode($arrReturn); }
public function testCombinedFolderAndPagesSort() { $objRootPage = new class_module_pages_page(); $objRootPage->setStrName("pagesSortTest2"); $objRootPage->updateObjectToDb(); $objSubPage1 = new class_module_pages_page(); $objSubPage1->setStrName("pagesSortTest_1"); $objSubPage1->updateObjectToDb($objRootPage->getSystemid()); $objSubFolder1 = new class_module_pages_folder(); $objSubFolder1->setStrName("subfolder1"); $objSubFolder1->updateObjectToDb($objRootPage); $objSubPage2 = new class_module_pages_page(); $objSubPage2->setStrName("pagesSortTest_2"); $objSubPage2->updateObjectToDb($objRootPage->getSystemid()); $arrNodes = class_module_pages_folder::getPagesAndFolderList($objRootPage->getSystemid()); for ($intI = 1; $intI <= count($arrNodes); $intI++) { $this->assertEquals($intI, $arrNodes[$intI - 1]->getIntSort()); } $this->flushDBCache(); $objSubPage2->setAbsolutePosition(2); $this->flushDBCache(); $arrNodes = class_module_pages_folder::getPagesAndFolderList($objRootPage->getSystemid()); for ($intI = 1; $intI <= count($arrNodes); $intI++) { $this->assertEquals($intI, $arrNodes[$intI - 1]->getIntSort()); } $this->assertEquals($arrNodes[0]->getSystemid(), $objSubPage1->getSystemid()); $this->assertEquals($arrNodes[1]->getSystemid(), $objSubPage2->getSystemid()); $this->assertEquals($arrNodes[2]->getSystemid(), $objSubFolder1->getSystemid()); $objRootPage->deleteObjectFromDatabase(); }
private function validateSingleLevelSort($strParentId) { $arrNodes = class_module_pages_folder::getPagesAndFolderList($strParentId); for ($intI = 1; $intI <= count($arrNodes); $intI++) { $this->validateSingleLevelSort($arrNodes[$intI - 1]->getSystemid()); $this->assertEquals($intI, $arrNodes[$intI - 1]->getIntSort()); } }