* @copyright (c), Thread */ class Language extends ActiveRecord implements LanguageModel { /** * @return string */ public static function getDb() { return ParentModule::getDb(); } /** * @return string */ public static function tableName() { return '{{%system_languages}}'; } /** * @return array */ public function rules() { return [ [['alias', 'label'], 'string', 'max' => 50], [['local'], 'string', 'max' => 5], [['img_flag'], 'string', 'max' => 225], [['alias', 'local', 'label'], 'required'], [['created_at', 'updated_at'], 'integer'], [['published', 'deleted', 'by_default'], 'in', 'range' => array_keys(static::statusKeyRange())], ]; } /** * @return array */ public function scenarios() { return [ 'published' => ['published'], 'deleted' => ['deleted'], 'backend' => ['published', 'deleted', 'alias', 'local', 'label', 'img_flag', 'by_default'], ]; } /** * @return array */ public function attributeLabels() { return [ 'id' => Yii::t('app', 'ID'), 'created_at' => Yii::t('app', 'Create time'), 'updated_at' => Yii::t('app', 'Update time'), 'published' => Yii::t('app', 'Published'), 'deleted' => Yii::t('app', 'Deleted'), 'alias' => Yii::t('app', 'Alias'), 'local' => Yii::t('app', 'Local'), 'label' => Yii::t('app', 'Label'), 'img_flag' => Yii::t('app', 'Image link'), 'by_default' => Yii::t('app', 'Default'), ]; } /** * @return mixed */ public function getLanguages(): array { return self::findBase()->enabled()->all(); } /** * @return mixed */ public function getCurrent(): array { return self::findBase()->andWhere(['local' => \Yii::$app->language])->asArray()->one(); } /** * @return mixed */ public function getBaseUploadPath() { return Yii::$app->getModule('sys')->getBaseUploadPath('languages', $this); } /** * @return mixed */ public function getBaseUploadUrl() { return Yii::$app->getModule('sys')->getBaseUploadUrl('languages', $this); } /** * @return null|string */ public function getImageLink() { $image = null; if (!empty($this->img_flag) && is_file($this->getBaseUploadPath() . '/' . $this->img_flag)) { $image = $this->getBaseUploadUrl() . '/' . $this->img_flag; } return $image; } /** * @param $id */ public static function getById($id) { return self::find()->byID($id)->one(); } }