/** * This method is called, when the widget should generate it's content. * Return the complete content using the methods provided by the base class. * Do NOT use the toolkit right here! * * @return string */ public function getWidgetOutput() { $strReturn = ""; if (!class_module_system_module::getModuleByName("packagemanager")->rightEdit()) { return $this->getLang("commons_error_permissions"); } $objManager = new class_module_packagemanager_manager(); $arrRemotePackages = $objManager->scanForUpdates(); $strSystemVersion = "n.a."; if (isset($arrRemotePackages["system"])) { $strSystemVersion = $arrRemotePackages["system"]; } $arrUpdates = array(); $arrLocalPackages = $objManager->getAvailablePackages(); foreach ($arrLocalPackages as $objOneMetadata) { if (isset($arrRemotePackages[$objOneMetadata->getStrTitle()])) { if ($arrRemotePackages[$objOneMetadata->getStrTitle()] != null && version_compare($arrRemotePackages[$objOneMetadata->getStrTitle()], $objOneMetadata->getStrVersion(), ">")) { $arrUpdates[$objOneMetadata->getStrTitle()] = $arrRemotePackages[$objOneMetadata->getStrTitle()]; } } } $strReturn .= $this->widgetText($this->getLang("sysinfo_kajona_version") . " " . class_module_system_module::getModuleByName("system")->getStrVersion()); $strReturn .= $this->widgetText($this->getLang("sysinfo_kajona_versionAvail") . " " . $strSystemVersion); $strReturn .= $this->widgetSeparator(); if (count($arrUpdates) > 0) { $strReturn .= $this->widgetText($this->getLang("updatecheck_versionAvail")); } foreach ($arrUpdates as $strPackage => $intVersion) { $strReturn .= $this->widgetText(class_link::getLinkAdmin("packagemanager", "list", "&packagelist_filter=" . $strPackage . "&doFilter=1", $strPackage . " (" . $intVersion . ")")); } return $strReturn; }
public function testInstalledPackageList() { $objManager = new class_module_packagemanager_manager(); $arrModules = $objManager->getAvailablePackages(); foreach ($arrModules as $intKey => $objOneModule) { echo "#" . $intKey . ": " . $objOneModule . "\n"; } }
/** * Generic list of all packages available on the local filesystem * @return string * @permissions view * @autoTestable */ protected function actionList() { if ($this->getParam("doFilter") != "") { $this->objSession->setSession($this->STR_FILTER_SESSION_KEY, $this->getParam("packagelist_filter")); $this->setParam("pv", 1); $this->adminReload(class_link::getLinkAdminHref($this->getArrModule("modul"), "list")); return ""; } class_module_packagemanager_template::syncTemplatepacks(); $strReturn = ""; $strReturn .= $this->objToolkit->formHeader(class_link::getLinkAdminHref($this->getArrModule("modul")), "list"); $strReturn .= $this->objToolkit->formInputText("packagelist_filter", $this->getLang("packagelist_filter"), $this->objSession->getSession($this->STR_FILTER_SESSION_KEY)); $strReturn .= $this->objToolkit->formInputSubmit(); $strReturn .= $this->objToolkit->formInputHidden("doFilter", "1"); $strReturn .= $this->objToolkit->formClose(); $objManager = new class_module_packagemanager_manager(); $arrPackages = $objManager->getAvailablePackages($this->objSession->getSession($this->STR_FILTER_SESSION_KEY)); $arrPackages = $objManager->sortPackages($arrPackages); $objArrayIterator = new class_array_iterator($arrPackages); $objArrayIterator->getElementsOnPage((int) ($this->getParam("pv") != "" ? $this->getParam("pv") : 1)); $objArraySectionIterator = new class_array_section_iterator(count($arrPackages)); $objArraySectionIterator->setPageNumber((int) ($this->getParam("pv") != "" ? $this->getParam("pv") : 1)); $objArraySectionIterator->setArraySection($objArrayIterator->getElementsOnPage((int) ($this->getParam("pv") != "" ? $this->getParam("pv") : 1))); $strReturn .= $this->objToolkit->listHeader(); $intI = 0; /** @var class_module_packagemanager_metadata $objOneMetadata */ foreach ($objArraySectionIterator as $objOneMetadata) { $strActions = ""; $objHandler = $objManager->getPackageManagerForPath($objOneMetadata->getStrPath()); if ($objHandler->isInstallable()) { $strActions .= $this->objToolkit->listButton(class_link::getLinkAdminDialog($this->getArrModule("modul"), "processPackage", "&package=" . $objOneMetadata->getStrPath(), $this->getLang("package_install"), $this->getLang("package_installocally"), "icon_downloads", $this->getLang("package_install"))); } $strActions .= $this->objToolkit->listButton(class_link::getLinkAdminDialog($this->getArrModule("modul"), "showInfo", "&package=" . $objOneMetadata->getStrTitle(), $this->getLang("package_info"), $this->getLang("package_info"), "icon_lens", $objOneMetadata->getStrTitle())); if ($this->getObjModule()->rightDelete()) { if ($objHandler->isRemovable($objOneMetadata)) { $strActions .= $this->objToolkit->listDeleteButton($objOneMetadata->getStrTitle(), $this->getLang("package_delete_question"), class_link::getLinkAdminHref($this->getArrModule("modul"), "deletePackage", "&package=" . $objOneMetadata->getStrTitle())); } else { $strActions .= $this->objToolkit->listButton(class_adminskin_helper::getAdminImage("icon_deleteLocked", $this->getLang("package_delete_locked"))); } } $strActions .= $this->objToolkit->listButton("<span id=\"updateWrapper" . createFilename($objOneMetadata->getStrTitle(), true) . "\">" . class_adminskin_helper::getAdminImage("loadingSmall", $this->getLang("package_searchupdate")) . "</span>"); $strActions .= "<script type='text/javascript'>\n \$(function() {\n KAJONA.admin.loader.loadFile('" . class_resourceloader::getInstance()->getCorePathForModule("module_packagemanager") . "/module_packagemanager/admin/scripts/packagemanager.js', function() {\n KAJONA.admin.packagemanager.addPackageToTest('" . $objOneMetadata->getStrTitle() . "', '" . createFilename($objOneMetadata->getStrTitle(), true) . "');\n }); });\n </script>"; $strReturn .= $this->objToolkit->simpleAdminList($objOneMetadata, $strActions, $intI++); } $strAddActions = ""; if ($this->getObjModule()->rightEdit()) { $strAddActions = $this->objToolkit->listButton(class_link::getLinkAdminDialog($this->getArrModule("modul"), "addPackage", "", $this->getLang("action_upload_package"), $this->getLang("action_upload_package"), "icon_new", $this->getLang("action_upload_package"))); } $strReturn .= $this->objToolkit->genericAdminList(generateSystemid(), "", "", $strAddActions, $intI); $strReturn .= $this->objToolkit->listFooter(); $strCore = class_resourceloader::getInstance()->getCorePathForModule("module_packagemanager"); $strReturn .= "<script type='text/javascript'>\n \$(function() {\n KAJONA.admin.loader.loadFile('{$strCore}/module_packagemanager/admin/scripts/packagemanager.js', function() {\n\n \$(window.setTimeout(function() {\n KAJONA.admin.packagemanager.triggerUpdateCheck();\n }, 1000));\n });\n });\n </script>"; $strReturn .= $this->objToolkit->getPageview($objArraySectionIterator, $this->getArrModule("modul"), $this->getAction()); return $strReturn; }
public function main() { echo "\n\n"; echo "Kajona Build Project Helper\n"; echo " Params:\n"; echo " projectPath: " . $this->strProjectPath . "\n"; echo " configFile: " . $this->strConfigFile . "\n"; echo " onlySetup: " . ($this->bitOnlyProjectsetup ? "true" : "false") . "\n"; echo "\n\n"; $arrCores = array(); foreach (scandir(__DIR__ . "/" . $this->strProjectPath) as $strRootFolder) { if (strpos($strRootFolder, "core") === false) { continue; } $arrCores[] = $strRootFolder; } //trigger the setup script, try to get the matching one foreach (array_reverse($arrCores) as $strOneCore) { if (file_exists(__DIR__ . "/" . $this->strProjectPath . "/" . $strOneCore . "/setupproject.php")) { require __DIR__ . "/" . $this->strProjectPath . "/" . $strOneCore . "/setupproject.php"; break; } } echo "calling cleanCore script: php -f '" . __DIR__ . "/cleanCore.php' '" . $this->strProjectPath . "'\n"; $arrReturn = array(); exec("php -f \"" . __DIR__ . "/cleanCore.php\" \"" . $this->strProjectPath . "\"", $arrReturn); echo implode("\n", $arrReturn) . "\n"; if ($this->bitOnlyProjectsetup) { return; } //include config echo "include config.php -> " . __DIR__ . "/config.php\n"; require __DIR__ . "/" . $this->strConfigFile; echo "creating modified config.php...\n"; echo "using db-driver " . DB_DRIVER . "...\n"; $strConfigfile = file_get_contents(__DIR__ . "/" . $this->strProjectPath . "/core/module_system/system/config/config.php"); $strConfigfile = str_replace(array("%%defaulthost%%", "%%defaultusername%%", "%%defaultpassword%%", "%%defaultdbname%%", "%%defaultprefix%%", "%%defaultdriver%%", "%%defaultport%%"), array(DB_HOST, DB_USER, DB_PASS, DB_DB, "autotest_", DB_DRIVER, ""), $strConfigfile); $strSearch = "/\\[\\'debuglevel\\'\\]\\s* = 0/"; $strReplace = "['debuglevel'] = 1"; $strConfigfile = preg_replace($strSearch, $strReplace, $strConfigfile); $strSearch = "/\\[\\'debuglogging\\'\\]\\s* = 1/"; $strReplace = "['debuglogging'] = 3"; $strConfigfile = preg_replace($strSearch, $strReplace, $strConfigfile); file_put_contents(__DIR__ . "/" . $this->strProjectPath . "/project/system/config/config.php", $strConfigfile); echo "starting up system-kernel...\n"; include __DIR__ . "/" . $this->strProjectPath . "/core/module_system/bootstrap.php"; $objCarrier = class_carrier::getInstance(); echo "dropping old tables...\n"; $objDB = $objCarrier->getObjDB(); $arrTables = $objDB->getTables(); foreach ($arrTables as $strOneTable) { echo " ... drop table " . $strOneTable . "\n"; $objDB->_pQuery("DROP TABLE " . $strOneTable, array()); } class_carrier::getInstance()->flushCache(class_carrier::INT_CACHE_TYPE_DBQUERIES | class_carrier::INT_CACHE_TYPE_DBTABLES | class_carrier::INT_CACHE_TYPE_MODULES | class_carrier::INT_CACHE_TYPE_OBJECTFACTORY | class_carrier::INT_CACHE_TYPE_ORMCACHE); echo "\n\n"; echo "Blocking browscap update\n"; touch(__DIR__ . "/" . $this->strProjectPath . "/project/temp/cache.lock"); echo "\n\n\n"; echo "Searching for packages to be installed..."; $objManager = new class_module_packagemanager_manager(); $arrPackageMetadata = $objManager->getAvailablePackages(); $arrPackagesToInstall = array(); foreach ($arrPackageMetadata as $objOneMetadata) { if (!in_array($objOneMetadata->getStrTitle(), array("samplecontent"))) { $arrPackagesToInstall[] = $objOneMetadata; } } echo "nr of packages found to install: " . count($arrPackagesToInstall) . "\n"; echo "\n\n"; $intMaxLoops = 0; echo "starting installations...\n"; while (count($arrPackagesToInstall) > 0 && ++$intMaxLoops < 100) { /** @var class_module_packagemanager_metadata $objOneMetadata */ foreach ($arrPackagesToInstall as $intKey => $objOneMetadata) { echo "---------------------------------------------------------------\n"; if (!$objOneMetadata->getBitProvidesInstaller()) { echo "skipping " . $objOneMetadata->getStrTitle() . ", no installer provided...\n\n"; unset($arrPackagesToInstall[$intKey]); continue; } echo "Installing " . $objOneMetadata->getStrTitle() . "...\n\n"; $objHandler = $objManager->getPackageManagerForPath($objOneMetadata->getStrPath()); if (!$objHandler->isInstallable()) { echo "skipping " . $objOneMetadata->getStrTitle() . " due to unresolved requirements\n"; continue; } echo $objHandler->installOrUpdate(); unset($arrPackagesToInstall[$intKey]); echo "\n\n"; } } echo "Installing samplecontent...\n\n"; try { $objHandler = $objManager->getPackageManagerForPath(class_resourceloader::getInstance()->getCorePathForModule("module_samplecontent") . "/module_samplecontent"); } catch (class_exception $objEx) { $objHandler = null; } if ($objHandler !== null) { echo $objHandler->installOrUpdate(); } }
public function processAutoInstall() { $strReturn = ""; $strReturn .= "Searching for packages to be installed...\n"; $objManager = new class_module_packagemanager_manager(); $arrPackageMetadata = $objManager->getAvailablePackages(); $arrPackagesToInstall = array(); foreach ($arrPackageMetadata as $objOneMetadata) { if (!in_array($objOneMetadata->getStrTitle(), array("samplecontent"))) { $arrPackagesToInstall[] = $objOneMetadata; } } $strReturn .= "Number of packages found: " . count($arrPackagesToInstall) . "\n"; $strReturn .= "\n\n"; $intMaxLoops = 0; $strReturn .= "starting installations...\n"; while (count($arrPackagesToInstall) > 0 && ++$intMaxLoops < 100) { foreach ($arrPackagesToInstall as $intKey => $objOneMetadata) { $strReturn .= "------------------------------\n"; if (!$objOneMetadata->getBitProvidesInstaller()) { $strReturn .= "skipping " . $objOneMetadata->getStrTitle() . ", no installer provided...\n"; unset($arrPackagesToInstall[$intKey]); continue; } $strReturn .= "Installing " . $objOneMetadata->getStrTitle() . "...\n"; $objHandler = $objManager->getPackageManagerForPath($objOneMetadata->getStrPath()); if (!$objHandler->isInstallable()) { $strReturn .= "skipping " . $objOneMetadata->getStrTitle() . " due to unresolved requirements\n"; continue; } $strReturn .= $objHandler->installOrUpdate(); unset($arrPackagesToInstall[$intKey]); $strReturn .= "\n"; } } $strReturn .= "Installing samplecontent...\n"; try { $objHandler = $objManager->getPackageManagerForPath(class_resourceloader::getInstance()->getCorePathForModule("module_samplecontent") . "/module_samplecontent"); } catch (class_exception $objEx) { $objHandler = null; } if ($objHandler != null && $objHandler->isInstallable()) { $strReturn .= $objHandler->installOrUpdate(); } return $strReturn; }