Commit 4ef97d76a87096ae33e243a7437710465380a781

Authored by Administrator
1 parent 7a686bc3

big commti

backend/controllers/ArticlesController.php
... ... @@ -81,18 +81,7 @@ class ArticlesController extends Controller
81 81  
82 82 if ($model->load(Yii::$app->request->post())) {
83 83  
84   - if ( ($image = UploadedFile::getInstance($model, 'image')) ) {
85   - $model->image = $image->name;
86   - }
87   -
88   - $imgDir = Yii::getAlias('@storage/articles/');
89   -
90   - if(!is_dir($imgDir)) {
91   - mkdir($imgDir, 0755, true);
92   - }
93   - if ($model->save() && $image) {
94   - $image->saveAs(Yii::getAlias('@storage/articles/' . $image->name));
95   - }
  84 + $model->save();
96 85  
97 86 return $this->redirect(['view', 'id' => $model->id]);
98 87 } else {
... ... @@ -113,18 +102,7 @@ class ArticlesController extends Controller
113 102 $model = $this->findModel($id);
114 103  
115 104 if ($model->load(Yii::$app->request->post())) {
116   - if ( ($image = UploadedFile::getInstance($model, 'image')) ) {
117   - $model->image = $image->name;
118   - }
119   -
120   - $imgDir = Yii::getAlias('@storage/articles/');
121   -
122   - if(!is_dir($imgDir)) {
123   - mkdir($imgDir, 0755, true);
124   - }
125   - if ($model->save() && $image) {
126   - $image->saveAs(Yii::getAlias('@storage/articles/' . $image->name));
127   - }
  105 + $model->save();
128 106  
129 107 return $this->redirect(['view', 'id' => $model->id]);
130 108 } else {
... ...
backend/controllers/SliderImageController.php
... ... @@ -85,19 +85,7 @@ class SliderImageController extends Controller
85 85  
86 86 if ($model->load(Yii::$app->request->post())) {
87 87 $model->slider_id = $slider_id;
88   - if ( ($image = UploadedFile::getInstance($model, 'image')) ) {
89   - $model->image = $image->name;
90   - }
91   - if ($model->save() && $image) {
92   -
93   - $imgDir = Yii::getAlias('@storage/slider/');
94   -
95   - if(!is_dir($imgDir)) {
96   - mkdir($imgDir, 0755, true);
97   - }
98   -
99   - $image->saveAs(Yii::getAlias('@storage/slider/' . $image->name));
100   - }
  88 + $model->save();
101 89 return $this->redirect(['view', 'slider_id'=>$slider_id, 'id' => $model->slider_image_id]);
102 90 } else {
103 91  
... ... @@ -126,23 +114,7 @@ class SliderImageController extends Controller
126 114  
127 115  
128 116  
129   - if ( ($image = UploadedFile::getInstance($model, 'image')) ) {
130   - $model->image = $image->name;
131   - }
132   -
133   - if(!$model->image){
134   - $model->image = $model->getOldAttribute('image');
135   - }
136   -
137   - if ($model->save() && $image) {
138   - $imgDir = Yii::getAlias('@storage/slider/');
139   -
140   - if(!is_dir($imgDir)) {
141   - mkdir($imgDir, 0755, true);
142   - }
143   -
144   - $image->saveAs(Yii::getAlias('@storage/slider/' . $image->name));
145   - }
  117 + $model->save();
146 118 return $this->redirect(['view', 'slider_id'=>$slider_id, 'id' => $model->slider_image_id]);
147 119 } else {
148 120  
... ...
backend/views/banner/_form.php
... ... @@ -12,7 +12,10 @@ use yii\widgets\ActiveForm;
12 12  
13 13 <div class="banner-form">
14 14  
15   - <?php $form = ActiveForm::begin(); ?>
  15 + <?php $form = ActiveForm::begin([
  16 + 'enableClientValidation' => false,
  17 + 'options' => ['enctype' => 'multipart/form-data']
  18 + ]); ?>
16 19  
17 20  
18 21 <?= $form->field($model, 'alt')->textInput(['maxlength' => true]) ?>
... ... @@ -31,27 +34,24 @@ use yii\widgets\ActiveForm;
31 34 ]
32 35 ])) ?>
33 36  
34   - <?= $form->field($model, 'width')->textInput(['maxlength' => true]) ?>
35   -
36   - <?= $form->field($model, 'height')->textInput(['maxlength' => true]) ?>
37   -
38   - <p id="save_image_widget_settings" class = "btn btn-primary" >Применить настройки</p>
39 37  
40 38 <div id="image_widget_block">
41   - <?php if(!empty($model->image)){
42   - echo ImageUploader::widget([
43   - 'model'=> $model,
44   - 'field'=>'image',
45   - 'size' => [
46   - [
47   - 'width'=>$model->width,
48   - 'height'=>$model->height,
49   - ],
50   - ],
51   - 'gallery' =>$model->image,
52   - 'name' => "Загрузить баннер"
53   - ]);
54   - }?>
  39 +
  40 + <?= $form->field($model, 'image')->widget(\kartik\file\FileInput::classname(), [
  41 + 'language' => 'ru',
  42 + 'options' => [
  43 + 'accept' => 'image/*',
  44 + 'multiple' => false,
  45 + ],
  46 + 'pluginOptions' => [
  47 + 'allowedFileExtensions' => ['jpg', 'gif', 'png'],
  48 + 'initialPreview' => !empty($model->imageUrl) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'list') : '',
  49 + 'overwriteInitial' => true,
  50 + 'showRemove' => false,
  51 + 'showUpload' => false,
  52 + 'previewFileType' => 'image',
  53 + ],
  54 + ]); ?>
55 55 </div>
56 56  
57 57 <div class="form-group">
... ...
backend/views/bg/_form.php
... ... @@ -10,13 +10,30 @@ use yii\widgets\ActiveForm;
10 10  
11 11 <div class="bg-form">
12 12  
13   - <?php $form = ActiveForm::begin(); ?>
  13 + <?php $form = ActiveForm::begin([
  14 + 'enableClientValidation' => false,
  15 + 'options' => ['enctype' => 'multipart/form-data']
  16 + ]); ?>
14 17  
15 18 <?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
16 19  
17 20 <?= $form->field($model, 'url')->textInput(['maxlength' => true]) ?>
18 21  
19   - <?= $form->field($model, 'image')->textInput(['maxlength' => true]) ?>
  22 + <?= $form->field($model, 'image')->widget(\kartik\file\FileInput::classname(), [
  23 + 'language' => 'ru',
  24 + 'options' => [
  25 + 'accept' => 'image/*',
  26 + 'multiple' => false,
  27 + ],
  28 + 'pluginOptions' => [
  29 + 'allowedFileExtensions' => ['jpg', 'gif', 'png'],
  30 + 'initialPreview' => !empty($model->imageUrl) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'list') : '',
  31 + 'overwriteInitial' => true,
  32 + 'showRemove' => false,
  33 + 'showUpload' => false,
  34 + 'previewFileType' => 'image',
  35 + ],
  36 + ]); ?>
20 37  
21 38 <div class="form-group">
22 39 <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
... ...
backend/views/brand/_form.php
... ... @@ -43,6 +43,8 @@ use yii\widgets\ActiveForm;
43 43  
44 44 <?= $form->field($model, 'seo_text')->textarea(['rows' => 6]) ?>
45 45  
  46 + <?= $form->field($model, 'in_menu')->checkbox()?>
  47 +
46 48 <div class="form-group">
47 49 <?= Html::submitButton($model->isNewRecord ? Yii::t('product', 'Create') : Yii::t('product', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
48 50 <?php if ($model->isNewRecord) :?>
... ...
backend/views/brand/index.php
1 1 <?php
2 2  
  3 +use common\components\artboximage\ArtboxImageHelper;
3 4 use yii\helpers\Html;
4 5 use yii\grid\GridView;
5 6  
... ... @@ -27,10 +28,10 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
27 28 'name',
28 29 'alias',
29 30 [
30   - 'attribute' => 'title',
31   - 'format' => 'html',
  31 + 'attribute' => 'image',
  32 + 'format' => 'image',
32 33 'value' => function($data) {
33   - return Html::img($data->imageUrl, ['width'=>'100']);
  34 + return ArtboxImageHelper::getImageSrc($data->imageUrl, 'brand_item');
34 35 },
35 36 ],
36 37  
... ...
backend/views/customer/_form.php
... ... @@ -12,11 +12,10 @@ use yii\widgets\ActiveForm;
12 12  
13 13 <?php $form = ActiveForm::begin(); ?>
14 14  
15   - <?= $form->field($model, 'id')->textInput() ?>
16 15  
17 16 <?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?>
18 17  
19   - <?= $form->field($model, 'password')->passwordInput(['maxlength' => true]) ?>
  18 +
20 19  
21 20 <?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?>
22 21  
... ... @@ -26,8 +25,6 @@ use yii\widgets\ActiveForm;
26 25  
27 26 <?= $form->field($model, 'date_time')->textInput() ?>
28 27  
29   - <?= $form->field($model, 'sex')->textInput(['maxlength' => true]) ?>
30   -
31 28 <?= $form->field($model, 'birth_day')->textInput() ?>
32 29  
33 30 <?= $form->field($model, 'birth_month')->textInput() ?>
... ...
backend/views/customer/index.php
... ... @@ -26,7 +26,6 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
26 26  
27 27 'id',
28 28 'username',
29   - 'password',
30 29 'name',
31 30 'surname',
32 31 // 'phone',
... ...
backend/views/slider-image/_form.php
... ... @@ -16,6 +16,7 @@ use yii\widgets\ActiveForm;
16 16  
17 17 <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
18 18  
  19 +
19 20 <?= $form->field($model, 'image')->widget(\kartik\file\FileInput::classname(), [
20 21 'model' => $model,
21 22 'attribute' => 'image',
... ...
common/behaviors/SaveImgBehavior.php 0 → 100644
  1 +<?php
  2 +
  3 +namespace common\behaviors;
  4 +
  5 +use common\modules\comment\models\CommentModel;
  6 +use yii\base\Behavior;
  7 +use yii\db\ActiveRecord;
  8 +use yii\web\UploadedFile;
  9 +/**
  10 + * Class RatingBehavior
  11 + * @property CommentModel $owner
  12 + * @package common\behaviors
  13 + */
  14 +class SaveImgBehavior extends Behavior
  15 +{
  16 +
  17 +
  18 + public $directory;
  19 +
  20 + public function events()
  21 + {
  22 + return [
  23 + ActiveRecord::EVENT_BEFORE_UPDATE => 'beforeUpdate',
  24 + ActiveRecord::EVENT_BEFORE_INSERT => 'beforeInsert',
  25 + ];
  26 + }
  27 +
  28 + public function beforeUpdate($event)
  29 + {
  30 +
  31 +
  32 + if ( ($image = UploadedFile::getInstance($this->owner, 'image')) ) {
  33 + $this->owner->image = $image->name;
  34 + }
  35 +
  36 + if(!$this->owner->image){
  37 + $this->owner->image = $this->owner->getOldAttribute('image');
  38 + }
  39 +
  40 +
  41 + if ($image) {
  42 + $imgDir = \Yii::getAlias('@storage/'.$this->directory.'/');
  43 +
  44 + if(!is_dir($imgDir)) {
  45 + mkdir($imgDir, 0755, true);
  46 + }
  47 +
  48 + $image->saveAs(\Yii::getAlias('@storage/'.$this->directory.'/' . $image->name));
  49 + }
  50 + }
  51 +
  52 +
  53 + public function beforeInsert($event)
  54 + {
  55 +
  56 +
  57 + if ( ($image = UploadedFile::getInstance($this->owner, 'image')) ) {
  58 + $this->owner->image = $image->name;
  59 + }
  60 +
  61 +
  62 +
  63 + if ($image) {
  64 + $imgDir = \Yii::getAlias('@storage/'.$this->directory.'/');
  65 +
  66 + if(!is_dir($imgDir)) {
  67 + mkdir($imgDir, 0755, true);
  68 + }
  69 +
  70 + $image->saveAs(\Yii::getAlias('@storage/'.$this->directory.'/' . $image->name));
  71 + }
  72 + }
  73 +
  74 +
  75 +
  76 + public function getImageFile() {
  77 + return empty($this->owner->image) ? null : '/storage/'.$this->directory.'/'. $this->owner->image;
  78 + }
  79 +
  80 + public function getImageUrl() {
  81 + return empty($this->owner->image) ? null : '/storage/'.$this->directory.'/'. $this->owner->image;
  82 + }
  83 +}
0 84 \ No newline at end of file
... ...
common/config/main.php
... ... @@ -119,15 +119,11 @@ return [
119 119 ],
120 120 'brand_item' => [
121 121 'resize' => [
122   - 'width' => 150,
123   - 'height' => 150,
124   - 'master' => null
125   - ],
126   - 'crop' => [
127   - 'width' => 150,
128   - 'height' => 150,
  122 + 'width' => 125,
  123 + 'height' => 54,
129 124 'master' => null
130 125 ],
  126 +
131 127 ],
132 128 'mainmenu' => [
133 129 'resize' => [
... ...
common/models/Articles.php
... ... @@ -3,6 +3,7 @@
3 3 namespace common\models;
4 4  
5 5 use common\behaviors\RatingBehavior;
  6 +use common\behaviors\SaveImgBehavior;
6 7 use common\modules\comment\models\CommentModel;
7 8 use Yii;
8 9  
... ... @@ -33,12 +34,18 @@ class Articles extends \yii\db\ActiveRecord
33 34 return 'articles';
34 35 }
35 36  
  37 +
  38 +
36 39 /**
37 40 * @inheritdoc
38 41 */
39 42 public function behaviors()
40 43 {
41 44 return [
  45 + [
  46 + 'class' => SaveImgBehavior::className(),
  47 + 'directory' => 'articles'
  48 + ],
42 49 'slug' => [
43 50 'class' => 'common\behaviors\Slug',
44 51 'in_attribute' => 'title',
... ... @@ -84,15 +91,6 @@ class Articles extends \yii\db\ActiveRecord
84 91 ];
85 92 }
86 93  
87   - public function getImageFile() {
88   - return empty($this->image) ? null : Yii::getAlias('@imagesDir/articles/'. $this->image);
89   - }
90   -
91   - public function getImageUrl()
92   - {
93   - return empty($this->image) ? null : Yii::getAlias('@imagesUrl/articles/' . $this->image);
94   - }
95   -
96 94 public function recalculateRating() {
97 95 /**
98 96 * @var ArticleToRating $averageRating
... ...
common/models/Banner.php
... ... @@ -2,6 +2,7 @@
2 2  
3 3 namespace common\models;
4 4  
  5 +use common\behaviors\SaveImgBehavior;
5 6 use Yii;
6 7  
7 8 /**
... ... @@ -26,6 +27,21 @@ class Banner extends \yii\db\ActiveRecord
26 27 return 'banner';
27 28 }
28 29  
  30 +
  31 +
  32 + /**
  33 + * @inheritdoc
  34 + */
  35 + public function behaviors()
  36 + {
  37 + return [
  38 + [
  39 + 'class' => SaveImgBehavior::className(),
  40 + 'directory' => 'banner'
  41 + ],
  42 + ];
  43 + }
  44 +
29 45 /**
30 46 * @inheritdoc
31 47 */
... ...
common/models/Bg.php
... ... @@ -2,6 +2,8 @@
2 2  
3 3 namespace common\models;
4 4  
  5 +use common\behaviors\SaveImgBehavior;
  6 +
5 7 class Bg extends \yii\db\ActiveRecord
6 8 {
7 9 public $old_image;
... ... @@ -10,7 +12,20 @@ class Bg extends \yii\db\ActiveRecord
10 12 {
11 13 return 'bg';
12 14 }
13   -
  15 +
  16 + /**
  17 + * @inheritdoc
  18 + */
  19 + public function behaviors()
  20 + {
  21 + return [
  22 + [
  23 + 'class' => SaveImgBehavior::className(),
  24 + 'directory' => 'bg'
  25 + ],
  26 + ];
  27 + }
  28 +
14 29 public function rules()
15 30 {
16 31 return [
... ...
common/models/Customer.php
... ... @@ -88,30 +88,6 @@ class Customer extends User implements \yii\web\IdentityInterface
88 88 /**
89 89 * @return \yii\db\ActiveQuery
90 90 */
91   - public function getArtboxComments()
92   - {
93   - return $this->hasMany(ArtboxComment::className(), ['user_id' => 'id']);
94   - }
95   -
96   - /**
97   - * @return \yii\db\ActiveQuery
98   - */
99   - public function getArtboxCommentRatings()
100   - {
101   - return $this->hasMany(ArtboxCommentRating::className(), ['user_id' => 'id']);
102   - }
103   -
104   - /**
105   - * @return \yii\db\ActiveQuery
106   - */
107   - public function getArtboxLikes()
108   - {
109   - return $this->hasMany(ArtboxLike::className(), ['user_id' => 'id']);
110   - }
111   -
112   - /**
113   - * @return \yii\db\ActiveQuery
114   - */
115 91 public function getShares()
116 92 {
117 93 return $this->hasMany(Share::className(), ['user_id' => 'id']);
... ...
common/models/CustomerSearch.php
... ... @@ -18,8 +18,12 @@ class CustomerSearch extends Customer
18 18 public function rules()
19 19 {
20 20 return [
21   - [['id', 'birth_day', 'birth_month', 'birth_year', 'group_id'], 'integer'],
22   - [['username', 'password', 'name', 'surname', 'phone', 'date_time', 'sex', 'body'], 'safe'],
  21 + [['date_time'], 'safe'],
  22 + [['birth_day', 'birth_month', 'birth_year', 'group_id', 'status', 'created_at', 'updated_at'], 'integer'],
  23 + [['body'], 'string'],
  24 + [['status'],'default', 'value' => '10'],
  25 + [['username', 'name', 'surname', 'phone', 'email', 'password_reset_token','username', 'password_hash'], 'string', 'max' => 255],
  26 + [['gender', 'auth_key'], 'string', 'max' => 32],
23 27 ];
24 28 }
25 29  
... ... @@ -68,11 +72,9 @@ class CustomerSearch extends Customer
68 72 ]);
69 73  
70 74 $query->andFilterWhere(['like', 'username', $this->username])
71   - ->andFilterWhere(['like', 'password', $this->password])
72 75 ->andFilterWhere(['like', 'name', $this->name])
73 76 ->andFilterWhere(['like', 'surname', $this->surname])
74 77 ->andFilterWhere(['like', 'phone', $this->phone])
75   - ->andFilterWhere(['like', 'sex', $this->sex])
76 78 ->andFilterWhere(['like', 'body', $this->body]);
77 79  
78 80 return $dataProvider;
... ...
common/models/SliderImage.php
... ... @@ -2,6 +2,7 @@
2 2  
3 3 namespace common\models;
4 4  
  5 +use common\behaviors\SaveImgBehavior;
5 6 use Yii;
6 7  
7 8 /**
... ... @@ -20,6 +21,23 @@ use Yii;
20 21 */
21 22 class SliderImage extends \yii\db\ActiveRecord
22 23 {
  24 +
  25 +
  26 +
  27 + /**
  28 + * @inheritdoc
  29 + */
  30 + public function behaviors()
  31 + {
  32 + return [
  33 + [
  34 + 'class' => SaveImgBehavior::className(),
  35 + 'directory' => 'slider'
  36 + ]
  37 + ];
  38 + }
  39 +
  40 +
23 41 /**
24 42 * @inheritdoc
25 43 */
... ... @@ -57,6 +75,8 @@ class SliderImage extends \yii\db\ActiveRecord
57 75 ];
58 76 }
59 77  
  78 +
  79 +
60 80 /**
61 81 * @return \yii\db\ActiveQuery
62 82 */
... ... @@ -65,12 +85,6 @@ class SliderImage extends \yii\db\ActiveRecord
65 85 return $this->hasOne(Slider::className(), ['slider_id' => 'slider_id']);
66 86 }
67 87  
68   - public function getImageFile() {
69   - return empty($this->image) ? null : '/storage/slider/'. $this->image;
70   - }
71 88  
72   - public function getImageUrl() {
73   - return empty($this->image) ? null : '/storage/slider/'. $this->image;
74   - }
75 89  
76 90 }
... ...
common/modules/product/models/Brand.php
... ... @@ -60,6 +60,7 @@ class Brand extends \yii\db\ActiveRecord
60 60 return [
61 61 [['name'], 'string'],
62 62 [['brand_name_id'], 'integer'],
  63 + [['in_menu'], 'boolean'],
63 64 [['meta_desc', 'seo_text'], 'string'],
64 65 [['alias', 'name'], 'string', 'max' => 250],
65 66 [['meta_title', 'image'], 'string', 'max' => 255],
... ... @@ -85,6 +86,7 @@ class Brand extends \yii\db\ActiveRecord
85 86 'meta_desc' => Yii::t('product', 'Meta Desc'),
86 87 'meta_robots' => Yii::t('product', 'Meta Robots'),
87 88 'seo_text' => Yii::t('product', 'Seo Text'),
  89 + 'in_menu' => Yii::t('product', 'Выводить в меню'),
88 90 ];
89 91 }
90 92  
... ...
frontend/controllers/CatalogController.php
... ... @@ -164,19 +164,19 @@ class CatalogController extends \yii\web\Controller
164 164 ]);
165 165 }
166 166  
167   - public function actionBrands()
168   - {
169   - $dataProvider = new ActiveDataProvider([
170   - 'query' => Brand::find()->orderBy('name'),
171   - 'pagination' => [
172   - 'pageSize' => -1,
173   - ]
174   - ]);
175   -
176   - return $this->render('brands', [
177   - 'dataProvider' => $dataProvider,
178   - ]);
179   - }
  167 +// public function actionBrands()
  168 +// {
  169 +// $dataProvider = new ActiveDataProvider([
  170 +// 'query' => Brand::find()->orderBy('name'),
  171 +// 'pagination' => [
  172 +// 'pageSize' => -1,
  173 +// ]
  174 +// ]);
  175 +//
  176 +// return $this->render('brands', [
  177 +// 'dataProvider' => $dataProvider,
  178 +// ]);
  179 +// }
180 180  
181 181 public function actionBrand($brand)
182 182 {
... ...
frontend/views/catalog/brand.php 0 → 100755
  1 +<?php
  2 +/**
  3 + * @var $productProvider \yii\data\ActiveDataProvider
  4 + * @var View $this
  5 + */
  6 +use frontend\widgets\FilterWidget;
  7 +use frontend\widgets\Seo;
  8 +use yii\helpers\Url;
  9 +use yii\web\View;
  10 +use yii\widgets\ListView;
  11 +$this->params['seo']['title'] = !empty($category->meta_title) ? $category->meta_title : '';
  12 +
  13 +$this->params['seo']['fields']['meta-title'] = $category->meta_title;
  14 +$this->params['seo']['h1'] = !empty($category->h1) ? $category->h1 : $category->name;
  15 +$this->params['seo']['seo_text'] = $category->seo_text;
  16 +$this->params['seo']['description'] = $category->meta_desc;
  17 +$this->params['seo']['meta'] = $category->meta_robots;
  18 +$this->params['seo']['category_name'] = $category->name;
  19 +
  20 +$this->params['breadcrumbs'][] = $category->name;
  21 +?>
  22 +<!-- Табы для слайдера -->
  23 +<div class="bigSlidertabs fixed" style="position:fixed;">
  24 + <div class="block-100">
  25 + <div class="tab1">
  26 + <a href="actionlist.htm">
  27 + <div class="tab_bg_1"></div>
  28 + <p>В данный момент у нас проходит <a href="actionlist.htm">25 акций</p></a>
  29 + </a>
  30 + </div>
  31 + <!--
  32 + <div class="tab2" style="display: none;">
  33 + <div class="tab_bg_2"></div>
  34 + <p>Поступило на продажу <a href="#">10 новинок</a></p>
  35 + </div>
  36 + -->
  37 + </div>
  38 +</div>
  39 +<div class="container">
  40 + <div class="block-25" style="position: relative;">
  41 +
  42 +
  43 +
  44 + <div class="columnLeftInfo">
  45 + <!-- del_columnLeftInfo -->
  46 +
  47 +
  48 +
  49 +
  50 +
  51 + <a href="http://ventolux.ua/"><img src="http://www.linija-svitla.ua/res/custom/images/banner/ventolux1.jpg"></a><br><br>
  52 +
  53 +
  54 + <table border="0" cellspacing="0" cellpadding="0" class="boxGen articleBox">
  55 + <tr class="bxhead">
  56 + <th class="bxhl"></th>
  57 + <th class="bxhc"><div class="h3">
  58 + <a href="view-articles/">Статьи</a>
  59 + </div></th>
  60 +
  61 + <th class="bxhr"></th>
  62 + </tr>
  63 +
  64 + <tr class="bxdelim">
  65 + <td></td>
  66 + <td></td>
  67 + <td></td>
  68 + </tr>
  69 + <tr class="bxmiddle">
  70 + <td class="bxl"></td>
  71 + <td class="bxc"> <div width="100%" class="articlesBox"><!-- cats_table-->
  72 + <div width="100%">
  73 + <div class="articleItem">
  74 + <span class="image">
  75 + </span>
  76 + <span align="left" class="title">
  77 + <a href="liniya-sveta-predstavila-trendovye-modeli-na-interior-mebel-85.htm" >
  78 + Линия света представила трендовые модели на Interior Mebel
  79 + </a>
  80 + </span>
  81 +
  82 + <div align="left" class="desc">
  83 + <p>В Киеве прошла выставка Interior Mebel, которая уже традиционно собирает лучшие образцы дизайна интерьера. На...
  84 + <a href="liniya-sveta-predstavila-trendovye-modeli-na-interior-mebel-85.htm" >
  85 + подробнее
  86 + </a>
  87 + </div>
  88 +
  89 + </div>
  90 +
  91 +
  92 + <div class="articleItem">
  93 + <span class="image">
  94 + </span>
  95 + <span align="left" class="title">
  96 + <a href="svetodiodnoe-osveschenie-light-topps-svetodiodnye-lampochki-lampy-colon-kupit-dlya-doma-ceny-v-ukraine-84.htm" >
  97 + Светодиодное освещение Light Topps | Светодиодные...
  98 + </a>
  99 + </span>
  100 +
  101 + <div align="left" class="desc">
  102 + О светодиодных лампах и светильниках, в которых используются светодиодные модули, написано немало и наверняка уже...
  103 + <a href="svetodiodnoe-osveschenie-light-topps-svetodiodnye-lampochki-lampy-colon-kupit-dlya-doma-ceny-v-ukraine-84.htm" >
  104 + подробнее
  105 + </a>
  106 + </div>
  107 +
  108 + </div>
  109 +
  110 +
  111 + <div class="articleItem">
  112 + <span class="image">
  113 + </span>
  114 + <span align="left" class="title">
  115 + <a href="lyustry-potolochnye-novye-vozmojnosti-upravleniya-svetom-82.htm" >
  116 + Люстры потолочные. Новые возможности управления светом
  117 + </a>
  118 + </span>
  119 +
  120 + <div align="left" class="desc">
  121 + Люстры потолочные оснащенные пультом дистанционного управления, позволяют включать/выключать, а также регулировать...
  122 + <a href="lyustry-potolochnye-novye-vozmojnosti-upravleniya-svetom-82.htm" >
  123 + подробнее
  124 + </a>
  125 + </div>
  126 +
  127 + </div>
  128 +
  129 +
  130 +
  131 +
  132 +
  133 +
  134 +
  135 +
  136 +
  137 +
  138 + <div style="clear: left;"></div>
  139 +
  140 +
  141 + </div>
  142 +
  143 +
  144 + </td>
  145 + <td class="bxr"></td>
  146 + </tr>
  147 + <tr class="bxbottom">
  148 + <td class="bxbl"></td>
  149 + <td class="bxbc"></td>
  150 + <td class="bxbr"></td>
  151 + </tr>
  152 + </table>
  153 +
  154 + <div class="clearfix"></div>
  155 +
  156 +
  157 + <!-- del_columnLeftInfo_end -->
  158 + </div>
  159 +
  160 +
  161 + <br />
  162 +
  163 +
  164 +
  165 + </div>
  166 + <div class="block-75" itemscope itemtype="http://schema.org/Product">
  167 +
  168 +
  169 +
  170 +
  171 + <script>
  172 +
  173 +
  174 + </script>
  175 +
  176 +
  177 +
  178 + <h1 class="title"><?= Seo::widget([ 'row'=>'h1'])?></h1>
  179 +
  180 +
  181 + <div class="list_filters_links">
  182 + <div class="sort_block">
  183 + <span>Сортировка:</span>
  184 + <?= \yii\widgets\LinkSorter::widget([
  185 + 'sort' => $productProvider->sort,
  186 + 'attributes' => [
  187 + 'price',
  188 + ]
  189 + ]);
  190 + ?>
  191 + </div>
  192 + <div class="clearfix"></div>
  193 + </div>
  194 +
  195 +
  196 +
  197 + <div class="clearfix"></div>
  198 +
  199 +
  200 + <div class="catalog_product_list view_table">
  201 +
  202 +
  203 + <?= ListView::widget([
  204 + 'dataProvider' => $productProvider,
  205 + 'itemView' => function ($model, $key, $index, $widget) use($category) {
  206 + return $this->render('_product_item',[
  207 + 'model' => $model,
  208 + 'category' => $category
  209 + ]);
  210 + },
  211 + 'layout' => "{items}<div class=\"clearfix\"></div>{pager}",
  212 + ])
  213 +
  214 + ?>
  215 +
  216 +
  217 +
  218 +
  219 + <div class="clearfix"></div>
  220 + </div>
  221 +
  222 + <br>
  223 +
  224 +
  225 +
  226 +
  227 +
  228 +
  229 +
  230 + <div class="clearfix"></div>
  231 +
  232 +
  233 +
  234 +
  235 + <div class="clearfix"></div>
  236 +
  237 +
  238 + </div>
  239 +</div>
  240 +
  241 +
... ...
frontend/views/catalog/products.php
... ... @@ -36,324 +36,104 @@ use yii\helpers\Url;
36 36 -->
37 37 </div>
38 38 </div>
  39 + <div class="container">
  40 + <div class="block-25" style="position: relative;">
  41 + <?= FilterWidget::widget([
  42 + 'category'=>$category,
  43 + 'groups'=> $groups,
  44 + 'filter'=> $filter,
  45 + 'brands' => $brands
  46 + ])?>
39 47  
  48 + <div class="clearfix"></div>
40 49  
41 50  
42 51  
43 52  
  53 + <div class="columnLeftInfo">
  54 + <!-- del_columnLeftInfo -->
44 55  
45 56  
46   -
47   -
48   -
49   -
50   -
51   -
52   -
53   -
54   -
55   -
56   -
57   -
58   -
59   -
60   -
61   -
62   -
63   -
64   - <div class="container">
65   - <div class="block-25" style="position: relative;">
66   - <?= FilterWidget::widget([
67   - 'category'=>$category,
68   - 'groups'=> $groups,
69   - 'filter'=> $filter,
70   - 'brands' => $brands
71   - ])?>
72   -
73 57 <div class="clearfix"></div>
74 58  
75 59  
  60 + <!-- del_columnLeftInfo_end -->
  61 + </div>
76 62  
77 63  
78   - <div class="columnLeftInfo">
79   - <!-- del_columnLeftInfo -->
80   -
81   -
82   -
83   -
84   -
85   - <a href="http://ventolux.ua/"><img src="http://www.linija-svitla.ua/res/custom/images/banner/ventolux1.jpg"></a><br><br>
86   -
87   -
88   - <table border="0" cellspacing="0" cellpadding="0" class="boxGen articleBox">
89   - <tr class="bxhead">
90   - <th class="bxhl"></th>
91   - <th class="bxhc"><div class="h3">
92   - <a href="view-articles/">Статьи</a>
93   - </div></th>
94   -
95   - <th class="bxhr"></th>
96   - </tr>
97   -
98   - <tr class="bxdelim">
99   - <td></td>
100   - <td></td>
101   - <td></td>
102   - </tr>
103   - <tr class="bxmiddle">
104   - <td class="bxl"></td>
105   - <td class="bxc"> <div width="100%" class="articlesBox"><!-- cats_table-->
106   - <div width="100%">
107   - <div class="articleItem">
108   - <span class="image">
109   - </span>
110   - <span align="left" class="title">
111   - <a href="liniya-sveta-predstavila-trendovye-modeli-na-interior-mebel-85.htm" >
112   - Линия света представила трендовые модели на Interior Mebel
113   - </a>
114   - </span>
115   -
116   - <div align="left" class="desc">
117   - <p>В Киеве прошла выставка Interior Mebel, которая уже традиционно собирает лучшие образцы дизайна интерьера. На...
118   - <a href="liniya-sveta-predstavila-trendovye-modeli-na-interior-mebel-85.htm" >
119   - подробнее
120   - </a>
121   - </div>
122   -
123   - </div>
124   -
125   -
126   - <div class="articleItem">
127   - <span class="image">
128   - </span>
129   - <span align="left" class="title">
130   - <a href="svetodiodnoe-osveschenie-light-topps-svetodiodnye-lampochki-lampy-colon-kupit-dlya-doma-ceny-v-ukraine-84.htm" >
131   - Светодиодное освещение Light Topps | Светодиодные...
132   - </a>
133   - </span>
134   -
135   - <div align="left" class="desc">
136   - О светодиодных лампах и светильниках, в которых используются светодиодные модули, написано немало и наверняка уже...
137   - <a href="svetodiodnoe-osveschenie-light-topps-svetodiodnye-lampochki-lampy-colon-kupit-dlya-doma-ceny-v-ukraine-84.htm" >
138   - подробнее
139   - </a>
140   - </div>
141   -
142   - </div>
143   -
144   -
145   - <div class="articleItem">
146   - <span class="image">
147   - </span>
148   - <span align="left" class="title">
149   - <a href="lyustry-potolochnye-novye-vozmojnosti-upravleniya-svetom-82.htm" >
150   - Люстры потолочные. Новые возможности управления светом
151   - </a>
152   - </span>
153   -
154   - <div align="left" class="desc">
155   - Люстры потолочные оснащенные пультом дистанционного управления, позволяют включать/выключать, а также регулировать...
156   - <a href="lyustry-potolochnye-novye-vozmojnosti-upravleniya-svetom-82.htm" >
157   - подробнее
158   - </a>
159   - </div>
160   -
161   - </div>
162   -
163   -
164   -
  64 + <br />
165 65  
166 66  
167 67  
  68 + </div>
  69 + <div class="block-75" itemscope itemtype="http://schema.org/Product">
168 70  
169 71  
170 72  
171 73  
172   - <div style="clear: left;"></div>
  74 + <script>
173 75  
174 76  
175   - </div>
  77 + </script>
176 78  
177 79  
178   - </td>
179   - <td class="bxr"></td>
180   - </tr>
181   - <tr class="bxbottom">
182   - <td class="bxbl"></td>
183   - <td class="bxbc"></td>
184   - <td class="bxbr"></td>
185   - </tr>
186   - </table>
187 80  
188   - <div class="clearfix"></div>
  81 + <h1 class="title"><?= Seo::widget([ 'row'=>'h1'])?></h1>
189 82  
190 83  
191   - <!-- del_columnLeftInfo_end -->
  84 + <div class="list_filters_links">
  85 + <div class="sort_block">
  86 + <span>Сортировка:</span>
  87 + <?= \yii\widgets\LinkSorter::widget([
  88 + 'sort' => $productProvider->sort,
  89 + 'attributes' => [
  90 + 'price',
  91 + ]
  92 + ]);
  93 + ?>
192 94 </div>
193   -
194   -
195   - <br />
196   -
197   -
198   -
  95 + <div class="clearfix"></div>
199 96 </div>
200   - <div class="block-75" itemscope itemtype="http://schema.org/Product">
201   -
202 97  
203 98  
204 99  
205   - <script>
206 100  
207 101  
208   - </script>
  102 + <div class="catalog_product_list view_table">
209 103  
210 104  
211   -
212   - <h1 class="title"><?= Seo::widget([ 'row'=>'h1'])?></h1>
213   -
214   -
215   - <div class="list_filters_links">
216   - <ul class="ul pagination">
217   - <li>Товаров на странице:</li>
218   - <select name="items_per_page" class="s" style="text-align:center;width:54px;" onChange="window.location='http://www.linija-svitla.ua/lyustry-2.htm?ipp='+this.value+'';" style="margin-right: -2px;">
219   - <option label="9" value="9">9</option>
220   - <option label="18" value="18">18</option>
221   - <option label="36" value="36" selected="selected">36</option>
222   - <option label="99" value="99">99</option>
223   -
224   - </select>
225   - </ul>
226   - <ul class="view_type">
227   - <li class="view_text">Вид списка</li>
228   - <li class="view_list" onclick="return false;" title="список"><span></span></li>
229   - <li class="view_table selected" onclick="return false;" title="таблица"><span></span></li>
230   - <li class="view_mini_table" onclick="return false;" title="миниатюрная таблица"><span></span></li>
231   - </ul>
232   - <div class="sort_block">
233   - <span>Сортировка:</span>
234   - <?= \yii\widgets\LinkSorter::widget([
235   - 'sort' => $productProvider->sort,
236   - 'attributes' => [
237   - 'price',
238   - ]
  105 + <?= ListView::widget([
  106 + 'dataProvider' => $productProvider,
  107 + 'itemView' => function ($model, $key, $index, $widget) use($category) {
  108 + return $this->render('_product_item',[
  109 + 'model' => $model,
  110 + 'category' => $category
239 111 ]);
240   - ?>
241   - </div>
242   - <div class="clearfix"></div>
243   - </div>
244   -
245   -
246   -
247   - <div class="clearfix"></div>
248   -
249   -
250   -
251   -
252   -
253   -
254   -
255   - <script language="JavaScript">
256   - $(document).ready(function(){
257   - $('.toolbar-list').click(function(event) {
258   - //alert(1);
259   - $('.toolbar-list').addClass('selected');
260   - $('.toolbar-grid').removeClass('selected');
261   - $('#centrit .prodBox').addClass('list');
262   - JsHttpRequest.query(
263   - 'hr_gate.php?test=500&r='+Math.random(),
264   - {
265   - 'sp': "prod_list_style"
266   - ,'style': 1
267   - },
268   - function(result, errors) { },
269   - true //disable caching
270   - );
271   - });
272   - $('.toolbar-grid').click(function(event) {
273   - $('.toolbar-grid').addClass('selected');
274   - $('.toolbar-list').removeClass('selected');
275   - $('#centrit .prodBox').removeClass('list');
276   - JsHttpRequest.query(
277   - 'hr_gate.php?test=500&r='+Math.random(),
278   - {
279   - 'sp': "prod_list_style"
280   - ,'style': 2
281   - },
282   - function(result, errors) { },
283   - true //disable caching
284   - );
  112 + },
  113 + 'layout' => "{items}<div class=\"clearfix\"></div>{pager}",
  114 + ])
285 115  
286   - });
  116 + ?>
287 117  
288   - });
289   - </script>
290 118  
291 119  
292 120  
  121 + <div class="clearfix"></div>
  122 + </div>
293 123  
294   - <div class="catalog_product_list view_table">
295   -
296   -
297   - <?= ListView::widget([
298   - 'dataProvider' => $productProvider,
299   - 'itemView' => function ($model, $key, $index, $widget) use($category) {
300   - return $this->render('_product_item',[
301   - 'model' => $model,
302   - 'category' => $category
303   - ]);
304   - },
305   - 'layout' => "{items}<div class=\"clearfix\"></div>{pager}",
306   - ])
307   -
308   - ?>
309   -
310   -
311   -
312   -
313   - <div class="clearfix"></div>
314   - </div>
315   -
316   - <br>
317   -
318   -
319   -
  124 + <br>
320 125  
321 126  
322 127  
323 128  
324   - <div class="clearfix"></div>
325 129  
326 130  
327 131  
  132 + <div class="clearfix"></div>
328 133  
329   - <div class="clearfix"></div>
330 134  
331   - <h2>Магазин люстр в Киеве: изделия на любой вкус!</h2>
332   - <p>Любой интерьер будет смотреться незавершенным, если не выбраны подходящие люстры, светильники (Киев). Посетив салон люстр в Киеве можно подобрать действительно интересные осветительные приборы, внося новые черты в интерьер, расставляя правильные акценты, подчеркивая неповторимость дизайна. А благодаря нашему сайту «Линия света» вы сможете купить люстру в интернете, без труда подбирая подходящую модель и экономя свои средства.</p>
333   - <h2>Приобрести люстры через интернет-магазин: что предлагается</h2>
334   - <p>Если вы присматриваете, где можно купить люстру в Украине – заходите на наш сайт, у нас имеется огромный выбор разнообразной продукции. Через наш реализующий люстры в Киеве интернет-магазин можно подобрать любые модели – от популярной классики до ультрасовременных подвесов. При этом купить люстру в интернет-магазине представится возможность по весьма приятным расценкам. Если же вас интересует, как купить люстры, цены которых будут максимально невысокими – присмотритесь к предложениям в разделе «распродажа» на сайте. Вообще же наш демонстрирующий разнообразные люстры каталог (цены различные), включает такие типы продукции, как:</p>
335   - <ul>
336   - <li>Классические, подвесные. Продажа люстр этой разновидности ведется наиболее активно – они всегда в моде, хорошо смотрятся во всех интерьерах, отличаются практичностью. На такие люстры в Киеве цена может быть самой различной – но она всегда будет оптимальна качественности и внешней привлекательности присмотренного изделия.</li>
337   - <li>Более креативные люстры – это разнообразные потолочные светильники. Эти качественные люстры и светильники могут иметь различные дизайны, быть разных размеров. Параметры такой люстры интернет-магазин может подобрать в соответствии с индивидуальными размерами помещения, его дизайном.</li>
338   - </ul>
339   - <p>Также вы всегда сможете заказать люстру в интернет-магазине «Linija-svitla» в том стиле, который наиболее подойдет под ваши требования. Наш магазин люстр может предложить изделия в винтажном стиле (достаточно модном сегодня), классические модели, а также ультрасовременные авангардные люстры и товары, относящиеся к стилю хай-тек. На все предлагаемые люстры цена в Украине – одна из наиболее доступных.</p>
340   - <h2>Люстры он-лайн на сайте «Linija-svitla»: преимущества покупок</h2>
341   - <p>Планируя купить люстру через интернет – оцените все преимущества сотрудничества с нашим сайтом:</p>
342   - <ul>
343   - <li>Наш каталог люстр включает большое количество разнообразных товаров. Поэтому с нами купить люстры в интернете можно быстро и без потери времени.</li>
344   - <li>У нас можно качественные и красивые люстры купить от надежных производителей. Через наш ресурс, возможно купить люстру в Киеве от бренда Massive – изделия этого производителя красивы, добротно сделаны, отличаются стильным видом и долговечностью. Учитывайте, планируя купить люстру - цены на товары от Massive будут несколько выше, нежели на подделки, которые может предложить отечественный рынок, но эта стоимость оправдывается качественностью электроприборов (на которых, как известно, экономить нельзя).</li>
345   - <li>Самая демократичная на такой предмет, как люстра, цена. Если вы решили купить люстру, магазин «Линия Света» всегда предоставит возможность приобрести действительно качественный товар по минимальным расценкам.</li>
346   - </ul>
347   - <h2>Где купить люстру в Киеве?</h2>
348   - <p>Вопрос, «где можно купить люстры в Украине» решен – это можно сделать на сайте «Linija-svitla». Если вам требуется хорошие люстры купить - интернет-магазин в Украине «Линия света»  может предложить большой перечень интересных разновидностей товаров данной категории. Задаваясь вопросом «сколько стоит люстра» учитывайте, что осветительные приборы во многом будут отображать ваш статус. А это значит, что как приобретение, так и подключение люстры стоимость не может иметь слишком низкую. Выбирать следует в первую очередь качественную работу, а потом уже доступные расценки. И помочь найти нужный товар смогут наши магазины люстр в Киеве. Для тех же, кто предпочитает делать интернет-заказы существует доставка по городам всей Украины, таким как: Днепропетровск, Харьков, Одесса, Запорожье, Киев, Херсон, Мариуполь, Полтава, Кривой Рог, Винница, Сумы, Черкассы, Николаев, Кременчуг, Хмельницкий, Чернигов, Житомир и др. При этом, цена на все реализуемые  изделия вас наверняка сможет обрадовать.</p>
349   -
350   -
351   - </div>
352 135 </div>
  136 + </div>
353 137  
354   - <div class="container">
355   - <p>
356   - Люстры - одна из основных специализаций нашего каталога светильников в разделе люстры. Эти товары предоставлены у нас по самым лучшим ценам: Люстры Массив 41017/32/10, Люстры Массив 40851/33/10, Люстры Есео 40523/17/13, Люстры Массив 40865/11/10. Рекомендуем вам не сомневаться и позвонить нашему консультанту. Он поможет подобрать красивые люстры именно для вас. </p>
357   - </div>
358 138  
359 139  
... ...
frontend/views/layouts/main.php
... ... @@ -21,13 +21,6 @@ AppAsset::register($this);
21 21 <link type="image/ico" href="http://www.linija-svitla.ua/images/icon.ico" rel="SHORTCUT ICON" />
22 22 <link rel="icon" href="http://www.linija-svitla.ua/images/icon.ico" type="image/x-icon" />
23 23  
24   - <script language="JavaScript" type="text/JavaScript" src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script><meta name="google-site-verification" content="m60Ax2153voy05Xdtit_bnBVjuZG-fv0Zu14jLjb4Tk" />
25   -
26   -
27   -
28   - <script language="javascript">
29   - var ga_exist = false;
30   - </script>
31 24  
32 25  
33 26  
... ... @@ -175,45 +168,14 @@ AppAsset::register($this);
175 168  
176 169  
177 170 <div class="container">
178   - <ul>
179   - <li>
180   - <a href="/feiss.htm"><i class="spritebrand spritebrand-feiss"></i></a>
181   - </li>
182   - <li>
183   - <a href="/flambeau.htm"><i class="spritebrand spritebrand-flambeau"></i></a>
184   - </li>
185   - <li>
186   - <a href="/quoizel.htm"><i class="spritebrand spritebrand-quozel"></i></a>
187   - </li>
188   - <li>
189   - <a href="/hinkley.htm"><i class="spritebrand spritebrand-hinkley"></i></a>
190   - </li>
191   - <li>
192   - <a href="/elstead.htm"><i class="spritebrand spritebrand-elstead"></i></a>
193   - </li>
194   - <li>
195   - <a href="/philips.htm"><i class="spritebrand spritebrand-philips"></i></a>
196   - </li>
197   - <li>
198   - <a href="/massive.htm"><i class="spritebrand spritebrand-massive"></i></a>
199   - </li>
200   - <li>
201   - <a href="/eseo.htm"><i class="spritebrand spritebrand-eseo"></i></a>
202   - </li>
203   - <li>
204   - <a href="/lirio.htm"><i class="spritebrand spritebrand-lirio"></i></a>
205   - </li>
206   - <li>
207   - <a href="/lighttopps.htm"><i class="spritebrand spritebrand-light"></i></a>
208   - </li>
209   - </ul>
  171 + <?= $this->render('../partial/brand_list')?>
210 172 </div>
211 173 </div>
212 174  
213 175  
214 176  
215 177  
216   - <?= $this->render('main-menu')?>
  178 + <?= $this->render('../partial/main-menu')?>
217 179 <div class="wrapper white">
218 180 <div class="container">
219 181  
... ...
frontend/views/partial/brand_list.php 0 → 100644
  1 +<?php
  2 +use common\modules\product\models\Brand;
  3 +use yii\helpers\Html;
  4 +use common\components\artboximage\ArtboxImageHelper;
  5 +
  6 +$brands = Brand::find()->where(['in_menu' => 1])->all();
  7 +$content = '';
  8 +
  9 +foreach($brands as $brand){
  10 + $content .= Html::tag('li', Html::a(Html::img(ArtboxImageHelper::getImageSrc($brand->imageUrl, 'brand_item')),\yii\helpers\Url::to(['catalog/brand', 'brand' => $brand->alias]) ));
  11 +
  12 +}
  13 +
  14 +
  15 +echo Html::tag('ul',$content);
  16 +
... ...
frontend/views/layouts/main-menu.php renamed to frontend/views/partial/main-menu.php