/**
  * 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);
 }
Exemplo n.º 2
0
 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();
 }
Exemplo n.º 3
0
 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());
     }
 }