/** * Rewrites DynamicConfiguration based on Database Stored Settings */ public static function rewrite() { // Get Current Configuration $config = self::load(); // Add Application Name to Configuration $config['name'] = Yii::$app->settings->get('name'); // Add Default language $defaultLanguage = Yii::$app->settings->get('defaultLanguage'); if ($defaultLanguage !== null && $defaultLanguage != "") { $config['language'] = Yii::$app->settings->get('defaultLanguage'); } else { $config['language'] = Yii::$app->language; } $timeZone = Yii::$app->settings->get('timeZone'); if ($timeZone != "") { $config['timeZone'] = $timeZone; $config['components']['formatter']['defaultTimeZone'] = $timeZone; $config['components']['formatterApp']['defaultTimeZone'] = $timeZone; $config['components']['formatterApp']['timeZone'] = $timeZone; } // Add Caching $cacheClass = Yii::$app->settings->get('cache.class'); if (in_array($cacheClass, ['yii\\caching\\DummyCache', 'yii\\caching\\ApcCache', 'yii\\caching\\FileCache'])) { $config['components']['cache'] = ['class' => $cacheClass, 'keyPrefix' => Yii::$app->id]; } // Add User settings $config['components']['user'] = array(); if (Yii::$app->getModule('user')->settings->get('auth.defaultUserIdleTimeoutSec')) { $config['components']['user']['authTimeout'] = Yii::$app->getModule('user')->settings->get('auth.defaultUserIdleTimeoutSec'); } // Install Mail Component $mail = []; $mail['transport'] = array(); if (Yii::$app->settings->get('mailer.transportType') == 'smtp') { $mail['transport']['class'] = 'Swift_SmtpTransport'; if (Yii::$app->settings->get('mailer.hostname')) { $mail['transport']['host'] = Yii::$app->settings->get('mailer.hostname'); } if (Yii::$app->settings->get('mailer.username')) { $mail['transport']['username'] = Yii::$app->settings->get('mailer.username'); } else { if (!Yii::$app->settings->get('mailer.password')) { $mail['transport']['authMode'] = 'null'; } } if (Yii::$app->settings->get('mailer.password')) { $mail['transport']['password'] = Yii::$app->settings->get('mailer.password'); } if (Yii::$app->settings->get('mailer.encryption')) { $mail['transport']['encryption'] = Yii::$app->settings->get('mailer.encryption'); } if (Yii::$app->settings->get('mailer.port')) { $mail['transport']['port'] = Yii::$app->settings->get('mailer.port'); } /* if (Yii::$app->settings->get('mailer.allowSelfSignedCerts')) { $mail['transport']['ssl']['allow_self_signed'] = true; $mail['transport']['ssl']['verify_peer'] = false; } */ } elseif (Yii::$app->settings->get('mailer.transportType') == 'php') { $mail['transport']['class'] = 'Swift_MailTransport'; } else { $mail['useFileTransport'] = true; } $config['components']['mailer'] = $mail; $config = ArrayHelper::merge($config, ThemeHelper::getThemeConfig(Yii::$app->settings->get('theme'))); $config['params']['config_created_at'] = time(); $config['params']['horImageScrollOnMobile'] = Yii::$app->settings->get('horImageScrollOnMobile'); self::save($config); }