File manager - Edit - /home/buyherba/worldcargocourier.com/webmail/system/Installer.php
Back
<?php /** * This code is licensed under AGPLv3 license or Afterlogic Software License * if commercial version of the product was purchased. * For full statements of the licenses see LICENSE-AFTERLOGIC and LICENSE-AGPL3 files. */ namespace Aurora; use Aurora\System\Module\Settings; use Composer\Script\Event; /** * @license https://www.gnu.org/licenses/agpl-3.0.html AGPL-3.0 * @license https://afterlogic.com/products/common-licensing Afterlogic Software License * @copyright Copyright (c) 2019, Afterlogic Corp. */ class Installer { /** * NOTE! This method should be run from composer. */ public static function checkConfigs() { $RED = "\033[1;31m"; $YELLOW = "\033[1;33m"; $GREEN = "\033[1;32m"; $NC = "\033[0m"; $sBaseDir = dirname(dirname(__File__)); $sModulesDir = $sBaseDir . "/modules/"; $aModuleDirs = glob($sModulesDir . '*', GLOB_ONLYDIR); $aModulesOk = []; $aModulesHasError = []; $aModulesNoConfig = []; foreach ($aModuleDirs as $sModuleDir) { $sModuleName = str_replace($sModulesDir, "", $sModuleDir); $sConfigFile = $sModuleDir . "/config.json"; if (file_exists($sConfigFile)) { if (json_decode(file_get_contents($sConfigFile))) { $aModulesOk[] = $sModuleName; } else { $aModulesHasError[] = $sModuleName; } } else { $aModulesNoConfig[] = $sModuleName; } } echo $GREEN . count($aModuleDirs) . " modules were processed" . $NC . "\r\n\r\n"; if (count($aModulesHasError) > 0) { echo $YELLOW . "The following modules have syntax problems in the config file (" . count($aModulesHasError) . "):" . $NC . "\r\n"; echo $RED . implode("\r\n", $aModulesHasError) . $NC; echo "\r\n\r\n"; } if (count($aModulesNoConfig) > 0) { echo $YELLOW . "The following modules have no config files (" . count($aModulesNoConfig) . "):" . $NC . "\r\n"; echo $RED . implode("\r\n", $aModulesNoConfig) . $NC; echo "\r\n\r\n"; } if (count($aModulesOk) > 0) { echo $GREEN . count($aModulesOk) . " modules have no problem with config files" . $NC; echo "\r\n"; } } /** * NOTE! This method should be run from composer. */ public static function updateConfigs() { $sBaseDir = dirname(__File__); include_once $sBaseDir . '/autoload.php'; $sMessage = "Configuration was updated successfully"; if (!\Aurora\System\Api::UpdateSettings()) { $sMessage = "An error occurred while updating the configuration"; } echo $sMessage . "\r\n"; } /** * NOTE! This method should be run from composer. */ public static function preConfigForce($event) { self::preConfig($event); } /** * NOTE! This method should be run from composer. */ public static function preConfigSafe($event) { $sBaseDir = dirname(__File__); //Checking that configuration files already exist if (count(glob(dirname($sBaseDir) . "/data/settings/modules/*")) !== 0) { echo "The config files are already exist \r\n"; return; } else { self::preConfig($event); } } /** * NOTE! This method should be run from composer. */ private static function preConfig($event) { $sConfigFilename = 'pre-config.json'; $sBaseDir = dirname(__File__); $sMessage = "Configuration was updated successfully"; $oExtra = $event->getComposer()->getPackage()->getExtra(); if ($oExtra && isset($oExtra['aurora-installer-pre-config'])) { $sConfigFilename = $oExtra['aurora-installer-pre-config']; } $sConfigPath = dirname($sBaseDir) . '/' . $sConfigFilename; if (file_exists($sConfigPath)) { $sPreConfig = file_get_contents($sConfigPath); $oPreConfig = json_decode($sPreConfig, true); if ($oPreConfig) { include_once $sBaseDir . '/autoload.php'; \Aurora\System\Api::Init(); if ($oPreConfig['modules']) { $oModuleManager = \Aurora\System\Api::GetModuleManager(); foreach ($oPreConfig['modules'] as $sModuleName => $oModuleConfig) { if (!empty($sModuleName)) { $oSettings = $oModuleManager->getModuleSettings($sModuleName); if ($oSettings instanceof Settings) { $oSettings->Load(); foreach ($oModuleConfig as $sConfigName => $mConfigValue) { //overriding modules default configuration with pre-configuration data $oProp = $oSettings->GetSettingsProperty($sConfigName); if ($oProp) { if (!empty($oProp->SpecType)) { $mConfigValue = \Aurora\System\Enums\EnumConvert::FromXml($mConfigValue, $oProp->SpecType); } $oSettings->SetValue($sConfigName, $mConfigValue); } } $oSettings->Save(); } } } } if ($oPreConfig['system']) { $oSettings = &\Aurora\System\Api::GetSettings(); foreach ($oPreConfig['system'] as $mKey => $mSett) { $oSettings->{$mKey} = $mSett; } $oSettings->Save(); } } else { $sMessage = "Invalid config file"; } } else { $sMessage = "Config file didn't found"; } echo $sMessage . "\r\n"; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.09 |
proxy
|
phpinfo
|
Settings