/**
  * 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;
 }
Esempio n. 4
0
 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();
     }
 }
Esempio n. 5
0
 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;
 }