Commit 35f6909fa4065f3471274abce3b6985f8fad792d
1 parent
f2d30f9f
big shot #2 наши объекты фронт
Showing
14 changed files
with
408 additions
and
111 deletions
Show diff stats
backend/controllers/ObjectkbController.php
... | ... | @@ -77,23 +77,24 @@ class ObjectkbController extends Controller |
77 | 77 | $sliders = $this->allSliders; |
78 | 78 | $model->generateLangs(); |
79 | 79 | |
80 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | |
81 | - return $this->redirect( | |
82 | - [ | |
83 | - 'view', | |
84 | - 'id' => $model->id, | |
85 | - ] | |
86 | - ); | |
87 | - } else { | |
88 | - return $this->render( | |
89 | - 'create', | |
90 | - [ | |
91 | - 'model' => $model, | |
92 | - 'modelLangs' => $model->modelLangs, | |
93 | - 'sliders' => $sliders, | |
94 | - ] | |
95 | - ); | |
80 | + if ($model->loadWithLangs(\Yii::$app->request)) { | |
81 | + if ($model->saveWithLangs()) { | |
82 | + return $this->redirect( | |
83 | + [ | |
84 | + 'view', | |
85 | + 'id' => $model->id, | |
86 | + ] | |
87 | + ); | |
88 | + } | |
96 | 89 | } |
90 | + return $this->render( | |
91 | + 'create', | |
92 | + [ | |
93 | + 'model' => $model, | |
94 | + 'modelLangs' => $model->modelLangs, | |
95 | + 'sliders' => $sliders, | |
96 | + ] | |
97 | + ); | |
97 | 98 | } |
98 | 99 | |
99 | 100 | /** |
... | ... | @@ -106,9 +107,11 @@ class ObjectkbController extends Controller |
106 | 107 | { |
107 | 108 | $model = $this->findModel($id); |
108 | 109 | $model->generateLangs(); |
109 | - | |
110 | + | |
110 | 111 | if ($model->loadWithLangs(\Yii::$app->request)) { |
112 | + | |
111 | 113 | if ($model->saveWithLangs()) { |
114 | + | |
112 | 115 | return $this->redirect( |
113 | 116 | [ |
114 | 117 | 'view', | ... | ... |
backend/views/objectkb/_form.php
backend/views/objectkb/_form_language.php
... | ... | @@ -4,6 +4,7 @@ |
4 | 4 | use dosamigos\tinymce\TinyMce; |
5 | 5 | use yii\web\View; |
6 | 6 | use yii\widgets\ActiveForm; |
7 | + use artbox\core\helpers\SlugifyDecorator; | |
7 | 8 | |
8 | 9 | /** |
9 | 10 | * @var \artbox\core\models\SlideLang $model_lang |
... | ... | @@ -11,26 +12,34 @@ |
11 | 12 | * @var ActiveForm $form |
12 | 13 | * @var View $this |
13 | 14 | */ |
14 | - echo $form->field($model_lang, '[' . $language->id . ']aliasValue') | |
15 | - ->textInput(); | |
16 | 15 | |
17 | - echo $form->field($model_lang, '[' . $language->id . ']upper_text') | |
16 | + $attributeField = $form->field($model_lang, '[' . $language->id . ']object_name') | |
18 | 17 | ->textInput([ 'maxlength' => true ]); |
19 | 18 | |
20 | - echo $form->field($model_lang, '[' . $language->id . ']about_object_text') | |
21 | - ->textInput([ 'maxlength' => true ]); | |
19 | + echo $attributeField; | |
22 | 20 | |
23 | - echo $form->field($model_lang, '[' . $language->id . ']object_name') | |
24 | - ->textInput([ 'maxlength' => true ]); | |
21 | + echo SlugifyDecorator::decorate( | |
22 | + $form->field($model_lang, '[' . $language->id . ']aliasValue'), | |
23 | + [ '/alias/slugify' ], | |
24 | + $attributeField, | |
25 | + false, | |
26 | + $language->id | |
27 | + ) | |
28 | + ->textInput([ 'maxlength' => true ]); | |
25 | 29 | |
26 | - echo $form->field($model_lang, '[' . $language->id . ']meta_title') | |
30 | + echo $form->field($model_lang, '[' . $language->id . ']h1') | |
27 | 31 | ->textInput([ 'maxlength' => true ]); |
28 | 32 | |
29 | - echo $form->field($model_lang, '[' . $language->id . ']meta_description') | |
30 | - ->textInput([ 'maxlength' => true ]); | |
33 | + echo $form->field($model_lang, '[' . $language->id . ']upper_text') | |
34 | + ->textarea([ 'rows' => 7 ]); | |
31 | 35 | |
32 | - echo $form->field($model_lang, '[' . $language->id . ']h1') | |
36 | + echo $form->field($model_lang, '[' . $language->id . ']about_object_text') | |
37 | + ->textarea([ 'rows' => 7 ]); | |
38 | + | |
39 | + echo $form->field($model_lang, '[' . $language->id . ']meta_title') | |
33 | 40 | ->textInput([ 'maxlength' => true ]); |
34 | 41 | |
42 | + echo $form->field($model_lang, '[' . $language->id . ']meta_description') | |
43 | + ->textarea([ 'rows' => 4 ]); | |
35 | 44 | |
36 | 45 | ?> |
37 | 46 | \ No newline at end of file | ... | ... |
common/models/Objectkb.php
... | ... | @@ -103,7 +103,6 @@ |
103 | 103 | */ |
104 | 104 | public function getSlider() |
105 | 105 | { |
106 | - return $this->hasOne(Slider::className(), [ 'id' => 'slider_id' ]) | |
107 | - ->inverseOf('slides'); | |
106 | + return $this->hasOne(Slider::className(), [ 'id' => 'slider_id' ]); | |
108 | 107 | } |
109 | 108 | } |
110 | 109 | \ No newline at end of file | ... | ... |
common/models/ObjectkbLang.php
... | ... | @@ -31,18 +31,15 @@ |
31 | 31 | { |
32 | 32 | return [ |
33 | 33 | 'slug' => [ |
34 | - 'class' => SlugBehavior::className(), | |
35 | - 'action' => 'objectkb/view', | |
36 | - 'params' => [ | |
34 | + 'class' => SlugBehavior::className(), | |
35 | + 'action' => 'object/view', | |
36 | + 'params' => [ | |
37 | 37 | 'id' => 'object_id', |
38 | 38 | ], |
39 | - 'fields' => [ | |
40 | - 'object_name' => 'Object name', | |
41 | - 'object.id' => 'Object id', | |
42 | - 'upper_text' => 'Object upper text', | |
43 | - 'about_object_text' => 'About Object text', | |
44 | - 'object.lang.object_name' => 'some stuf', | |
39 | + 'fields' => [ | |
40 | + 'object_name' => 'Object name', | |
45 | 41 | ], |
42 | + 'inAttribute' => 'object_name', | |
46 | 43 | ], |
47 | 44 | ]; |
48 | 45 | } |
... | ... | @@ -99,13 +96,6 @@ |
99 | 96 | 'targetClass' => Language::className(), |
100 | 97 | 'targetAttribute' => [ 'language_id' => 'id' ], |
101 | 98 | ], |
102 | -// [ | |
103 | -// [ 'alias_id' ], | |
104 | -// 'exist', | |
105 | -// 'skipOnError' => true, | |
106 | -// 'targetClass' => Alias::className(), | |
107 | -// 'targetAttribute' => [ 'alias_id' => 'id' ], | |
108 | -// ], | |
109 | 99 | |
110 | 100 | ]; |
111 | 101 | } |
... | ... | @@ -118,7 +108,8 @@ |
118 | 108 | return [ |
119 | 109 | 'object_id' => Yii::t('core', 'Object ID'), |
120 | 110 | 'language_id' => Yii::t('core', 'Language ID'), |
121 | - 'alias_id' => Yii::t('core', 'alias ID'), | |
111 | + 'alias_id' => Yii::t('core', 'Alias'), | |
112 | + 'aliasValue' => Yii::t('core', 'Alias'), | |
122 | 113 | 'upper_text' => Yii::t('core', 'Upper Text'), |
123 | 114 | 'about_object_text' => Yii::t('core', 'About object text'), |
124 | 115 | 'object_name' => Yii::t('core', 'Object name'), | ... | ... |
console/migrations/m180125_201904_drop_alias_id_column_from_object_lang_table.php
0 → 100644
1 | +<?php | |
2 | + | |
3 | +use yii\db\Migration; | |
4 | + | |
5 | +/** | |
6 | + * Handles dropping alias_id from table `object_lang`. | |
7 | + */ | |
8 | +class m180125_201904_drop_alias_id_column_from_object_lang_table extends Migration | |
9 | +{ | |
10 | + /** | |
11 | + * @inheritdoc | |
12 | + */ | |
13 | + public function up() | |
14 | + { | |
15 | + // drops foreign key for table `alias` | |
16 | + $this->dropForeignKey( | |
17 | + 'fk-object_lang-alias_id', | |
18 | + 'object_lang' | |
19 | + ); | |
20 | + | |
21 | + // drops index for column `alias_id` | |
22 | + $this->dropIndex( | |
23 | + 'idx-object_lang-alias_id', | |
24 | + 'object_lang' | |
25 | + ); | |
26 | + $this->dropColumn('object_lang', 'alias_id'); | |
27 | + } | |
28 | + | |
29 | + /** | |
30 | + * @inheritdoc | |
31 | + */ | |
32 | + public function down() | |
33 | + { | |
34 | + $this->addColumn('object_lang', 'alias_id', $this->integer()); | |
35 | + } | |
36 | +} | ... | ... |
console/migrations/m180125_202226_add_alias_id_column_to_object_lang_table.php
0 → 100644
1 | +<?php | |
2 | + | |
3 | +use yii\db\Migration; | |
4 | + | |
5 | +/** | |
6 | + * Handles adding alias_id to table `object_lang`. | |
7 | + * Has foreign keys to the tables: | |
8 | + * | |
9 | + * - `alias` | |
10 | + */ | |
11 | +class m180125_202226_add_alias_id_column_to_object_lang_table extends Migration | |
12 | +{ | |
13 | + /** | |
14 | + * @inheritdoc | |
15 | + */ | |
16 | + public function up() | |
17 | + { | |
18 | + $this->addColumn('object_lang', 'alias_id', $this->integer()->unique()); | |
19 | + | |
20 | + // creates index for column `alias_id` | |
21 | + $this->createIndex( | |
22 | + 'idx-object_lang-alias_id', | |
23 | + 'object_lang', | |
24 | + 'alias_id' | |
25 | + ); | |
26 | + | |
27 | + // add foreign key for table `alias` | |
28 | + $this->addForeignKey( | |
29 | + 'fk-object_lang-alias_id', | |
30 | + 'object_lang', | |
31 | + 'alias_id', | |
32 | + 'alias', | |
33 | + 'id', | |
34 | + 'CASCADE' | |
35 | + ); | |
36 | + } | |
37 | + | |
38 | + /** | |
39 | + * @inheritdoc | |
40 | + */ | |
41 | + public function down() | |
42 | + { | |
43 | + // drops foreign key for table `alias` | |
44 | + $this->dropForeignKey( | |
45 | + 'fk-object_lang-alias_id', | |
46 | + 'object_lang' | |
47 | + ); | |
48 | + | |
49 | + // drops index for column `alias_id` | |
50 | + $this->dropIndex( | |
51 | + 'idx-object_lang-alias_id', | |
52 | + 'object_lang' | |
53 | + ); | |
54 | + | |
55 | + $this->dropColumn('object_lang', 'alias_id'); | |
56 | + } | |
57 | +} | ... | ... |
frontend/config/main.php
1 | +<?php | |
2 | + namespace frontend\controllers; | |
3 | + | |
4 | + /** | |
5 | + * User: timur | |
6 | + * Date: 25.01.18 | |
7 | + * Time: 23:12 | |
8 | + */ | |
9 | + | |
10 | + use common\models\Objectkb; | |
11 | + use yii\web\Controller; | |
12 | + use yii\web\NotFoundHttpException; | |
13 | + | |
14 | + class ObjectController extends Controller | |
15 | + { | |
16 | + public function actionView($id) | |
17 | + { | |
18 | + | |
19 | + $object = $this->findObject($id); | |
20 | + | |
21 | + return $this->render( | |
22 | + "view", | |
23 | + [ | |
24 | + 'object' => $object, | |
25 | + ] | |
26 | + ); | |
27 | + } | |
28 | + | |
29 | + public function findObject($id) | |
30 | + { | |
31 | + $model = Objectkb::find() | |
32 | + ->where( | |
33 | + [ | |
34 | + 'id' => $id, | |
35 | + 'status' => true, | |
36 | + ] | |
37 | + ) | |
38 | + ->with('lang.alias') | |
39 | + ->with('image') | |
40 | + ->with('slider.slides') | |
41 | + ->one(); | |
42 | + | |
43 | + if ($model === null) { | |
44 | + throw new NotFoundHttpException(); | |
45 | + } else { | |
46 | + return $model; | |
47 | + } | |
48 | + | |
49 | + } | |
50 | + } | |
51 | + | |
0 | 52 | \ No newline at end of file | ... | ... |
frontend/controllers/SiteController.php
... | ... | @@ -10,6 +10,7 @@ |
10 | 10 | use yii\web\BadRequestHttpException; |
11 | 11 | use yii\web\Controller; |
12 | 12 | use yii\web\Response; |
13 | + use common\models\Objectkb; | |
13 | 14 | |
14 | 15 | /** |
15 | 16 | * Site controller |
... | ... | @@ -101,7 +102,19 @@ |
101 | 102 | |
102 | 103 | public function actionObjects() |
103 | 104 | { |
104 | - return $this->render('objects'); | |
105 | + | |
106 | + $objects = Objectkb::find() | |
107 | + ->where(['status'=>true]) | |
108 | + ->with("lang.alias") | |
109 | + ->with("image") | |
110 | + ->all(); | |
111 | + | |
112 | + return $this->render( | |
113 | + 'objects', | |
114 | + [ | |
115 | + 'objects' => $objects, | |
116 | + ] | |
117 | + ); | |
105 | 118 | } // наши объекты |
106 | 119 | |
107 | 120 | public function actionGreen() | ... | ... |
frontend/views/layouts/main.php
... | ... | @@ -444,31 +444,7 @@ _________________________________________________________ --> |
444 | 444 | |
445 | 445 | <!-- *** FeedBack MODAL END *** --> |
446 | 446 | |
447 | - <!-- *** Breadcrumbs *** --> | |
448 | -<!-- --><?php | |
449 | -// if (!$isHome) { | |
450 | -// ?> | |
451 | -<!-- <div id="heading-breadcrumbs">--> | |
452 | -<!-- <div class="container">--> | |
453 | -<!-- <div class="row">--> | |
454 | -<!-- <div class="col-md-7">--> | |
455 | -<!-- <h1>--><?//= $this->title ?><!--</h1>--> | |
456 | -<!-- </div>--> | |
457 | -<!-- <div class="col-md-5">--> | |
458 | -<!-- --><?//= Breadcrumbs::widget( | |
459 | -// [ | |
460 | -// 'links' => isset($this->params[ 'breadcrumbs' ]) ? $this->params[ 'breadcrumbs' ] : [], | |
461 | -// ] | |
462 | -// ) ?> | |
463 | -<!-- --> | |
464 | -<!-- </div>--> | |
465 | -<!-- </div>--> | |
466 | -<!-- </div>--> | |
467 | -<!-- </div>--> | |
468 | -<!-- --><?php | |
469 | -// } | |
470 | -// ?> | |
471 | - <!-- *** Breadcrumbs END *** --> | |
447 | + | |
472 | 448 | |
473 | 449 | <?= $content ?> |
474 | 450 | ... | ... |
1 | +<?php | |
2 | + use common\models\Objectkb; | |
3 | + use yii\helpers\Url; | |
4 | + /** | |
5 | + * User: timur | |
6 | + * Date: 25.01.18 | |
7 | + * Time: 23:46 | |
8 | + * | |
9 | + * @var Objectkb $object | |
10 | + */ | |
11 | + | |
12 | + | |
13 | +?> | |
14 | + | |
15 | +<div class="container"> | |
16 | + <section class="no-mb"> | |
17 | + <div class="row"> | |
18 | + <div class="col-md-12"> | |
19 | + <p class="lead"> | |
20 | + <?= $object->lang->upper_text ?> | |
21 | + </p> | |
22 | + </div> | |
23 | + </div> | |
24 | + </section> | |
25 | + | |
26 | + <section class="no-mb main-slider"> | |
27 | + <?php | |
28 | + $slideItems = []; | |
29 | + foreach ($object->slider->slides as $slide){ | |
30 | + if(isset($slide->lang->image)){ | |
31 | + $slideItems[] = $slide->lang->image->getImg(); | |
32 | + } | |
33 | + } | |
34 | + echo \yii\bootstrap\Carousel::widget( | |
35 | + [ | |
36 | + 'items' => $slideItems | |
37 | + ] | |
38 | + ); | |
39 | + ?> | |
40 | + </section> | |
41 | + | |
42 | + <section> | |
43 | + <div class="row portfolio-project"> | |
44 | + <div class="col-md-8"> | |
45 | + <div class="heading"> | |
46 | + <h3>Про Объект</h3> | |
47 | + </div> | |
48 | + | |
49 | + <p> | |
50 | + <?= $object->lang->about_object_text?> | |
51 | + </p> | |
52 | + | |
53 | + </div> | |
54 | + <div class="col-md-4 project-more"> | |
55 | + <div class="heading"> | |
56 | + <h3>Дополнительно</h3> | |
57 | + </div> | |
58 | + <h4>КЛИЕНТАМ</h4> | |
59 | + <p>Нет ограничений по возрасту</p> | |
60 | + <h4>ЦЕНА</h4> | |
61 | + <p>В стоимость включен визажист и стилист</p> | |
62 | + <h4>ОБОРУДОВАНИЕ</h4> | |
63 | + <p>Canon Mark 5d</p> | |
64 | + <h4>СТИЛЬ ФОТО</h4> | |
65 | + <p>Глянец, fashion, гранж, стандарт</p> | |
66 | + </div> | |
67 | + </div> | |
68 | + </section> | |
69 | + | |
70 | + <section> | |
71 | + <div class="row portfolio"> | |
72 | + | |
73 | + <div class="col-md-12"> | |
74 | + <div class="heading"> | |
75 | + <h3>Посмотреть ещё проекты</h3> | |
76 | + </div> | |
77 | + </div> | |
78 | + | |
79 | + <?php | |
80 | + | |
81 | + $objects = Objectkb::find() | |
82 | + ->where(['status'=>true]) | |
83 | + ->with("lang.alias") | |
84 | + ->with("image") | |
85 | + ->all(); | |
86 | + | |
87 | + foreach ($objects as $object){ | |
88 | + | |
89 | + ?> | |
90 | + | |
91 | + <div class="col-sm-6 col-md-3"> | |
92 | + <div class="box-image"> | |
93 | + <div class="image"> | |
94 | + <?= $object->image->getImg(['class' => "img-responsive"]) ?> | |
95 | +<!-- <img src="img/portfolio-1.jpg" alt="" class="img-responsive">--> | |
96 | + </div> | |
97 | + <div class="bg"></div> | |
98 | + <div class="name"> | |
99 | + <h3> | |
100 | + <a | |
101 | + href="<?=Url::toRoute( | |
102 | + [ | |
103 | + 'object/view', | |
104 | + 'alias' => $object->lang->alias, | |
105 | + ] | |
106 | + ) ?>" | |
107 | + > | |
108 | + Фото в портфолио | |
109 | + </a> | |
110 | + </h3> | |
111 | + </div> | |
112 | + <div class="text"> | |
113 | + <p class="buttons"> | |
114 | + <a | |
115 | + href="<?=Url::toRoute( | |
116 | + [ | |
117 | + 'object/view', | |
118 | + 'alias' => $object->lang->alias, | |
119 | + ] | |
120 | + ) ?>" | |
121 | + class="btn btn-template-transparent-primary" | |
122 | + > | |
123 | + Посмотреть | |
124 | + </a> | |
125 | + </p> | |
126 | + </div> | |
127 | + </div> | |
128 | + <!-- /.box-image --> | |
129 | + | |
130 | + </div> | |
131 | + | |
132 | + <?php | |
133 | + | |
134 | + } | |
135 | + | |
136 | + ?> | |
137 | + | |
138 | + </div> | |
139 | + </section> | |
140 | +</div> | ... | ... |
frontend/views/site/index.php
... | ... | @@ -27,7 +27,9 @@ $this->registerJs($js, View::POS_END); |
27 | 27 | <?php |
28 | 28 | $slideItems = []; |
29 | 29 | foreach ($slider->slides as $slide){ |
30 | - $slideItems[] = $slide->lang->image->getImg(); | |
30 | + if(isset($slide->lang->image)){ | |
31 | + $slideItems[] = $slide->lang->image->getImg(); | |
32 | + } | |
31 | 33 | } |
32 | 34 | echo \yii\bootstrap\Carousel::widget( |
33 | 35 | [ | ... | ... |
frontend/views/site/objects.php
1 | 1 | <?php |
2 | - | |
3 | -/** | |
4 | - * @var View $this | |
5 | - * @var Feedback $contact | |
6 | - */ | |
7 | - | |
8 | -use artbox\core\models\Feedback; | |
9 | -use common\models\Settings; | |
10 | -use frontend\assets\MapAsset; | |
11 | -use yii\helpers\Html; | |
12 | -use yii\bootstrap\ActiveForm; | |
13 | -use yii\web\View; | |
14 | - | |
15 | -$settings = Settings::getInstance(); | |
16 | - | |
17 | -$this->title = \Yii::t('app', 'menu-objects'); | |
18 | -$this->params[ 'breadcrumbs' ][] = $this->title; | |
2 | + | |
3 | + /** | |
4 | + * @var View $this | |
5 | + * @var Feedback $contact | |
6 | + * @var Objectkb[] $objects | |
7 | + */ | |
8 | + | |
9 | + use artbox\core\models\Feedback; | |
10 | + use common\models\Settings; | |
11 | + use frontend\assets\MapAsset; | |
12 | + use yii\helpers\Html; | |
13 | + use yii\bootstrap\ActiveForm; | |
14 | + use yii\web\View; | |
15 | + use common\models\Objectkb; | |
16 | + use yii\helpers\Url; | |
17 | + | |
18 | + $settings = Settings::getInstance(); | |
19 | + | |
20 | + $this->title = \Yii::t('app', 'menu-objects'); | |
21 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
19 | 22 | ?> |
20 | 23 | |
21 | 24 | <div id="objects-wr"> |
... | ... | @@ -32,43 +35,52 @@ $this->params[ 'breadcrumbs' ][] = $this->title; |
32 | 35 | <p class="lead">Туристическое агентство “WhereAreYou” осуществляет нестандартные поездки с 2003 года. Мы занимаемся не просто путешествием, а для каждого лично составляем полноценный план поездки: что лучше посетить, длительность пребывания исходя из ваших средств. Все что требуется от вас — назвать город, страну и бюджет.</p> |
33 | 36 | </div> |
34 | 37 | </div> |
35 | - | |
38 | + | |
36 | 39 | <div class="row portfolio"> |
37 | 40 | <?php |
38 | - $objects = [ | |
39 | - '1.jpg', | |
40 | - '2.jpg', | |
41 | - '3.jpg', | |
42 | - '4.jpg', | |
43 | - '5.jpg', | |
44 | - '6.jpg', | |
45 | - '7.jpg', | |
46 | - '8.jpg', | |
47 | - ]; | |
41 | + | |
48 | 42 | foreach ($objects as $object) { |
49 | - $link = 'img/objects/' . $object; | |
50 | - if (file_exists($link)) { | |
43 | + | |
51 | 44 | ?> |
52 | - | |
45 | + | |
53 | 46 | <div class="col-sm-6"> |
54 | 47 | <div class="box-image"> |
55 | 48 | <div class="image"> |
56 | - <img src="/<?= $link ?>" alt="" class="img-responsive"> | |
49 | + <?= $object->image->getImg([]) ?> | |
57 | 50 | </div> |
58 | 51 | <div class="bg"></div> |
59 | 52 | <div class="name"> |
60 | - <h3><a href="#">Фото в портфолио</a></h3> | |
53 | + <h3><a | |
54 | + href="<?=Url::toRoute( | |
55 | + [ | |
56 | + 'object/view', | |
57 | + 'alias' => $object->lang->alias, | |
58 | + ] | |
59 | + ) ?>" | |
60 | + > | |
61 | + Фото в портфолио | |
62 | + </a> | |
63 | + </h3> | |
61 | 64 | </div> |
62 | 65 | <div class="text"> |
63 | 66 | <p class="buttons"> |
64 | - <a href="#" class="btn btn-template-transparent-primary">Посмотреть</a> | |
67 | + <a | |
68 | + href="<?=Url::toRoute( | |
69 | + [ | |
70 | + 'object/view', | |
71 | + 'alias' => $object->lang->alias, | |
72 | + ] | |
73 | + ) ?>" | |
74 | + class="btn btn-template-transparent-primary" | |
75 | + > | |
76 | + Посмотреть | |
77 | + </a> | |
65 | 78 | </p> |
66 | 79 | </div> |
67 | 80 | </div> |
68 | 81 | </div> |
69 | - | |
70 | - <?php | |
71 | - } | |
82 | + | |
83 | + <?php | |
72 | 84 | } |
73 | 85 | ?> |
74 | 86 | </div> | ... | ... |