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,23 +77,24 @@ class ObjectkbController extends Controller | ||
77 | $sliders = $this->allSliders; | 77 | $sliders = $this->allSliders; |
78 | $model->generateLangs(); | 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,9 +107,11 @@ class ObjectkbController extends Controller | ||
106 | { | 107 | { |
107 | $model = $this->findModel($id); | 108 | $model = $this->findModel($id); |
108 | $model->generateLangs(); | 109 | $model->generateLangs(); |
109 | - | 110 | + |
110 | if ($model->loadWithLangs(\Yii::$app->request)) { | 111 | if ($model->loadWithLangs(\Yii::$app->request)) { |
112 | + | ||
111 | if ($model->saveWithLangs()) { | 113 | if ($model->saveWithLangs()) { |
114 | + | ||
112 | return $this->redirect( | 115 | return $this->redirect( |
113 | [ | 116 | [ |
114 | 'view', | 117 | 'view', |
backend/views/objectkb/_form.php
@@ -26,6 +26,8 @@ | @@ -26,6 +26,8 @@ | ||
26 | $form = ActiveForm::begin(); | 26 | $form = ActiveForm::begin(); |
27 | ?> | 27 | ?> |
28 | 28 | ||
29 | + <p>Выбери слайдер по его названию из списка (слайдер уже должен существовать)</p> | ||
30 | + | ||
29 | <?= $form->field($model, 'slider_id') | 31 | <?= $form->field($model, 'slider_id') |
30 | ->dropDownList( | 32 | ->dropDownList( |
31 | $items, | 33 | $items, |
backend/views/objectkb/_form_language.php
@@ -4,6 +4,7 @@ | @@ -4,6 +4,7 @@ | ||
4 | use dosamigos\tinymce\TinyMce; | 4 | use dosamigos\tinymce\TinyMce; |
5 | use yii\web\View; | 5 | use yii\web\View; |
6 | use yii\widgets\ActiveForm; | 6 | use yii\widgets\ActiveForm; |
7 | + use artbox\core\helpers\SlugifyDecorator; | ||
7 | 8 | ||
8 | /** | 9 | /** |
9 | * @var \artbox\core\models\SlideLang $model_lang | 10 | * @var \artbox\core\models\SlideLang $model_lang |
@@ -11,26 +12,34 @@ | @@ -11,26 +12,34 @@ | ||
11 | * @var ActiveForm $form | 12 | * @var ActiveForm $form |
12 | * @var View $this | 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 | ->textInput([ 'maxlength' => true ]); | 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 | ->textInput([ 'maxlength' => true ]); | 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 | ->textInput([ 'maxlength' => true ]); | 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 | \ No newline at end of file | 46 | \ No newline at end of file |
common/models/Objectkb.php
@@ -103,7 +103,6 @@ | @@ -103,7 +103,6 @@ | ||
103 | */ | 103 | */ |
104 | public function getSlider() | 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 | \ No newline at end of file | 109 | \ No newline at end of file |
common/models/ObjectkbLang.php
@@ -31,18 +31,15 @@ | @@ -31,18 +31,15 @@ | ||
31 | { | 31 | { |
32 | return [ | 32 | return [ |
33 | 'slug' => [ | 33 | 'slug' => [ |
34 | - 'class' => SlugBehavior::className(), | ||
35 | - 'action' => 'objectkb/view', | ||
36 | - 'params' => [ | 34 | + 'class' => SlugBehavior::className(), |
35 | + 'action' => 'object/view', | ||
36 | + 'params' => [ | ||
37 | 'id' => 'object_id', | 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,13 +96,6 @@ | ||
99 | 'targetClass' => Language::className(), | 96 | 'targetClass' => Language::className(), |
100 | 'targetAttribute' => [ 'language_id' => 'id' ], | 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,7 +108,8 @@ | ||
118 | return [ | 108 | return [ |
119 | 'object_id' => Yii::t('core', 'Object ID'), | 109 | 'object_id' => Yii::t('core', 'Object ID'), |
120 | 'language_id' => Yii::t('core', 'Language ID'), | 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 | 'upper_text' => Yii::t('core', 'Upper Text'), | 113 | 'upper_text' => Yii::t('core', 'Upper Text'), |
123 | 'about_object_text' => Yii::t('core', 'About object text'), | 114 | 'about_object_text' => Yii::t('core', 'About object text'), |
124 | 'object_name' => Yii::t('core', 'Object name'), | 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
@@ -49,6 +49,12 @@ return [ | @@ -49,6 +49,12 @@ return [ | ||
49 | 'rules' => [ | 49 | 'rules' => [ |
50 | '\/robots.txt' => 'site/robots', | 50 | '\/robots.txt' => 'site/robots', |
51 | ], | 51 | ], |
52 | + 'processRoutes' => [ | ||
53 | + 'object/view', | ||
54 | +// 'blog/article', | ||
55 | +// 'blog/tag', | ||
56 | +// 'blog/category', | ||
57 | + ], | ||
52 | ], | 58 | ], |
53 | ], | 59 | ], |
54 | 'params' => $params, | 60 | 'params' => $params, |
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 | \ No newline at end of file | 52 | \ No newline at end of file |
frontend/controllers/SiteController.php
@@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
10 | use yii\web\BadRequestHttpException; | 10 | use yii\web\BadRequestHttpException; |
11 | use yii\web\Controller; | 11 | use yii\web\Controller; |
12 | use yii\web\Response; | 12 | use yii\web\Response; |
13 | + use common\models\Objectkb; | ||
13 | 14 | ||
14 | /** | 15 | /** |
15 | * Site controller | 16 | * Site controller |
@@ -101,7 +102,19 @@ | @@ -101,7 +102,19 @@ | ||
101 | 102 | ||
102 | public function actionObjects() | 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 | public function actionGreen() | 120 | public function actionGreen() |
frontend/views/layouts/main.php
@@ -444,31 +444,7 @@ _________________________________________________________ --> | @@ -444,31 +444,7 @@ _________________________________________________________ --> | ||
444 | 444 | ||
445 | <!-- *** FeedBack MODAL END *** --> | 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 | <?= $content ?> | 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,7 +27,9 @@ $this->registerJs($js, View::POS_END); | ||
27 | <?php | 27 | <?php |
28 | $slideItems = []; | 28 | $slideItems = []; |
29 | foreach ($slider->slides as $slide){ | 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 | echo \yii\bootstrap\Carousel::widget( | 34 | echo \yii\bootstrap\Carousel::widget( |
33 | [ | 35 | [ |
frontend/views/site/objects.php
1 | <?php | 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 | <div id="objects-wr"> | 24 | <div id="objects-wr"> |
@@ -32,43 +35,52 @@ $this->params[ 'breadcrumbs' ][] = $this->title; | @@ -32,43 +35,52 @@ $this->params[ 'breadcrumbs' ][] = $this->title; | ||
32 | <p class="lead">Туристическое агентство “WhereAreYou” осуществляет нестандартные поездки с 2003 года. Мы занимаемся не просто путешествием, а для каждого лично составляем полноценный план поездки: что лучше посетить, длительность пребывания исходя из ваших средств. Все что требуется от вас — назвать город, страну и бюджет.</p> | 35 | <p class="lead">Туристическое агентство “WhereAreYou” осуществляет нестандартные поездки с 2003 года. Мы занимаемся не просто путешествием, а для каждого лично составляем полноценный план поездки: что лучше посетить, длительность пребывания исходя из ваших средств. Все что требуется от вас — назвать город, страну и бюджет.</p> |
33 | </div> | 36 | </div> |
34 | </div> | 37 | </div> |
35 | - | 38 | + |
36 | <div class="row portfolio"> | 39 | <div class="row portfolio"> |
37 | <?php | 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 | foreach ($objects as $object) { | 42 | foreach ($objects as $object) { |
49 | - $link = 'img/objects/' . $object; | ||
50 | - if (file_exists($link)) { | 43 | + |
51 | ?> | 44 | ?> |
52 | - | 45 | + |
53 | <div class="col-sm-6"> | 46 | <div class="col-sm-6"> |
54 | <div class="box-image"> | 47 | <div class="box-image"> |
55 | <div class="image"> | 48 | <div class="image"> |
56 | - <img src="/<?= $link ?>" alt="" class="img-responsive"> | 49 | + <?= $object->image->getImg([]) ?> |
57 | </div> | 50 | </div> |
58 | <div class="bg"></div> | 51 | <div class="bg"></div> |
59 | <div class="name"> | 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 | </div> | 64 | </div> |
62 | <div class="text"> | 65 | <div class="text"> |
63 | <p class="buttons"> | 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 | </p> | 78 | </p> |
66 | </div> | 79 | </div> |
67 | </div> | 80 | </div> |
68 | </div> | 81 | </div> |
69 | - | ||
70 | - <?php | ||
71 | - } | 82 | + |
83 | + <?php | ||
72 | } | 84 | } |
73 | ?> | 85 | ?> |
74 | </div> | 86 | </div> |