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