Commit cf77cbae6972024b85b4ba026457b67ed2f03333
1 parent
d29a2cfa
14.09.16
Showing
4 changed files
with
23 additions
and
16 deletions
Show diff stats
frontend/config/main.php
... | ... | @@ -138,9 +138,9 @@ return [ |
138 | 138 | 'brands' => 'catalog/brands', |
139 | 139 | 'brands/<brand:[\w\-]+>' => 'catalog/brand', |
140 | 140 | 'blog' => 'articles/index', |
141 | - 'blog/<translit:[\w\-]+>-<id:\d+>' => 'articles/show', | |
141 | + 'blog/<translit:[\w\-\_]+>' => 'articles/show', | |
142 | 142 | 'event' => 'event/index', |
143 | - 'event/<alias:[\w\-]+>-<id:\d+>' => 'event/show', | |
143 | + 'event/<alias:[\w\-]+>' => 'event/show', | |
144 | 144 | '<language:(ru|ua|en)>/<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>', |
145 | 145 | '<language:(ru|ua|en)>/<controller:\w+>/<action:\w+>' => '<controller>/<action>', |
146 | 146 | '<language:(ru|ua|en)>/admin' => 'admin/default/index', | ... | ... |
frontend/controllers/ArticlesController.php
... | ... | @@ -7,7 +7,7 @@ use yii\web\Controller; |
7 | 7 | use common\models\Articles; |
8 | 8 | use yii\web\HttpException; |
9 | 9 | use yii\data\Pagination; |
10 | - | |
10 | +use yii\web\NotFoundHttpException; | |
11 | 11 | class ArticlesController extends Controller |
12 | 12 | { |
13 | 13 | |
... | ... | @@ -30,13 +30,23 @@ class ArticlesController extends Controller |
30 | 30 | ]); |
31 | 31 | } |
32 | 32 | |
33 | - public function actionShow(){ | |
34 | - if(!$news = Articles::find()->where(['id'=>$_GET['id']])->one()) | |
35 | - throw new HttpException(404, 'Данной странице не существует!'); | |
33 | + public function actionShow($translit){ | |
34 | + $news = $this->findModel($translit); | |
35 | + | |
36 | 36 | |
37 | - return $this->render('show', [ | |
38 | - 'news'=>$news, | |
39 | - ]); | |
37 | + return $this->render('show', [ | |
38 | + 'news'=>$news, | |
39 | + ]); | |
40 | + } | |
41 | + | |
42 | + | |
43 | + protected function findModel($translit) | |
44 | + { | |
45 | + if (($model = Articles::findOne(["translit"=>$translit])) !== null) { | |
46 | + return $model; | |
47 | + } else { | |
48 | + throw new NotFoundHttpException('The requested page does not exist.'); | |
49 | + } | |
40 | 50 | } |
41 | 51 | |
42 | 52 | } |
43 | 53 | \ No newline at end of file | ... | ... |
frontend/views/articles/index.php
... | ... | @@ -39,15 +39,13 @@ |
39 | 39 | <div class="news_item"> |
40 | 40 | <a href="<?= Url::to([ |
41 | 41 | 'articles/show', |
42 | - 'translit' => $item->translit, | |
43 | - 'id' => $item->id, | |
42 | + 'translit' => $item->translit | |
44 | 43 | ]) ?>"> |
45 | 44 | <?= Html::img(\common\components\artboximage\ArtboxImageHelper::getImageSrc($item->imageUrl, 'list'), [ 'class' => 'float-left' ]) ?> |
46 | 45 | </a> |
47 | 46 | <a href="<?= Url::to([ |
48 | 47 | 'articles/show', |
49 | - 'translit' => $item->translit, | |
50 | - 'id' => $item->id, | |
48 | + 'translit' => $item->translit | |
51 | 49 | ]) ?>" class="name"><?= $item->title ?></a><br/> |
52 | 50 | <div class="comment_display_block article_list_comment"> |
53 | 51 | <?php |
... | ... | @@ -63,7 +61,6 @@ |
63 | 61 | echo Html::a(( $comment_count ? 'Отзывов: ' . count($item->comments) : "Оставить отзыв" ), [ |
64 | 62 | 'articles/show', |
65 | 63 | 'translit' => $item->translit, |
66 | - 'id' => $item->id, | |
67 | 64 | '#' => 'artbox-comment', |
68 | 65 | ]); |
69 | 66 | ?> | ... | ... |
frontend/views/event/_objects.php
... | ... | @@ -9,11 +9,11 @@ FlipclockAsset::register($this); |
9 | 9 | <div class="news_item"> |
10 | 10 | <div> |
11 | 11 | <div> |
12 | - <a href="<?=Url::to(['event/show','alias'=>$model->alias,'id'=>$model->primaryKey])?>" class="name"><?=$model->name?></a> | |
12 | + <a href="<?=Url::to(['event/show','alias'=>$model->alias])?>" class="name"><?=$model->name?></a> | |
13 | 13 | </div> |
14 | 14 | |
15 | 15 | <div style="position: relative"> |
16 | - <a href="<?=Url::to(['event/show','alias'=>$model->alias,'id'=>$model->primaryKey])?>"> | |
16 | + <a href="<?=Url::to(['event/show','alias'=>$model->alias])?>"> | |
17 | 17 | <?= \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'event_left', ['align' => 'left'])?> |
18 | 18 | </a> |
19 | 19 | ... | ... |