| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- <?php
- /**
- * Author: lf
- * Blog: https://blog.feehi.com
- * Email: job@feehi.com
- * Created at: 2016-03-23 12:54
- */
- namespace backend\models\form;
- use yii;
- use common\models\Options;
- class SettingWebsiteForm extends \common\models\Options
- {
- public $website_title;
- public $website_email;
- public $website_language;
- public $website_icp;
- public $website_statics_script;
- public $website_status;
- public $website_timezone;
- public $website_comment;
- public $website_comment_need_verify;
- public $website_url;
- public $seo_keywords;
- public $seo_description;
- /**
- * 填充网站配置
- *
- */
- public function init()
- {
- parent::init();
- $names = $this->getNames();
- $models = Options::find()->where(["in", "name", $names])->indexBy("name")->all();
- foreach ($names as $name) {
- if (isset($models[$name])) {
- $this->$name = $models[$name]->value;
- } else {
- $this->name = '';
- }
- }
- }
- /**
- * @inheritdoc
- */
- public function attributeLabels()
- {
- return [
- 'website_title' => yii::t('app', 'Website Title'),
- 'website_email' => yii::t('app', 'Website Email'),
- 'website_language' => yii::t('app', 'Website Language'),
- 'website_icp' => yii::t('app', 'Icp Sn'),
- 'website_statics_script' => yii::t('app', 'Statics Script'),
- 'website_status' => yii::t('app', 'Website Status'),
- 'website_timezone' => yii::t('app', 'Website Timezone'),
- 'website_comment' => yii::t('app', 'Open Comment'),
- 'website_comment_need_verify' => yii::t('app', 'Open Comment Verify'),
- 'website_url' => yii::t('app', 'Website Url'),
- 'seo_keywords' => yii::t('app', 'Seo Keywords'),
- 'seo_description' => yii::t('app', 'Seo Description'),
- ];
- }
- /**
- * @inheritdoc
- */
- public function rules()
- {
- return [
- [
- [
- 'website_title',
- 'website_language',
- 'website_icp',
- 'website_statics_script',
- 'website_timezone',
- 'seo_keywords',
- 'seo_description'
- ],
- 'string'
- ],
- [ 'website_url', 'required'],
- [ 'website_url', 'validatorWebsiteUrl'],
- [ 'website_email', 'email'],
- [['website_status', 'website_comment', 'website_comment_need_verify'], 'integer'],
- ];
- }
- public function validatorWebsiteUrl($attribute, $params)
- {
- if( strpos($this->$attribute, "https://") === 0 || strpos($this->$attribute, "http://") === 0 || strpos($this->$attribute, "//") === 0 ){
- return;
- }
- $this->addError($attribute, yii::t("app", '{attribute} must begin with https:// or http:// or //', ['attribute'=>yii::t('app', 'Website Url')]));
- return;
- }
- /**
- * 写入网站配置到数据库
- *
- * @return bool
- */
- public function setWebsiteConfig()
- {
- $names = $this->getNames();
- foreach ($names as $name) {
- $model = self::findOne(['name' => $name]);
- if ($model != null) {
- $value = $this->$name;
- $value === null && $value = '';
- $model->value = $value;
- $result = $model->save(false);
- } else {
- $model = new Options();
- $model->name = $name;
- $model->value = '';
- $result = $model->save(false);
- }
- if ($result == false) {
- return false;
- }
- }
- return true;
- }
- }
|