slug = $slug; $category->sort = $sort; $category->_form = $form; return $category; } public function edit($form, $slug, $sort): void { $this->slug = $slug; $this->sort = $sort; $this->_form = $form; } public function attributeLabels() { return [ 'id' => Yii::t('blog', 'ID'), 'name' => Yii::t('blog', 'Name'), 'slug' => Yii::t('blog', 'SEO link'), 'sort' => Yii::t('blog', 'Sort'), 'title' => Yii::t('blog', 'Title'), 'description' => Yii::t('blog', 'Description'), 'meta_title' => Yii::t('blog', 'META Title'), 'meta_description' => Yii::t('blog', 'META Description'), 'meta_keywords' => Yii::t('blog', 'META Keywords'), ]; } public function getSeoTitle(): string { return $this->translation->meta_title ?: $this->getHeadingTile(); } public function getHeadingTile(): string { return $this->translation->title ?: $this->translation->name; } public function getPostsCount(): int { return BlogPost::find()->where(['category_id' => $this->id])->count('*'); } public static function tableName(): string { return '{{%blog_categories}}'; } public function behaviors(): array { return [ /*[ 'class' => SluggableBehavior::class, 'attribute' => 'title', 'ensureUnique' => true, 'preserveNonEmptyValues' => true, ],*/ [ 'class' => LanguageBehavior::class, 'virtualClassName' => 'BlogCategoryVirtualTranslate', 'translatedLanguages' => \Yii::$app->params['translatedLanguages'], 'relativeField' => 'blog_category_id', 'tableName' => '{{%blog_categories_lng}}', 'attributes' => [ 'title', 'description', 'name', 'meta_title', 'meta_description', 'meta_keywords' ], //'defaultLanguage' => basename(Yii::$app->getBasePath()) === 'backend' ? Yii::$app->language : Yii::$app->params['defaultLanguage'], 'defaultLanguage' => \Yii::$app->params['defaultLanguage'], ], [ 'class' => SluggableRelationBehavior::class, 'attribute' => 'name', 'relation' => 'translation', ], ]; } public static function find(): BlogCategoryQuery { return new BlogCategoryQuery(static::class); } }