Commit 8596ef4b015ae35c3d934c285c069c3329fa21a1

Authored by Alexey Boroda
1 parent f3b6b9b1

-Seo component ready

common/config/main.php
1 1 <?php
  2 + use artbox\core\components\SeoComponent;
  3 +
2 4 return [
3 5 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
4 6 'components' => [
... ... @@ -17,5 +19,8 @@
17 19 'class' => 'yii2tech\filedb\Connection',
18 20 'path' => '@common/config',
19 21 ],
  22 + 'seo' => [
  23 + 'class' => SeoComponent::className(),
  24 + ],
20 25 ],
21 26 ];
... ...
frontend/controllers/PageController.php
1 1 <?php
2 2 namespace frontend\controllers;
3   -
  3 +
  4 + use artbox\core\components\SeoComponent;
4 5 use artbox\core\models\Page;
5 6 use yii\helpers\Json;
6 7 use yii\helpers\Url;
7 8 use yii\web\Controller;
8 9 use yii\web\NotFoundHttpException;
9   -
  10 + use Yii;
  11 +
10 12 /**
11 13 * Class PageController
12 14 *
... ... @@ -17,9 +19,15 @@
17 19 public function actionView($id)
18 20 {
19 21 $model = $this->findModel($id);
20   -
  22 +
  23 + /**
  24 + * @var SeoComponent $seo
  25 + */
  26 + $seo = Yii::$app->get('seo');
  27 + $seo->setModel($model->lang);
  28 +
21 29 var_dump(Url::to(Json::decode($model->lang->alias->route)));
22   -
  30 +
23 31 return $this->render(
24 32 'view',
25 33 [
... ... @@ -27,12 +35,25 @@
27 35 ]
28 36 );
29 37 }
30   -
  38 +
31 39 protected function findModel($id)
32 40 {
33   - $model = Page::findOne($id);
34   -
  41 + /**
  42 + * @var Page $model
  43 + */
  44 + $model = Page::find()
  45 + ->where(
  46 + [
  47 + 'id' => $id,
  48 + ]
  49 + )
  50 + ->with('lang')
  51 + ->one();
  52 +
35 53 if (!empty($model)) {
  54 + if ($model->lang->alias_id !== Yii::$app->seo->aliasId) {
  55 + throw new NotFoundHttpException('Wrong language');
  56 + }
36 57 return $model;
37 58 } else {
38 59 throw new NotFoundHttpException('Model not found');
... ...
frontend/views/page/view.php
1 1 <?php
  2 + use artbox\core\models\Language;
2 3 use artbox\core\models\Page;
3 4 use yii\helpers\Url;
4 5 use yii\web\View;
... ... @@ -7,7 +8,6 @@
7 8 * @var View $this
8 9 * @var Page $model
9 10 */
10   -
11 11 ?>
12 12  
13 13 <h1>
... ... @@ -16,7 +16,8 @@
16 16 <?= Url::to(
17 17 [
18 18 'page/view',
19   - 'id' => 10,
  19 + 'id' => $model->id,
  20 + 'lang' => Language::getCurrent()->id,
20 21 ]
21 22 ) ?>
22 23 </h1>
23 24 \ No newline at end of file
... ...