public function install() { $strReturn = ""; $objManager = new class_orm_schemamanager(); $strReturn .= "Installing table templatepacks...\n"; $objManager->createTable("class_module_packagemanager_template"); //register the module $this->registerModule("packagemanager", _packagemanager_module_id_, "", "class_module_packagemanager_admin.php", $this->objMetadata->getStrVersion(), true); $strReturn .= "Registering system-constants...\n"; $this->registerConstant("_packagemanager_defaulttemplate_", "default", class_module_system_setting::$int_TYPE_STRING, _packagemanager_module_id_); $strReturn .= "Initial templatepack sync...\n"; class_module_packagemanager_template::syncTemplatepacks(); $arrPacks = class_module_packagemanager_template::getObjectList(); if (count($arrPacks) > 0) { //search the default package foreach ($arrPacks as $objOnePack) { if ($objOnePack->getStrName() == "default") { $objOnePack->setIntRecordStatus(1); $objOnePack->updateObjectToDb(); } } } $strReturn .= "Setting aspect assignments...\n"; if (class_module_system_aspect::getAspectByName("management") != null) { $objModule = class_module_system_module::getModuleByName($this->objMetadata->getStrTitle()); $objModule->setStrAspect(class_module_system_aspect::getAspectByName("management")->getSystemid()); $objModule->updateObjectToDb(); } return $strReturn; }
/** * @return string * @autoTestable * @permissions view */ protected function actionListTemplates() { class_module_packagemanager_template::syncTemplatepacks(); $objArraySectionIterator = new class_array_section_iterator(class_module_packagemanager_template::getObjectCount()); $objArraySectionIterator->setPageNumber((int) ($this->getParam("pv") != "" ? $this->getParam("pv") : 1)); $objArraySectionIterator->setArraySection(class_module_packagemanager_template::getObjectList("", $objArraySectionIterator->calculateStartPos(), $objArraySectionIterator->calculateEndPos())); return $this->renderList($objArraySectionIterator); }
/** * Synchronized the list of template-packs available in the filesystem * with the list of packs stored at the database. * * @return void * @static */ public static function syncTemplatepacks() { //scan the list of packs available in the filesystem $objFilesystem = new class_filesystem(); $arrFolders = $objFilesystem->getCompleteList("/templates"); //scan packs installed /** @var class_module_packagemanager_template[] $arrPacksInstalled */ $arrPacksInstalled = self::getObjectList(); foreach ($arrFolders["folders"] as $strOneFolder) { $bitFolderFound = false; //search the pack in the list of available ones foreach ($arrPacksInstalled as $objOnePack) { if ($objOnePack->getStrName() == $strOneFolder) { $bitFolderFound = true; break; } } if (!$bitFolderFound) { $objPack = new class_module_packagemanager_template(); $objPack->setStrName($strOneFolder); $objPack->setIntRecordStatus(0); $objPack->updateObjectToDb(); } } //scan folders not existing any more foreach ($arrPacksInstalled as $objOnePack) { if (!in_array($objOnePack->getStrName(), $arrFolders["folders"])) { $objOnePack->deleteObjectFromDatabase(); } } }
/** * Removes the current package, if possible, from the system * * @param string &$strLog * * @return bool */ public function remove(&$strLog) { class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::INCLUDED()); if (!$this->isRemovable()) { return false; } /** @var class_module_packagemanager_template[] $arrTemplates */ $arrTemplates = class_module_packagemanager_template::getObjectList(); foreach ($arrTemplates as $objOneTemplate) { if ($objOneTemplate->getStrName() == $this->getObjMetadata()->getStrTitle()) { return $objOneTemplate->deleteObjectFromDatabase(); } } class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUDED()); return false; }
private function activateTemplate() { echo "Searching for a v3 template to activate...\n"; if (!is_dir(_realpath_ . "/templates/v3template")) { echo "no template found, nothing to do.\n"; return true; } echo "Templatepack v3template found\n"; class_module_packagemanager_template::syncTemplatepacks(); $arrPackages = class_module_packagemanager_template::getObjectList(); /** @var class_module_packagemanager_template $objOnePackage */ foreach ($arrPackages as $objOnePackage) { if ($objOnePackage->getStrName() == "v3template") { echo "setting the template-pack active...\n"; $objOnePackage->setIntRecordStatus(1); $objOnePackage->updateObjectToDb(); echo "If you didn't change the templates in v3, delete the unmodified ones from /templates/v3template/tpl.\n"; echo "Otherwise make sure to update the references to js and css files and consider to upgrade your js-implementation to the now-standard jQuery instead of YUI.\n"; echo "For css-files, the new path would be:\n"; echo " _webpath_/templates/v3template/css/filename.css\n"; echo "For js-files, the new path would be:\n"; echo " _webpath_/templates/v3template/js/filename.js\n"; return true; } } echo "ERROR: no matching template-pack found in the database. set up your templates manually.\n"; return true; }
private function update_42_43() { $strReturn = "Updating 4.2 to 4.3...\n"; $strReturn .= "Changing placeholder column data-type...\n"; $strReturn .= "Creating temp-table...\n"; $strReturn .= "Installing table page_element...\n"; $arrFields = array(); $arrFields["page_element_id"] = array("char20", false); $arrFields["page_element_ph_placeholder"] = array("text", true); $arrFields["page_element_ph_name"] = array("char254", true); $arrFields["page_element_ph_element"] = array("char254", true); $arrFields["page_element_ph_title"] = array("char254", true); $arrFields["page_element_ph_language"] = array("char20", true); if (!$this->objDB->createTable("page_element_temp", $arrFields, array("page_element_id"), array("page_element_ph_language", "page_element_ph_element"))) { $strReturn .= "An error occurred! ...\n"; } $strReturn .= "Copying table content...\n"; $strQuery = "INSERT INTO " . _dbprefix_ . "page_element_temp\n (page_element_id, page_element_ph_placeholder, page_element_ph_name, page_element_ph_element, page_element_ph_title, page_element_ph_language)\n SELECT page_element_id, page_element_ph_placeholder, page_element_ph_name, page_element_ph_element, page_element_ph_title, page_element_ph_language FROM " . _dbprefix_ . "page_element"; if (!$this->objDB->_query($strQuery)) { $strReturn .= "An error occurred! ...\n"; } $strReturn .= "Dropping old table...\n"; $strQuery = "DROP TABLE " . $this->objDB->encloseTableName(_dbprefix_ . "page_element") . ""; if (!$this->objDB->_query($strQuery)) { $strReturn .= "An error occurred! ...\n"; } $strReturn .= "Renaming new table...\n"; $strQuery = "ALTER TABLE " . $this->objDB->encloseTableName(_dbprefix_ . "page_element_temp") . " RENAME TO " . $this->objDB->encloseTableName(_dbprefix_ . "page_element") . ""; if (!$this->objDB->_query($strQuery)) { $strReturn .= "An error occurred! ...\n"; } $strReturn .= "Copying default-template, if in use. Placeholders changed in 4.3\n"; if (class_module_system_setting::getConfigValue("_packagemanager_defaulttemplate_") == "default") { $objFS = new class_filesystem(); $objFS->folderCreate("/templates/kajona42/tpl/module_pages", true); $objFS->fileCopy("/core/module_pages/installer/standard.tpl.42", "/templates/kajona42/tpl/module_pages/standard.tpl"); class_module_packagemanager_template::syncTemplatepacks(); /** @var $objOnePack class_module_packagemanager_template */ foreach (class_module_packagemanager_template::getObjectList() as $objOnePack) { if ($objOnePack->getStrName() == "kajona42") { $objOnePack->setIntRecordStatus(1); $objOnePack->updateObjectToDb(); } } $objSetting = class_module_system_setting::getConfigByName("_packagemanager_defaulttemplate_"); $objSetting->setStrValue("kajona42"); $objSetting->updateObjectToDb(); } $strReturn .= "Updating module-versions...\n"; $this->updateModuleVersion("", "4.3"); $strReturn .= "Updating element-version...\n"; $this->updateElementVersion("row", "4.3"); $this->updateElementVersion("paragraph", "4.3"); $this->updateElementVersion("image", "4.3"); return $strReturn; }