/** * @inheritdoc */ public function rules() { $themes = []; foreach (ThemeHelper::getThemes() as $theme) { $themes[] = $theme->name; } return array(array('paginationSize', 'integer', 'max' => 200, 'min' => 1), array('theme', 'in', 'range' => $themes), array(['displayName', 'spaceOrder'], 'safe'), array('logo', 'file', 'extensions' => ['jpg', 'png', 'jpeg'], 'maxSize' => 3 * 1024 * 1024), array('logo', 'dimensionValidation', 'skipOnError' => true), array('dateInputDisplayFormat', 'in', 'range' => ['', 'php:d/m/Y'])); }
/** * 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); }
/** * Store colors to configuration. * * @deprecated since version 1.1 * @param type $themeName */ public static function setColorVariables($themeName) { $theme = ThemeHelper::getThemeByName($themeName); if ($theme !== null) { $theme->storeColorsToConfig(); } }
public function actionDesign() { $form = new \humhub\modules\admin\models\forms\DesignSettingsForm(); if ($form->load(Yii::$app->request->post()) && $form->validate() && $form->save()) { Yii::$app->getSession()->setFlash('data-saved', Yii::t('AdminModule.controllers_SettingController', 'Saved')); return $this->redirect(['/admin/setting/design']); } $themes = []; foreach (ThemeHelper::getThemes() as $theme) { $themes[$theme->name] = $theme->name; } return $this->render('design', array('model' => $form, 'themes' => $themes, 'logo' => new \humhub\libs\LogoImage())); }