protected function findBlogCategory($id) { $blogCategory = BlogCategory::findOne($id); if (!isset($blogCategory)) { throw new HttpException(404, Yii::t('app', 'The requested page does not exist.')); } return $blogCategory; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = BlogCategory::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'created_by' => $this->created_by, 'updated_by' => $this->updated_by, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]); return $dataProvider; }
private function generateURLForSelectedLanguage($currentLanguage) { $params = Yii::$app->request->queryParams; $controllerName = Yii::$app->controller->getUniqueId(); unset($params['language']); $routeYii = Yii::$app->controller->getRoute(); $route = array_merge([$routeYii], $params); /*TODO: Refactor this code, it's not semantic an it's messy */ if ($routeYii == 'blog/view') { $blogPost = BlogPost::findBySlug($params['slug'], $currentLanguage); $params['slug'] = $blogPost->slug; if (BlogPost::findBySlug($params['slug'], Yii::$app->language) === null) { $routeYii = 'blog/index'; $params = []; } $route = array_merge([$routeYii], $params); } elseif ($routeYii == 'blog/category-index') { $blogCategory = BlogCategory::findBySlug($params['slug']); $blogCategory->setLanguage(Yii::$app->language); $params['slug'] = $blogCategory->slug; $route = array_merge([$routeYii], $params); } elseif ($controllerName == 'flat-page' && Yii::$app->id == 'app-frontend') { $flatPage = FlatPage::findBySlugFallback($params['slug'], $currentLanguage); if (isset($flatPage)) { $params['slug'] = $flatPage->slug; } else { $params = []; $routeYii = 'site/index'; } $route = array_merge([$routeYii], $params); } elseif ($routeYii == 'site/error') { $routeYii = 'site/index'; $params = []; $route = array_merge([$routeYii], $params); } return Url::toRoute($route); }
protected function findBlogCategory($slug) { /*TODO: Clean Messy Code*/ $blogCategoryCurrentLanguage = BlogCategory::find()->joinWith('translations')->where(['blog_category_lang.slug' => $slug])->andWhere(['blog_category_lang.language' => Yii::$app->language])->one(); $blogCategory = $blogCategoryCurrentLanguage; /*Fallback language*/ if (!isset($blogCategory)) { $blogCategory = BlogCategory::find()->joinWith('translations')->where(['blog_category_lang.slug' => $slug])->andWhere(['blog_category_lang.language' => Yii::$app->params['fallbackLanguage']])->one(); if (isset($blogCategory) && $slug != $blogCategory->slug) { $blogCategory = $blogCategoryCurrentLanguage; } } /*Main language*/ if (!isset($blogCategory)) { $blogCategory = BlogCategory::find()->joinWith('translations')->where(['blog_category_lang.slug' => $slug])->andWhere(['blog_category_lang.language' => Yii::$app->params['appMainLanguage']])->one(); if (isset($blogCategory) && $slug != $blogCategory->slug) { $blogCategory = $blogCategoryCurrentLanguage; } } if (!isset($blogCategory)) { throw new HttpException(404, Yii::t('app', 'The requested page does not exist.')); } return $blogCategory; }
/** * @return \yii\db\ActiveQuery */ public function getBlogCategory() { return $this->hasOne(\common\models\BlogCategory::className(), ['id' => 'blog_category_id']); }
?> <div class="blog-post-form"> <div class="box box-primary"> <div class="box-header with-border"> <h3 class="box-title"><?php echo Yii::t('app', 'Fill Blog Post Data'); ?> </h3> </div> <?php $form = ActiveForm::begin(['id' => 'blog-post', 'enableClientValidation' => true, 'errorSummaryCssClass' => 'error-summary alert alert-error', 'options' => ['enctype' => 'multipart/form-data']]); ?> <div class="box-body col-md-7"> <?php echo $form->field($blogPost, 'blog_category_id')->dropDownList(BlogCategory::getMappedArray()); ?> <?php if (!$blogPost->isNewRecord) { ?> <?php echo LanguageTabs::widget(['form' => $form, 'model' => $blogPost, 'fieldName' => 'title', 'translations' => $translations]); ?> <?php echo LanguageTabs::widget(['form' => $form, 'model' => $blogPost, 'fieldName' => 'meta_description', 'translations' => $translations, 'numberOfRows' => 3]); ?> <?php echo LanguageTabs::widget(['form' => $form, 'model' => $blogPost, 'fieldName' => 'text', 'translations' => $translations, 'numberOfRows' => 10, 'isHTMLEditor' => true, 'allowHTMLEditorToUploadImages' => true, 'uploadImageUrl' => Url::toRoute(['/blog-post/upload-image', 'blogPostId' => $blogPost->id])]); ?> <?php }
<div class="row"> <div class="col-sm-8"> <div class="blog-content"> <?php echo $content; ?> </div> </div> <div class="col-sm-4"> <div class="blog-sidebar"> <h3><?php echo Yii::t('blog', 'Categories'); ?> </h3> <?php $categories = BlogCategory::find()->all(); ?> <ul> <?php foreach ($categories as $category) { ?> <li><?php echo Html::a($category->name, $category->url); ?> </li><?php } ?> </ul> <h3><?php echo Yii::t('blog', 'Tags'); ?>