Your IP : 216.73.216.48


Current Path : /var/www/codedit/models/
Upload File :
Current File : //var/www/codedit/models/SiteSettings.php

<?php

namespace app\models;

use Yii;
use yii\behaviors\TimestampBehavior;
use yii\db\Expression;

class SiteSettings extends \yii\db\ActiveRecord {

    public static function tableName() {
        return '{{%site_settings}}';
    }

    public function behaviors() {
        return [
            [
                'class' => TimestampBehavior::className(),
                'createdAtAttribute' => NULL,
                'updatedAtAttribute' => 'last_updated',
            ],
        ];
    }

    public function rules() {
        return [
            [['title', 'meta_description', 'meta_keywords', 'in_maintenance', 'opened_registration'], 'required'],
            [['title'], 'string', 'max' => 50],
            [['meta_description', 'meta_keywords', 'maintenance_message', 'registration_message'], 'string', 'max' => 1000],
            [['settings_id', 'in_maintenance', 'opened_registration', 'last_updated'], 'integer'],
        ];
    }

    public function attributeLabels() {
        return [
            'title' => Yii::t('app', 'Заглавие'),
            'meta_description' => Yii::t('app', 'Описание'),
            'meta_keywords' => Yii::t('app', 'Ключови думи'),
            'in_maintenance' => Yii::t('app', 'В режим на разработка'),
            'maintenance_message' => Yii::t('app', 'Съобщение до потребителите'),
            'opened_registration' => Yii::t('app', 'Отворена регистрация?'),
            'last_updated' => Yii::t('app', 'Последна редакция'),
        ];
    }

    public function editSettings($settings) {
        return $settings->save();
    }

    public function getSiteSettings() {
        $cacheKey = md5('site-settings');
        $settings = Yii::$app->cache->get($cacheKey);
        if ($settings === false) {
            $settings = SiteSettings::find()->one();
            Yii::$app->cache->set($cacheKey, $settings, 10 * 60);
        }
        return $settings;
    }

}