Beispiel #1
0
 public function saveParameters($moduleGroup = null, $moduleName = null, $allowCreateLanguage = true)
 {
     global $parametersMod;
     $this->languageId = Db::getLanguageId($this->cachedLanguage['code']);
     if ($this->languageId === false) {
         if ($allowCreateLanguage) {
             $this->languageId = Db::insertLanguage($this->cachedLanguage);
             \Modules\standard\languages\Db::createEmptyTranslations($this->languageId, 'par_lang');
         } else {
             $siteLanguages = \Modules\standard\languages\Db::getLanguages();
             $this->languageId = $siteLanguages[0]['id'];
         }
     }
     foreach ($this->parameterGroups as $groupKey => $group) {
         if ($moduleGroup == null || $moduleName == null || $moduleGroup == $group->moduleGroupName && $moduleName == $group->moduleName) {
             if ($parametersMod->getValue('standard', 'configuration', 'advanced_options', 'administrator_interface_language') == $this->languageCode) {
                 //set module group translation
                 $tmpGroup = Db::getGroup($group->moduleGroupName);
                 if ($tmpGroup && $group->moduleGroupTranslation) {
                     Db::updateModuleGroupTranslation($tmpGroup['id'], $group->moduleGroupTranslation);
                 }
                 //set module translation
                 $tmpModule = \Db::getModule(null, $group->moduleGroupName, $group->moduleName);
                 if ($tmpModule && $group->moduleTranslation) {
                     Db::updateModuleTranslation($tmpModule['id'], $group->moduleTranslation);
                 }
             }
             $group->saveToDb($this->languageId);
         }
     }
 }
 private static function importConfig($groupName, $moduleName)
 {
     global $log;
     $siteLanguages = \Modules\standard\languages\Db::getLanguages();
     foreach ($siteLanguages as $key => $language) {
         $siteLanguages[$key]['code'] = strtolower($siteLanguages[$key]['code']);
     }
     $configFiles = ModulesInstallation::getConfigFiles(MODULE_DIR . 'standard/content_management/widgets/' . $groupName . '/' . $moduleName . '/install/', 'parameters');
     foreach ($configFiles as $key => $file) {
         $configFiles[$key] = unserialize(file_get_contents(MODULE_DIR . 'standard/content_management/widgets/' . $groupName . '/' . $moduleName . '/install/' . $key));
         $configFiles[$key]->languageCode = strtolower($configFiles[$key]->languageCode);
     }
     //install default config
     foreach ($configFiles as $key => $file) {
         if ($key == 'parameters.conf') {
             if (isset($siteLanguages[0])) {
                 $file->languageCode = $siteLanguages[0]['code'];
                 $log->log('developer/widgets', 'parameters installation', MODULE_DIR . 'standard/content_management/widgets/' . $groupName . '/' . $moduleName . '/install/parameters.conf installation (' . $siteLanguages[0]['code'] . ')');
                 $file->saveParameters($groupName, $moduleName, false);
             }
         }
     }
     //install configuration files that match site languages
     foreach ($configFiles as $configKey => $file) {
         if ($configKey !== 'parameters.conf') {
             //parameters.conf is already installed
             foreach ($siteLanguages as $languageKey => $language) {
                 if ($language['code'] == $file->languageCode) {
                     $file->languageCode = $siteLanguages[0]['code'];
                     $log->log('adeveloper/widgets', 'parameters installation', MODULE_DIR . 'standard/content_management/widgets/' . $groupName . '/' . $moduleName . '/install/' . $configKey . ' (' . $language['code'] . ')');
                     $file->saveParameters($groupName, $moduleName, false);
                     $siteLanguages[$languageKey] == null;
                     //mark language as installed
                 }
             }
         }
     }
     //install configuration files that are similar to site languages. Eg. en-gb and en
     foreach ($configFiles as $configKey => $file) {
         if ($configKey !== 'parameters.conf') {
             //parameters.conf is already installed
             $tmpLang = $file->languageCode;
             $tmpLang = substr($tmpLang, 0, strpos($tmpLang, '-'));
             foreach ($siteLanguages as $languageKey => $language) {
                 if ($language !== null && ($language['code'] = $tmpLang)) {
                     //null - already installed
                     $file->languageCode = $siteLanguages[0]['code'];
                     $log->log('bdeveloper/widgets', 'parameters installation', MODULE_DIR . 'standard/content_management/widgets/' . $groupName . '/' . $moduleName . '/install/' . $configKey . ' (' . $language['code'] . ')');
                     $file->saveParameters($groupName, $moduleName, false);
                     $siteLanguages[$languageKey] == null;
                     //mark language as installed
                 }
             }
         }
     }
 }
Beispiel #3
0
 public static function saveParameters($file, $ignoreLanguage = false)
 {
     require_once MODULE_DIR . 'standard/languages/db.php';
     //require_once(MODULE_DIR."standard/seo/db.php");
     global $parametersMod;
     global $site;
     require $file;
     $answer = '';
     //get languageId
     $languageId = null;
     if ($ignoreLanguage || !isset($languageCode)) {
         $languageId = $site->currentLanguage['id'];
     } else {
         $languages = \Modules\standard\languages\db::getLanguages();
         foreach ($languages as $key => $language) {
             if ($language['code'] == $languageCode) {
                 $languageId = $language['id'];
             }
         }
         if ($languageId === null) {
             if (!isset($languageShort)) {
                 $languageShort = $languageCode;
             }
             if (!isset($languageLong)) {
                 $languageLong = $languageCode;
             }
             if (!isset($languageUrl)) {
                 $languageUrl = $languageCode;
             }
             $parameter = array();
             $rowNumber = -1.0E+17;
             $languages = \Modules\standard\languages\Db::getLanguages();
             foreach ($languages as $language) {
                 if ($language['row_number'] >= $rowNumber) {
                     $rowNumber = $language['row_number'] + 1;
                 }
             }
             $languageId = Db::insertLanguage($languageCode, $languageShort, $languageLong, $languageUrl, 0, $rowNumber);
             \Modules\standard\languages\Db::createRootZoneElement($languageId);
             \Modules\standard\languages\Db::createEmptyTranslations($languageId, 'par_lang');
         }
     }
     if (isset($parameterGroupTitle)) {
         foreach ($parameterGroupTitle as $groupName => $group) {
             foreach ($group as $moduleName => $module) {
                 foreach ($module as $parameterGroupName => $value) {
                     $tmpModule = \Db::getModule(null, $groupName, $moduleName);
                     if ($tmpModule) {
                         $tmpParameterGroup = Db::getParameterGroup($tmpModule['id'], $parameterGroupName);
                         if ($tmpParameterGroup) {
                             Db::setParameterGroupTitle($tmpParameterGroup['id'], $value);
                         } else {
                             if (isset($parameterGroupAdmin[$groupName][$moduleName][$parameterGroupName])) {
                                 $admin = $parameterGroupAdmin[$groupName][$moduleName][$parameterGroupName];
                             } else {
                                 $admin = 1;
                             }
                             $tmpParameterGroup = Db::createParameterGroup($tmpModule['id'], $parameterGroupName, $value, $admin);
                         }
                     }
                 }
             }
         }
     }
     if (isset($parameterValue)) {
         foreach ($parameterValue as $groupName => $moduleGroup) {
             foreach ($moduleGroup as $moduleName => $module) {
                 $tmpModule = \Db::getModule(null, $groupName, $moduleName);
                 if ($tmpModule) {
                     foreach ($module as $parameterGroupName => $parameterGroup) {
                         $tmpParameterGroup = Db::getParameterGroup($tmpModule['id'], $parameterGroupName);
                         if (!$tmpParameterGroup) {
                             if (isset($parameterGroupAdmin[$groupName][$moduleName][$parameterGroupName])) {
                                 $admin = $parameterGroupAdmin[$groupName][$moduleName][$parameterGroupName];
                             } else {
                                 $admin = 1;
                             }
                             $tmpParameterGroup['id'] = Db::createParameterGroup($tmpModule['id'], $parameterGroupName, $parameterGroupName, $admin);
                         }
                         foreach ($parameterGroup as $parameterName => $value) {
                             if (!$parametersMod->exist($groupName, $moduleName, $parameterGroupName, $parameterName)) {
                                 $parameter = array();
                                 $parameter['name'] = $parameterName;
                                 if (isset($parameterAdmin[$groupName][$moduleName][$parameterGroupName][$parameterName])) {
                                     $parameter['admin'] = $parameterAdmin[$groupName][$moduleName][$parameterGroupName][$parameterName];
                                 } else {
                                     $parameter['admin'] = 1;
                                 }
                                 if (isset($parameterTitle[$groupName][$moduleName][$parameterGroupName][$parameterName])) {
                                     $parameter['translation'] = $parameterTitle[$groupName][$moduleName][$parameterGroupName][$parameterName];
                                 } else {
                                     $parameter['translation'] = $parameterName;
                                 }
                                 if (isset($parameterType[$groupName][$moduleName][$parameterGroupName][$parameterName])) {
                                     $parameter['type'] = $parameterType[$groupName][$moduleName][$parameterGroupName][$parameterName];
                                 } else {
                                     $parameter['type'] = 'string';
                                 }
                                 $parameter['value'] = str_replace("\r\n", "\n", $value);
                                 //user can edit parameters file and change line endings. So, we convert them back
                                 $parameter['value'] = str_replace("\r", "\n", $parameter['value']);
                                 Db::insertParameter($tmpParameterGroup['id'], $parameter);
                             } else {
                                 $value = str_replace("\r\n", "\n", $value);
                                 //user can edit parameters file and change line endings. So, we convert them back
                                 $value = str_replace("\r", "\n", $value);
                                 $parametersMod->setValue($groupName, $moduleName, $parameterGroupName, $parameterName, $value, $languageId);
                             }
                         }
                     }
                 }
             }
         }
     }
     if (isset($parameterTitle)) {
         foreach ($parameterTitle as $moduleGroupName => $moduleGroup) {
             foreach ($moduleGroup as $moduleName => $module) {
                 foreach ($module as $parameterGroupName => $parameterGroup) {
                     foreach ($parameterGroup as $parameterName => $title) {
                         Db::setParameterTitle($moduleGroupName, $moduleName, $parameterGroupName, $parameterName, $title);
                     }
                 }
             }
         }
     }
     if (isset($moduleGroupTitle)) {
         foreach ($moduleGroupTitle as $groupName => $value) {
             Db::setModuleGroupTitle($groupName, $value);
         }
     }
     if (isset($moduleTitle)) {
         foreach ($moduleTitle as $groupName => $group) {
             foreach ($group as $moduleName => $value) {
                 Db::setModuleTitle($groupName, $moduleName, $value);
             }
         }
     }
     return $answer;
 }
 private function importConfig($groupName, $moduleName)
 {
     require_once BASE_DIR . MODULE_DIR . 'developer/localization/manager.php';
     global $log;
     global $parametersMod;
     $siteLanguages = \Modules\standard\languages\Db::getLanguages();
     $installDir = BASE_DIR . PLUGIN_DIR . $groupName . '/' . $moduleName . '/install/';
     //install default config
     if (is_file($installDir . 'config.php')) {
         \Modules\developer\localization\Manager::saveParameters($installDir . 'config.php', true);
     }
     //get public area translation files
     $configFiles = $this->getFiles($installDir, 'translations.public.');
     foreach ($siteLanguages as $key => $language) {
         $siteLanguages[$key]['code'] = strtolower($siteLanguages[$key]['code']);
     }
     //install configuration files that match site languages
     foreach ($siteLanguages as $languageKey => $language) {
         if (isset($configFiles[$language['code']])) {
             \Modules\developer\localization\Manager::saveParameters($installDir . $configFiles[$language['code']]);
             $siteLanguages[$languageKey] == null;
             //mark language as installed
         }
     }
     //install configuration files that are similar to site languages. Eg. en-gb and en
     foreach ($configFiles as $configKey => $file) {
         if ($configKey !== 'default') {
             //default is already installed
             $fileCode = $configKey;
             $fileCode = substr($fileCode, 0, strpos($fileCode, '-'));
             foreach ($siteLanguages as $languageKey => $language) {
                 if ($language !== null) {
                     //null - already installed
                     $languageCode = substr($language['code'], 0, strpos($language['code'], '-'));
                     if ($languageCode = $fileCode) {
                         \Modules\developer\localization\Manager::saveParameters($installDir . $configFiles[$configKey]);
                         $siteLanguages[$languageKey] == null;
                         //mark language as installed
                     }
                 }
             }
         }
     }
     //get administration area translation files
     $configFiles = $this->getFiles($installDir, 'translations.administrator.');
     $administrationAreaLanguageCode = $parametersMod->getValue('standard', 'configuration', 'advanced_options', 'administrator_interface_language');
     if (isset($configFiles[$administrationAreaLanguageCode])) {
         \Modules\developer\localization\Manager::saveParameters($installDir . $configFiles[$administrationAreaLanguageCode], true);
     } else {
         if (strpos($administrationAreaLanguageCode, '-') !== false) {
             $administrationAreaLanguageCode = substr($administrationAreaLanguageCode, 0, strpos($administrationAreaLanguageCode, '-'));
         }
         foreach ($configFiles as $configKey => $file) {
             $fileCode = $configKey;
             $fileCode = substr($fileCode, 0, strpos($fileCode, '-'));
             if ($fileCode == $administrationAreaLanguageCode) {
                 \Modules\developer\localization\Manager::saveParameters($installDir . $configFiles[$configKey], true);
             }
         }
     }
 }
Beispiel #5
0
 /**
  * Get all languages
  * @return array
  */
 public static function getLanguages()
 {
     require_once BASE_DIR . MODULE_DIR . 'standard/languages/db.php';
     $languages = \Modules\standard\languages\Db::getLanguages();
     return $languages;
 }