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> |