Exemplo n.º 1
0
 public function test()
 {
     $objDB = class_carrier::getInstance()->getObjDB();
     echo "testing module_pages\n";
     //pages at startup:
     $intPagesAtStartup = count(class_module_pages_folder::getPagesInFolder(class_module_system_module::getModuleByName("pages")->getSystemid()));
     $objDB->flushQueryCache();
     echo "\tcreate a new folder...\n";
     $objFolder = new class_module_pages_folder();
     $objFolder->setStrName("autotest");
     $objFolder->updateObjectToDb(class_module_system_module::getModuleByName("pages")->getSystemid());
     $strTestFolderID = $objFolder->getSystemid();
     echo "\tcreate 10 folders using the model...\n";
     $arrFoldersCreated = array();
     for ($intI = 0; $intI < 10; $intI++) {
         $objFolder = new class_module_pages_folder();
         $objFolder->setStrName("testfolder_" . $intI);
         $objFolder->updateObjectToDb($strTestFolderID);
         $strFolderID = $objFolder->getSystemid();
         $arrFoldersCreated[] = $strFolderID;
         $objFolder = new class_module_pages_folder($strFolderID);
         $this->assertEquals($objFolder->getStrName(), "testfolder_" . $intI, __FILE__ . " checkNameOfFolderCreated");
         $this->assertEquals($objFolder->getPrevId(), $strTestFolderID, __FILE__ . " checkPrevIDOfFolderCreated");
     }
     $arrFoldersAtLevel = class_module_pages_folder::getFolderList($strTestFolderID);
     $this->assertEquals(count($arrFoldersAtLevel), 10, __FILE__ . " checkNrOfFoldersCreatedByModel");
     echo "\tcreate 10 pages on root level using the model...\n";
     $arrPagesCreated = array();
     for ($intI = 0; $intI < 10; $intI++) {
         $objPages = new class_module_pages_page();
         $objPages->setStrName("autotest_" . $intI);
         $objPages->setStrTemplate("standard.tpl");
         $objPages->updateObjectToDb();
         $strPageID = $objPages->getSystemid();
         $arrPagesCreated[] = $strPageID;
         $objPage = new class_module_pages_page($strPageID);
         $this->assertEquals($objPage->getStrName(), "autotest_" . $intI, __FILE__ . " checkNameOfPageCreated");
         $this->assertEquals($objPage->getStrTemplate(), "standard.tpl", __FILE__ . " checkTemplateOfPageCreated");
     }
     $arrPagesAtLevel = class_module_pages_folder::getPagesInFolder(class_module_system_module::getModuleByName("pages")->getSystemid());
     $this->assertEquals(count($arrPagesAtLevel), 10 + $intPagesAtStartup, __FILE__ . " checkNrOfPagesCreatedByModel");
     echo "\tdeleting pages created...\n";
     foreach ($arrPagesCreated as $strOnePageID) {
         $objDelPage = new class_module_pages_page($strOnePageID);
         $objDelPage->deleteObjectFromDatabase();
         $objDB->flushQueryCache();
     }
     echo "\tcheck number of pages installed...\n";
     $arrPagesAtLevel = class_module_pages_folder::getPagesInFolder(class_module_system_module::getModuleByName("pages")->getSystemid());
     $this->assertEquals(count($arrPagesAtLevel), $intPagesAtStartup, __FILE__ . " checkNrOfPagesAtLevel");
     echo "\tdeleting folders created...\n";
     foreach ($arrFoldersCreated as $strOneFolderID) {
         $objFolder = new class_module_pages_folder($strOneFolderID);
         $objFolder->deleteObjectFromDatabase();
         $objDB->flushQueryCache();
     }
     echo "\tcheck number of folders installed...\n";
     $arrFoldersAtLevel = class_module_pages_folder::getFolderList($strTestFolderID);
     $this->assertEquals(count($arrFoldersAtLevel), 0, __FILE__ . " checkNrOfFoldersAtLevel");
     echo "\tdeleting folder...\n";
     $objFolder = new class_module_pages_folder($strTestFolderID);
     $objFolder->deleteObjectFromDatabase();
 }
 /**
  * Returns a list of folders in the pages-database
  *
  * @return String
  * @permissions view
  * @autoTestable
  */
 protected function actionPagesFolderBrowser()
 {
     $strReturn = "";
     $intCounter = 1;
     $this->setArrModuleEntry("template", "/folderview.tpl");
     if ($this->getParam("CKEditorFuncNum") != "") {
         $strReturn .= "<script type=\"text/javascript\">window.opener.KAJONA.admin.folderview.selectCallbackCKEditorFuncNum = " . (int) $this->getParam("CKEditorFuncNum") . ";</script>";
     }
     //param init
     $bitPages = $this->getParam("pages") != "" ? true : false;
     $bitPageAliases = $this->getParam("pagealiases") != "" ? true : false;
     $bitPageelements = $this->getParam("elements") == "false" ? false : true;
     $bitFolder = $this->getParam("folder") != "" ? true : false;
     $strSystemid = $this->getSystemid() != "" ? $this->getSystemid() : class_module_system_module::getModuleByName("pages")->getSystemid();
     $strElement = $this->getParam("form_element") != "" ? $this->getParam("form_element") : "ordner_name";
     $strPageid = $this->getParam("pageid") != "" ? $this->getParam("pageid") : "0";
     $strLinkAddon = "" . ($bitPages ? "&pages=1" : "") . ($bitFolder ? "&folder=1" : "") . ($this->getParam("bit_link") != "" ? "&bit_link=1" : "") . (!$bitPageelements ? "&elements=false" : "") . ($bitPageAliases ? "&pagealiases=1" : "");
     $arrFolder = class_module_pages_folder::getFolderList($strSystemid);
     $objFolder = new class_module_pages_folder($strSystemid);
     $strLevelUp = "";
     if (validateSystemid($strSystemid) && $strSystemid != $this->getObjModule()->getSystemid()) {
         $strLevelUp = $objFolder->getPrevId();
     }
     //but: when browsing pages the current level should be kept
     if ($strPageid != "0") {
         $strLevelUp = $strSystemid;
     }
     $strReturn .= $this->objToolkit->formHeader("");
     $strAction = $this->objToolkit->listButton("<a href=\"#\" title=\"" . $this->getLang("select_page") . "\" rel=\"tooltip\" onclick=\"KAJONA.admin.folderview.selectCallback([['" . $strElement . "', '" . _indexpath_ . "?page='+\$('#quickselect').val()]]);\">" . class_adminskin_helper::getAdminImage("icon_accept") . "</a>");
     $strReturn .= $this->objToolkit->formInputPageSelector("quickselect", $this->getLang("folderview_quickselect"), "", "", false, false, $strAction);
     $strReturn .= $this->objToolkit->formClose(false);
     $strReturn .= $this->objToolkit->listHeader();
     //Folder to jump one level up
     if (!$bitPages || $strLevelUp != "" || $bitFolder) {
         $strAction = $this->objToolkit->listButton($strSystemid != "0" && $strLevelUp != "" || $strPageid != "0" ? class_link::getLinkAdmin($this->getArrModule("modul"), "pagesFolderBrowser", "&systemid=" . $strLevelUp . $strLinkAddon . "&form_element=" . $strElement . ($this->getParam("bit_link") != "" ? "&bit_link=1" : ""), $this->getLang("commons_one_level_up"), $this->getLang("commons_one_level_up"), "icon_folderActionLevelup") : " ");
         if ($strSystemid == $this->getObjModule()->getSystemid() && (!$bitPages || $bitFolder)) {
             $strAction .= $this->objToolkit->listButton("<a href=\"#\" title=\"" . $this->getLang("commons_accept") . "\" rel=\"tooltip\" onclick=\"KAJONA.admin.folderview.selectCallback([['" . $strElement . "_id', '" . $this->getObjModule()->getSystemid() . "'], ['" . $strElement . "', '']]);\">" . class_adminskin_helper::getAdminImage("icon_accept"));
         }
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), "..", getImageAdmin("icon_folderOpen"), $strAction, $intCounter++);
     }
     if (count($arrFolder) > 0 && $strPageid == "0") {
         foreach ($arrFolder as $objSingleFolder) {
             if ($bitPages && !$bitFolder) {
                 $strAction = $this->objToolkit->listButton(class_link::getLinkAdmin($this->getArrModule("modul"), "pagesFolderBrowser", "&systemid=" . $objSingleFolder->getSystemid() . "&form_element=" . $strElement . $strLinkAddon, $this->getLang("pages_ordner_oeffnen"), $this->getLang("pages_ordner_oeffnen"), "icon_folderActionOpen"));
                 $strReturn .= $this->objToolkit->simpleAdminList($objSingleFolder, $strAction, $intCounter++);
             } else {
                 $strAction = $this->objToolkit->listButton(class_link::getLinkAdmin($this->getArrModule("modul"), "pagesFolderBrowser", "&systemid=" . $objSingleFolder->getSystemid() . "&form_element=" . $strElement . $strLinkAddon, $this->getLang("pages_ordner_oeffnen"), $this->getLang("pages_ordner_oeffnen"), "icon_folderActionOpen"));
                 $strAction .= $this->objToolkit->listButton("<a href=\"#\" title=\"" . $this->getLang("commons_accept") . "\" rel=\"tooltip\" onclick=\"KAJONA.admin.folderview.selectCallback([['" . $strElement . "_id', '" . $objSingleFolder->getSystemid() . "'], ['" . $strElement . "', '" . $objSingleFolder->getStrName() . "']]); \">" . class_adminskin_helper::getAdminImage("icon_accept"));
                 $strReturn .= $this->objToolkit->simpleAdminList($objSingleFolder, $strAction, $intCounter++);
             }
         }
     }
     $strReturn .= $this->objToolkit->listFooter();
     //Pages could be sent too
     if ($bitPages && $strPageid == "0") {
         $arrPages = class_module_pages_folder::getPagesInFolder($strSystemid);
         if (count($arrPages) > 0) {
             $strReturn .= $this->objToolkit->listHeader();
             /** @var $objSinglePage class_module_pages_page */
             foreach ($arrPages as $objSinglePage) {
                 $arrSinglePage = array();
                 //Should we generate a link ?
                 if ($this->getParam("bit_link") != "") {
                     $arrSinglePage["name2"] = class_link::getLinkPortalHref($objSinglePage->getStrName(), "", "", "", "", $this->getLanguageToWorkOn());
                 } else {
                     $arrSinglePage["name2"] = $objSinglePage->getStrName();
                 }
                 if ($objSinglePage->getIntType() == class_module_pages_page::$INT_TYPE_ALIAS) {
                     if (count(class_module_pages_folder::getPagesInFolder($objSinglePage->getSystemid())) == 0) {
                         $strAction = getImageAdmin("icon_treeBranchOpenDisabled");
                     } else {
                         $strAction = $this->objToolkit->listButton(class_link::getLinkAdmin($this->getArrModule("modul"), "pagesFolderBrowser", "&systemid=" . $objSinglePage->getSystemid() . "&form_element=" . $strElement . $strLinkAddon, $this->getLang("page_sublist"), $this->getLang("page_sublist"), "icon_treeBranchOpen"));
                     }
                     if ($bitPageAliases) {
                         $strAction .= $this->objToolkit->listButton("<a href=\"#\" title=\"" . $this->getLang("select_page") . "\" rel=\"tooltip\" onclick=\"KAJONA.admin.folderview.selectCallback([['" . $strElement . "_id', '" . $objSinglePage->getSystemid() . "'],['" . $strElement . "', '" . $arrSinglePage["name2"] . "']]);\">" . class_adminskin_helper::getAdminImage("icon_accept") . "</a>");
                     }
                     $strReturn .= $this->objToolkit->simpleAdminList($objSinglePage, $strAction, $intCounter++);
                 } else {
                     if (count(class_module_pages_folder::getPagesInFolder($objSinglePage->getSystemid())) == 0) {
                         $strAction = getImageAdmin("icon_treeBranchOpenDisabled");
                     } else {
                         $strAction = $this->objToolkit->listButton(class_link::getLinkAdmin($this->getArrModule("modul"), "pagesFolderBrowser", "&systemid=" . $objSinglePage->getSystemid() . "&form_element=" . $strElement . $strLinkAddon, $this->getLang("page_sublist"), $this->getLang("page_sublist"), "icon_treeBranchOpen"));
                     }
                     if ($bitPageelements) {
                         $strAction .= $this->objToolkit->listButton(class_link::getLinkAdmin($this->getArrModule("modul"), "pagesFolderBrowser", "&systemid=" . $strSystemid . "&form_element=" . $strElement . "&pageid=" . $objSinglePage->getSystemid() . ($this->getParam("bit_link") != "" ? "&bit_link=1" : "") . ($bitPages ? "&pages=1" : "") . ($bitPageAliases ? "&pagealiases=1" : ""), $this->getLang("seite_oeffnen"), $this->getLang("seite_oeffnen"), "icon_folderActionOpen"));
                     }
                     $strAction .= $this->objToolkit->listButton("<a href=\"#\" title=\"" . $this->getLang("select_page") . "\" rel=\"tooltip\" onclick=\"KAJONA.admin.folderview.selectCallback([['" . $strElement . "_id', '" . $objSinglePage->getSystemid() . "'],['" . $strElement . "', '" . $arrSinglePage["name2"] . "']]);\">" . class_adminskin_helper::getAdminImage("icon_accept") . "</a>");
                     $strReturn .= $this->objToolkit->simpleAdminList($objSinglePage, $strAction, $intCounter++);
                 }
             }
             $strReturn .= $this->objToolkit->listFooter();
         }
     }
     //Load the list of pagelements available on the page
     if ($strPageid != "0") {
         $strReturn .= $this->objToolkit->divider();
         $arrPageelements = class_module_pages_pageelement::getElementsOnPage($strPageid, true, $this->getLanguageToWorkOn());
         $objPage = new class_module_pages_page($strPageid);
         if (count($arrPageelements) > 0) {
             $strReturn .= $this->objToolkit->listHeader();
             /** @var class_module_pages_pageelement $objOnePageelement */
             foreach ($arrPageelements as $objOnePageelement) {
                 $arrSinglePage = array();
                 //Should we generate a link ?
                 if ($this->getParam("bit_link") != "") {
                     $arrSinglePage["name2"] = class_link::getLinkPortalHref($objPage->getStrName(), "", "", "", "", $this->getLanguageToWorkOn()) . "#" . $objOnePageelement->getSystemid();
                 } else {
                     $arrSinglePage["name2"] = $objPage->getStrName() . "#" . $objOnePageelement->getSystemid();
                 }
                 $strAction = $this->objToolkit->listButton("<a href=\"#\" title=\"" . $this->getLang("seite_uebernehmen") . "\" rel=\"tooltip\" onclick=\"KAJONA.admin.folderview.selectCallback([['" . $strElement . "', '" . $arrSinglePage["name2"] . "']]);\">" . class_adminskin_helper::getAdminImage("icon_accept") . "</a>");
                 $strReturn .= $this->objToolkit->simpleAdminList($objOnePageelement, $strAction, $intCounter++);
             }
             $strReturn .= $this->objToolkit->listFooter();
         }
     }
     return $strReturn;
 }