/**
  * Returns a list of available navigation-points
  *
  * @return string
  * @permissions view
  */
 protected function actionNavigationPointBrowser()
 {
     $strReturn = "";
     $this->setArrModuleEntry("template", "/folderview.tpl");
     $intCounter = 1;
     //Load all navis
     $arrPoints = class_module_navigation_point::getNaviLayer($this->getSystemid());
     $strReturn .= $this->objToolkit->listHeader();
     $objPoint = class_objectfactory::getInstance()->getObject($this->getSystemid());
     //Link one level up
     $strPrevID = $objPoint->getPrevId();
     if ($strPrevID != $this->getObjModule()->getSystemid()) {
         $strAction = $this->objToolkit->listButton(class_link::getLinkAdmin($this->getArrModule("modul"), "navigationPointBrowser", "&systemid=" . $strPrevID . "&form_element=" . $this->getParam("form_element"), $this->getLang("commons_one_level_up"), $this->getLang("commons_one_level_up"), "icon_treeLevelUp"));
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), "..", getImageAdmin("icon_treeRoot"), $strAction, $intCounter++);
     } else {
         $strAction = $this->objToolkit->listButton("<a href=\"#\" title=\"" . $this->getLang("navigation_point_accept") . "\" rel=\"tooltip\" onclick=\"KAJONA.admin.folderview.selectCallback([['" . $this->getParam("form_element") . "', ''],['" . $this->getParam("form_element") . "_id', '" . $this->getSystemid() . "']]);\">" . getImageAdmin("icon_accept") . "</a>");
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), ".", getImageAdmin("icon_treeLeaf"), $strAction, $intCounter++);
     }
     if (count($arrPoints) > 0) {
         /** @var class_module_navigation_point $objSinglePoint */
         foreach ($arrPoints as $objSinglePoint) {
             if ($objSinglePoint->rightView()) {
                 $strAction = $this->objToolkit->listButton(class_link::getLinkAdmin($this->getArrModule("modul"), "navigationPointBrowser", "&systemid=" . $objSinglePoint->getSystemid() . "&form_element=" . $this->getParam("form_element"), $this->getLang("navigationp_anzeigen"), $this->getLang("navigationp_anzeigen"), "icon_treeBranchOpen"));
                 $strAction .= $this->objToolkit->listButton("<a href=\"#\" title=\"" . $this->getLang("navigation_point_accept") . "\" rel=\"tooltip\" onclick=\"KAJONA.admin.folderview.selectCallback([['" . $this->getParam("form_element") . "', '" . $objSinglePoint->getStrName() . "'],['" . $this->getParam("form_element") . "_id', '" . $objSinglePoint->getSystemid() . "']]);\">" . getImageAdmin("icon_accept") . "</a>");
                 $strReturn .= $this->objToolkit->simpleAdminList($objSinglePoint, $strAction, $intCounter++);
             }
         }
     }
     $strReturn .= $this->objToolkit->listFooter();
     return $strReturn;
 }
 /**
  * @return string
  */
 public function getReport()
 {
     $strReturn = "";
     //Create Data-table
     $arrHeader = array();
     $arrValues = array();
     //Fetch data
     $arrStats = $this->getTopVisitors();
     //calc a few values
     $intSum = 0;
     foreach ($arrStats as $arrOneStat) {
         $intSum += $arrOneStat["anzahl"];
     }
     $intI = 0;
     $objUser = new class_module_user_user(class_session::getInstance()->getUserID());
     foreach ($arrStats as $arrOneStat) {
         //Escape?
         if ($intI >= $objUser->getIntItemsPerPage()) {
             break;
         }
         $arrValues[$intI] = array();
         $arrValues[$intI][] = $intI + 1;
         if ($arrOneStat["stats_hostname"] != "" and $arrOneStat["stats_hostname"] != "na") {
             $arrValues[$intI][] = $arrOneStat["stats_hostname"];
         } else {
             $arrValues[$intI][] = $arrOneStat["stats_ip"];
         }
         $arrValues[$intI][] = $arrOneStat["anzahl"];
         $arrValues[$intI][] = $this->objToolkit->percentBeam($arrOneStat["anzahl"] / $intSum * 100);
         $strUtraceLinkMap = "href=\"http://www.utrace.de/ip-adresse/" . $arrOneStat["stats_ip"] . "\" target=\"_blank\"";
         $strUtraceLinkText = "href=\"http://www.utrace.de/whois/" . $arrOneStat["stats_ip"] . "\" target=\"_blank\"";
         if ($arrOneStat["stats_ip"] != "127.0.0.1" && $arrOneStat["stats_ip"] != "::1") {
             $arrValues[$intI][] = class_link::getLinkAdminManual($strUtraceLinkMap, "", $this->objLang->getLang("login_utrace_showmap", "user"), "icon_earth") . " " . class_link::getLinkAdminManual($strUtraceLinkText, "", $this->objLang->getLang("login_utrace_showtext", "user"), "icon_text");
         } else {
             $arrValues[$intI][] = getImageAdmin("icon_earthDisabled", $this->objLang->getLang("login_utrace_noinfo", "user")) . " " . getImageAdmin("icon_textDisabled", $this->objLang->getLang("login_utrace_noinfo", "user"));
         }
         $intI++;
     }
     //HeaderRow
     $arrHeader[] = "#";
     $arrHeader[] = $this->objLang->getLang("top_visitor_titel", "stats");
     $arrHeader[] = $this->objLang->getLang("commons_hits_header", "stats");
     $arrHeader[] = $this->objLang->getLang("anteil", "stats");
     $arrHeader[] = $this->objLang->getLang("login_utrace", "user");
     $strReturn .= $this->objToolkit->dataTable($arrHeader, $arrValues);
     $strReturn .= $this->objToolkit->getTextRow($this->objLang->getLang("stats_hint_task", "stats"));
     return $strReturn;
 }
 /**
  * Creates a browser-like view of the users available
  *
  * @return string
  */
 protected function actionUserBrowser()
 {
     $this->setArrModuleEntry("template", "/folderview.tpl");
     $strReturn = "";
     $strFormElement = $this->getParam("form_element");
     if ($this->getSystemid() == "") {
         //show groups
         $arrUsers = class_module_user_group::getObjectList();
         $strReturn .= $this->objToolkit->listHeader();
         $intI = 0;
         foreach ($arrUsers as $objSingleGroup) {
             $strAction = "";
             $strAction .= $this->objToolkit->listButton(class_link::getLinkAdmin("user", "userBrowser", "&form_element=" . $this->getParam("form_element") . "&systemid=" . $objSingleGroup->getSystemid() . "&filter=" . $this->getParam("filter") . "&checkid=" . $this->getParam("checkid"), $this->getLang("user_browser_show"), $this->getLang("user_browser_show"), "icon_folderActionOpen"));
             if ($this->getParam("allowGroup") == "1") {
                 $strAction .= $this->objToolkit->listButton("<a href=\"#\" title=\"" . $this->getLang("group_accept") . "\" rel=\"tooltip\" onclick=\"KAJONA.admin.folderview.selectCallback([['" . strFormElement . "', '" . addslashes($objSingleGroup->getStrName()) . "'], ['" . $strFormElement . "_id', '" . $objSingleGroup->getSystemid() . "']]);\">" . getImageAdmin("icon_accept"));
             }
             $strReturn .= $this->objToolkit->simpleAdminList($objSingleGroup, $strAction, $intI++);
         }
     } else {
         //show members of group
         $objGroup = new class_module_user_group($this->getSystemid());
         $arrUsers = $objGroup->getObjSourceGroup()->getUserIdsForGroup();
         $strReturn .= $this->objToolkit->listHeader();
         $intI = 0;
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), "", "", $this->objToolkit->listButton(class_link::getLinkAdmin($this->getArrModule("modul"), "userBrowser", "&form_element=" . $this->getParam("form_element") . "&filter=" . $this->getParam("filter") . "&allowGroup=" . $this->getParam("allowGroup") . "&checkid=" . $this->getParam("checkid"), $this->getLang("user_list_parent"), $this->getLang("user_list_parent"), "icon_folderActionLevelup")), $intI++);
         $strCheckId = $this->getParam("checkid");
         $arrCheckIds = json_decode($strCheckId);
         foreach ($arrUsers as $strSingleUser) {
             $objSingleUser = new class_module_user_user($strSingleUser);
             $bitRenderAcceptLink = true;
             if (!empty($arrCheckIds) && is_array($arrCheckIds)) {
                 foreach ($arrCheckIds as $strCheckId) {
                     if (!$this->hasUserViewPermissions($strCheckId, $objSingleUser)) {
                         $bitRenderAcceptLink = false;
                         break;
                     }
                 }
             }
             $strAction = "";
             if (!$bitRenderAcceptLink || $objSingleUser->getIntActive() == 0 || $this->getParam("filter") == "current" && $objSingleUser->getSystemid() == $this->objSession->getUserID()) {
                 $strAction .= $this->objToolkit->listButton(getImageAdmin("icon_acceptDisabled"));
             } else {
                 $strAction .= $this->objToolkit->listButton("<a href=\"#\" title=\"" . $this->getLang("user_accept") . "\" rel=\"tooltip\" onclick=\"KAJONA.admin.folderview.selectCallback([['" . $strFormElement . "', '" . addslashes($objSingleUser->getStrUsername()) . "'], ['" . $strFormElement . "_id', '" . $objSingleUser->getSystemid() . "']]);\">" . getImageAdmin("icon_accept"));
             }
             $strReturn .= $this->objToolkit->simpleAdminList($objSingleUser, $strAction, $intI++);
         }
     }
     return $strReturn;
 }
 /**
  * @see interface_admin_systemtask::executeTask()
  * @return string
  */
 public function executeTask()
 {
     if (!class_module_system_module::getModuleByName("system")->rightRight2()) {
         return $this->getLang("commons_error_permissions");
     }
     $intI = 0;
     $strReturn = "";
     $objWorker = new class_module_system_worker();
     //chec 1.level nodes
     $arrCorruptedRecords = $objWorker->checkFirstLevelNodeConsistency();
     //create the output tables
     if (count($arrCorruptedRecords) > 0) {
         //ohoh. errors found. create tow tables
         $strReturn .= $this->objToolkit->listHeader();
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $this->getLang("systemtask_dbconsistency_firstlevel_error"), getImageAdmin("icon_disabled"), "", ++$intI);
         foreach ($arrCorruptedRecords as $arrRow) {
             $objRecord = class_objectfactory::getInstance()->getObject($arrRow["system_id"]);
             $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $arrRow["system_id"] . " (" . uniStrTrim($objRecord != null ? $objRecord->getStrDisplayName() : $arrRow["system_comment"], 20) . ")", "", "", $intI);
         }
         $strReturn .= $this->objToolkit->listFooter();
     } else {
         //no errors found
         $strReturn .= $this->objToolkit->listHeader();
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $this->getLang("systemtask_dbconsistency_firstlevel_ok"), getImageAdmin("icon_enabled"), "", ++$intI);
         $strReturn .= $this->objToolkit->listFooter();
     }
     //Check system_prev_id => system_id relations
     $arrCorruptedRecords = $objWorker->checkSystemTableCurPrevRelations();
     //create the output tables
     if (count($arrCorruptedRecords) > 0) {
         //ohoh. errors found. create tow tables
         $strReturn .= $this->objToolkit->listHeader();
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $this->getLang("systemtask_dbconsistency_curprev_error"), getImageAdmin("icon_disabled"), "", ++$intI);
         foreach ($arrCorruptedRecords as $strID => $strComment) {
             $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $strID . " (" . $strComment . ")", "", "", $intI);
         }
         $strReturn .= $this->objToolkit->listFooter();
     } else {
         //no errors found
         $strReturn .= $this->objToolkit->listHeader();
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $this->getLang("systemtask_dbconsistency_curprev_ok"), getImageAdmin("icon_enabled"), "", ++$intI);
         $strReturn .= $this->objToolkit->listFooter();
     }
     //check if every right-record has a system-record
     $arrCorruptedRecords = $objWorker->chekRightSystemRelations();
     //create the output tables
     if (count($arrCorruptedRecords) > 0) {
         //ohoh. errors found. create tow tables
         $strReturn .= $this->objToolkit->listHeader();
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $this->getLang("systemtask_dbconsistency_right_error"), getImageAdmin("icon_disabled"), "", ++$intI);
         foreach ($arrCorruptedRecords as $arrOneRecords) {
             $objRecord = class_objectfactory::getInstance()->getObject($arrOneRecords["system_id"]);
             $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $arrOneRecords["right_id"] . " (" . uniStrTrim($objRecord != null ? $objRecord->getStrDisplayName() : $arrOneRecords["system_comment"], 20) . ")", "", "", $intI);
         }
         $strReturn .= $this->objToolkit->listFooter();
     } else {
         //no errors found
         $strReturn .= $this->objToolkit->listHeader();
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $this->getLang("systemtask_dbconsistency_right_ok"), getImageAdmin("icon_enabled"), "", ++$intI);
         $strReturn .= $this->objToolkit->listFooter();
     }
     //check if every date-record has a system-record
     $arrCorruptedRecords = $objWorker->checkDateSystemRelations();
     //create the output tables
     if (count($arrCorruptedRecords) > 0) {
         //ohoh. errors found. create tow tables
         $strReturn .= $this->objToolkit->listHeader();
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $this->getLang("systemtask_dbconsistency_date_error"), getImageAdmin("icon_disabled"), "", ++$intI);
         foreach ($arrCorruptedRecords as $arrOneRecords) {
             $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $arrOneRecords["system_date_id"], "", "", $intI);
         }
         $strReturn .= $this->objToolkit->listFooter();
     } else {
         //no errors found
         $strReturn .= $this->objToolkit->listHeader();
         $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), $this->getLang("systemtask_dbconsistency_date_ok"), getImageAdmin("icon_enabled"), "", ++$intI);
         $strReturn .= $this->objToolkit->listFooter();
     }
     return $strReturn;
 }
 /**
  * Adds the portal-editor code to the current page-output - if all requirements are given
  *
  * @param class_module_pages_page $objPageData
  * @param bool $bitEditPermissionOnMasterPage
  * @param string $strPageContent
  *
  * @return string
  */
 private function renderPortalEditorCode(class_module_pages_page $objPageData, $bitEditPermissionOnMasterPage, $strPageContent)
 {
     //add the portaleditor toolbar
     if (class_module_system_setting::getConfigValue("_pages_portaleditor_") == "false") {
         return $strPageContent;
     }
     if (!$this->objSession->isAdmin()) {
         return $strPageContent;
     }
     if (!$objPageData->rightEdit() && !$bitEditPermissionOnMasterPage) {
         return $strPageContent;
     }
     class_adminskin_helper::defineSkinWebpath();
     //save back the current portal text language and set the admin-one
     $strPortalLanguage = class_carrier::getInstance()->getObjLang()->getStrTextLanguage();
     class_carrier::getInstance()->getObjLang()->setStrTextLanguage($this->objSession->getAdminLanguage());
     if ($this->objSession->getSession("pe_disable") != "true") {
         $strPeToolbar = "";
         $arrPeContents = array();
         $arrPeContents["pe_status_page_val"] = $objPageData->getStrName();
         $arrPeContents["pe_status_status_val"] = $objPageData->getIntRecordStatus() == 1 ? "active" : "inactive";
         $arrPeContents["pe_status_autor_val"] = $objPageData->getLastEditUser();
         $arrPeContents["pe_status_time_val"] = timeToString($objPageData->getIntLmTime(), false);
         $arrPeContents["pe_dialog_close_warning"] = $this->getLang("pe_dialog_close_warning", "pages");
         //Add an iconbar
         $arrPeContents["pe_iconbar"] = "";
         $arrPeContents["pe_iconbar"] .= class_link::getLinkAdmin("pages_content", "list", "&systemid=" . $objPageData->getSystemid() . "&language=" . $strPortalLanguage, $this->getLang("pe_icon_edit"), $this->getLang("pe_icon_edit", "pages"), "icon_page");
         $arrPeContents["pe_iconbar"] .= "&nbsp;";
         $strEditUrl = class_link::getLinkAdminHref("pages", "editPage", "&systemid=" . $objPageData->getSystemid() . "&language=" . $strPortalLanguage . "&pe=1");
         $arrPeContents["pe_iconbar"] .= "<a href=\"#\" onclick=\"KAJONA.admin.portaleditor.openDialog('" . $strEditUrl . "'); return false;\">" . class_adminskin_helper::getAdminImage("icon_edit", $this->getLang("pe_icon_page", "pages")) . "</a>";
         $arrPeContents["pe_iconbar"] .= "&nbsp;";
         $strEditUrl = class_link::getLinkAdminHref("pages", "newPage", "&systemid=" . $objPageData->getSystemid() . "&language=" . $strPortalLanguage . "&pe=1");
         $arrPeContents["pe_iconbar"] .= "<a href=\"#\" onclick=\"KAJONA.admin.portaleditor.openDialog('" . $strEditUrl . "'); return false;\">" . class_adminskin_helper::getAdminImage("icon_new", $this->getLang("pe_icon_new", "pages")) . "</a>";
         $arrPeContents["pe_disable"] = "<a href=\"#\" onclick=\"KAJONA.admin.portaleditor.switchEnabled(false); return false;\" title=\"\">" . class_adminskin_helper::getAdminImage("icon_enabled", $this->getLang("pe_disable", "pages")) . "</a>";
         //Load portaleditor javascript (even if it's maybe already loaded in portal and init the ckeditor)
         $strTemplateInitID = $this->objTemplate->readTemplate("/elements.tpl", "wysiwyg_ckeditor_inits");
         $strSkinInit = $this->objTemplate->fillTemplate(array(), $strTemplateInitID);
         $strConfigFile = "'config_kajona_standard.js'";
         if (is_file(_realpath_ . "/project/admin/scripts/ckeditor/config_kajona_standard.js")) {
             $strConfigFile = "KAJONA_WEBPATH+'/project/admin/scripts/ckeditor/config_kajona_standard.js'";
         }
         $strPeToolbar .= "<script type='text/javascript'>\n                KAJONA.admin.lang.pe_rte_unsavedChanges = '" . $this->getLang("pe_rte_unsavedChanges", "pages") . "';\n\n                if(\$) {\n                    KAJONA.portal.loader.loadFile([\n                        '/core/module_pages/admin/scripts/kajona_portaleditor.js',\n                        '/core/module_system/admin/scripts/jqueryui/jquery-ui.custom.min.js',\n                        '/core/module_system/admin/scripts/jqueryui/css/smoothness/jquery-ui.custom.css'\n                    ], function() {\n                        KAJONA.admin.portaleditor.RTE.config = {\n                            language : '" . (class_session::getInstance()->getAdminLanguage() != "" ? class_session::getInstance()->getAdminLanguage() : "en") . "',\n                            filebrowserBrowseUrl : '" . uniStrReplace("&amp;", "&", class_link::getLinkAdminHref("folderview", "browserChooser", "&form_element=ckeditor")) . "',\n                            filebrowserImageBrowseUrl : '" . uniStrReplace("&amp;", "&", class_link::getLinkAdminHref("mediamanager", "folderContentFolderviewMode", "systemid=" . class_module_system_setting::getConfigValue("_mediamanager_default_imagesrepoid_") . "&form_element=ckeditor&bit_link=1")) . "',\n                            customConfig : {$strConfigFile},\n                            " . $strSkinInit . "\n                        }\n                        \$(KAJONA.admin.portaleditor.initPortaleditor);\n                    });\n                }\n                else {\n                    KAJONA.portal.loader.loadFile([\n                        '/core/module_system/admin/scripts/jquery/jquery.min.js',\n                        '/core/module_system/admin/scripts/jqueryui/jquery-ui.custom.min.js',\n                        '/core/module_pages/admin/scripts/kajona_portaleditor.js',\n                        '/core/module_system/admin/scripts/jqueryui/css/smoothness/jquery-ui.custom.css'\n                    ], function() {\n                        KAJONA.admin.portaleditor.RTE.config = {\n                            language : '" . (class_session::getInstance()->getAdminLanguage() != "" ? class_session::getInstance()->getAdminLanguage() : "en") . "',\n                            filebrowserBrowseUrl : '" . uniStrReplace("&amp;", "&", class_link::getLinkAdminHref("folderview", "browserChooser", "&form_element=ckeditor")) . "',\n                            filebrowserImageBrowseUrl : '" . uniStrReplace("&amp;", "&", class_link::getLinkAdminHref("mediamanager", "folderContentFolderviewMode", "systemid=" . class_module_system_setting::getConfigValue("_mediamanager_default_imagesrepoid_") . "&form_element=ckeditor&bit_link=1")) . "',\n                            " . $strSkinInit . "\n                        }\n                        \$(KAJONA.admin.portaleditor.initPortaleditor);\n                    });\n                }\n            </script>";
         //Load portaleditor styles
         $strPeToolbar .= $this->objToolkit->getPeBasicData();
         $strPeToolbar .= $this->objToolkit->getPeToolbar($arrPeContents);
         $objScriptlets = new class_scriptlet_helper();
         $strPeToolbar = $objScriptlets->processString($strPeToolbar, interface_scriptlet::BIT_CONTEXT_ADMIN);
         //The toolbar has to be added right after the body-tag - to generate correct html-code
         $strTemp = uniSubstr($strPageContent, uniStrpos($strPageContent, "<body"));
         //find closing bracket
         $intTemp = uniStrpos($strTemp, ">") + 1;
         //and insert the code
         $strPageContent = uniSubstr($strPageContent, 0, uniStrpos($strPageContent, "<body") + $intTemp) . $strPeToolbar . uniSubstr($strPageContent, uniStrpos($strPageContent, "<body") + $intTemp);
     } else {
         //Button to enable the toolbar & pe
         $strEnableButton = "<div id=\"peEnableButton\" style=\"z-index: 1000; position: fixed; top: 0px; right: 0px;\"><a href=\"#\" onclick=\"KAJONA.admin.portaleditor.switchEnabled(true); return false;\" title=\"\">" . getImageAdmin("icon_disabled", $this->getLang("pe_enable", "pages")) . "</a></div>";
         //Load portaleditor javascript
         $strEnableButton .= "\n<script type=\"text/javascript\" src=\"" . _webpath_ . "/core/module_pages/admin/scripts/kajona_portaleditor.js?" . class_module_system_setting::getConfigValue("_system_browser_cachebuster_") . "\"></script>";
         $strEnableButton .= $this->objToolkit->getPeBasicData();
         //Load portaleditor styles
         //The toobar has to be added right after the body-tag - to generate correct html-code
         $strTemp = uniSubstr($strPageContent, uniStripos($strPageContent, "<body"));
         //find closing bracket
         $intTemp = uniStripos($strTemp, ">") + 1;
         //and insert the code
         $strPageContent = uniSubstr($strPageContent, 0, uniStrpos($strPageContent, "<body") + $intTemp) . $strEnableButton . uniSubstr($strPageContent, uniStrpos($strPageContent, "<body") + $intTemp);
     }
     //reset the portal texts language
     class_carrier::getInstance()->getObjLang()->setStrTextLanguage($strPortalLanguage);
     return $strPageContent;
 }
 /**
  * Renders the list of available packages or any other kind of gui-representation
  * of the packageprovider.
  *
  * Whenever the provider is capable of uploading new packages, the copy & and upload process
  * should be triggered by the admin-class again.
  * So make sure links or forms point to
  * module = packagemanager
  * action = uploadPackage
  * provider = class_name
  * The provider will be called using the processPackageUpload method.
  *
  * @throws class_exception
  * @return string
  */
 public function renderPackageList()
 {
     $objUser = new class_module_user_user(class_session::getInstance()->getUserID());
     $intStart = ($this->getPageNumber() - 1) * $objUser->getIntItemsPerPage();
     $intEnd = $intStart + $objUser->getIntItemsPerPage() - 1;
     $objToolkit = class_carrier::getInstance()->getObjToolkit("admin");
     $objLang = class_carrier::getInstance()->getObjLang();
     $objManager = new class_module_packagemanager_manager();
     $objRemoteloader = $this->getRemoteloader();
     $objRemoteloader->setStrQueryParams($this->buildQueryParams($intStart, $intEnd));
     $strResponse = "";
     try {
         $strResponse = $objRemoteloader->getRemoteContent();
     } catch (class_exception $objEx) {
         return $objLang->getLang("package_remote_errorloading", self::$STR_MODULE_NAME);
     }
     $arrResponse = json_decode($strResponse, true);
     if ($arrResponse === null) {
         throw new class_exception("Error loading the remote package list. Got: <br />" . htmlToString($strResponse, true), class_exception::$level_ERROR);
     }
     $objRemoteParser = class_module_packagemanager_remoteparser_factory::getRemoteParser($arrResponse, $this->getPageNumber(), $intStart, $intEnd, get_class($this), "&name=" . urlencode($this->getParam("name")) . "&type=" . $this->getParam("type"));
     $arrPackages = $objRemoteParser->getArrPackages();
     $strReturn = $this->createFilterCriteria();
     $strReturn .= $objToolkit->listHeader();
     if (!$this->containsItems($arrPackages)) {
         $strReturn .= $objToolkit->getTextRow($objLang->getLang("commons_list_empty", null));
     } else {
         $intI = 0;
         foreach ($arrPackages as $arrOnePackage) {
             //check if already installed locally
             if ($objManager->getPackage($arrOnePackage["title"]) !== null) {
                 $strAction = $objToolkit->listButton(getImageAdmin("icon_installDisabled", $objLang->getLang("package_noinstall_installed", self::$STR_MODULE_NAME)));
             } else {
                 $strAction = $objToolkit->listButton(getLinkAdmin(self::$STR_MODULE_NAME, "uploadPackage", "provider=" . get_class($this) . "&systemid=" . $arrOnePackage["systemid"], $objLang->getLang("package_install", self::$STR_MODULE_NAME), $objLang->getLang("package_install", self::$STR_MODULE_NAME), "icon_install"));
             }
             $strIcon = "icon_module";
             if ($arrOnePackage["type"] == "TEMPLATE") {
                 $strIcon = "icon_dot";
             }
             $arrOnePackage["version"] = $objLang->getLang("type_" . $arrOnePackage["type"], self::$STR_MODULE_NAME) . ", V " . $arrOnePackage["version"];
             $strReturn .= $objToolkit->genericAdminList($arrOnePackage["systemid"], $arrOnePackage["title"], getImageAdmin($strIcon), $strAction, $intI++, $arrOnePackage["version"], $arrOnePackage["description"]);
         }
     }
     $strReturn .= $objToolkit->listFooter();
     $strReturn .= $objRemoteParser->paginationFooter();
     return $strReturn;
 }
 /**
  * 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;
 }
 /**
  * @return string
  * @permissions edit
  */
 protected function actionEditLanguageset()
 {
     $strReturn = "";
     $objNews = class_objectfactory::getInstance()->getObject($this->getSystemid());
     $this->setArrModuleEntry("template", "/folderview.tpl");
     if ($objNews->rightEdit()) {
         $objLanguageset = class_module_languages_languageset::getLanguagesetForSystemid($this->getSystemid());
         if ($objLanguageset == null) {
             $strReturn .= $this->objToolkit->formTextRow($this->getLang("languageset_notmaintained"));
             $strReturn .= $this->objToolkit->formHeadline($this->getLang("languageset_addtolanguage"));
             $strReturn .= $this->objToolkit->formHeader(class_link::getLinkAdminHref($this->getArrModule("modul"), "assignToLanguageset"));
             $arrLanguages = class_module_languages_language::getObjectList();
             $arrDropdown = array();
             foreach ($arrLanguages as $objOneLanguage) {
                 $arrDropdown[$objOneLanguage->getSystemid()] = $this->getLang("lang_" . $objOneLanguage->getStrName(), "languages");
             }
             $strReturn .= $this->objToolkit->formInputDropdown("languageset_language", $arrDropdown, $this->getLang("commons_language_field"));
             $strReturn .= $this->objToolkit->formInputHidden("systemid", $this->getSystemid());
             $strReturn .= $this->objToolkit->formInputSubmit($this->getLang("commons_save"));
             $strReturn .= $this->objToolkit->formClose();
         } else {
             $objLanguage = new class_module_languages_language($objLanguageset->getLanguageidForSystemid($this->getSystemid()));
             $strReturn .= $this->objToolkit->formHeadline($this->getLang("languageset_addtolanguage"));
             $strReturn .= $this->objToolkit->formTextRow($this->getLang("languageset_currentlanguage"));
             $strReturn .= $this->objToolkit->formTextRow($this->getLang("lang_" . $objLanguage->getStrName(), "languages"));
             $strReturn .= $this->objToolkit->formHeadline($this->getLang("languageset_maintainlanguages"));
             $arrLanguages = class_module_languages_language::getObjectList();
             $strReturn .= $this->objToolkit->listHeader();
             $intI = 0;
             $intNrOfUnassigned = 0;
             $arrMaintainedLanguages = array();
             foreach ($arrLanguages as $objOneLanguage) {
                 $strNewsid = $objLanguageset->getSystemidForLanguageid($objOneLanguage->getSystemid());
                 $strActions = "";
                 if ($strNewsid != null) {
                     $arrMaintainedLanguages[] = $objOneLanguage->getSystemid();
                     $objNews = new class_module_news_news($strNewsid);
                     $strNewsName = $objNews->getStrTitle();
                     $strActions .= $this->objToolkit->listButton(class_link::getLinkAdmin($this->getArrModule("modul"), "removeFromLanguageset", "&systemid=" . $objNews->getSystemid(), "", $this->getLang("languageset_remove"), "icon_delete"));
                     $strReturn .= $this->objToolkit->genericAdminList($objOneLanguage->getSystemid(), $this->getLang("lang_" . $objOneLanguage->getStrName(), "languages") . ": " . $strNewsName, getImageAdmin("icon_language"), $strActions, $intI++);
                 } else {
                     $intNrOfUnassigned++;
                     $strReturn .= $this->objToolkit->genericAdminList($objOneLanguage->getSystemid(), $this->getLang("lang_" . $objOneLanguage->getStrName(), "languages") . ": " . $this->getLang("languageset_news_na"), getImageAdmin("icon_language"), $strActions, $intI++);
                 }
             }
             $strReturn .= $this->objToolkit->listFooter();
             //provide a form to add further news-items
             if ($intNrOfUnassigned > 0) {
                 $strReturn .= $this->objToolkit->formHeadline($this->getLang("languageset_addnewstolanguage"));
                 $strReturn .= $this->objToolkit->formHeader(class_link::getLinkAdminHref($this->getArrModule("modul"), "addNewsToLanguageset"));
                 $arrLanguages = class_module_languages_language::getObjectList();
                 $arrDropdown = array();
                 foreach ($arrLanguages as $objOneLanguage) {
                     if (!in_array($objOneLanguage->getSystemid(), $arrMaintainedLanguages)) {
                         $arrDropdown[$objOneLanguage->getSystemid()] = $this->getLang("lang_" . $objOneLanguage->getStrName(), "languages");
                     }
                 }
                 $strReturn .= $this->objToolkit->formInputDropdown("languageset_language", $arrDropdown, $this->getLang("commons_language_field"));
                 $arrNews = class_module_news_news::getObjectList();
                 $arrDropdown = array();
                 foreach ($arrNews as $objOneNews) {
                     if (class_module_languages_languageset::getLanguagesetForSystemid($objOneNews->getSystemid()) == null) {
                         $arrDropdown[$objOneNews->getSystemid()] = $objOneNews->getStrTitle();
                     }
                 }
                 $strReturn .= $this->objToolkit->formInputDropdown("languageset_news", $arrDropdown, $this->getLang("languageset_news"));
                 $strReturn .= $this->objToolkit->formInputHidden("systemid", $this->getSystemid());
                 $strReturn .= $this->objToolkit->formInputSubmit($this->getLang("commons_save"));
                 $strReturn .= $this->objToolkit->formClose();
             }
         }
     } else {
         $strReturn .= $this->getLang("commons_error_permissions");
     }
     return $strReturn;
 }