Commit 93c267f7eb898589ee414a9be24cc69927999935
1 parent
d55d2fe0
Multilanguage big commit.
Showing
150 changed files
with
2858 additions
and
3266 deletions
Show diff stats
backend/controllers/ArticlesController.php
... | ... | @@ -86,17 +86,7 @@ |
86 | 86 | $model_langs = $model->generateLangs(); |
87 | 87 | if($model->load(Yii::$app->request->post())) { |
88 | 88 | $model->loadLangs(\Yii::$app->request, $model_langs); |
89 | - if(( $image = UploadedFile::getInstance($model, 'image') )) { | |
90 | - $model->image = $image->name; | |
91 | - } | |
92 | - $imgDir = Yii::getAlias('@storage/articles/'); | |
93 | - if(!is_dir($imgDir)) { | |
94 | - mkdir($imgDir, 0755, true); | |
95 | - } | |
96 | 89 | if($model->save()) { |
97 | - if($image) { | |
98 | - $image->saveAs(Yii::getAlias('@storage/articles/' . $image->name)); | |
99 | - } | |
100 | 90 | if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { |
101 | 91 | return $this->redirect([ |
102 | 92 | 'view', |
... | ... | @@ -130,17 +120,7 @@ |
130 | 120 | $model_langs = $model->generateLangs(); |
131 | 121 | if($model->load(Yii::$app->request->post())) { |
132 | 122 | $model->loadLangs(\Yii::$app->request, $model_langs); |
133 | - if(( $image = UploadedFile::getInstance($model, 'image') )) { | |
134 | - $model->image = $image->name; | |
135 | - } | |
136 | - $imgDir = Yii::getAlias('@storage/articles/'); | |
137 | - if(!is_dir($imgDir)) { | |
138 | - mkdir($imgDir, 0755, true); | |
139 | - } | |
140 | 123 | if($model->save()) { |
141 | - if($image) { | |
142 | - $image->saveAs(Yii::getAlias('@storage/articles/' . $image->name)); | |
143 | - } | |
144 | 124 | if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { |
145 | 125 | return $this->redirect([ |
146 | 126 | 'view', | ... | ... |
backend/controllers/BannerController.php
backend/controllers/BgController.php
... | ... | @@ -119,7 +119,7 @@ |
119 | 119 | $model_langs = $model->generateLangs(); |
120 | 120 | |
121 | 121 | if($model->load(Yii::$app->request->post()) && $model->save()) { |
122 | - $model->loadLangs(\Yii::$app->request); | |
122 | + $model->loadLangs(\Yii::$app->request, $model_langs); | |
123 | 123 | if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { |
124 | 124 | return $this->redirect([ |
125 | 125 | 'view', | ... | ... |
backend/controllers/BrandController.php
backend/controllers/CategoryController.php
... | ... | @@ -88,14 +88,8 @@ |
88 | 88 | |
89 | 89 | if($model->load(Yii::$app->request->post())) { |
90 | 90 | $model->loadLangs(\Yii::$app->request, $model_langs); |
91 | - if(( $image = UploadedFile::getInstance($model, 'imageUpload') )) { | |
92 | - $model->image = $image->name; | |
93 | - } | |
94 | 91 | |
95 | 92 | if($model->save()) { |
96 | - if($image) { | |
97 | - $image->saveAs(Yii::getAlias('@imagesDir/categories/' . $image->name)); | |
98 | - } | |
99 | 93 | |
100 | 94 | if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { |
101 | 95 | return is_null(Yii::$app->request->post('create_and_new')) ? $this->redirect([ |
... | ... | @@ -117,7 +111,7 @@ |
117 | 111 | 'model' => $model, |
118 | 112 | 'model_langs' => $model_langs, |
119 | 113 | 'categories' => ArtboxTreeHelper::treeMap(Category::find() |
120 | - ->getTree(), 'category_id', 'name', '.'), | |
114 | + ->getTree(), 'category_id', 'category_id', '.'), | |
121 | 115 | ]); |
122 | 116 | } |
123 | 117 | |
... | ... | @@ -136,14 +130,8 @@ |
136 | 130 | $model_langs = $model->generateLangs(); |
137 | 131 | |
138 | 132 | if($model->load(Yii::$app->request->post())) { |
139 | - if(( $image = UploadedFile::getInstance($model, 'imageUpload') )) { | |
140 | - $model->image = $image->name; | |
141 | - } | |
142 | 133 | $model->loadLangs(\Yii::$app->request, $model_langs); |
143 | 134 | if($model->save()) { |
144 | - if($image) { | |
145 | - $image->saveAs(Yii::getAlias('@imagesDir/categories/' . $image->name)); | |
146 | - } | |
147 | 135 | if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { |
148 | 136 | return $this->redirect([ |
149 | 137 | 'view', |
... | ... | @@ -156,7 +144,7 @@ |
156 | 144 | 'model' => $model, |
157 | 145 | 'model_langs' => $model_langs, |
158 | 146 | 'categories' => ArtboxTreeHelper::treeMap(Category::find() |
159 | - ->getTree(), 'category_id', 'name', '.'), | |
147 | + ->getTree(), 'category_id', 'category_id', '.'), | |
160 | 148 | ]); |
161 | 149 | } |
162 | 150 | ... | ... |
backend/controllers/EventController.php
... | ... | @@ -9,7 +9,6 @@ |
9 | 9 | use yii\web\NotFoundHttpException; |
10 | 10 | use yii\filters\VerbFilter; |
11 | 11 | use developeruz\db_rbac\behaviors\AccessBehavior; |
12 | - use yii\web\UploadedFile; | |
13 | 12 | |
14 | 13 | /** |
15 | 14 | * EventController implements the CRUD actions for Event model. |
... | ... | @@ -89,14 +88,7 @@ |
89 | 88 | |
90 | 89 | $model->loadLangs(\Yii::$app->request, $model_langs); |
91 | 90 | |
92 | - if(( $image = UploadedFile::getInstance($model, 'imageUpload') )) { | |
93 | - $model->image = $image->name; | |
94 | - } | |
95 | - | |
96 | 91 | if($model->save()) { |
97 | - if($image) { | |
98 | - $image->saveAs(Yii::getAlias('@imagesDir/articles/' . $image->name)); | |
99 | - } | |
100 | 92 | if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { |
101 | 93 | return $this->redirect([ |
102 | 94 | 'view', |
... | ... | @@ -133,14 +125,7 @@ |
133 | 125 | |
134 | 126 | $model->loadLangs(\Yii::$app->request, $model_langs); |
135 | 127 | |
136 | - if(( $image = UploadedFile::getInstance($model, 'imageUpload') )) { | |
137 | - $model->image = $image->name; | |
138 | - } | |
139 | - | |
140 | 128 | if($model->save()) { |
141 | - if($image) { | |
142 | - $image->saveAs(Yii::getAlias('@imagesDir/articles/' . $image->name)); | |
143 | - } | |
144 | 129 | if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { |
145 | 130 | return $this->redirect([ |
146 | 131 | 'view', | ... | ... |
backend/controllers/ProjectController.php
... | ... | @@ -201,8 +201,9 @@ |
201 | 201 | $project = $this->findModel($id); |
202 | 202 | $model = new ProductToProject(); |
203 | 203 | $products = Product::find() |
204 | + ->distinct() | |
204 | 205 | ->select([ |
205 | - 'product.name', | |
206 | + 'product.product_id', | |
206 | 207 | 'product.product_id', |
207 | 208 | ]) |
208 | 209 | ->joinWith('variants', true, 'INNER JOIN') |
... | ... | @@ -221,7 +222,6 @@ |
221 | 222 | if(!empty( $model->product_id ) && !empty( $products[ $model->product_id ] )) { |
222 | 223 | $variants = ProductVariant::find() |
223 | 224 | ->select([ |
224 | - 'name', | |
225 | 225 | 'product_variant_id', |
226 | 226 | ]) |
227 | 227 | ->where([ 'product_id' => $model->product_id ]) |
... | ... | @@ -261,7 +261,7 @@ |
261 | 261 | } |
262 | 262 | $products = Product::find() |
263 | 263 | ->select([ |
264 | - 'product.name', | |
264 | + 'product.product_id', | |
265 | 265 | 'product.product_id', |
266 | 266 | ]) |
267 | 267 | ->joinWith('variants', true, 'INNER JOIN') |
... | ... | @@ -272,7 +272,6 @@ |
272 | 272 | if(!empty( $model->product_id ) && !empty( $products[ $model->product_id ] )) { |
273 | 273 | $variants = ProductVariant::find() |
274 | 274 | ->select([ |
275 | - 'name', | |
276 | 275 | 'product_variant_id', |
277 | 276 | ]) |
278 | 277 | ->where([ 'product_id' => $model->product_id ]) | ... | ... |
backend/controllers/SliderImageController.php
... | ... | @@ -10,7 +10,6 @@ |
10 | 10 | use yii\web\Controller; |
11 | 11 | use yii\web\NotFoundHttpException; |
12 | 12 | use yii\filters\VerbFilter; |
13 | - use yii\web\UploadedFile; | |
14 | 13 | |
15 | 14 | /** |
16 | 15 | * SliderImageController implements the CRUD actions for SliderImage model. |
... | ... | @@ -97,38 +96,29 @@ |
97 | 96 | if($model->load(Yii::$app->request->post())) { |
98 | 97 | $model->loadLangs(\Yii::$app->request, $model_langs); |
99 | 98 | $model->slider_id = $slider_id; |
100 | - if(( $image = UploadedFile::getInstance($model, 'image') )) { | |
101 | - $model->image = $image->name; | |
102 | - } | |
103 | - if($model->save() && $image) { | |
104 | - $imgDir = Yii::getAlias('@storage/slider/'); | |
105 | - if(!is_dir($imgDir)) { | |
106 | - mkdir($imgDir, 0755, true); | |
99 | + if($model->save()) { | |
100 | + if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { | |
101 | + return $this->redirect([ | |
102 | + 'view', | |
103 | + 'slider_id' => $slider_id, | |
104 | + 'id' => $model->slider_image_id, | |
105 | + ]); | |
106 | + } else { | |
107 | + return $this->redirect([ | |
108 | + 'update', | |
109 | + 'slider_id' => $slider_id, | |
110 | + 'id' => $model->slider_image_id, | |
111 | + ]); | |
107 | 112 | } |
108 | - $image->saveAs(Yii::getAlias('@storage/slider/' . $image->name)); | |
109 | - } | |
110 | - if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { | |
111 | - return $this->redirect([ | |
112 | - 'view', | |
113 | - 'slider_id' => $slider_id, | |
114 | - 'id' => $model->slider_image_id, | |
115 | - ]); | |
116 | - } else { | |
117 | - return $this->redirect([ | |
118 | - 'update', | |
119 | - 'slider_id' => $slider_id, | |
120 | - 'id' => $model->slider_image_id, | |
121 | - ]); | |
122 | 113 | } |
123 | - } else { | |
124 | - $slider = Slider::findOne($slider_id); | |
125 | - return $this->render('create', [ | |
126 | - 'slider_id' => $slider_id, | |
127 | - 'model' => $model, | |
128 | - 'model_langs' => $model_langs, | |
129 | - 'slider' => $slider, | |
130 | - ]); | |
131 | 114 | } |
115 | + $slider = Slider::findOne($slider_id); | |
116 | + return $this->render('create', [ | |
117 | + 'slider_id' => $slider_id, | |
118 | + 'model' => $model, | |
119 | + 'model_langs' => $model_langs, | |
120 | + 'slider' => $slider, | |
121 | + ]); | |
132 | 122 | } |
133 | 123 | |
134 | 124 | /** |
... | ... | @@ -146,20 +136,7 @@ |
146 | 136 | $model_langs = $model->generateLangs(); |
147 | 137 | if($model->load(Yii::$app->request->post())) { |
148 | 138 | $model->loadLangs(\Yii::$app->request, $model_langs); |
149 | - if(( $image = UploadedFile::getInstance($model, 'image') )) { | |
150 | - $model->image = $image->name; | |
151 | - } | |
152 | - if(!$model->image) { | |
153 | - $model->image = $model->getOldAttribute('image'); | |
154 | - } | |
155 | - if($model->save() && $image) { | |
156 | - $imgDir = Yii::getAlias('@storage/slider/'); | |
157 | - if(!is_dir($imgDir)) { | |
158 | - mkdir($imgDir, 0755, true); | |
159 | - } | |
160 | - $image->saveAs(Yii::getAlias('@storage/slider/' . $image->name)); | |
161 | - } | |
162 | - if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { | |
139 | + if($model->save() && $model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { | |
163 | 140 | return $this->redirect([ |
164 | 141 | 'view', |
165 | 142 | 'slider_id' => $slider_id, | ... | ... |
backend/models/Label.php
... | ... | @@ -11,9 +11,9 @@ use yii\web\Request; |
11 | 11 | * Class Label |
12 | 12 | * |
13 | 13 | * * From language behavior * |
14 | - * @property {TableLang} $lang | |
15 | - * @property {TableLang}[] $langs | |
16 | - * @property {TableLang} $object_lang | |
14 | + * @property OrdersLabelLang $lang | |
15 | + * @property OrdersLabelLang[] $langs | |
16 | + * @property OrdersLabelLang $object_lang | |
17 | 17 | * @property string $ownerKey |
18 | 18 | * @property string $langKey |
19 | 19 | * @method string getOwnerKey() |
... | ... | @@ -22,7 +22,7 @@ use yii\web\Request; |
22 | 22 | * @method void setLangKey(string $value) |
23 | 23 | * @method ActiveQuery getLangs() |
24 | 24 | * @method ActiveQuery getLang( integer $language_id ) |
25 | - * @method {TableLang}[] generateLangs() | |
25 | + * @method OrdersLabelLang[] generateLangs() | |
26 | 26 | * @method void loadLangs(Request $request, ActiveRecord[] $model_langs) |
27 | 27 | * @method bool linkLangs(ActiveRecord[] $model_langs) |
28 | 28 | * @method bool saveLangs(ActiveRecord[] $model_langs) |
... | ... | @@ -44,8 +44,4 @@ class Label extends \yii\db\ActiveRecord |
44 | 44 | ], |
45 | 45 | ]; |
46 | 46 | } |
47 | - | |
48 | - public function getNl(){ | |
49 | - return $this->name; | |
50 | - } | |
51 | 47 | } | ... | ... |
backend/views/articles/_form.php
... | ... | @@ -29,31 +29,9 @@ |
29 | 29 | ->widget(DatePicker::className(), [ |
30 | 30 | 'dateFormat' => 'dd-MM-yyyy', |
31 | 31 | ]) ?> |
32 | - <?= $form->field($model, 'title') | |
33 | - ->textInput([ 'maxlength' => true ]) ?> | |
34 | - | |
35 | - <?= $form->field($model, 'body') | |
36 | - ->widget(CKEditor::className(), [ | |
37 | - 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | |
38 | - 'preset' => 'full', | |
39 | - 'inline' => false, | |
40 | - 'filebrowserUploadUrl' => Yii::$app->getUrlManager() | |
41 | - ->createUrl('file/uploader/images-upload'), | |
42 | - ]), | |
43 | - ]) ?> | |
44 | - | |
45 | - <?= $form->field($model, 'body_preview') | |
46 | - ->widget(CKEditor::className(), [ | |
47 | - 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | |
48 | - 'preset' => 'full', | |
49 | - 'inline' => false, | |
50 | - 'filebrowserUploadUrl' => Yii::$app->getUrlManager() | |
51 | - ->createUrl('file/uploader/images-upload'), | |
52 | - ]), | |
53 | - ]) ?> | |
54 | 32 | |
55 | 33 | <?= $form->field($model, 'image') |
56 | - ->widget(\kartik\file\FileInput::classname(), [ | |
34 | + ->widget(\kartik\file\FileInput::className(), [ | |
57 | 35 | 'language' => 'ru', |
58 | 36 | 'options' => [ |
59 | 37 | 'accept' => 'image/*', |
... | ... | @@ -73,24 +51,6 @@ |
73 | 51 | ], |
74 | 52 | ]); ?> |
75 | 53 | |
76 | - <?= $form->field($model, 'translit') | |
77 | - ->textInput([ 'maxlength' => true ]) ?> | |
78 | - | |
79 | - <?= $form->field($model, 'meta_title') | |
80 | - ->textInput([ 'maxlength' => true ]) ?> | |
81 | - | |
82 | - <?= $form->field($model, 'meta_keywords') | |
83 | - ->textInput([ 'maxlength' => true ]) ?> | |
84 | - | |
85 | - <?= $form->field($model, 'meta_description') | |
86 | - ->textInput([ 'maxlength' => true ]) ?> | |
87 | - | |
88 | - <?= $form->field($model, 'seo_text') | |
89 | - ->textarea([ 'rows' => 6 ]) ?> | |
90 | - | |
91 | - <?= $form->field($model, 'h1') | |
92 | - ->textInput([ 'maxlength' => true ]) ?> | |
93 | - | |
94 | 54 | <?php |
95 | 55 | echo LanguageForm::widget([ |
96 | 56 | 'model_langs' => $model_langs, | ... | ... |
backend/views/articles/_form_language.php
... | ... | @@ -15,6 +15,8 @@ |
15 | 15 | ?> |
16 | 16 | <?= $form->field($model_lang, '[' . $language->language_id . ']title') |
17 | 17 | ->textInput([ 'maxlength' => true ]); ?> |
18 | +<?= $form->field($model_lang, '[' . $language->language_id . ']alias') | |
19 | + ->textInput([ 'maxlength' => true ]); ?> | |
18 | 20 | <?= $form->field($model_lang, '[' . $language->language_id . ']body') |
19 | 21 | ->widget(CKEditor::className(), [ |
20 | 22 | 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | ... | ... |
backend/views/articles/create.php
... | ... | @@ -9,9 +9,9 @@ |
9 | 9 | * @var Articles $model |
10 | 10 | * @var ArticlesLang[] $model_langs |
11 | 11 | */ |
12 | - $this->title = 'Create Articles'; | |
12 | + $this->title = \Yii::t('app', 'Create Articles'); | |
13 | 13 | $this->params[ 'breadcrumbs' ][] = [ |
14 | - 'label' => 'Articles', | |
14 | + 'label' => \Yii::t('app', 'Articles'), | |
15 | 15 | 'url' => [ 'index' ], |
16 | 16 | ]; |
17 | 17 | $this->params[ 'breadcrumbs' ][] = $this->title; | ... | ... |
backend/views/articles/index.php
... | ... | @@ -7,34 +7,22 @@ use yii\grid\GridView; |
7 | 7 | /* @var $searchModel common\models\ArticlesSearch */ |
8 | 8 | /* @var $dataProvider yii\data\ActiveDataProvider */ |
9 | 9 | |
10 | -$this->title = 'Articles'; | |
10 | +$this->title = \Yii::t('app', 'Articles'); | |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
13 | -<div class="articles-index" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> | |
14 | - | |
15 | - <h1 itemprop="title"><?= Html::encode($this->title) ?></h1> | |
16 | - <?php // echo $this->render('_search', ['model' => $searchModel]); ?> | |
17 | - | |
13 | +<div class="articles-index"> | |
14 | + <h1><?= Html::encode($this->title) ?></h1> | |
18 | 15 | <p> |
19 | - <?= Html::a('Create Articles', ['create'], ['class' => 'btn btn-success']) ?> | |
16 | + <?= Html::a(\Yii::t('app', 'Create Articles'), ['create'], ['class' => 'btn btn-success']) ?> | |
20 | 17 | </p> |
21 | 18 | <?= GridView::widget([ |
22 | 19 | 'dataProvider' => $dataProvider, |
23 | 20 | 'filterModel' => $searchModel, |
24 | 21 | 'columns' => [ |
25 | 22 | ['class' => 'yii\grid\SerialColumn'], |
26 | - | |
27 | 23 | 'id', |
28 | 24 | 'date', |
29 | - 'title', | |
30 | - 'image', | |
31 | - // 'translit', | |
32 | - // 'meta_title', | |
33 | - // 'meta_keywords', | |
34 | - // 'meta_description', | |
35 | - // 'seo_text:ntext', | |
36 | - // 'h1', | |
37 | - | |
25 | + 'imageUrl:image', | |
38 | 26 | ['class' => 'yii\grid\ActionColumn'], |
39 | 27 | ], |
40 | 28 | ]); ?> | ... | ... |
backend/views/articles/update.php
... | ... | @@ -9,19 +9,19 @@ |
9 | 9 | * @var Articles $model |
10 | 10 | * @var ArticlesLang[] $model_langs |
11 | 11 | */ |
12 | - $this->title = 'Update Articles: ' . $model->title; | |
12 | + $this->title = \Yii::t('app', 'Update Articles').': ' . $model->id; | |
13 | 13 | $this->params[ 'breadcrumbs' ][] = [ |
14 | - 'label' => 'Articles', | |
14 | + 'label' => \Yii::t('app', 'Articles'), | |
15 | 15 | 'url' => [ 'index' ], |
16 | 16 | ]; |
17 | 17 | $this->params[ 'breadcrumbs' ][] = [ |
18 | - 'label' => $model->title, | |
18 | + 'label' => $model->id, | |
19 | 19 | 'url' => [ |
20 | 20 | 'view', |
21 | 21 | 'id' => $model->id, |
22 | 22 | ], |
23 | 23 | ]; |
24 | - $this->params[ 'breadcrumbs' ][] = 'Update'; | |
24 | + $this->params[ 'breadcrumbs' ][] = \Yii::t('app', 'Update'); | |
25 | 25 | ?> |
26 | 26 | <div class="articles-update"> |
27 | 27 | ... | ... |
backend/views/articles/view.php
... | ... | @@ -6,37 +6,27 @@ use yii\widgets\DetailView; |
6 | 6 | /* @var $this yii\web\View */ |
7 | 7 | /* @var $model common\models\Articles */ |
8 | 8 | |
9 | -$this->title = $model->title; | |
10 | -$this->params['breadcrumbs'][] = ['label' => 'Articles', 'url' => ['index']]; | |
9 | +$this->title = $model->id; | |
10 | +$this->params['breadcrumbs'][] = ['label' => \Yii::t('app', 'Articles'), 'url' => ['index']]; | |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
13 | -<div class="articles-view" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> | |
14 | - | |
15 | - <h1 itemprop="title"><?= Html::encode($this->title) ?></h1> | |
16 | - | |
13 | +<div class="articles-view"> | |
14 | + <h1><?= Html::encode($this->title) ?></h1> | |
17 | 15 | <p> |
18 | - <?= Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a('Delete', ['delete', 'id' => $model->id], [ | |
16 | + <?= Html::a(\Yii::t('app', 'Update'), ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> | |
17 | + <?= Html::a(\Yii::t('app', 'Delete'), ['delete', 'id' => $model->id], [ | |
20 | 18 | 'class' => 'btn btn-danger', |
21 | 19 | 'data' => [ |
22 | - 'confirm' => 'Are you sure you want to delete this item?', | |
20 | + 'confirm' => \Yii::t('app', 'Are you sure you want to delete this item?'), | |
23 | 21 | 'method' => 'post', |
24 | 22 | ], |
25 | 23 | ]) ?> |
26 | 24 | </p> |
27 | - | |
28 | 25 | <?= DetailView::widget([ |
29 | 26 | 'model' => $model, |
30 | 27 | 'attributes' => [ |
31 | 28 | 'id', |
32 | 29 | 'date', |
33 | - 'title', | |
34 | - 'translit', | |
35 | - 'meta_title', | |
36 | - 'meta_keywords', | |
37 | - 'meta_description', | |
38 | - 'h1', | |
39 | 30 | ], |
40 | 31 | ]) ?> |
41 | - | |
42 | 32 | </div> | ... | ... |
backend/views/banner/_form.php
... | ... | @@ -2,7 +2,6 @@ |
2 | 2 | |
3 | 3 | use common\models\Banner; |
4 | 4 | use common\models\BannerLang; |
5 | - use common\modules\file\widgets\ImageUploader; | |
6 | 5 | use common\modules\language\widgets\LanguageForm; |
7 | 6 | use kartik\select2\Select2; |
8 | 7 | use yii\helpers\Html; |
... | ... | @@ -25,12 +24,6 @@ |
25 | 24 | ], |
26 | 25 | ]); ?> |
27 | 26 | |
28 | - <?= $form->field($model, 'alt') | |
29 | - ->textInput([ 'maxlength' => true ]) ?> | |
30 | - | |
31 | - <?= $form->field($model, 'title') | |
32 | - ->textInput([ 'maxlength' => true ]) ?> | |
33 | - | |
34 | 27 | <?= $form->field($model, 'url') |
35 | 28 | ->textInput([ 'maxlength' => true ]) ?> |
36 | 29 | |
... | ... | @@ -39,10 +32,10 @@ |
39 | 32 | 'name' => 'status', |
40 | 33 | 'hideSearch' => true, |
41 | 34 | 'data' => [ |
42 | - 1 => 'Active', | |
43 | - 2 => 'Inactive', | |
35 | + 1 => \Yii::t('app', 'Active'), | |
36 | + 2 => \Yii::t('app', 'Inactive'), | |
44 | 37 | ], |
45 | - 'options' => [ 'placeholder' => 'Select status...' ], | |
38 | + 'options' => [ 'placeholder' => \Yii::t('app', 'Select status...') ], | |
46 | 39 | 'pluginOptions' => [ |
47 | 40 | 'allowClear' => true, |
48 | 41 | ], | ... | ... |
backend/views/banner/index.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\grid\GridView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $searchModel common\models\BannerSearch */ | |
8 | -/* @var $dataProvider yii\data\ActiveDataProvider */ | |
9 | - | |
10 | -$this->title = Yii::t('app', 'Banners'); | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\grid\GridView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $searchModel common\models\BannerSearch */ | |
8 | + /* @var $dataProvider yii\data\ActiveDataProvider */ | |
9 | + | |
10 | + $this->title = Yii::t('app', 'Banners'); | |
11 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 12 | ?> |
13 | 13 | <div class="banner-index"> |
14 | - | |
14 | + | |
15 | 15 | <h1><?= Html::encode($this->title) ?></h1> |
16 | 16 | <?php // echo $this->render('_search', ['model' => $searchModel]); ?> |
17 | - | |
17 | + | |
18 | 18 | <p> |
19 | - <?= Html::a(Yii::t('app', 'Create Banner'), ['create'], ['class' => 'btn btn-success']) ?> | |
19 | + <?= Html::a(Yii::t('app', 'Create Banner'), [ 'create' ], [ 'class' => 'btn btn-success' ]) ?> | |
20 | 20 | </p> |
21 | 21 | <?= GridView::widget([ |
22 | 22 | 'dataProvider' => $dataProvider, |
23 | - 'filterModel' => $searchModel, | |
24 | - 'columns' => [ | |
25 | - ['class' => 'yii\grid\SerialColumn'], | |
26 | - | |
23 | + 'filterModel' => $searchModel, | |
24 | + 'columns' => [ | |
25 | + [ 'class' => 'yii\grid\SerialColumn' ], | |
27 | 26 | 'banner_id', |
28 | - 'image', | |
29 | - 'alt', | |
30 | - 'title', | |
31 | - // 'url:url', | |
32 | - // 'status', | |
33 | - | |
34 | - ['class' => 'yii\grid\ActionColumn'], | |
27 | + 'url', | |
28 | + 'status', | |
29 | + [ 'class' => 'yii\grid\ActionColumn' ], | |
35 | 30 | ], |
36 | 31 | ]); ?> |
37 | 32 | </div> | ... | ... |
backend/views/banner/update.php
... | ... | @@ -13,13 +13,13 @@ |
13 | 13 | |
14 | 14 | $this->title = Yii::t('app', 'Update {modelClass}: ', [ |
15 | 15 | 'modelClass' => 'Banner', |
16 | - ]) . $model->title; | |
16 | + ]) . $model->banner_id; | |
17 | 17 | $this->params[ 'breadcrumbs' ][] = [ |
18 | 18 | 'label' => Yii::t('app', 'Banners'), |
19 | 19 | 'url' => [ 'index' ], |
20 | 20 | ]; |
21 | 21 | $this->params[ 'breadcrumbs' ][] = [ |
22 | - 'label' => $model->title, | |
22 | + 'label' => $model->banner_id, | |
23 | 23 | 'url' => [ |
24 | 24 | 'view', |
25 | 25 | 'id' => $model->banner_id, | ... | ... |
backend/views/banner/view.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\widgets\DetailView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $model common\models\Banner */ | |
8 | - | |
9 | -$this->title = $model->title; | |
10 | -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Banners'), 'url' => ['index']]; | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\widgets\DetailView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $model common\models\Banner */ | |
8 | + | |
9 | + $this->title = $model->banner_id; | |
10 | + $this->params[ 'breadcrumbs' ][] = [ | |
11 | + 'label' => Yii::t('app', 'Banners'), | |
12 | + 'url' => [ 'index' ], | |
13 | + ]; | |
14 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 15 | ?> |
13 | 16 | <div class="banner-view"> |
14 | - | |
17 | + | |
15 | 18 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | |
19 | + | |
17 | 20 | <p> |
18 | - <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->banner_id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->banner_id], [ | |
21 | + <?= Html::a(Yii::t('app', 'Update'), [ | |
22 | + 'update', | |
23 | + 'id' => $model->banner_id, | |
24 | + ], [ 'class' => 'btn btn-primary' ]) ?> | |
25 | + <?= Html::a(Yii::t('app', 'Delete'), [ | |
26 | + 'delete', | |
27 | + 'id' => $model->banner_id, | |
28 | + ], [ | |
20 | 29 | 'class' => 'btn btn-danger', |
21 | - 'data' => [ | |
30 | + 'data' => [ | |
22 | 31 | 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), |
23 | - 'method' => 'post', | |
32 | + 'method' => 'post', | |
24 | 33 | ], |
25 | 34 | ]) ?> |
26 | 35 | </p> |
27 | - | |
36 | + | |
28 | 37 | <?= DetailView::widget([ |
29 | 38 | 'model' => $model, |
30 | 39 | 'attributes' => [ |
31 | 40 | 'banner_id', |
32 | - 'image', | |
33 | - 'alt', | |
34 | - 'title', | |
35 | - 'url:url', | |
41 | + 'url', | |
36 | 42 | 'status', |
37 | 43 | ], |
38 | 44 | ]) ?> | ... | ... |
backend/views/bg/_form.php
... | ... | @@ -17,16 +17,37 @@ |
17 | 17 | |
18 | 18 | <div class="bg-form"> |
19 | 19 | |
20 | - <?php $form = ActiveForm::begin(); ?> | |
21 | - | |
22 | - <?= $form->field($model, 'title') | |
23 | - ->textInput([ 'maxlength' => true ]) ?> | |
20 | + <?php $form = ActiveForm::begin([ | |
21 | + 'options' => [ | |
22 | + 'enctype' => 'multipart/form-data', | |
23 | + ], | |
24 | + ]); ?> | |
24 | 25 | |
25 | 26 | <?= $form->field($model, 'url') |
26 | 27 | ->textInput([ 'maxlength' => true ]) ?> |
27 | 28 | |
29 | + | |
28 | 30 | <?= $form->field($model, 'image') |
29 | - ->textInput([ 'maxlength' => true ]) ?> | |
31 | + ->widget(\kartik\file\FileInput::className(), [ | |
32 | + 'model' => $model, | |
33 | + 'attribute' => 'image', | |
34 | + 'options' => [ | |
35 | + 'accept' => 'image/*', | |
36 | + 'multiple' => false, | |
37 | + ], | |
38 | + 'pluginOptions' => [ | |
39 | + 'allowedFileExtensions' => [ | |
40 | + 'jpg', | |
41 | + 'gif', | |
42 | + 'png', | |
43 | + ], | |
44 | + 'initialPreview' => $model->imageUrl ? \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'slider') : '', | |
45 | + 'showRemove' => false, | |
46 | + 'overwriteInitial' => true, | |
47 | + 'showUpload' => false, | |
48 | + 'showClose' => false, | |
49 | + ], | |
50 | + ]); ?> | |
30 | 51 | |
31 | 52 | <?= LanguageForm::widget([ |
32 | 53 | 'model_langs' => $model_langs, |
... | ... | @@ -35,7 +56,7 @@ |
35 | 56 | ]) ?> |
36 | 57 | |
37 | 58 | <div class="form-group"> |
38 | - <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]) ?> | |
59 | + <?= Html::submitButton($model->isNewRecord ? \Yii::t('app', 'Create') : \Yii::t('app', 'Update'), [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]) ?> | |
39 | 60 | </div> |
40 | 61 | |
41 | 62 | <?php ActiveForm::end(); ?> | ... | ... |
backend/views/bg/create.php
... | ... | @@ -11,9 +11,9 @@ |
11 | 11 | * @var BgLang[] $model_langs |
12 | 12 | */ |
13 | 13 | |
14 | - $this->title = 'Create Bg'; | |
14 | + $this->title = \Yii::t('app', 'Create Bg'); | |
15 | 15 | $this->params[ 'breadcrumbs' ][] = [ |
16 | - 'label' => 'Bgs', | |
16 | + 'label' => \Yii::t('app', 'Bgs'), | |
17 | 17 | 'url' => [ 'index' ], |
18 | 18 | ]; |
19 | 19 | $this->params[ 'breadcrumbs' ][] = $this->title; | ... | ... |
backend/views/bg/index.php
... | ... | @@ -7,7 +7,7 @@ use yii\grid\GridView; |
7 | 7 | /* @var $searchModel common\models\BgSearch */ |
8 | 8 | /* @var $dataProvider yii\data\ActiveDataProvider */ |
9 | 9 | |
10 | -$this->title = 'Bgs'; | |
10 | +$this->title = \Yii::t('app', 'Bgs'); | |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
13 | 13 | <div class="bg-index"> |
... | ... | @@ -16,19 +16,16 @@ $this->params['breadcrumbs'][] = $this->title; |
16 | 16 | <?php // echo $this->render('_search', ['model' => $searchModel]); ?> |
17 | 17 | |
18 | 18 | <p> |
19 | - <?= Html::a('Create Bg', ['create'], ['class' => 'btn btn-success']) ?> | |
19 | + <?= Html::a(\Yii::t('app', 'Create Bg'), ['create'], ['class' => 'btn btn-success']) ?> | |
20 | 20 | </p> |
21 | 21 | <?= GridView::widget([ |
22 | 22 | 'dataProvider' => $dataProvider, |
23 | 23 | 'filterModel' => $searchModel, |
24 | 24 | 'columns' => [ |
25 | 25 | ['class' => 'yii\grid\SerialColumn'], |
26 | - | |
27 | 26 | 'id', |
28 | - 'title', | |
29 | - 'url:url', | |
30 | - 'image', | |
31 | - | |
27 | + 'url', | |
28 | + 'imageUrl:image', | |
32 | 29 | ['class' => 'yii\grid\ActionColumn'], |
33 | 30 | ], |
34 | 31 | ]); ?> | ... | ... |
backend/views/bg/update.php
... | ... | @@ -11,19 +11,19 @@ |
11 | 11 | * @var BgLang[] $model_langs |
12 | 12 | */ |
13 | 13 | |
14 | - $this->title = 'Update Bg: ' . $model->title; | |
14 | + $this->title = \Yii::t('app', 'Update Bg: ') . $model->id; | |
15 | 15 | $this->params[ 'breadcrumbs' ][] = [ |
16 | - 'label' => 'Bgs', | |
16 | + 'label' => \Yii::t('app', 'Bgs'), | |
17 | 17 | 'url' => [ 'index' ], |
18 | 18 | ]; |
19 | 19 | $this->params[ 'breadcrumbs' ][] = [ |
20 | - 'label' => $model->title, | |
20 | + 'label' => $model->id, | |
21 | 21 | 'url' => [ |
22 | 22 | 'view', |
23 | 23 | 'id' => $model->id, |
24 | 24 | ], |
25 | 25 | ]; |
26 | - $this->params[ 'breadcrumbs' ][] = 'Update'; | |
26 | + $this->params[ 'breadcrumbs' ][] = \Yii::t('app', 'Update'); | |
27 | 27 | ?> |
28 | 28 | <div class="bg-update"> |
29 | 29 | ... | ... |
backend/views/bg/view.php
... | ... | @@ -6,8 +6,8 @@ use yii\widgets\DetailView; |
6 | 6 | /* @var $this yii\web\View */ |
7 | 7 | /* @var $model common\models\Bg */ |
8 | 8 | |
9 | -$this->title = $model->title; | |
10 | -$this->params['breadcrumbs'][] = ['label' => 'Bgs', 'url' => ['index']]; | |
9 | +$this->title = $model->id; | |
10 | +$this->params['breadcrumbs'][] = ['label' => \Yii::t('app', 'Bgs'), 'url' => ['index']]; | |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
13 | 13 | <div class="bg-view"> |
... | ... | @@ -15,11 +15,11 @@ $this->params['breadcrumbs'][] = $this->title; |
15 | 15 | <h1><?= Html::encode($this->title) ?></h1> |
16 | 16 | |
17 | 17 | <p> |
18 | - <?= Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a('Delete', ['delete', 'id' => $model->id], [ | |
18 | + <?= Html::a(\Yii::t('app', 'Update'), ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> | |
19 | + <?= Html::a(\Yii::t('app', 'Delete'), ['delete', 'id' => $model->id], [ | |
20 | 20 | 'class' => 'btn btn-danger', |
21 | 21 | 'data' => [ |
22 | - 'confirm' => 'Are you sure you want to delete this item?', | |
22 | + 'confirm' => \Yii::t('app', 'Are you sure you want to delete this item?'), | |
23 | 23 | 'method' => 'post', |
24 | 24 | ], |
25 | 25 | ]) ?> |
... | ... | @@ -29,9 +29,8 @@ $this->params['breadcrumbs'][] = $this->title; |
29 | 29 | 'model' => $model, |
30 | 30 | 'attributes' => [ |
31 | 31 | 'id', |
32 | - 'title', | |
33 | - 'url:url', | |
34 | - 'image', | |
32 | + 'url', | |
33 | + 'imageUrl:image', | |
35 | 34 | ], |
36 | 35 | ]) ?> |
37 | 36 | ... | ... |
backend/views/brand/_form.php
... | ... | @@ -22,14 +22,8 @@ |
22 | 22 | 'options' => [ 'enctype' => 'multipart/form-data' ], |
23 | 23 | ]); ?> |
24 | 24 | |
25 | - <?= $form->field($model, 'name') | |
26 | - ->textInput() ?> | |
27 | - | |
28 | - <?= $form->field($model, 'alias') | |
29 | - ->textInput([ 'maxlength' => true ]) ?> | |
30 | - | |
31 | 25 | <?= $form->field($model, 'image') |
32 | - ->widget(\kartik\file\FileInput::classname(), [ | |
26 | + ->widget(\kartik\file\FileInput::className(), [ | |
33 | 27 | 'language' => 'ru', |
34 | 28 | 'options' => [ |
35 | 29 | 'accept' => 'image/*', |
... | ... | @@ -49,18 +43,6 @@ |
49 | 43 | ], |
50 | 44 | ]); ?> |
51 | 45 | |
52 | - <?= $form->field($model, 'meta_title') | |
53 | - ->textInput([ 'maxlength' => true ]) ?> | |
54 | - | |
55 | - <?= $form->field($model, 'meta_desc') | |
56 | - ->textarea([ 'rows' => 6 ]) ?> | |
57 | - | |
58 | - <?= $form->field($model, 'meta_robots') | |
59 | - ->textInput([ 'maxlength' => true ]) ?> | |
60 | - | |
61 | - <?= $form->field($model, 'seo_text') | |
62 | - ->textarea([ 'rows' => 6 ]) ?> | |
63 | - | |
64 | 46 | <?= LanguageForm::widget([ |
65 | 47 | 'model_langs' => $model_langs, |
66 | 48 | 'formView' => '@backend/views/brand/_form_language', | ... | ... |
backend/views/brand/_form_language.php
... | ... | @@ -14,6 +14,9 @@ |
14 | 14 | <?= $form->field($model_lang, '[' . $language->language_id . ']name') |
15 | 15 | ->textInput([ 'maxlength' => true ]); ?> |
16 | 16 | |
17 | +<?= $form->field($model_lang, '[' . $language->language_id . ']alias') | |
18 | + ->textInput([ 'maxlength' => true ]); ?> | |
19 | + | |
17 | 20 | <?= $form->field($model_lang, '[' . $language->language_id . ']meta_title') |
18 | 21 | ->textInput([ 'maxlength' => true ]) ?> |
19 | 22 | ... | ... |
backend/views/brand/index.php
... | ... | @@ -13,27 +13,16 @@ $this->params['breadcrumbs'][] = $this->title; |
13 | 13 | <div class="brand-index"> |
14 | 14 | |
15 | 15 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - <?php // echo $this->render('_search', ['model' => $searchModel]); ?> | |
17 | 16 | |
18 | 17 | <p> |
19 | 18 | <?= Html::a(Yii::t('product', 'Create Brand'), ['create'], ['class' => 'btn btn-success']) ?> |
20 | 19 | </p> |
21 | 20 | <?= GridView::widget([ |
22 | 21 | 'dataProvider' => $dataProvider, |
23 | -// 'filterModel' => $searchModel, | |
24 | 22 | 'columns' => [ |
25 | 23 | ['class' => 'yii\grid\SerialColumn'], |
26 | - | |
27 | - 'name', | |
28 | - 'alias', | |
29 | - [ | |
30 | - 'attribute' => 'title', | |
31 | - 'format' => 'html', | |
32 | - 'value' => function($data) { | |
33 | - return Html::img($data->imageUrl, ['width'=>'100']); | |
34 | - }, | |
35 | - ], | |
36 | - | |
24 | + 'brand_id', | |
25 | + 'imageUrl:image', | |
37 | 26 | ['class' => 'yii\grid\ActionColumn'], |
38 | 27 | ], |
39 | 28 | ]); ?> | ... | ... |
backend/views/brand/view.php
... | ... | @@ -29,12 +29,7 @@ $this->params['breadcrumbs'][] = $this->title; |
29 | 29 | 'model' => $model, |
30 | 30 | 'attributes' => [ |
31 | 31 | 'brand_id', |
32 | - 'alias', | |
33 | 32 | 'imageUrl:image', |
34 | - 'meta_title', | |
35 | - 'meta_desc:ntext', | |
36 | - 'meta_robots', | |
37 | - 'seo_text:ntext', | |
38 | 33 | ], |
39 | 34 | ]) ?> |
40 | 35 | ... | ... |
backend/views/category/_form.php
... | ... | @@ -6,8 +6,6 @@ |
6 | 6 | use yii\helpers\Html; |
7 | 7 | use yii\web\View; |
8 | 8 | use yii\widgets\ActiveForm; |
9 | - use mihaildev\ckeditor\CKEditor; | |
10 | - use mihaildev\elfinder\ElFinder; | |
11 | 9 | |
12 | 10 | /** |
13 | 11 | * @var View $this |
... | ... | @@ -25,12 +23,6 @@ |
25 | 23 | 'options' => [ 'enctype' => 'multipart/form-data' ], |
26 | 24 | ]); ?> |
27 | 25 | |
28 | - <?= $form->field($model, 'name') | |
29 | - ->textInput() ?> | |
30 | - | |
31 | - <?= $form->field($model, 'alias') | |
32 | - ->textInput([ 'maxlength' => true ]) ?> | |
33 | - | |
34 | 26 | <?= $form->field($model, 'parent_id') |
35 | 27 | ->dropDownList($categories, [ |
36 | 28 | 'prompt' => Yii::t('rubrication', 'Root category'), |
... | ... | @@ -40,26 +32,8 @@ |
40 | 32 | ]) |
41 | 33 | ->label(Yii::t('product', 'Parent category')) ?> |
42 | 34 | |
43 | - <?php | |
44 | - /* Tax group - add to controller | |
45 | - ?> | |
46 | - <?= $form->field($model, 'taxGroup')->widget(Select2::className(), [ | |
47 | - 'data' => \yii\helpers\ArrayHelper::map(\common\modules\rubrication\models\TaxGroup::find()->all(), 'tax_group_id', 'name'), | |
48 | - 'language' => 'ru', | |
49 | - 'options' => [ | |
50 | - 'placeholder' => 'Linked options', | |
51 | - 'multiple' => true, | |
52 | - ], | |
53 | - 'pluginOptions' => [ | |
54 | - 'allowClear' => true | |
55 | - ], | |
56 | - ] | |
57 | - ) ?> | |
58 | - */ | |
59 | - ?> | |
60 | - | |
61 | - <?= $form->field($model, 'imageUpload') | |
62 | - ->widget(\kartik\file\FileInput::classname(), [ | |
35 | + <?= $form->field($model, 'image') | |
36 | + ->widget(\kartik\file\FileInput::className(), [ | |
63 | 37 | 'language' => 'ru', |
64 | 38 | 'options' => [ |
65 | 39 | 'accept' => 'image/*', |
... | ... | @@ -80,30 +54,6 @@ |
80 | 54 | ]) |
81 | 55 | ->hint('Для корректного отображения на сайте, размер изображения должен быть 262x144 либо соблюдать соотношение сторон примерно 2:1'); ?> |
82 | 56 | |
83 | - <?= $form->field($model, 'meta_title') | |
84 | - ->textInput([ 'maxlength' => true ]) ?> | |
85 | - | |
86 | - <?= $form->field($model, 'meta_desc') | |
87 | - ->textarea([ 'rows' => 6 ]) ?> | |
88 | - | |
89 | - <?= $form->field($model, 'meta_robots') | |
90 | - ->textInput([ 'maxlength' => true ]) ?> | |
91 | - | |
92 | - <?= $form->field($model, 'h1') | |
93 | - ->textInput([ 'maxlength' => true ]) ?> | |
94 | - | |
95 | - <?= $form->field($model, 'seo_text') | |
96 | - ->widget(CKEditor::className(), [ | |
97 | - 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | |
98 | - 'preset' => 'full', | |
99 | - //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать | |
100 | - 'inline' => false, | |
101 | - //по умолчанию false]), | |
102 | - 'filebrowserUploadUrl' => Yii::$app->getUrlManager() | |
103 | - ->createUrl('file/uploader/images-upload'), | |
104 | - ]), | |
105 | - ]) ?> | |
106 | - | |
107 | 57 | <?= LanguageForm::widget([ |
108 | 58 | 'model_langs' => $model_langs, |
109 | 59 | 'formView' => '@backend/views/category/_form_language', | ... | ... |
backend/views/category/_form_language.php
... | ... | @@ -14,6 +14,9 @@ |
14 | 14 | <?= $form->field($model_lang, '[' . $language->language_id . ']name') |
15 | 15 | ->textInput([ 'maxlength' => true ]); ?> |
16 | 16 | |
17 | +<?= $form->field($model_lang, '[' . $language->language_id . ']alias') | |
18 | + ->textInput([ 'maxlength' => true ]); ?> | |
19 | + | |
17 | 20 | <?= $form->field($model_lang, '[' . $language->language_id . ']meta_title') |
18 | 21 | ->textInput([ 'maxlength' => true ]) ?> |
19 | 22 | ... | ... |
backend/views/category/index.php
1 | 1 | <?php |
2 | 2 | |
3 | + use common\modules\product\models\Category; | |
3 | 4 | use yii\helpers\Html; |
4 | 5 | use kartik\grid\GridView; |
5 | 6 | |
... | ... | @@ -25,12 +26,15 @@ |
25 | 26 | [ |
26 | 27 | 'label' => Yii::t('product', 'Name'), |
27 | 28 | 'content' => function($data) { |
29 | + /** | |
30 | + * @var Category $data | |
31 | + */ | |
28 | 32 | $op = []; |
29 | 33 | foreach($data->getParents() |
30 | 34 | ->all() as $parent) { |
31 | - $op[] = $parent->name; | |
35 | + $op[] = $parent->category_id; | |
32 | 36 | } |
33 | - $op[] = $data->name; | |
37 | + $op[] = $data->category_id; | |
34 | 38 | return implode(' → ', $op); |
35 | 39 | }, |
36 | 40 | ], | ... | ... |
backend/views/category/update.php
... | ... | @@ -14,13 +14,13 @@ |
14 | 14 | |
15 | 15 | $this->title = Yii::t('product', 'Update {modelClass}: ', [ |
16 | 16 | 'modelClass' => 'Category', |
17 | - ]) . ' ' . $model->name; | |
17 | + ]) . ' ' . $model->category_id; | |
18 | 18 | $this->params[ 'breadcrumbs' ][] = [ |
19 | 19 | 'label' => Yii::t('product', 'Categories'), |
20 | 20 | 'url' => [ 'index' ], |
21 | 21 | ]; |
22 | 22 | $this->params[ 'breadcrumbs' ][] = [ |
23 | - 'label' => $model->name, | |
23 | + 'label' => $model->category_id, | |
24 | 24 | 'url' => [ |
25 | 25 | 'view', |
26 | 26 | 'id' => $model->category_id, | ... | ... |
backend/views/category/view.php
... | ... | @@ -6,7 +6,7 @@ use yii\widgets\DetailView; |
6 | 6 | /* @var $this yii\web\View */ |
7 | 7 | /* @var $model common\modules\product\models\Category */ |
8 | 8 | |
9 | -$this->title = $model->name; | |
9 | +$this->title = $model->category_id; | |
10 | 10 | $this->params['breadcrumbs'][] = ['label' => Yii::t('product', 'Categories'), 'url' => ['index']]; |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
... | ... | @@ -25,7 +25,7 @@ $this->params['breadcrumbs'][] = $this->title; |
25 | 25 | ]) ?> |
26 | 26 | <?= Html::a(Yii::t('product', 'Create Category'), ['category/create'], ['class' => 'btn btn-success']) ?> |
27 | 27 | <?php if (!empty($model->parent_id)) :?> |
28 | - <?= Html::a(Yii::t('product', 'Create category By {name}', ['name' => $model->parent->name]), ['category/create?parent='. $model->parent->category_id], ['class' => 'btn btn-success']) ?> | |
28 | + <?= Html::a(Yii::t('product', 'Create category By {name}', ['name' => $model->parent->category_id]), ['category/create?parent='. $model->parent->category_id], ['class' => 'btn btn-success']) ?> | |
29 | 29 | <?php endif?> |
30 | 30 | </p> |
31 | 31 | |
... | ... | @@ -37,13 +37,7 @@ $this->params['breadcrumbs'][] = $this->title; |
37 | 37 | 'path', |
38 | 38 | 'depth', |
39 | 39 | 'imageUrl:image', |
40 | - 'meta_title', | |
41 | - 'meta_desc:ntext', | |
42 | - 'meta_robots', | |
43 | - 'h1', | |
44 | - 'seo_text:ntext', | |
45 | 40 | 'product_unit_id', |
46 | - 'alias', | |
47 | 41 | ], |
48 | 42 | ]) ?> |
49 | 43 | ... | ... |
backend/views/event/_form.php
... | ... | @@ -25,25 +25,6 @@ |
25 | 25 | 'options' => [ 'enctype' => 'multipart/form-data' ], |
26 | 26 | ]); ?> |
27 | 27 | |
28 | - <?= $form->field($model, 'name') | |
29 | - ->textInput([ 'maxlength' => true ]) ?> | |
30 | - | |
31 | - <?= $form->field($model, 'alias') | |
32 | - ->textInput([ 'maxlength' => true ]) ?> | |
33 | - | |
34 | - <?= $form->field($model, 'body') | |
35 | - ->widget(CKEditor::className(), [ | |
36 | - 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | |
37 | - 'preset' => 'full', | |
38 | - //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать | |
39 | - 'inline' => false, | |
40 | - //по умолчанию false]), | |
41 | - 'filebrowserUploadUrl' => Yii::$app->getUrlManager() | |
42 | - ->createUrl('file/uploader/images-upload'), | |
43 | - ]), | |
44 | - ]) ?> | |
45 | - | |
46 | - | |
47 | 28 | <?= $form->field($model, 'end_at') |
48 | 29 | ->widget(DatePicker::className(), [ |
49 | 30 | 'pluginOptions' => [ |
... | ... | @@ -53,7 +34,7 @@ |
53 | 34 | ]) ?> |
54 | 35 | |
55 | 36 | |
56 | - <?= $form->field($model, 'imageUpload') | |
37 | + <?= $form->field($model, 'image') | |
57 | 38 | ->widget(\kartik\file\FileInput::className(), [ |
58 | 39 | 'language' => 'ru', |
59 | 40 | 'options' => [ |
... | ... | @@ -74,18 +55,6 @@ |
74 | 55 | ], |
75 | 56 | ]); ?> |
76 | 57 | |
77 | - <?= $form->field($model, 'meta_title') | |
78 | - ->textInput([ 'maxlength' => true ]) ?> | |
79 | - | |
80 | - <?= $form->field($model, 'description') | |
81 | - ->textInput([ 'maxlength' => true ]) ?> | |
82 | - | |
83 | - <?= $form->field($model, 'h1') | |
84 | - ->textInput([ 'maxlength' => true ]) ?> | |
85 | - | |
86 | - <?= $form->field($model, 'seo_text') | |
87 | - ->textarea([ 'rows' => 6 ]) ?> | |
88 | - | |
89 | 58 | <?= LanguageForm::widget([ |
90 | 59 | 'model_langs' => $model_langs, |
91 | 60 | 'formView' => '@backend/views/event/_form_language', | ... | ... |
backend/views/event/_form_language.php
... | ... | @@ -15,6 +15,10 @@ |
15 | 15 | ?> |
16 | 16 | <?= $form->field($model_lang, '[' . $language->language_id . ']name') |
17 | 17 | ->textInput([ 'maxlength' => true ]); ?> |
18 | + | |
19 | +<?= $form->field($model_lang, '[' . $language->language_id . ']alias') | |
20 | + ->textInput([ 'maxlength' => true ]); ?> | |
21 | + | |
18 | 22 | <?= $form->field($model_lang, '[' . $language->language_id . ']body') |
19 | 23 | ->widget(CKEditor::className(), [ |
20 | 24 | 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | ... | ... |
backend/views/event/index.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\grid\GridView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $searchModel common\models\EventSearch */ | |
8 | -/* @var $dataProvider yii\data\ActiveDataProvider */ | |
9 | - | |
10 | -$this->title = Yii::t('app', 'Events'); | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\grid\GridView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $searchModel common\models\EventSearch */ | |
8 | + /* @var $dataProvider yii\data\ActiveDataProvider */ | |
9 | + | |
10 | + $this->title = Yii::t('app', 'Events'); | |
11 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 12 | ?> |
13 | 13 | <div class="event-index"> |
14 | - | |
14 | + | |
15 | 15 | <h1><?= Html::encode($this->title) ?></h1> |
16 | 16 | <?php // echo $this->render('_search', ['model' => $searchModel]); ?> |
17 | - | |
17 | + | |
18 | 18 | <p> |
19 | - <?= Html::a(Yii::t('app', 'Create Event'), ['create'], ['class' => 'btn btn-success']) ?> | |
19 | + <?= Html::a(Yii::t('app', 'Create Event'), [ 'create' ], [ 'class' => 'btn btn-success' ]) ?> | |
20 | 20 | </p> |
21 | 21 | <?= GridView::widget([ |
22 | 22 | 'dataProvider' => $dataProvider, |
23 | - 'filterModel' => $searchModel, | |
24 | - 'columns' => [ | |
25 | - ['class' => 'yii\grid\SerialColumn'], | |
26 | - | |
23 | + 'filterModel' => $searchModel, | |
24 | + 'columns' => [ | |
25 | + [ 'class' => 'yii\grid\SerialColumn' ], | |
27 | 26 | 'event_id', |
28 | - 'name', | |
29 | - 'alias', | |
30 | - [ | |
31 | - 'format' => 'image', | |
32 | - 'attribute'=>'image', | |
33 | - ], | |
34 | - // 'meta_title', | |
35 | - // 'description', | |
36 | - // 'h1', | |
37 | - // 'seo_text:ntext', | |
38 | - // 'created_at', | |
39 | - // 'updated_at', | |
40 | - // 'end_at', | |
41 | - | |
42 | - ['class' => 'yii\grid\ActionColumn'], | |
27 | + 'imageUrl:image', | |
28 | + [ 'class' => 'yii\grid\ActionColumn' ], | |
43 | 29 | ], |
44 | 30 | ]); ?> |
45 | 31 | </div> | ... | ... |
backend/views/event/update.php
... | ... | @@ -13,13 +13,13 @@ |
13 | 13 | |
14 | 14 | $this->title = Yii::t('app', 'Update {modelClass}: ', [ |
15 | 15 | 'modelClass' => 'Event', |
16 | - ]) . $model->name; | |
16 | + ]) . $model->event_id; | |
17 | 17 | $this->params[ 'breadcrumbs' ][] = [ |
18 | 18 | 'label' => Yii::t('app', 'Events'), |
19 | 19 | 'url' => [ 'index' ], |
20 | 20 | ]; |
21 | 21 | $this->params[ 'breadcrumbs' ][] = [ |
22 | - 'label' => $model->name, | |
22 | + 'label' => $model->event_id, | |
23 | 23 | 'url' => [ |
24 | 24 | 'view', |
25 | 25 | 'id' => $model->event_id, | ... | ... |
backend/views/event/view.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\widgets\DetailView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $model common\models\Event */ | |
8 | - | |
9 | -$this->title = $model->name; | |
10 | -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Events'), 'url' => ['index']]; | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\widgets\DetailView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $model common\models\Event */ | |
8 | + | |
9 | + $this->title = $model->event_id; | |
10 | + $this->params[ 'breadcrumbs' ][] = [ | |
11 | + 'label' => Yii::t('app', 'Events'), | |
12 | + 'url' => [ 'index' ], | |
13 | + ]; | |
14 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 15 | ?> |
13 | 16 | <div class="event-view"> |
14 | - | |
17 | + | |
15 | 18 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | |
19 | + | |
17 | 20 | <p> |
18 | - <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->event_id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->event_id], [ | |
21 | + <?= Html::a(Yii::t('app', 'Update'), [ | |
22 | + 'update', | |
23 | + 'id' => $model->event_id, | |
24 | + ], [ 'class' => 'btn btn-primary' ]) ?> | |
25 | + <?= Html::a(Yii::t('app', 'Delete'), [ | |
26 | + 'delete', | |
27 | + 'id' => $model->event_id, | |
28 | + ], [ | |
20 | 29 | 'class' => 'btn btn-danger', |
21 | - 'data' => [ | |
30 | + 'data' => [ | |
22 | 31 | 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), |
23 | - 'method' => 'post', | |
32 | + 'method' => 'post', | |
24 | 33 | ], |
25 | 34 | ]) ?> |
26 | 35 | </p> |
27 | - | |
36 | + | |
28 | 37 | <?= DetailView::widget([ |
29 | 38 | 'model' => $model, |
30 | 39 | 'attributes' => [ |
31 | 40 | 'event_id', |
32 | - 'name', | |
33 | - 'alias', | |
34 | - 'meta_title', | |
35 | - 'description', | |
36 | - 'h1', | |
41 | + 'imageUrl:image', | |
37 | 42 | ], |
38 | 43 | ]) ?> |
39 | 44 | ... | ... |
backend/views/page/_form.php
... | ... | @@ -6,8 +6,6 @@ |
6 | 6 | use yii\helpers\Html; |
7 | 7 | use yii\web\View; |
8 | 8 | use yii\widgets\ActiveForm; |
9 | - use mihaildev\ckeditor\CKEditor; | |
10 | - use mihaildev\elfinder\ElFinder; | |
11 | 9 | |
12 | 10 | /** |
13 | 11 | * @var View $this |
... | ... | @@ -21,49 +19,15 @@ |
21 | 19 | |
22 | 20 | <?php $form = ActiveForm::begin(); ?> |
23 | 21 | |
24 | - <?= $form->field($model, 'title') | |
25 | - ->textInput([ 'maxlength' => true ]) ?> | |
26 | - | |
27 | - <?= $form->field($model, 'translit') | |
28 | - ->textInput([ 'maxlength' => true ]) ?> | |
29 | - | |
30 | - <?= $form->field($model, 'body') | |
31 | - ->widget(CKEditor::className(), [ | |
32 | - 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | |
33 | - 'preset' => 'full', | |
34 | - //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать | |
35 | - 'inline' => false, | |
36 | - //по умолчанию false]), | |
37 | - 'allowedContent' => true, | |
38 | - 'filebrowserUploadUrl' => Yii::$app->getUrlManager() | |
39 | - ->createUrl('file/uploader/images-upload'), | |
40 | - ]), | |
41 | - ]) ?> | |
42 | - | |
43 | - <?= $form->field($model, 'meta_title') | |
44 | - ->textInput([ 'maxlength' => true ]) ?> | |
45 | - | |
46 | - <?= $form->field($model, 'meta_keywords') | |
47 | - ->textInput([ 'maxlength' => true ]) ?> | |
48 | - | |
49 | - <?= $form->field($model, 'meta_description') | |
50 | - ->textInput([ 'maxlength' => true ]) ?> | |
51 | - | |
52 | - <?= $form->field($model, 'seo_text') | |
53 | - ->textarea([ 'rows' => 6 ]) ?> | |
54 | - | |
55 | - <?= $form->field($model, 'h1') | |
56 | - ->textInput([ 'maxlength' => true ]) ?> | |
57 | - | |
58 | - <?= $form->field($model, 'in_menu') | |
59 | - ->checkbox() ?> | |
60 | - | |
61 | 22 | <?= LanguageForm::widget([ |
62 | 23 | 'model_langs' => $model_langs, |
63 | 24 | 'formView' => '@backend/views/page/_form_language', |
64 | 25 | 'form' => $form, |
65 | 26 | ]) ?> |
66 | 27 | |
28 | + <?= $form->field($model, 'in_menu') | |
29 | + ->checkbox() ?> | |
30 | + | |
67 | 31 | <div class="form-group"> |
68 | 32 | <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]) ?> |
69 | 33 | </div> | ... | ... |
backend/views/page/_form_language.php
... | ... | @@ -7,15 +7,16 @@ |
7 | 7 | use yii\widgets\ActiveForm; |
8 | 8 | |
9 | 9 | /** |
10 | - * @var PageLang $model_lang | |
11 | - * @var Language $language | |
12 | - * @var ActiveForm $form | |
13 | - * @var View $this | |
10 | + * @var PageLang $model_lang | |
11 | + * @var Language $language | |
12 | + * @var ActiveForm $form | |
13 | + * @var View $this | |
14 | 14 | */ |
15 | 15 | ?> |
16 | 16 | <?= $form->field($model_lang, '[' . $language->language_id . ']title') |
17 | 17 | ->textInput([ 'maxlength' => true ]); ?> |
18 | - | |
18 | +<?= $form->field($model_lang, '[' . $language->language_id . ']alias') | |
19 | + ->textInput([ 'maxlength' => true ]); ?> | |
19 | 20 | <?= $form->field($model_lang, '[' . $language->language_id . ']body') |
20 | 21 | ->widget(CKEditor::className(), [ |
21 | 22 | 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | ... | ... |
backend/views/page/create.php
... | ... | @@ -10,9 +10,9 @@ |
10 | 10 | * @var Page $model |
11 | 11 | * @var PageLang[] $model_langs |
12 | 12 | */ |
13 | - $this->title = 'Create Page'; | |
13 | + $this->title = \Yii::t('app', 'Create Page'); | |
14 | 14 | $this->params[ 'breadcrumbs' ][] = [ |
15 | - 'label' => 'Pages', | |
15 | + 'label' => \Yii::t('app', 'Pages'), | |
16 | 16 | 'url' => [ 'index' ], |
17 | 17 | ]; |
18 | 18 | $this->params[ 'breadcrumbs' ][] = $this->title; | ... | ... |
backend/views/page/index.php
... | ... | @@ -7,32 +7,22 @@ use yii\grid\GridView; |
7 | 7 | /* @var $searchModel common\models\PageSearch */ |
8 | 8 | /* @var $dataProvider yii\data\ActiveDataProvider */ |
9 | 9 | |
10 | -$this->title = 'Pages'; | |
10 | +$this->title = \Yii::t('app', 'Pages'); | |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
13 | 13 | <div class="page-index"> |
14 | 14 | |
15 | 15 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - <?php // echo $this->render('_search', ['model' => $searchModel]); ?> | |
17 | 16 | |
18 | 17 | <p> |
19 | - <?= Html::a('Create Page', ['create'], ['class' => 'btn btn-success']) ?> | |
18 | + <?= Html::a(\Yii::t('app', 'Create Page'), ['create'], ['class' => 'btn btn-success']) ?> | |
20 | 19 | </p> |
21 | 20 | <?= GridView::widget([ |
22 | 21 | 'dataProvider' => $dataProvider, |
23 | 22 | 'filterModel' => $searchModel, |
24 | 23 | 'columns' => [ |
25 | 24 | ['class' => 'yii\grid\SerialColumn'], |
26 | - | |
27 | 25 | 'id', |
28 | - 'translit', | |
29 | - 'title', | |
30 | - 'meta_title', | |
31 | - // 'meta_keywords', | |
32 | - // 'meta_description', | |
33 | - // 'seo_text:ntext', | |
34 | - // 'h1', | |
35 | - | |
36 | 26 | ['class' => 'yii\grid\ActionColumn'], |
37 | 27 | ], |
38 | 28 | ]); ?> | ... | ... |
backend/views/page/update.php
... | ... | @@ -11,19 +11,19 @@ |
11 | 11 | * @var PageLang[] $model_langs |
12 | 12 | */ |
13 | 13 | |
14 | - $this->title = 'Update Page: ' . $model->title; | |
14 | + $this->title = \Yii::t('app', 'Update Page').': ' . $model->id; | |
15 | 15 | $this->params[ 'breadcrumbs' ][] = [ |
16 | - 'label' => 'Pages', | |
16 | + 'label' => \Yii::t('app', 'Pages'), | |
17 | 17 | 'url' => [ 'index' ], |
18 | 18 | ]; |
19 | 19 | $this->params[ 'breadcrumbs' ][] = [ |
20 | - 'label' => $model->title, | |
20 | + 'label' => $model->id, | |
21 | 21 | 'url' => [ |
22 | 22 | 'view', |
23 | 23 | 'id' => $model->id, |
24 | 24 | ], |
25 | 25 | ]; |
26 | - $this->params[ 'breadcrumbs' ][] = 'Update'; | |
26 | + $this->params[ 'breadcrumbs' ][] = \Yii::t('app', 'Update'); | |
27 | 27 | ?> |
28 | 28 | <div class="page-update"> |
29 | 29 | ... | ... |
backend/views/page/view.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\widgets\DetailView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $model common\models\Page */ | |
8 | - | |
9 | -$this->title = $model->title; | |
10 | -$this->params['breadcrumbs'][] = ['label' => 'Pages', 'url' => ['index']]; | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\widgets\DetailView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $model common\models\Page */ | |
8 | + | |
9 | + $this->title = $model->id; | |
10 | + $this->params[ 'breadcrumbs' ][] = [ | |
11 | + 'label' => \Yii::t('app', 'Pages'), | |
12 | + 'url' => [ 'index' ], | |
13 | + ]; | |
14 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 15 | ?> |
13 | 16 | <div class="page-view"> |
14 | - | |
17 | + | |
15 | 18 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | |
19 | + | |
17 | 20 | <p> |
18 | - <?= Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a('Delete', ['delete', 'id' => $model->id], [ | |
21 | + <?= Html::a(\Yii::t('app', 'Update'), [ | |
22 | + 'update', | |
23 | + 'id' => $model->id, | |
24 | + ], [ 'class' => 'btn btn-primary' ]) ?> | |
25 | + <?= Html::a(\Yii::t('app', 'Delete'), [ | |
26 | + 'delete', | |
27 | + 'id' => $model->id, | |
28 | + ], [ | |
20 | 29 | 'class' => 'btn btn-danger', |
21 | - 'data' => [ | |
22 | - 'confirm' => 'Are you sure you want to delete this item?', | |
23 | - 'method' => 'post', | |
30 | + 'data' => [ | |
31 | + 'confirm' => \Yii::t('app', 'Are you sure you want to delete this item?'), | |
32 | + 'method' => 'post', | |
24 | 33 | ], |
25 | 34 | ]) ?> |
26 | 35 | </p> |
27 | - | |
36 | + | |
28 | 37 | <?= DetailView::widget([ |
29 | 38 | 'model' => $model, |
30 | 39 | 'attributes' => [ |
31 | 40 | 'id', |
32 | - 'translit', | |
33 | - 'title', | |
34 | - 'body:ntext', | |
35 | - 'meta_title', | |
36 | - 'meta_keywords', | |
37 | - 'meta_description', | |
38 | - 'seo_text:ntext', | |
39 | - 'h1', | |
40 | 41 | ], |
41 | 42 | ]) ?> |
42 | 43 | ... | ... |
backend/views/project/_form.php
... | ... | @@ -6,8 +6,6 @@ |
6 | 6 | use yii\helpers\Html; |
7 | 7 | use yii\web\View; |
8 | 8 | use yii\widgets\ActiveForm; |
9 | - use mihaildev\ckeditor\CKEditor; | |
10 | - use mihaildev\elfinder\ElFinder; | |
11 | 9 | use yii\jui\DatePicker; |
12 | 10 | |
13 | 11 | /** |
... | ... | @@ -30,24 +28,6 @@ |
30 | 28 | 'dateFormat' => 'dd-MM-yyyy', |
31 | 29 | ]) ?> |
32 | 30 | |
33 | - <?= $form->field($model, 'title') | |
34 | - ->textInput([ 'maxlength' => true ]) ?> | |
35 | - | |
36 | - <?= $form->field($model, 'link') | |
37 | - ->textInput([ 'maxlength' => true ]) ?> | |
38 | - | |
39 | - <?= $form->field($model, 'description') | |
40 | - ->widget(CKEditor::className(), [ | |
41 | - 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | |
42 | - 'preset' => 'full', | |
43 | - //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать | |
44 | - 'inline' => false, | |
45 | - //по умолчанию false]), | |
46 | - 'filebrowserUploadUrl' => Yii::$app->getUrlManager() | |
47 | - ->createUrl('file/uploader/images-upload'), | |
48 | - ]), | |
49 | - ]) ?> | |
50 | - | |
51 | 31 | <?= $form->field($model, 'imagesUpload[]') |
52 | 32 | ->widget(\kartik\file\FileInput::className(), [ |
53 | 33 | 'language' => 'ru', |
... | ... | @@ -78,7 +58,7 @@ |
78 | 58 | ]) ?> |
79 | 59 | |
80 | 60 | <div class="form-group"> |
81 | - <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]) ?> | |
61 | + <?= Html::submitButton($model->isNewRecord ? \Yii::t('app', 'Create') : \Yii::t('app', 'Update'), [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]) ?> | |
82 | 62 | </div> |
83 | 63 | |
84 | 64 | <?php ActiveForm::end(); ?> | ... | ... |
backend/views/project/_form_language.php
... | ... | @@ -15,6 +15,8 @@ |
15 | 15 | ?> |
16 | 16 | <?= $form->field($model_lang, '[' . $language->language_id . ']title') |
17 | 17 | ->textInput([ 'maxlength' => true ]); ?> |
18 | +<?= $form->field($model_lang, '[' . $language->language_id . ']alias') | |
19 | + ->textInput([ 'maxlength' => true ]); ?> | |
18 | 20 | <?= $form->field($model_lang, '[' . $language->language_id . ']description') |
19 | 21 | ->widget(CKEditor::className(), [ |
20 | 22 | 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | ... | ... |
backend/views/project/create.php
... | ... | @@ -11,9 +11,9 @@ |
11 | 11 | * @var ProjectLang $model_langs |
12 | 12 | */ |
13 | 13 | |
14 | - $this->title = 'Create Project'; | |
14 | + $this->title = \Yii::t('app', 'Create Project'); | |
15 | 15 | $this->params[ 'breadcrumbs' ][] = [ |
16 | - 'label' => 'Projects', | |
16 | + 'label' => \Yii::t('app', 'Projects'), | |
17 | 17 | 'url' => [ 'index' ], |
18 | 18 | ]; |
19 | 19 | $this->params[ 'breadcrumbs' ][] = $this->title; | ... | ... |
backend/views/project/index.php
... | ... | @@ -7,15 +7,15 @@ use yii\grid\GridView; |
7 | 7 | /* @var $searchModel common\models\ArticlesSearch */ |
8 | 8 | /* @var $dataProvider yii\data\ActiveDataProvider */ |
9 | 9 | |
10 | -$this->title = 'Project'; | |
10 | +$this->title = \Yii::t('app', 'Project'); | |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
13 | -<div class="articles-index" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> | |
13 | +<div class="articles-index"> | |
14 | 14 | |
15 | - <h1 itemprop="title"><?= Html::encode($this->title) ?></h1> | |
15 | + <h1><?= Html::encode($this->title) ?></h1> | |
16 | 16 | |
17 | 17 | <p> |
18 | - <?= Html::a('Create Project', ['create'], ['class' => 'btn btn-success']) ?> | |
18 | + <?= Html::a(\Yii::t('app', 'Create Project'), ['create'], ['class' => 'btn btn-success']) ?> | |
19 | 19 | </p> |
20 | 20 | <?= GridView::widget([ |
21 | 21 | 'dataProvider' => $dataProvider, |
... | ... | @@ -24,8 +24,6 @@ $this->params['breadcrumbs'][] = $this->title; |
24 | 24 | ['class' => 'yii\grid\SerialColumn'], |
25 | 25 | 'project_id', |
26 | 26 | 'date_add:date', |
27 | - 'title', | |
28 | - | |
29 | 27 | [ |
30 | 28 | 'class' => 'yii\grid\ActionColumn', |
31 | 29 | 'buttons' => [ | ... | ... |
backend/views/project/product-create.php
... | ... | @@ -14,9 +14,9 @@ |
14 | 14 | * @var ProductToProject $model |
15 | 15 | * @var array $variants |
16 | 16 | */ |
17 | - $this->title = 'Create product to project'; | |
17 | + $this->title = \Yii::t('app', 'Create product to project'); | |
18 | 18 | $this->params[ 'breadcrumbs' ][] = [ |
19 | - 'label' => 'Products to project', | |
19 | + 'label' => \Yii::t('app', 'Products to project'), | |
20 | 20 | 'url' => [ |
21 | 21 | 'product', |
22 | 22 | 'id' => $project->project_id, |
... | ... | @@ -29,30 +29,28 @@ |
29 | 29 | <?php |
30 | 30 | $form = ActiveForm::begin(); |
31 | 31 | echo $form->field($model, 'product_id') |
32 | - ->dropDownList($products, [ 'prompt' => 'Выберите коллекцию' ]); | |
32 | + ->dropDownList($products, [ 'prompt' => \Yii::t('app', 'Выберите коллекцию')]); | |
33 | 33 | ?> |
34 | 34 | <div class="<?php echo( !empty( $variants ) ? '' : 'hidden' ); ?> product_variant_container"> |
35 | 35 | <?php |
36 | 36 | echo $form->field($model, 'product_variant_id') |
37 | - ->dropDownList($variants, [ 'prompt' => 'Выберите товар' ]); | |
37 | + ->dropDownList($variants, [ 'prompt' => \Yii::t('app', 'Выберите товар')]); | |
38 | 38 | ?> |
39 | 39 | </div> |
40 | 40 | <?php |
41 | - echo Html::submitInput(($model->isNewRecord?'Добавить':'Обновить'), [ 'class' => 'btn btn-success' ]); | |
41 | + echo Html::submitInput(($model->isNewRecord?\Yii::t('app', 'Добавить'):\Yii::t('app', 'Обновить')), [ 'class' => 'btn btn-success' ]); | |
42 | 42 | $form::end(); |
43 | 43 | ?> |
44 | 44 | </div> |
45 | -<script> | |
46 | - $( | |
47 | - function() | |
48 | - { | |
49 | - $(document).on( | |
45 | +<?php | |
46 | +$this->registerJs(" | |
47 | + $(document).on( | |
50 | 48 | 'change', '#producttoproject-product_id', function(e) |
51 | 49 | { |
52 | 50 | var value = parseInt($(this).val()); |
53 | 51 | var dropDown = $('#producttoproject-product_variant_id'); |
54 | 52 | var container = $(dropDown).parents('.product_variant_container'); |
55 | - $(dropDown).find('option[value!=""]').remove(); | |
53 | + $(dropDown).find('option[value!=\"\"]').remove(); | |
56 | 54 | $(container).addClass('hidden'); |
57 | 55 | if(value) |
58 | 56 | { |
... | ... | @@ -65,7 +63,7 @@ |
65 | 63 | data, function(key, value) |
66 | 64 | { |
67 | 65 | $(dropDown) |
68 | - .append('<option value="' + value.product_variant_id + '">' + value.name + '</option>'); | |
66 | + .append('<option value=\"' + value.product_variant_id + '\">' + value.product_variant_id + '</option>'); | |
69 | 67 | } |
70 | 68 | ); |
71 | 69 | console.log('hiodde'); |
... | ... | @@ -76,6 +74,5 @@ |
76 | 74 | } |
77 | 75 | } |
78 | 76 | ); |
79 | - } | |
80 | - ); | |
81 | -</script> | |
82 | 77 | \ No newline at end of file |
78 | +"); | |
79 | +?> | |
83 | 80 | \ No newline at end of file | ... | ... |
backend/views/project/product.php
... | ... | @@ -16,7 +16,7 @@ |
16 | 16 | * @var Project $project |
17 | 17 | */ |
18 | 18 | |
19 | - $this->title = 'Product to project'; | |
19 | + $this->title = \Yii::t('app', 'Product to project'); | |
20 | 20 | $this->params[ 'breadcrumbs' ][] = $this->title; |
21 | 21 | ?> |
22 | 22 | <div class="articles-index"> |
... | ... | @@ -24,7 +24,7 @@ |
24 | 24 | <h1 itemprop="title"><?= Html::encode($this->title) ?></h1> |
25 | 25 | |
26 | 26 | <p> |
27 | - <?= Html::a('Product to project', [ | |
27 | + <?= Html::a(\Yii::t('app', 'Product to project'), [ | |
28 | 28 | 'product-create', |
29 | 29 | 'id' => $project->project_id, |
30 | 30 | ], [ 'class' => 'btn btn-success' ]) ?> |
... | ... | @@ -34,8 +34,8 @@ |
34 | 34 | 'filterModel' => $searchModel, |
35 | 35 | 'columns' => [ |
36 | 36 | [ 'class' => 'yii\grid\SerialColumn' ], |
37 | - 'product.name', | |
38 | - 'productVariant.name', | |
37 | + 'product_variant_id', | |
38 | + 'project_id', | |
39 | 39 | [ |
40 | 40 | 'class' => 'yii\grid\ActionColumn', |
41 | 41 | 'template' => '{update} {delete}', |
... | ... | @@ -62,8 +62,8 @@ |
62 | 62 | 'project/product-delete', |
63 | 63 | 'product_to_project_id' => $model->product_to_project_id, |
64 | 64 | ]), [ |
65 | - 'data-confirm' => 'Вы уверены, что хотите удалить этот элемент?', | |
66 | - 'title' => 'Удалить', | |
65 | + 'data-confirm' => \Yii::t('app', 'Вы уверены, что хотите удалить этот элемент?'), | |
66 | + 'title' => \Yii::t('app', 'Удалить'), | |
67 | 67 | 'data-method' => 'post', |
68 | 68 | 'data-pjax' => 0, |
69 | 69 | ]); | ... | ... |
backend/views/project/update.php
... | ... | @@ -10,19 +10,19 @@ |
10 | 10 | * @var Project $model |
11 | 11 | * @var ProjectLang $model_langs |
12 | 12 | */ |
13 | - $this->title = 'Update Project: ' . $model->title; | |
13 | + $this->title = \Yii::t('app', 'Update Project').': ' . $model->project_id; | |
14 | 14 | $this->params[ 'breadcrumbs' ][] = [ |
15 | - 'label' => 'Project', | |
15 | + 'label' => \Yii::t('app', 'Project'), | |
16 | 16 | 'url' => [ 'index' ], |
17 | 17 | ]; |
18 | 18 | $this->params[ 'breadcrumbs' ][] = [ |
19 | - 'label' => $model->title, | |
19 | + 'label' => $model->project_id, | |
20 | 20 | 'url' => [ |
21 | 21 | 'view', |
22 | 22 | 'id' => $model->project_id, |
23 | 23 | ], |
24 | 24 | ]; |
25 | - $this->params[ 'breadcrumbs' ][] = 'Update'; | |
25 | + $this->params[ 'breadcrumbs' ][] = \Yii::t('app', 'Update'); | |
26 | 26 | ?> |
27 | 27 | <div class="articles-update"> |
28 | 28 | ... | ... |
backend/views/project/view.php
... | ... | @@ -6,20 +6,20 @@ use yii\widgets\DetailView; |
6 | 6 | /* @var $this yii\web\View */ |
7 | 7 | /* @var $model common\models\Project */ |
8 | 8 | |
9 | -$this->title = $model->title; | |
10 | -$this->params['breadcrumbs'][] = ['label' => 'Project', 'url' => ['index']]; | |
9 | +$this->title = $model->project_id; | |
10 | +$this->params['breadcrumbs'][] = ['label' => \Yii::t('app', 'Project'), 'url' => ['index']]; | |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
13 | -<div class="articles-view" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> | |
13 | +<div class="articles-view"> | |
14 | 14 | |
15 | - <h1 itemprop="title"><?= Html::encode($this->title) ?></h1> | |
15 | + <h1><?= Html::encode($this->title) ?></h1> | |
16 | 16 | |
17 | 17 | <p> |
18 | - <?= Html::a('Update', ['update', 'id' => $model->project_id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a('Delete', ['delete', 'id' => $model->project_id], [ | |
18 | + <?= Html::a(\Yii::t('app', 'Update'), ['update', 'id' => $model->project_id], ['class' => 'btn btn-primary']) ?> | |
19 | + <?= Html::a(\Yii::t('app', 'Delete'), ['delete', 'id' => $model->project_id], [ | |
20 | 20 | 'class' => 'btn btn-danger', |
21 | 21 | 'data' => [ |
22 | - 'confirm' => 'Are you sure you want to delete this item?', | |
22 | + 'confirm' => \Yii::t('app', 'Are you sure you want to delete this item?'), | |
23 | 23 | 'method' => 'post', |
24 | 24 | ], |
25 | 25 | ]) ?> |
... | ... | @@ -30,7 +30,6 @@ $this->params['breadcrumbs'][] = $this->title; |
30 | 30 | 'attributes' => [ |
31 | 31 | 'project_id', |
32 | 32 | 'date_add:date', |
33 | - 'title', | |
34 | 33 | ], |
35 | 34 | ]) ?> |
36 | 35 | ... | ... |
backend/views/seo-category/_form.php
backend/views/seo-category/index.php
... | ... | @@ -24,12 +24,9 @@ $this->params['breadcrumbs'][] = $this->title; |
24 | 24 | 'filterModel' => $searchModel, |
25 | 25 | 'columns' => [ |
26 | 26 | ['class' => 'yii\grid\SerialColumn'], |
27 | - | |
28 | 27 | 'seo_category_id', |
29 | - 'name', | |
30 | 28 | 'controller', |
31 | 29 | 'status', |
32 | - | |
33 | 30 | [ |
34 | 31 | 'class' => 'yii\grid\ActionColumn', |
35 | 32 | 'template' => '{update} {image} {delete}', | ... | ... |
backend/views/seo-category/update.php
... | ... | @@ -13,13 +13,13 @@ |
13 | 13 | |
14 | 14 | $this->title = Yii::t('app', 'Update {modelClass}: ', [ |
15 | 15 | 'modelClass' => 'Seo Category', |
16 | - ]) . $model->name; | |
16 | + ]) . $model->seo_category_id; | |
17 | 17 | $this->params[ 'breadcrumbs' ][] = [ |
18 | 18 | 'label' => Yii::t('app', 'Seo Categories'), |
19 | 19 | 'url' => [ 'index' ], |
20 | 20 | ]; |
21 | 21 | $this->params[ 'breadcrumbs' ][] = [ |
22 | - 'label' => $model->name, | |
22 | + 'label' => $model->seo_category_id, | |
23 | 23 | 'url' => [ |
24 | 24 | 'view', |
25 | 25 | 'id' => $model->seo_category_id, | ... | ... |
backend/views/seo-category/view.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\widgets\DetailView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $model common\models\SeoCategory */ | |
8 | - | |
9 | -$this->title = $model->name; | |
10 | -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Seo Categories'), 'url' => ['index']]; | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\widgets\DetailView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $model common\models\SeoCategory */ | |
8 | + | |
9 | + $this->title = $model->seo_category_id; | |
10 | + $this->params[ 'breadcrumbs' ][] = [ | |
11 | + 'label' => Yii::t('app', 'Seo Categories'), | |
12 | + 'url' => [ 'index' ], | |
13 | + ]; | |
14 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 15 | ?> |
13 | 16 | <div class="seo-category-view"> |
14 | - | |
17 | + | |
15 | 18 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | |
19 | + | |
17 | 20 | <p> |
18 | - <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->seo_category_id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->seo_category_id], [ | |
21 | + <?= Html::a(Yii::t('app', 'Update'), [ | |
22 | + 'update', | |
23 | + 'id' => $model->seo_category_id, | |
24 | + ], [ 'class' => 'btn btn-primary' ]) ?> | |
25 | + <?= Html::a(Yii::t('app', 'Delete'), [ | |
26 | + 'delete', | |
27 | + 'id' => $model->seo_category_id, | |
28 | + ], [ | |
20 | 29 | 'class' => 'btn btn-danger', |
21 | - 'data' => [ | |
30 | + 'data' => [ | |
22 | 31 | 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), |
23 | - 'method' => 'post', | |
32 | + 'method' => 'post', | |
24 | 33 | ], |
25 | 34 | ]) ?> |
26 | 35 | </p> |
27 | - | |
36 | + | |
28 | 37 | <?= DetailView::widget([ |
29 | 38 | 'model' => $model, |
30 | 39 | 'attributes' => [ |
31 | 40 | 'seo_category_id', |
32 | - 'name', | |
33 | 41 | 'controller', |
34 | 42 | 'status', |
35 | 43 | ], | ... | ... |
backend/views/seo-dynamic/_form.php
... | ... | @@ -24,36 +24,15 @@ |
24 | 24 | |
25 | 25 | <?php $form = ActiveForm::begin(); ?> |
26 | 26 | |
27 | - <?= $form->field($model, 'name') | |
28 | - ->textInput([ 'maxlength' => true ]) ?> | |
29 | - | |
30 | 27 | <?= $form->field($model, 'action') |
31 | 28 | ->textInput([ 'maxlength' => true ]) ?> |
32 | 29 | |
33 | 30 | <?= $form->field($model, 'param') |
34 | 31 | ->textInput([ 'maxlength' => true ]) ?> |
35 | 32 | |
36 | - <?= $form->field($model, 'key') | |
37 | - ->textInput([ 'maxlength' => true ]) ?> | |
38 | - | |
39 | 33 | <?= $form->field($model, 'fields') |
40 | 34 | ->textInput([ 'maxlength' => true ]) ?> |
41 | 35 | |
42 | - <?= $form->field($model, 'title') | |
43 | - ->textInput([ 'maxlength' => true ]) ?> | |
44 | - | |
45 | - <?= $form->field($model, 'meta') | |
46 | - ->textInput([ 'maxlength' => true ]) ?> | |
47 | - | |
48 | - <?= $form->field($model, 'h1') | |
49 | - ->textInput([ 'maxlength' => true ]) ?> | |
50 | - | |
51 | - <?= $form->field($model, 'description') | |
52 | - ->textInput([ 'maxlength' => true ]) ?> | |
53 | - | |
54 | - <?= $form->field($model, 'seo_text') | |
55 | - ->textarea([ 'rows' => 6 ]) ?> | |
56 | - | |
57 | 36 | <?= $form->field($model, 'status') |
58 | 37 | ->textInput() ?> |
59 | 38 | ... | ... |
backend/views/seo-dynamic/index.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\grid\GridView; | |
5 | -use yii\helpers\Url; | |
6 | - | |
7 | -/* @var $this yii\web\View */ | |
8 | -/* @var $searchModel common\models\SeoDynamicSearch */ | |
9 | -/* @var $dataProvider yii\data\ActiveDataProvider */ | |
10 | - | |
11 | -$this->title = Yii::t('app', 'Seo Dynamics'); | |
12 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\grid\GridView; | |
5 | + use yii\helpers\Url; | |
6 | + | |
7 | + /* @var $this yii\web\View */ | |
8 | + /* @var $searchModel common\models\SeoDynamicSearch */ | |
9 | + /* @var $dataProvider yii\data\ActiveDataProvider */ | |
10 | + | |
11 | + $this->title = Yii::t('app', 'Seo Dynamics'); | |
12 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
13 | 13 | ?> |
14 | 14 | <div class="seo-dynamic-index"> |
15 | - | |
15 | + | |
16 | 16 | <h1><?= Html::encode($this->title) ?></h1> |
17 | 17 | <?php // echo $this->render('_search', ['model' => $searchModel]); ?> |
18 | - | |
18 | + | |
19 | 19 | <p> |
20 | - <?= Html::a(Yii::t('app', 'Create Seo Dynamic'), Url::toRoute(['create','seo_category_id'=>$seo_category_id]), ['class' => 'btn btn-success']) ?> | |
20 | + <?= Html::a(Yii::t('app', 'Create Seo Dynamic'), Url::toRoute([ | |
21 | + 'create', | |
22 | + 'seo_category_id' => $seo_category_id, | |
23 | + ]), [ 'class' => 'btn btn-success' ]) ?> | |
21 | 24 | </p> |
22 | 25 | <?= GridView::widget([ |
23 | 26 | 'dataProvider' => $dataProvider, |
24 | - 'filterModel' => $searchModel, | |
25 | - 'columns' => [ | |
26 | - ['class' => 'yii\grid\SerialColumn'], | |
27 | - | |
27 | + 'filterModel' => $searchModel, | |
28 | + 'columns' => [ | |
29 | + [ 'class' => 'yii\grid\SerialColumn' ], | |
28 | 30 | 'seo_dynamic_id', |
29 | 31 | 'seo_category_id', |
30 | - 'name', | |
31 | 32 | 'action', |
32 | 33 | 'fields', |
33 | - 'meta', | |
34 | - // 'title', | |
35 | - // 'h1', | |
36 | - // 'description', | |
37 | - // 'seo_text:ntext', | |
38 | - // 'status', | |
39 | - | |
34 | + 'status', | |
40 | 35 | [ |
41 | - 'class' => 'yii\grid\ActionColumn', | |
42 | - 'buttons' => [ | |
43 | - 'view' => function ($url, $model) | |
44 | - { | |
45 | - return Html::a ( | |
46 | - '<span class="glyphicon glyphicon-eye-open"></span>', | |
47 | - Url::toRoute(['view','seo_category_id'=> $model->seo_category_id, 'id' => $model->seo_dynamic_id]), | |
48 | - [ | |
36 | + 'class' => 'yii\grid\ActionColumn', | |
37 | + 'buttons' => [ | |
38 | + 'view' => function($url, $model) { | |
39 | + return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', Url::toRoute([ | |
40 | + 'view', | |
41 | + 'seo_category_id' => $model->seo_category_id, | |
42 | + 'id' => $model->seo_dynamic_id, | |
43 | + ]), [ | |
49 | 44 | 'title' => "Просмотр", |
50 | - ] | |
51 | - ); | |
45 | + ]); | |
52 | 46 | }, |
53 | - 'update' => function ($url, $model) | |
54 | - { | |
55 | - return Html::a ( | |
56 | - '<span class="glyphicon glyphicon-pencil"></span>', | |
57 | - Url::toRoute(['update','seo_category_id'=> $model->seo_category_id, 'id' => $model->seo_dynamic_id]), | |
58 | - [ | |
47 | + 'update' => function($url, $model) { | |
48 | + return Html::a('<span class="glyphicon glyphicon-pencil"></span>', Url::toRoute([ | |
49 | + 'update', | |
50 | + 'seo_category_id' => $model->seo_category_id, | |
51 | + 'id' => $model->seo_dynamic_id, | |
52 | + ]), [ | |
59 | 53 | 'title' => "Редактировать", |
60 | - ] | |
61 | - ); | |
54 | + ]); | |
62 | 55 | }, |
63 | - 'delete' => function ($url, $model) | |
64 | - { | |
65 | - | |
66 | - return Html::a('<span class="glyphicon glyphicon-trash"></span>', Url::toRoute(['delete','seo_category_id'=> $model->seo_category_id, 'id' => $model->seo_dynamic_id]), [ | |
67 | - 'title' => Yii::t('yii', 'Delete'), | |
56 | + 'delete' => function($url, $model) { | |
57 | + | |
58 | + return Html::a('<span class="glyphicon glyphicon-trash"></span>', Url::toRoute([ | |
59 | + 'delete', | |
60 | + 'seo_category_id' => $model->seo_category_id, | |
61 | + 'id' => $model->seo_dynamic_id, | |
62 | + ]), [ | |
63 | + 'title' => Yii::t('yii', 'Delete'), | |
68 | 64 | 'data-confirm' => Yii::t('yii', 'Are you sure to delete this item?'), |
69 | - 'data-method' => 'post', | |
65 | + 'data-method' => 'post', | |
70 | 66 | ]); |
71 | - | |
67 | + | |
72 | 68 | }, |
73 | 69 | ], |
74 | 70 | ], | ... | ... |
backend/views/seo-dynamic/update.php
... | ... | @@ -15,7 +15,7 @@ |
15 | 15 | |
16 | 16 | $this->title = Yii::t('app', 'Update {modelClass}: ', [ |
17 | 17 | 'modelClass' => 'Seo Dynamic', |
18 | - ]) . $model->name; | |
18 | + ]) . $model->seo_dynamic_id; | |
19 | 19 | $this->params[ 'breadcrumbs' ][] = [ |
20 | 20 | 'label' => Yii::t('app', 'Seo Dynamics'), |
21 | 21 | 'url' => Url::toRoute([ |
... | ... | @@ -24,7 +24,7 @@ |
24 | 24 | ]), |
25 | 25 | ]; |
26 | 26 | $this->params[ 'breadcrumbs' ][] = [ |
27 | - 'label' => $model->name, | |
27 | + 'label' => $model->seo_dynamic_id, | |
28 | 28 | 'url' => Url::toRoute([ |
29 | 29 | 'view', |
30 | 30 | 'seo_category_id' => $seo_category_id, | ... | ... |
backend/views/seo-dynamic/view.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\widgets\DetailView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $model common\models\SeoDynamic */ | |
8 | - | |
9 | -$this->title = $model->name; | |
10 | -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Seo Dynamics'), 'url' => ['index']]; | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\widgets\DetailView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $model common\models\SeoDynamic */ | |
8 | + | |
9 | + $this->title = $model->seo_dynamic_id; | |
10 | + $this->params[ 'breadcrumbs' ][] = [ | |
11 | + 'label' => Yii::t('app', 'Seo Dynamics'), | |
12 | + 'url' => [ 'index' ], | |
13 | + ]; | |
14 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 15 | ?> |
13 | 16 | <div class="seo-dynamic-view"> |
14 | - | |
17 | + | |
15 | 18 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | |
19 | + | |
17 | 20 | <p> |
18 | - <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->seo_dynamic_id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->seo_dynamic_id], [ | |
21 | + <?= Html::a(Yii::t('app', 'Update'), [ | |
22 | + 'update', | |
23 | + 'id' => $model->seo_dynamic_id, | |
24 | + ], [ 'class' => 'btn btn-primary' ]) ?> | |
25 | + <?= Html::a(Yii::t('app', 'Delete'), [ | |
26 | + 'delete', | |
27 | + 'id' => $model->seo_dynamic_id, | |
28 | + ], [ | |
20 | 29 | 'class' => 'btn btn-danger', |
21 | - 'data' => [ | |
30 | + 'data' => [ | |
22 | 31 | 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), |
23 | - 'method' => 'post', | |
32 | + 'method' => 'post', | |
24 | 33 | ], |
25 | 34 | ]) ?> |
26 | 35 | </p> |
27 | - | |
36 | + | |
28 | 37 | <?= DetailView::widget([ |
29 | 38 | 'model' => $model, |
30 | 39 | 'attributes' => [ |
31 | 40 | 'seo_dynamic_id', |
32 | 41 | 'seo_category_id', |
33 | - 'name', | |
34 | 42 | 'action', |
35 | 43 | 'fields', |
36 | - 'title', | |
37 | - 'meta', | |
38 | - 'h1', | |
39 | - 'description', | |
40 | - 'seo_text:ntext', | |
41 | 44 | 'status', |
42 | 45 | ], |
43 | 46 | ]) ?> | ... | ... |
backend/views/seo/_form.php
... | ... | @@ -6,8 +6,6 @@ |
6 | 6 | use yii\helpers\Html; |
7 | 7 | use yii\web\View; |
8 | 8 | use yii\widgets\ActiveForm; |
9 | - use mihaildev\ckeditor\CKEditor; | |
10 | - use mihaildev\elfinder\ElFinder; | |
11 | 9 | |
12 | 10 | /** |
13 | 11 | * @var View $this |
... | ... | @@ -24,29 +22,6 @@ |
24 | 22 | <?= $form->field($model, 'url') |
25 | 23 | ->textInput([ 'maxlength' => true ]) ?> |
26 | 24 | |
27 | - <?= $form->field($model, 'title') | |
28 | - ->textInput([ 'maxlength' => true ]) ?> | |
29 | - | |
30 | - <?= $form->field($model, 'meta') | |
31 | - ->textInput([ 'maxlength' => true ]) ?> | |
32 | - | |
33 | - <?= $form->field($model, 'description') | |
34 | - ->textInput([ 'maxlength' => true ]) ?> | |
35 | - | |
36 | - <?= $form->field($model, 'h1') | |
37 | - ->textInput([ 'maxlength' => true ]) ?> | |
38 | - <?= $form->field($model, 'seo_text') | |
39 | - ->widget(CKEditor::className(), [ | |
40 | - 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | |
41 | - 'preset' => 'full', | |
42 | - //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать | |
43 | - 'inline' => false, | |
44 | - //по умолчанию false]), | |
45 | - 'filebrowserUploadUrl' => Yii::$app->getUrlManager() | |
46 | - ->createUrl('file/uploader/images-upload'), | |
47 | - ]), | |
48 | - ]) ?> | |
49 | - | |
50 | 25 | <?= LanguageForm::widget([ |
51 | 26 | 'model_langs' => $model_langs, |
52 | 27 | 'formView' => '@backend/views/seo/_form_language', | ... | ... |
backend/views/seo/_form_language.php
... | ... | @@ -7,14 +7,15 @@ |
7 | 7 | use yii\widgets\ActiveForm; |
8 | 8 | |
9 | 9 | /** |
10 | - * @var SeoLang $model_lang | |
11 | - * @var Language $language | |
12 | - * @var ActiveForm $form | |
13 | - * @var View $this | |
10 | + * @var SeoLang $model_lang | |
11 | + * @var Language $language | |
12 | + * @var ActiveForm $form | |
13 | + * @var View $this | |
14 | 14 | */ |
15 | 15 | ?> |
16 | 16 | <?= $form->field($model_lang, '[' . $language->language_id . ']title') |
17 | 17 | ->textInput([ 'maxlength' => true ]); ?> |
18 | + | |
18 | 19 | <?= $form->field($model_lang, '[' . $language->language_id . ']description') |
19 | 20 | ->widget(CKEditor::className(), [ |
20 | 21 | 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | ... | ... |
backend/views/seo/index.php
... | ... | @@ -23,13 +23,8 @@ $this->params['breadcrumbs'][] = $this->title; |
23 | 23 | 'filterModel' => $searchModel, |
24 | 24 | 'columns' => [ |
25 | 25 | ['class' => 'yii\grid\SerialColumn'], |
26 | - | |
27 | 26 | 'seo_id', |
28 | - 'url:url', | |
29 | - 'meta', | |
30 | - 'h1', | |
31 | - // 'seo_text:ntext', | |
32 | - | |
27 | + 'url', | |
33 | 28 | ['class' => 'yii\grid\ActionColumn'], |
34 | 29 | ], |
35 | 30 | ]); ?> | ... | ... |
backend/views/seo/update.php
backend/views/seo/view.php
... | ... | @@ -6,7 +6,7 @@ use yii\widgets\DetailView; |
6 | 6 | /* @var $this yii\web\View */ |
7 | 7 | /* @var $model common\models\Seo */ |
8 | 8 | |
9 | -$this->title = $model->title; | |
9 | +$this->title = $model->seo_id; | |
10 | 10 | $this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Seos'), 'url' => ['index']]; |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
... | ... | @@ -29,12 +29,7 @@ $this->params['breadcrumbs'][] = $this->title; |
29 | 29 | 'model' => $model, |
30 | 30 | 'attributes' => [ |
31 | 31 | 'seo_id', |
32 | - 'url:url', | |
33 | - 'title', | |
34 | - 'meta', | |
35 | - 'description', | |
36 | - 'h1', | |
37 | - 'seo_text:ntext', | |
32 | + 'url', | |
38 | 33 | ], |
39 | 34 | ]) ?> |
40 | 35 | ... | ... |
backend/views/service/_form.php
... | ... | @@ -6,8 +6,6 @@ |
6 | 6 | use yii\helpers\Html; |
7 | 7 | use yii\web\View; |
8 | 8 | use yii\widgets\ActiveForm; |
9 | - use mihaildev\ckeditor\CKEditor; | |
10 | - use mihaildev\elfinder\ElFinder; | |
11 | 9 | |
12 | 10 | /** |
13 | 11 | * @var View $this |
... | ... | @@ -19,56 +17,32 @@ |
19 | 17 | |
20 | 18 | <div class="service-form"> |
21 | 19 | |
22 | - <?php $form = ActiveForm::begin(); ?> | |
23 | - | |
24 | - <?= $form->field($model, 'name') | |
25 | - ->textInput([ 'maxlength' => true ]) ?> | |
26 | - | |
27 | - <?= $form->field($model, 'alias') | |
28 | - ->textInput([ 'maxlength' => true ]) ?> | |
29 | - | |
30 | - <?= $form->field($model, 'body') | |
31 | - ->widget(CKEditor::className(), [ | |
32 | - 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | |
33 | - 'preset' => 'full', | |
34 | - //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать | |
35 | - 'inline' => false, | |
36 | - //по умолчанию false]), | |
37 | - 'filebrowserUploadUrl' => Yii::$app->getUrlManager() | |
38 | - ->createUrl('file/uploader/images-upload'), | |
39 | - ]), | |
40 | - ]) ?> | |
41 | - | |
42 | - | |
43 | - <?= \common\modules\file\widgets\ImageUploader::widget([ | |
44 | - 'model' => $model, | |
45 | - 'field' => 'image', | |
46 | - 'size' => [ | |
47 | - [ | |
48 | - 'width' => 200, | |
49 | - 'height' => 200, | |
50 | - ], | |
51 | - [ | |
52 | - 'width' => 940, | |
53 | - 'height' => 480, | |
54 | - ], | |
20 | + <?php $form = ActiveForm::begin([ | |
21 | + 'options' => [ | |
22 | + 'enctype' => 'multipart/form-data', | |
55 | 23 | ], |
56 | - 'multi' => false, | |
57 | - 'gallery' => $model->image, | |
58 | - 'name' => 'Загрузить изображение', | |
59 | 24 | ]); ?> |
60 | 25 | |
61 | - <?= $form->field($model, 'meta_title') | |
62 | - ->textInput([ 'maxlength' => true ]) ?> | |
63 | - | |
64 | - <?= $form->field($model, 'description') | |
65 | - ->textInput([ 'maxlength' => true ]) ?> | |
66 | - | |
67 | - <?= $form->field($model, 'h1') | |
68 | - ->textInput([ 'maxlength' => true ]) ?> | |
69 | - | |
70 | - <?= $form->field($model, 'seo_text') | |
71 | - ->textarea([ 'rows' => 6 ]) ?> | |
26 | + <?= $form->field($model, 'image') | |
27 | + ->widget(\kartik\file\FileInput::className(), [ | |
28 | + 'language' => 'ru', | |
29 | + 'options' => [ | |
30 | + 'accept' => 'image/*', | |
31 | + 'multiple' => false, | |
32 | + ], | |
33 | + 'pluginOptions' => [ | |
34 | + 'allowedFileExtensions' => [ | |
35 | + 'jpg', | |
36 | + 'gif', | |
37 | + 'png', | |
38 | + ], | |
39 | + 'initialPreview' => !empty( $model->imageUrl ) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'list') : '', | |
40 | + 'overwriteInitial' => true, | |
41 | + 'showRemove' => false, | |
42 | + 'showUpload' => false, | |
43 | + 'previewFileType' => 'image', | |
44 | + ], | |
45 | + ]); ?> | |
72 | 46 | |
73 | 47 | <?= LanguageForm::widget([ |
74 | 48 | 'model_langs' => $model_langs, | ... | ... |
backend/views/service/_form_language.php
... | ... | @@ -15,6 +15,8 @@ |
15 | 15 | ?> |
16 | 16 | <?= $form->field($model_lang, '[' . $language->language_id . ']name') |
17 | 17 | ->textInput([ 'maxlength' => true ]); ?> |
18 | +<?= $form->field($model_lang, '[' . $language->language_id . ']alias') | |
19 | + ->textInput([ 'maxlength' => true ]); ?> | |
18 | 20 | <?= $form->field($model_lang, '[' . $language->language_id . ']body') |
19 | 21 | ->widget(CKEditor::className(), [ |
20 | 22 | 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | ... | ... |
backend/views/service/index.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\grid\GridView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $searchModel common\models\ServiceSearch */ | |
8 | -/* @var $dataProvider yii\data\ActiveDataProvider */ | |
9 | - | |
10 | -$this->title = Yii::t('app', 'Services'); | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\grid\GridView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $searchModel common\models\ServiceSearch */ | |
8 | + /* @var $dataProvider yii\data\ActiveDataProvider */ | |
9 | + | |
10 | + $this->title = Yii::t('app', 'Services'); | |
11 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 12 | ?> |
13 | 13 | <div class="service-index"> |
14 | - | |
14 | + | |
15 | 15 | <h1><?= Html::encode($this->title) ?></h1> |
16 | 16 | <?php // echo $this->render('_search', ['model' => $searchModel]); ?> |
17 | - | |
17 | + | |
18 | 18 | <p> |
19 | - <?= Html::a(Yii::t('app', 'Create Service'), ['create'], ['class' => 'btn btn-success']) ?> | |
19 | + <?= Html::a(Yii::t('app', 'Create Service'), [ 'create' ], [ 'class' => 'btn btn-success' ]) ?> | |
20 | 20 | </p> |
21 | 21 | <?= GridView::widget([ |
22 | 22 | 'dataProvider' => $dataProvider, |
23 | - 'filterModel' => $searchModel, | |
24 | - 'columns' => [ | |
25 | - ['class' => 'yii\grid\SerialColumn'], | |
26 | - | |
23 | + 'filterModel' => $searchModel, | |
24 | + 'columns' => [ | |
25 | + [ 'class' => 'yii\grid\SerialColumn' ], | |
26 | + | |
27 | 27 | 'service_id', |
28 | - 'name', | |
29 | - 'alias', | |
30 | - [ | |
31 | - 'format' => 'image', | |
32 | - 'attribute'=>'image', | |
33 | - ], | |
34 | - // 'meta_title', | |
35 | - // 'description', | |
36 | - // 'h1', | |
37 | - // 'seo_text:ntext', | |
38 | - // 'created_at', | |
39 | - // 'updated_at', | |
40 | - | |
41 | - ['class' => 'yii\grid\ActionColumn'], | |
28 | + 'imageUrl:image', | |
29 | + 'created_at:date', | |
30 | + | |
31 | + [ 'class' => 'yii\grid\ActionColumn' ], | |
42 | 32 | ], |
43 | 33 | ]); ?> |
44 | 34 | </div> | ... | ... |
backend/views/service/update.php
... | ... | @@ -13,13 +13,13 @@ |
13 | 13 | |
14 | 14 | $this->title = Yii::t('app', 'Update {modelClass}: ', [ |
15 | 15 | 'modelClass' => 'Service', |
16 | - ]) . $model->name; | |
16 | + ]) . $model->service_id; | |
17 | 17 | $this->params[ 'breadcrumbs' ][] = [ |
18 | 18 | 'label' => Yii::t('app', 'Services'), |
19 | 19 | 'url' => [ 'index' ], |
20 | 20 | ]; |
21 | 21 | $this->params[ 'breadcrumbs' ][] = [ |
22 | - 'label' => $model->name, | |
22 | + 'label' => $model->service_id, | |
23 | 23 | 'url' => [ |
24 | 24 | 'view', |
25 | 25 | 'id' => $model->service_id, | ... | ... |
backend/views/service/view.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\widgets\DetailView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $model common\models\Service */ | |
8 | - | |
9 | -$this->title = $model->name; | |
10 | -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Services'), 'url' => ['index']]; | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\widgets\DetailView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $model common\models\Service */ | |
8 | + | |
9 | + $this->title = $model->service_id; | |
10 | + $this->params[ 'breadcrumbs' ][] = [ | |
11 | + 'label' => Yii::t('app', 'Services'), | |
12 | + 'url' => [ 'index' ], | |
13 | + ]; | |
14 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 15 | ?> |
13 | 16 | <div class="service-view"> |
14 | - | |
17 | + | |
15 | 18 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | |
19 | + | |
17 | 20 | <p> |
18 | - <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->service_id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->service_id], [ | |
21 | + <?= Html::a(Yii::t('app', 'Update'), [ | |
22 | + 'update', | |
23 | + 'id' => $model->service_id, | |
24 | + ], [ 'class' => 'btn btn-primary' ]) ?> | |
25 | + <?= Html::a(Yii::t('app', 'Delete'), [ | |
26 | + 'delete', | |
27 | + 'id' => $model->service_id, | |
28 | + ], [ | |
20 | 29 | 'class' => 'btn btn-danger', |
21 | - 'data' => [ | |
30 | + 'data' => [ | |
22 | 31 | 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), |
23 | - 'method' => 'post', | |
32 | + 'method' => 'post', | |
24 | 33 | ], |
25 | 34 | ]) ?> |
26 | 35 | </p> |
27 | - | |
36 | + | |
28 | 37 | <?= DetailView::widget([ |
29 | 38 | 'model' => $model, |
30 | 39 | 'attributes' => [ |
31 | 40 | 'service_id', |
32 | - 'name', | |
33 | - 'alias', | |
34 | - [ | |
35 | - 'format' => 'image', | |
36 | - 'attribute'=>'image', | |
37 | - ], | |
38 | - 'meta_title', | |
39 | - 'description', | |
40 | - 'h1', | |
41 | - 'seo_text:ntext', | |
42 | - 'created_at', | |
43 | - 'updated_at', | |
41 | + 'imageUrl:image', | |
42 | + 'created_at:date', | |
44 | 43 | ], |
45 | 44 | ]) ?> |
46 | 45 | ... | ... |
backend/views/slider-image/_form.php
... | ... | @@ -44,13 +44,6 @@ |
44 | 44 | ], |
45 | 45 | ]); ?> |
46 | 46 | |
47 | - | |
48 | - <?= $form->field($model, 'alt') | |
49 | - ->textInput([ 'maxlength' => true ]) ?> | |
50 | - | |
51 | - <?= $form->field($model, 'title') | |
52 | - ->textInput([ 'maxlength' => true ]) ?> | |
53 | - | |
54 | 47 | <?= $form->field($model, 'url') |
55 | 48 | ->textInput([ 'maxlength' => true ]) ?> |
56 | 49 | |
... | ... | @@ -59,8 +52,8 @@ |
59 | 52 | 'name' => 'status', |
60 | 53 | 'hideSearch' => true, |
61 | 54 | 'data' => [ |
62 | - 1 => 'Active', | |
63 | - 2 => 'Inactive', | |
55 | + 1 => \Yii::t('app', 'Active'), | |
56 | + 2 => \Yii::t('app', 'Inactive'), | |
64 | 57 | ], |
65 | 58 | 'options' => [ 'placeholder' => 'Select status...' ], |
66 | 59 | 'pluginOptions' => [ | ... | ... |
backend/views/slider-image/index.php
... | ... | @@ -27,13 +27,9 @@ $this->params['breadcrumbs'][] = $this->title; |
27 | 27 | |
28 | 28 | 'slider_image_id', |
29 | 29 | 'slider_id', |
30 | - 'image', | |
31 | - 'alt', | |
32 | - 'title', | |
33 | - // 'url:url', | |
34 | - // 'status', | |
35 | - // 'sort', | |
36 | - | |
30 | + 'imageUrl:image', | |
31 | + 'url', | |
32 | + 'status', | |
37 | 33 | [ |
38 | 34 | 'class' => 'yii\grid\ActionColumn', |
39 | 35 | 'buttons' => [ | ... | ... |
backend/views/slider-image/view.php
common/behaviors/SaveImgBehavior.php
... | ... | @@ -40,7 +40,7 @@ |
40 | 40 | |
41 | 41 | if(empty($image) && $event->name == ActiveRecord::EVENT_BEFORE_UPDATE) { |
42 | 42 | $this->owner->$field_name = $this->owner->getOldAttribute($field_name); |
43 | - } else { | |
43 | + } elseif(!empty($image)) { | |
44 | 44 | $imgDir = \Yii::getAlias('@storage/'.$field['directory'].'/'); |
45 | 45 | |
46 | 46 | if(!is_dir($imgDir)) { | ... | ... |
common/behaviors/Slug.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\behaviors; | |
4 | - | |
5 | -use yii; | |
6 | -use yii\base\Behavior; | |
7 | -use yii\db\ActiveRecord; | |
8 | -use dosamigos\transliterator\TransliteratorHelper; | |
9 | -class Slug extends Behavior | |
10 | -{ | |
11 | - public $in_attribute = 'name'; | |
12 | - public $out_attribute = 'slug'; | |
13 | - public $translit = true; | |
14 | - | |
15 | - public function events() | |
2 | + | |
3 | + namespace common\behaviors; | |
4 | + | |
5 | + use yii; | |
6 | + use yii\base\Behavior; | |
7 | + use yii\db\ActiveRecord; | |
8 | + use dosamigos\transliterator\TransliteratorHelper; | |
9 | + | |
10 | + class Slug extends Behavior | |
16 | 11 | { |
17 | - return [ | |
18 | - ActiveRecord::EVENT_BEFORE_INSERT=> 'getSlug', | |
19 | - ActiveRecord::EVENT_BEFORE_UPDATE=> 'getSlug' | |
20 | - ]; | |
21 | - } | |
22 | - | |
23 | - public function getSlug( $event ) | |
24 | - { | |
25 | - if(!empty($this->owner->{$this->in_attribute})){ | |
26 | - if ( empty( $this->owner->{$this->out_attribute} ) ) { | |
27 | - $this->owner->{$this->out_attribute} = $this->generateSlug( $this->owner->{$this->in_attribute} ); | |
12 | + | |
13 | + public $in_attribute = 'name'; | |
14 | + | |
15 | + public $out_attribute = 'slug'; | |
16 | + | |
17 | + public $translit = true; | |
18 | + | |
19 | + public function events() | |
20 | + { | |
21 | + return [ | |
22 | + ActiveRecord::EVENT_BEFORE_INSERT => 'getSlug', | |
23 | + ActiveRecord::EVENT_BEFORE_UPDATE => 'getSlug', | |
24 | + ]; | |
25 | + } | |
26 | + | |
27 | + public function getSlug($event) | |
28 | + { | |
29 | + if(!empty( $this->owner->{$this->in_attribute} )) { | |
30 | + if(empty( $this->owner->{$this->out_attribute} )) { | |
31 | + $this->owner->{$this->out_attribute} = $this->generateSlug($this->owner->{$this->in_attribute}); | |
32 | + } else { | |
33 | + $this->owner->{$this->out_attribute} = $this->generateSlug($this->owner->{$this->out_attribute}); | |
34 | + } | |
35 | + } | |
36 | + | |
37 | + } | |
38 | + | |
39 | + private function generateSlug($slug) | |
40 | + { | |
41 | + $slug = $this->slugify($slug); | |
42 | + if($this->checkUniqueSlug($slug)) { | |
43 | + return $slug; | |
28 | 44 | } else { |
29 | - $this->owner->{$this->out_attribute} = $this->generateSlug( $this->owner->{$this->out_attribute} ); | |
45 | + for($suffix = 2; !$this->checkUniqueSlug($new_slug = $slug . '-' . $suffix); $suffix++) { | |
46 | + } | |
47 | + return $new_slug; | |
30 | 48 | } |
31 | 49 | } |
32 | - | |
33 | - } | |
34 | - | |
35 | - private function generateSlug( $slug ) | |
36 | - { | |
37 | - $slug = $this->slugify( $slug ); | |
38 | - if ( $this->checkUniqueSlug( $slug ) ) { | |
39 | - return $slug; | |
40 | - } else { | |
41 | - for ( $suffix = 2; !$this->checkUniqueSlug( $new_slug = $slug . '-' . $suffix ); $suffix++ ) {} | |
42 | - return $new_slug; | |
50 | + | |
51 | + private function slugify($slug) | |
52 | + { | |
53 | + if($this->translit) { | |
54 | + return yii\helpers\Inflector::slug(TransliteratorHelper::process($slug), '-', true); | |
55 | + } else { | |
56 | + return $this->slug($slug, '-', true); | |
57 | + } | |
43 | 58 | } |
44 | - } | |
45 | - | |
46 | - private function slugify( $slug ) | |
47 | - { | |
48 | - if ( $this->translit ) { | |
49 | - return yii\helpers\Inflector::slug( TransliteratorHelper::process( $slug ), '-', true ); | |
50 | - } else { | |
51 | - return $this->slug( $slug, '-', true ); | |
59 | + | |
60 | + private function slug($string, $replacement = '-', $lowercase = true) | |
61 | + { | |
62 | + $string = preg_replace('/[^\p{L}\p{Nd}]+/u', $replacement, $string); | |
63 | + $string = trim($string, $replacement); | |
64 | + return $lowercase ? strtolower($string) : $string; | |
52 | 65 | } |
53 | - } | |
54 | - | |
55 | - private function slug( $string, $replacement = '-', $lowercase = true ) | |
56 | - { | |
57 | - $string = preg_replace( '/[^\p{L}\p{Nd}]+/u', $replacement, $string ); | |
58 | - $string = trim( $string, $replacement ); | |
59 | - return $lowercase ? strtolower( $string ) : $string; | |
60 | - } | |
61 | - | |
62 | - private function checkUniqueSlug( $slug ) | |
63 | - { | |
64 | - $pk = $this->owner->primaryKey(); | |
65 | - $pk = $pk[0]; | |
66 | - | |
67 | - $condition = $this->out_attribute . ' = :out_attribute'; | |
68 | - $params = [ ':out_attribute' => $slug ]; | |
69 | - if ( !$this->owner->isNewRecord ) { | |
70 | - $condition .= ' and ' . $pk . ' != :pk'; | |
71 | - $params[':pk'] = $this->owner->{$pk}; | |
66 | + | |
67 | + private function checkUniqueSlug($slug) | |
68 | + { | |
69 | + $pk = $this->owner->primaryKey(); | |
70 | + $pk = $pk[ 0 ]; | |
71 | + | |
72 | + $condition = $this->out_attribute . ' = :out_attribute'; | |
73 | + $params = [ ':out_attribute' => $slug ]; | |
74 | + if(!$this->owner->isNewRecord) { | |
75 | + $condition .= ' and ' . $pk . ' != :pk'; | |
76 | + $params[ ':pk' ] = $this->owner->{$pk}; | |
77 | + } | |
78 | + return !$this->owner->find() | |
79 | + ->where($condition, $params) | |
80 | + ->one(); | |
72 | 81 | } |
73 | - | |
74 | - return !$this->owner->find() | |
75 | - ->where( $condition, $params ) | |
76 | - ->one(); | |
77 | - } | |
78 | - | |
79 | -} | |
80 | 82 | \ No newline at end of file |
83 | + | |
84 | + } | |
81 | 85 | \ No newline at end of file | ... | ... |
common/models/Articles.php
... | ... | @@ -14,16 +14,7 @@ |
14 | 14 | * This is the model class for table "articles". |
15 | 15 | * @property integer $id |
16 | 16 | * @property integer $date |
17 | - * @property string $title | |
18 | - * @property string $body | |
19 | 17 | * @property string $image |
20 | - * @property string $translit | |
21 | - * @property string $meta_title | |
22 | - * @property string $meta_keywords | |
23 | - * @property string $meta_description | |
24 | - * @property string $seo_text | |
25 | - * @property string $h1 | |
26 | - * @property string $body_preview | |
27 | 18 | * * From language behavior * |
28 | 19 | * @property ArticlesLang $lang |
29 | 20 | * @property ArticlesLang[] $langs |
... | ... | @@ -60,14 +51,14 @@ |
60 | 51 | public function behaviors() |
61 | 52 | { |
62 | 53 | return [ |
63 | - 'slug' => [ | |
64 | - 'class' => 'common\behaviors\Slug', | |
65 | - 'in_attribute' => 'title', | |
66 | - 'out_attribute' => 'translit', | |
67 | - 'translit' => true, | |
68 | - ], | |
69 | 54 | [ |
70 | 55 | 'class' => SaveImgBehavior::className(), |
56 | + 'fields' => [ | |
57 | + [ | |
58 | + 'name' => 'image', | |
59 | + 'directory' => 'articles', | |
60 | + ] | |
61 | + ], | |
71 | 62 | ], |
72 | 63 | 'language' => [ |
73 | 64 | 'class' => LanguageBehavior::className(), |
... | ... | @@ -94,28 +85,7 @@ |
94 | 85 | ], |
95 | 86 | [ |
96 | 87 | [ |
97 | - 'title', | |
98 | - 'body', | |
99 | - ], | |
100 | - 'required', | |
101 | - ], | |
102 | - [ | |
103 | - [ | |
104 | - 'body', | |
105 | - 'body_preview', | |
106 | - 'seo_text', | |
107 | - ], | |
108 | - 'string', | |
109 | - ], | |
110 | - [ | |
111 | - [ | |
112 | - 'title', | |
113 | 88 | 'image', |
114 | - 'translit', | |
115 | - 'meta_title', | |
116 | - 'meta_keywords', | |
117 | - 'meta_description', | |
118 | - 'h1', | |
119 | 89 | ], |
120 | 90 | 'string', |
121 | 91 | 'max' => 255, |
... | ... | @@ -145,19 +115,10 @@ |
145 | 115 | public function attributeLabels() |
146 | 116 | { |
147 | 117 | return [ |
148 | - 'id' => 'ID', | |
149 | - 'date' => 'Date', | |
150 | - 'title' => 'Title', | |
151 | - 'body' => 'Body', | |
152 | - 'body_preview' => 'Body preview', | |
153 | - 'image' => 'Image', | |
118 | + 'id' => Yii::t('app', 'ID'), | |
119 | + 'date' => Yii::t('app', 'Date'), | |
120 | + 'image' => Yii::t('app', 'Image'), | |
154 | 121 | 'imageUrl' => Yii::t('app', 'Image'), |
155 | - 'translit' => 'Translit', | |
156 | - 'meta_title' => 'Meta Title', | |
157 | - 'meta_keywords' => 'Meta Keywords', | |
158 | - 'meta_description' => 'Meta Description', | |
159 | - 'seo_text' => 'Seo Text', | |
160 | - 'h1' => 'H1', | |
161 | 122 | ]; |
162 | 123 | } |
163 | 124 | ... | ... |
common/models/ArticlesLang.php
... | ... | @@ -18,6 +18,7 @@ use Yii; |
18 | 18 | * @property string $seo_text |
19 | 19 | * @property string $h1 |
20 | 20 | * @property string $body_preview |
21 | + * @property string $alias | |
21 | 22 | * |
22 | 23 | * @property Articles $articles |
23 | 24 | * @property Language $language |
... | ... | @@ -40,6 +41,18 @@ class ArticlesLang extends \yii\db\ActiveRecord |
40 | 41 | return 'articles_lang'; |
41 | 42 | } |
42 | 43 | |
44 | + public function behaviors() | |
45 | + { | |
46 | + return [ | |
47 | + 'slug' => [ | |
48 | + 'class' => 'common\behaviors\Slug', | |
49 | + 'in_attribute' => 'title', | |
50 | + 'out_attribute' => 'alias', | |
51 | + 'translit' => true, | |
52 | + ], | |
53 | + ]; | |
54 | + } | |
55 | + | |
43 | 56 | /** |
44 | 57 | * @inheritdoc |
45 | 58 | */ |
... | ... | @@ -47,7 +60,7 @@ class ArticlesLang extends \yii\db\ActiveRecord |
47 | 60 | { |
48 | 61 | return [ |
49 | 62 | [['title', 'body'], 'required'], |
50 | - [['body', 'seo_text', 'body_preview'], 'string'], | |
63 | + [['body', 'seo_text', 'body_preview', 'alias'], 'string'], | |
51 | 64 | [['title', 'meta_title', 'meta_keywords', 'meta_description', 'h1'], 'string', 'max' => 255], |
52 | 65 | [['articles_id', 'language_id'], 'unique', 'targetAttribute' => ['articles_id', 'language_id'], 'message' => 'The combination of Articles ID and Language ID has already been taken.'], |
53 | 66 | [['articles_id'], 'exist', 'skipOnError' => true, 'targetClass' => Articles::className(), 'targetAttribute' => ['articles_id' => 'id']], | ... | ... |
common/models/ArticlesSearch.php
... | ... | @@ -2,10 +2,8 @@ |
2 | 2 | |
3 | 3 | namespace common\models; |
4 | 4 | |
5 | -use Yii; | |
6 | 5 | use yii\base\Model; |
7 | 6 | use yii\data\ActiveDataProvider; |
8 | -use common\models\Articles; | |
9 | 7 | |
10 | 8 | /** |
11 | 9 | * ArticlesSearch represents the model behind the search form about `common\models\Articles`. |
... | ... | @@ -19,7 +17,6 @@ class ArticlesSearch extends Articles |
19 | 17 | { |
20 | 18 | return [ |
21 | 19 | [['id'], 'integer'], |
22 | - [['title', 'body', 'translit', 'meta_title', 'meta_keywords', 'meta_description', 'seo_text', 'h1'], 'safe'], | |
23 | 20 | ]; |
24 | 21 | } |
25 | 22 | |
... | ... | @@ -67,15 +64,6 @@ class ArticlesSearch extends Articles |
67 | 64 | 'id' => $this->id, |
68 | 65 | ]); |
69 | 66 | |
70 | - $query->andFilterWhere(['like', 'title', $this->title]) | |
71 | - ->andFilterWhere(['like', 'body', $this->body]) | |
72 | - ->andFilterWhere(['like', 'translit', $this->translit]) | |
73 | - ->andFilterWhere(['like', 'meta_title', $this->meta_title]) | |
74 | - ->andFilterWhere(['like', 'meta_keywords', $this->meta_keywords]) | |
75 | - ->andFilterWhere(['like', 'meta_description', $this->meta_description]) | |
76 | - ->andFilterWhere(['like', 'seo_text', $this->seo_text]) | |
77 | - ->andFilterWhere(['like', 'h1', $this->h1]); | |
78 | - | |
79 | 67 | return $dataProvider; |
80 | 68 | } |
81 | 69 | } | ... | ... |
common/models/Banner.php
... | ... | @@ -12,9 +12,6 @@ use yii\web\Request; |
12 | 12 | * This is the model class for table "banner". |
13 | 13 | * |
14 | 14 | * @property integer $banner_id |
15 | - * @property string $image | |
16 | - * @property string $alt | |
17 | - * @property string $title | |
18 | 15 | * @property string $url |
19 | 16 | * @property integer $status |
20 | 17 | * * From language behavior * |
... | ... | @@ -61,10 +58,7 @@ class Banner extends \yii\db\ActiveRecord |
61 | 58 | { |
62 | 59 | return [ |
63 | 60 | [['status'], 'integer'], |
64 | - [['image', 'alt', 'title', 'url'], 'string', 'max' => 255], | |
65 | - ['title', 'unique', 'targetClass' => '\common\models\Slider', 'message' => Yii::t('app','message',[ | |
66 | - 'field' => 'Title' | |
67 | - ])], | |
61 | + [['url'], 'string', 'max' => 255], | |
68 | 62 | ]; |
69 | 63 | } |
70 | 64 | |
... | ... | @@ -74,10 +68,7 @@ class Banner extends \yii\db\ActiveRecord |
74 | 68 | public function attributeLabels() |
75 | 69 | { |
76 | 70 | return [ |
77 | - 'banner_id' => Yii::t('app', 'status'), | |
78 | - 'image' => Yii::t('app', 'image'), | |
79 | - 'alt' => Yii::t('app', 'alt'), | |
80 | - 'title' => Yii::t('app', 'title'), | |
71 | + 'banner_id' => Yii::t('app', 'banner_id'), | |
81 | 72 | 'url' => Yii::t('app', 'url'), |
82 | 73 | 'status' => Yii::t('app', 'status'), |
83 | 74 | ]; | ... | ... |
common/models/BannerSearch.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use Yii; | |
6 | -use yii\base\Model; | |
7 | -use yii\data\ActiveDataProvider; | |
8 | -use common\models\Banner; | |
9 | - | |
10 | -/** | |
11 | - * BannerSearch represents the model behind the search form about `common\models\Banner`. | |
12 | - */ | |
13 | -class BannerSearch extends Banner | |
14 | -{ | |
15 | - /** | |
16 | - * @inheritdoc | |
17 | - */ | |
18 | - public function rules() | |
19 | - { | |
20 | - return [ | |
21 | - [['banner_id', 'status'], 'integer'], | |
22 | - [['image', 'alt', 'title', 'url'], 'safe'], | |
23 | - ]; | |
24 | - } | |
25 | - | |
26 | - public function behaviors() | |
27 | - { | |
28 | - return []; | |
29 | - } | |
2 | + | |
3 | + namespace common\models; | |
4 | + | |
5 | + use yii\base\Model; | |
6 | + use yii\data\ActiveDataProvider; | |
30 | 7 | |
31 | 8 | /** |
32 | - * @inheritdoc | |
33 | - */ | |
34 | - public function scenarios() | |
35 | - { | |
36 | - // bypass scenarios() implementation in the parent class | |
37 | - return Model::scenarios(); | |
38 | - } | |
39 | - | |
40 | - /** | |
41 | - * Creates data provider instance with search query applied | |
42 | - * | |
43 | - * @param array $params | |
44 | - * | |
45 | - * @return ActiveDataProvider | |
9 | + * BannerSearch represents the model behind the search form about `common\models\Banner`. | |
46 | 10 | */ |
47 | - public function search($params) | |
11 | + class BannerSearch extends Banner | |
48 | 12 | { |
49 | - $query = Banner::find(); | |
50 | - | |
51 | - // add conditions that should always apply here | |
52 | - | |
53 | - $dataProvider = new ActiveDataProvider([ | |
54 | - 'query' => $query, | |
55 | - ]); | |
56 | - | |
57 | - $this->load($params); | |
58 | - | |
59 | - if (!$this->validate()) { | |
60 | - // uncomment the following line if you do not want to return any records when validation fails | |
61 | - // $query->where('0=1'); | |
13 | + | |
14 | + /** | |
15 | + * @inheritdoc | |
16 | + */ | |
17 | + public function rules() | |
18 | + { | |
19 | + return [ | |
20 | + [ | |
21 | + [ | |
22 | + 'banner_id', | |
23 | + 'status', | |
24 | + ], | |
25 | + 'integer', | |
26 | + ], | |
27 | + [ | |
28 | + [ 'url' ], | |
29 | + 'safe', | |
30 | + ], | |
31 | + ]; | |
32 | + } | |
33 | + | |
34 | + public function behaviors() | |
35 | + { | |
36 | + return []; | |
37 | + } | |
38 | + | |
39 | + /** | |
40 | + * @inheritdoc | |
41 | + */ | |
42 | + public function scenarios() | |
43 | + { | |
44 | + // bypass scenarios() implementation in the parent class | |
45 | + return Model::scenarios(); | |
46 | + } | |
47 | + | |
48 | + /** | |
49 | + * Creates data provider instance with search query applied | |
50 | + * | |
51 | + * @param array $params | |
52 | + * | |
53 | + * @return ActiveDataProvider | |
54 | + */ | |
55 | + public function search($params) | |
56 | + { | |
57 | + $query = Banner::find(); | |
58 | + | |
59 | + // add conditions that should always apply here | |
60 | + | |
61 | + $dataProvider = new ActiveDataProvider([ | |
62 | + 'query' => $query, | |
63 | + ]); | |
64 | + | |
65 | + $this->load($params); | |
66 | + | |
67 | + if(!$this->validate()) { | |
68 | + // uncomment the following line if you do not want to return any records when validation fails | |
69 | + // $query->where('0=1'); | |
70 | + return $dataProvider; | |
71 | + } | |
72 | + | |
73 | + // grid filtering conditions | |
74 | + $query->andFilterWhere([ | |
75 | + 'banner_id' => $this->banner_id, | |
76 | + 'status' => $this->status, | |
77 | + ]); | |
78 | + | |
79 | + $query->andFilterWhere([ | |
80 | + 'like', | |
81 | + 'url', | |
82 | + $this->url, | |
83 | + ]); | |
84 | + | |
62 | 85 | return $dataProvider; |
63 | 86 | } |
64 | - | |
65 | - // grid filtering conditions | |
66 | - $query->andFilterWhere([ | |
67 | - 'banner_id' => $this->banner_id, | |
68 | - 'status' => $this->status, | |
69 | - ]); | |
70 | - | |
71 | - $query->andFilterWhere(['like', 'image', $this->image]) | |
72 | - ->andFilterWhere(['like', 'alt', $this->alt]) | |
73 | - ->andFilterWhere(['like', 'title', $this->title]) | |
74 | - ->andFilterWhere(['like', 'url', $this->url]); | |
75 | - | |
76 | - return $dataProvider; | |
77 | 87 | } |
78 | -} | ... | ... |
common/models/Bg.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use common\modules\language\behaviors\LanguageBehavior; | |
6 | -use yii\db\ActiveQuery; | |
7 | -use yii\db\ActiveRecord; | |
8 | -use yii\web\Request; | |
9 | - | |
10 | -/** | |
11 | - * Class Bg | |
12 | - * * From language behavior * | |
13 | - * @property BgLang $lang | |
14 | - * @property BgLang[] $langs | |
15 | - * @property BgLang $object_lang | |
16 | - * @property string $ownerKey | |
17 | - * @property string $langKey | |
18 | - * @method string getOwnerKey() | |
19 | - * @method void setOwnerKey(string $value) | |
20 | - * @method string getLangKey() | |
21 | - * @method void setLangKey(string $value) | |
22 | - * @method ActiveQuery getLangs() | |
23 | - * @method ActiveQuery getLang( integer $language_id ) | |
24 | - * @method BgLang[] generateLangs() | |
25 | - * @method void loadLangs(Request $request, ActiveRecord[] $model_langs) | |
26 | - * @method bool linkLangs(ActiveRecord[] $model_langs) | |
27 | - * @method bool saveLangs(ActiveRecord[] $model_langs) | |
28 | - * * End language behavior * | |
29 | - */ | |
30 | -class Bg extends \yii\db\ActiveRecord | |
31 | -{ | |
32 | - public $old_image; | |
33 | - | |
34 | - public static function tableName() | |
35 | - { | |
36 | - return 'bg'; | |
37 | - } | |
38 | 2 | |
39 | - public function behaviors() | |
40 | - { | |
41 | - return [ | |
42 | - 'language' => [ | |
43 | - 'class' => LanguageBehavior::className(), | |
44 | - ], | |
45 | - ]; | |
46 | - } | |
3 | + namespace common\models; | |
47 | 4 | |
48 | - public function rules() | |
49 | - { | |
50 | - return [ | |
51 | - [['title'], 'required'], | |
52 | - [['old_image','url'], 'safe'], | |
53 | - [['image'], 'file', 'extensions'=>'jpg, gif, png', 'skipOnEmpty'=>true], | |
54 | - | |
55 | - ]; | |
56 | - } | |
57 | - | |
58 | - public function attributeLabels() | |
59 | - { | |
60 | - return [ | |
61 | - 'title'=>'Название', | |
62 | - 'body'=>'Описание', | |
63 | - 'date'=>'Дата', | |
64 | - 'image'=>'Изображения', | |
65 | - ]; | |
66 | - } | |
5 | + use common\behaviors\SaveImgBehavior; | |
6 | + use common\modules\language\behaviors\LanguageBehavior; | |
7 | + use yii\db\ActiveQuery; | |
8 | + use yii\db\ActiveRecord; | |
9 | + use yii\web\Request; | |
10 | + | |
11 | + /** | |
12 | + * Class Bg | |
13 | + * * From language behavior * | |
14 | + * @property BgLang $lang | |
15 | + * @property BgLang[] $langs | |
16 | + * @property BgLang $object_lang | |
17 | + * @property string $ownerKey | |
18 | + * @property string $langKey | |
19 | + * @method string getOwnerKey() | |
20 | + * @method void setOwnerKey( string $value ) | |
21 | + * @method string getLangKey() | |
22 | + * @method void setLangKey( string $value ) | |
23 | + * @method ActiveQuery getLangs() | |
24 | + * @method ActiveQuery getLang( integer $language_id ) | |
25 | + * @method BgLang[] generateLangs() | |
26 | + * @method void loadLangs( Request $request, ActiveRecord[] $model_langs ) | |
27 | + * @method bool linkLangs( ActiveRecord[] $model_langs ) | |
28 | + * @method bool saveLangs( ActiveRecord[] $model_langs ) | |
29 | + * * End language behavior * | |
30 | + */ | |
31 | + class Bg extends \yii\db\ActiveRecord | |
32 | + { | |
67 | 33 | |
68 | - | |
34 | + public static function tableName() | |
35 | + { | |
36 | + return 'bg'; | |
37 | + } | |
69 | 38 | |
70 | - public function beforeDelete() { | |
71 | - $this->deleteImage($this->image); | |
72 | - return parent::beforeDelete(); | |
73 | - } | |
74 | - | |
75 | - public function deleteImage($file){ | |
76 | - if(!empty($file)){ | |
77 | - @unlink('upload/bg/'.$file); | |
78 | - } | |
79 | - } | |
80 | - | |
81 | - | |
82 | -} | |
39 | + public function behaviors() | |
40 | + { | |
41 | + return [ | |
42 | + [ | |
43 | + 'class' => SaveImgBehavior::className(), | |
44 | + 'fields' => [ | |
45 | + [ | |
46 | + 'name' => 'image', | |
47 | + 'directory' => 'bg', | |
48 | + ], | |
49 | + ], | |
50 | + ], | |
51 | + 'language' => [ | |
52 | + 'class' => LanguageBehavior::className(), | |
53 | + ], | |
54 | + ]; | |
55 | + } | |
56 | + | |
57 | + public function rules() | |
58 | + { | |
59 | + return [ | |
60 | + [ | |
61 | + [ 'url' ], | |
62 | + 'string', | |
63 | + ], | |
64 | + ]; | |
65 | + } | |
66 | + | |
67 | + public function attributeLabels() | |
68 | + { | |
69 | + return [ | |
70 | + 'image' => \Yii::t('app', 'Image'), | |
71 | + 'url' => \Yii::t('app', 'Url'), | |
72 | + ]; | |
73 | + } | |
74 | + } | |
83 | 75 | ... | ... |
common/models/BgSearch.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use Yii; | |
6 | -use yii\base\Model; | |
7 | -use yii\data\ActiveDataProvider; | |
8 | -use common\models\Bg; | |
9 | - | |
10 | -/** | |
11 | - * BgSearch represents the model behind the search form about `common\models\Bg`. | |
12 | - */ | |
13 | -class BgSearch extends Bg | |
14 | -{ | |
15 | - /** | |
16 | - * @inheritdoc | |
17 | - */ | |
18 | - public function rules() | |
19 | - { | |
20 | - return [ | |
21 | - [['id'], 'integer'], | |
22 | - [['title', 'url', 'image'], 'safe'], | |
23 | - ]; | |
24 | - } | |
25 | 2 | |
26 | - public function behaviors() | |
27 | - { | |
28 | - return []; | |
29 | - } | |
3 | + namespace common\models; | |
4 | + | |
5 | + use yii\base\Model; | |
6 | + use yii\data\ActiveDataProvider; | |
30 | 7 | |
31 | 8 | /** |
32 | - * @inheritdoc | |
33 | - */ | |
34 | - public function scenarios() | |
35 | - { | |
36 | - // bypass scenarios() implementation in the parent class | |
37 | - return Model::scenarios(); | |
38 | - } | |
39 | - | |
40 | - /** | |
41 | - * Creates data provider instance with search query applied | |
42 | - * | |
43 | - * @param array $params | |
44 | - * | |
45 | - * @return ActiveDataProvider | |
9 | + * BgSearch represents the model behind the search form about `common\models\Bg`. | |
46 | 10 | */ |
47 | - public function search($params) | |
11 | + class BgSearch extends Bg | |
48 | 12 | { |
49 | - $query = Bg::find(); | |
50 | - | |
51 | - // add conditions that should always apply here | |
52 | - | |
53 | - $dataProvider = new ActiveDataProvider([ | |
54 | - 'query' => $query, | |
55 | - ]); | |
56 | - | |
57 | - $this->load($params); | |
58 | - | |
59 | - if (!$this->validate()) { | |
60 | - // uncomment the following line if you do not want to return any records when validation fails | |
61 | - // $query->where('0=1'); | |
13 | + | |
14 | + /** | |
15 | + * @inheritdoc | |
16 | + */ | |
17 | + public function rules() | |
18 | + { | |
19 | + return [ | |
20 | + [ | |
21 | + [ 'id' ], | |
22 | + 'integer', | |
23 | + ], | |
24 | + [ | |
25 | + [ 'url' ], | |
26 | + 'safe', | |
27 | + ], | |
28 | + ]; | |
29 | + } | |
30 | + | |
31 | + public function behaviors() | |
32 | + { | |
33 | + return []; | |
34 | + } | |
35 | + | |
36 | + /** | |
37 | + * @inheritdoc | |
38 | + */ | |
39 | + public function scenarios() | |
40 | + { | |
41 | + // bypass scenarios() implementation in the parent class | |
42 | + return Model::scenarios(); | |
43 | + } | |
44 | + | |
45 | + /** | |
46 | + * Creates data provider instance with search query applied | |
47 | + * | |
48 | + * @param array $params | |
49 | + * | |
50 | + * @return ActiveDataProvider | |
51 | + */ | |
52 | + public function search($params) | |
53 | + { | |
54 | + $query = Bg::find(); | |
55 | + | |
56 | + // add conditions that should always apply here | |
57 | + | |
58 | + $dataProvider = new ActiveDataProvider([ | |
59 | + 'query' => $query, | |
60 | + ]); | |
61 | + | |
62 | + $this->load($params); | |
63 | + | |
64 | + if(!$this->validate()) { | |
65 | + // uncomment the following line if you do not want to return any records when validation fails | |
66 | + // $query->where('0=1'); | |
67 | + return $dataProvider; | |
68 | + } | |
69 | + | |
70 | + // grid filtering conditions | |
71 | + $query->andFilterWhere([ | |
72 | + 'id' => $this->id, | |
73 | + ]); | |
74 | + | |
75 | + $query->andFilterWhere([ | |
76 | + 'like', | |
77 | + 'url', | |
78 | + $this->url, | |
79 | + ]); | |
80 | + | |
62 | 81 | return $dataProvider; |
63 | 82 | } |
64 | - | |
65 | - // grid filtering conditions | |
66 | - $query->andFilterWhere([ | |
67 | - 'id' => $this->id, | |
68 | - ]); | |
69 | - | |
70 | - $query->andFilterWhere(['like', 'title', $this->title]) | |
71 | - ->andFilterWhere(['like', 'url', $this->url]) | |
72 | - ->andFilterWhere(['like', 'image', $this->image]); | |
73 | - | |
74 | - return $dataProvider; | |
75 | 83 | } |
76 | -} | ... | ... |
common/models/Delivery.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use common\modules\language\behaviors\LanguageBehavior; | |
6 | -use yii\db\ActiveQuery; | |
7 | -use yii\db\ActiveRecord; | |
8 | -use yii\web\Request; | |
9 | - | |
10 | -/** | |
11 | - * Class Delivery | |
12 | - * | |
13 | - * * From language behavior * | |
14 | - * @property OrdersDeliveryLang $lang | |
15 | - * @property OrdersDeliveryLang[] $langs | |
16 | - * @property OrdersDeliveryLang $object_lang | |
17 | - * @property string $ownerKey | |
18 | - * @property string $langKey | |
19 | - * @method string getOwnerKey() | |
20 | - * @method void setOwnerKey(string $value) | |
21 | - * @method string getLangKey() | |
22 | - * @method void setLangKey(string $value) | |
23 | - * @method ActiveQuery getLangs() | |
24 | - * @method ActiveQuery getLang( integer $language_id ) | |
25 | - * @method OrdersDeliveryLang[] generateLangs() | |
26 | - * @method void loadLangs(Request $request, ActiveRecord[] $model_langs) | |
27 | - * @method bool linkLangs(ActiveRecord[] $model_langs) | |
28 | - * @method bool saveLangs(ActiveRecord[] $model_langs) | |
29 | - * * End language behavior * | |
30 | - */ | |
31 | -class Delivery extends \yii\db\ActiveRecord | |
32 | -{ | |
33 | 2 | |
34 | - public function behaviors() | |
35 | - { | |
36 | - return [ | |
37 | - 'language' => [ | |
38 | - 'class' => LanguageBehavior::className(), | |
39 | - ], | |
40 | - ]; | |
41 | - } | |
3 | + namespace common\models; | |
42 | 4 | |
43 | - public static function tableName() | |
44 | - { | |
45 | - return 'orders_delivery'; | |
46 | - } | |
5 | + use common\modules\language\behaviors\LanguageBehavior; | |
6 | + use yii\db\ActiveQuery; | |
7 | + use yii\db\ActiveRecord; | |
8 | + use yii\web\Request; | |
47 | 9 | |
48 | -} | |
49 | 10 | \ No newline at end of file |
11 | + /** | |
12 | + * Class Delivery | |
13 | + * * From language behavior * | |
14 | + * @property OrdersDeliveryLang $lang | |
15 | + * @property OrdersDeliveryLang[] $langs | |
16 | + * @property OrdersDeliveryLang $object_lang | |
17 | + * @property string $ownerKey | |
18 | + * @property string $langKey | |
19 | + * @method string getOwnerKey() | |
20 | + * @method void setOwnerKey( string $value ) | |
21 | + * @method string getLangKey() | |
22 | + * @method void setLangKey( string $value ) | |
23 | + * @method ActiveQuery getLangs() | |
24 | + * @method ActiveQuery getLang( integer $language_id ) | |
25 | + * @method OrdersDeliveryLang[] generateLangs() | |
26 | + * @method void loadLangs( Request $request, ActiveRecord[] $model_langs ) | |
27 | + * @method bool linkLangs( ActiveRecord[] $model_langs ) | |
28 | + * @method bool saveLangs( ActiveRecord[] $model_langs ) | |
29 | + * * End language behavior * | |
30 | + */ | |
31 | + class Delivery extends \yii\db\ActiveRecord | |
32 | + { | |
33 | + | |
34 | + public function behaviors() | |
35 | + { | |
36 | + return [ | |
37 | + 'language' => [ | |
38 | + 'class' => LanguageBehavior::className(), | |
39 | + ], | |
40 | + ]; | |
41 | + } | |
42 | + | |
43 | + public static function tableName() | |
44 | + { | |
45 | + return 'orders_delivery'; | |
46 | + } | |
47 | + | |
48 | + } | |
50 | 49 | \ No newline at end of file | ... | ... |
common/models/Event.php
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | |
3 | 3 | namespace common\models; |
4 | 4 | |
5 | +use common\behaviors\SaveImgBehavior; | |
5 | 6 | use common\modules\language\behaviors\LanguageBehavior; |
6 | 7 | use Yii; |
7 | 8 | use yii\behaviors\TimestampBehavior; |
... | ... | @@ -13,14 +14,7 @@ use yii\web\Request; |
13 | 14 | * This is the model class for table "event". |
14 | 15 | * |
15 | 16 | * @property integer $event_id |
16 | - * @property string $name | |
17 | - * @property string $alias | |
18 | - * @property string $body | |
19 | 17 | * @property string $image |
20 | - * @property string $meta_title | |
21 | - * @property string $description | |
22 | - * @property string $h1 | |
23 | - * @property string $seo_text | |
24 | 18 | * @property integer $created_at |
25 | 19 | * @property integer $updated_at |
26 | 20 | * @property integer $end_at |
... | ... | @@ -45,8 +39,6 @@ use yii\web\Request; |
45 | 39 | */ |
46 | 40 | class Event extends \yii\db\ActiveRecord |
47 | 41 | { |
48 | - public $imageUpload; | |
49 | - | |
50 | 42 | /** |
51 | 43 | * @inheritdoc |
52 | 44 | */ |
... | ... | @@ -62,18 +54,21 @@ class Event extends \yii\db\ActiveRecord |
62 | 54 | { |
63 | 55 | return [ |
64 | 56 | TimestampBehavior::className(), |
65 | - 'slug' => [ | |
66 | - 'class' => 'common\behaviors\Slug', | |
67 | - 'in_attribute' => 'name', | |
68 | - 'out_attribute' => 'alias', | |
69 | - 'translit' => true | |
70 | - ], | |
71 | 57 | [ |
72 | 58 | 'class' => 'common\behaviors\ShowImage', |
73 | 59 | ], |
74 | 60 | 'language' => [ |
75 | 61 | 'class' => LanguageBehavior::className(), |
76 | 62 | ], |
63 | + [ | |
64 | + 'class' => SaveImgBehavior::className(), | |
65 | + 'fields' => [ | |
66 | + [ | |
67 | + 'name' => 'image', | |
68 | + 'directory' => 'event', | |
69 | + ], | |
70 | + ], | |
71 | + ], | |
77 | 72 | ]; |
78 | 73 | } |
79 | 74 | |
... | ... | @@ -99,12 +94,8 @@ class Event extends \yii\db\ActiveRecord |
99 | 94 | public function rules() |
100 | 95 | { |
101 | 96 | return [ |
102 | - [['body', 'seo_text'], 'string'], | |
103 | 97 | [['created_at', 'updated_at' ], 'integer'], |
104 | - [['name', 'alias', 'image', 'meta_title', 'description', 'h1','end_at'], 'string', 'max' => 255], | |
105 | - [['name','body'], 'required'], | |
106 | - [['imageUpload'], 'safe'], | |
107 | - [['imageUpload'], 'file', 'extensions' => 'jpg, gif, png'], | |
98 | + [['end_at'], 'string', 'max' => 255], | |
108 | 99 | ]; |
109 | 100 | } |
110 | 101 | |
... | ... | @@ -115,27 +106,10 @@ class Event extends \yii\db\ActiveRecord |
115 | 106 | { |
116 | 107 | return [ |
117 | 108 | 'event_id' => Yii::t('app', 'event_id'), |
118 | - 'name' => Yii::t('app', 'name'), | |
119 | - 'alias' => Yii::t('app', 'alias'), | |
120 | - 'body' => Yii::t('app', 'body'), | |
121 | 109 | 'image' => Yii::t('app', 'image'), |
122 | - 'meta_title' => Yii::t('app', 'meta_title'), | |
123 | - 'description' => Yii::t('app', 'description'), | |
124 | - 'h1' => Yii::t('app', 'h1'), | |
125 | - 'seo_text' => Yii::t('app', 'seo_text'), | |
126 | 110 | 'created_at' => Yii::t('app', 'created_at'), |
127 | 111 | 'updated_at' => Yii::t('app', 'updated_at'), |
128 | 112 | 'end_at' => Yii::t('app', 'end_at'), |
129 | 113 | ]; |
130 | 114 | } |
131 | - | |
132 | - | |
133 | - public function getImageFile() { | |
134 | - return empty($this->image) ? null : Yii::getAlias('@imagesDir/articles/'. $this->image); | |
135 | - } | |
136 | - | |
137 | - public function getImageUrl() | |
138 | - { | |
139 | - return empty($this->image) ? null : Yii::getAlias('@imagesUrl/articles/' . $this->image); | |
140 | - } | |
141 | 115 | } | ... | ... |
common/models/EventLang.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use common\modules\language\models\Language; | |
6 | -use Yii; | |
7 | - | |
8 | -/** | |
9 | - * This is the model class for table "event_lang". | |
10 | - * | |
11 | - * @property integer $event_id | |
12 | - * @property integer $language_id | |
13 | - * @property string $name | |
14 | - * @property string $body | |
15 | - * @property string $meta_title | |
16 | - * @property string $description | |
17 | - * @property string $seo_text | |
18 | - * @property string $h1 | |
19 | - * | |
20 | - * @property Event $event | |
21 | - * @property Language $language | |
22 | - */ | |
23 | -class EventLang extends \yii\db\ActiveRecord | |
24 | -{ | |
25 | 2 | |
26 | - public static function primaryKey() | |
27 | - { | |
28 | - return [ | |
29 | - 'event_id', | |
30 | - 'language_id', | |
31 | - ]; | |
32 | - } | |
3 | + namespace common\models; | |
33 | 4 | |
34 | - /** | |
35 | - * @inheritdoc | |
36 | - */ | |
37 | - public static function tableName() | |
38 | - { | |
39 | - return 'event_lang'; | |
40 | - } | |
5 | + use common\modules\language\models\Language; | |
6 | + use Yii; | |
41 | 7 | |
42 | 8 | /** |
43 | - * @inheritdoc | |
44 | - */ | |
45 | - public function rules() | |
46 | - { | |
47 | - return [ | |
48 | - [['name', 'body'], 'required'], | |
49 | - [['body', 'seo_text'], 'string'], | |
50 | - [['name', 'meta_title', 'description', 'h1'], 'string', 'max' => 255], | |
51 | - [['event_id', 'language_id'], 'unique', 'targetAttribute' => ['event_id', 'language_id'], 'message' => 'The combination of Event ID and Language ID has already been taken.'], | |
52 | - [['event_id'], 'exist', 'skipOnError' => true, 'targetClass' => Event::className(), 'targetAttribute' => ['event_id' => 'event_id']], | |
53 | - [['language_id'], 'exist', 'skipOnError' => true, 'targetClass' => Language::className(), 'targetAttribute' => ['language_id' => 'language_id']], | |
54 | - ]; | |
55 | - } | |
56 | - | |
57 | - /** | |
58 | - * @inheritdoc | |
59 | - */ | |
60 | - public function attributeLabels() | |
61 | - { | |
62 | - return [ | |
63 | - 'event_id' => Yii::t('app', 'Event ID'), | |
64 | - 'language_id' => Yii::t('app', 'Language ID'), | |
65 | - 'name' => Yii::t('app', 'Name'), | |
66 | - 'body' => Yii::t('app', 'Body'), | |
67 | - 'meta_title' => Yii::t('app', 'Meta Title'), | |
68 | - 'description' => Yii::t('app', 'Description'), | |
69 | - 'seo_text' => Yii::t('app', 'Seo Text'), | |
70 | - 'h1' => Yii::t('app', 'H1'), | |
71 | - ]; | |
72 | - } | |
73 | - | |
74 | - /** | |
75 | - * @return \yii\db\ActiveQuery | |
76 | - */ | |
77 | - public function getEvent() | |
78 | - { | |
79 | - return $this->hasOne(Event::className(), ['event_id' => 'event_id']); | |
80 | - } | |
81 | - | |
82 | - /** | |
83 | - * @return \yii\db\ActiveQuery | |
9 | + * This is the model class for table "event_lang". | |
10 | + * @property integer $event_id | |
11 | + * @property integer $language_id | |
12 | + * @property string $name | |
13 | + * @property string $body | |
14 | + * @property string $meta_title | |
15 | + * @property string $description | |
16 | + * @property string $seo_text | |
17 | + * @property string $h1 | |
18 | + * @property string $alias | |
19 | + * @property Event $event | |
20 | + * @property Language $language | |
84 | 21 | */ |
85 | - public function getLanguage() | |
22 | + class EventLang extends \yii\db\ActiveRecord | |
86 | 23 | { |
87 | - return $this->hasOne(Language::className(), ['language_id' => 'language_id']); | |
24 | + | |
25 | + public static function primaryKey() | |
26 | + { | |
27 | + return [ | |
28 | + 'event_id', | |
29 | + 'language_id', | |
30 | + ]; | |
31 | + } | |
32 | + | |
33 | + /** | |
34 | + * @inheritdoc | |
35 | + */ | |
36 | + public static function tableName() | |
37 | + { | |
38 | + return 'event_lang'; | |
39 | + } | |
40 | + | |
41 | + public function behaviors() | |
42 | + { | |
43 | + return [ | |
44 | + 'slug' => [ | |
45 | + 'class' => 'common\behaviors\Slug', | |
46 | + 'in_attribute' => 'name', | |
47 | + 'out_attribute' => 'alias', | |
48 | + 'translit' => true, | |
49 | + ], | |
50 | + ]; | |
51 | + } | |
52 | + | |
53 | + /** | |
54 | + * @inheritdoc | |
55 | + */ | |
56 | + public function rules() | |
57 | + { | |
58 | + return [ | |
59 | + [ | |
60 | + [ | |
61 | + 'name', | |
62 | + 'body', | |
63 | + ], | |
64 | + 'required', | |
65 | + ], | |
66 | + [ | |
67 | + [ | |
68 | + 'body', | |
69 | + 'seo_text', | |
70 | + ], | |
71 | + 'string', | |
72 | + ], | |
73 | + [ | |
74 | + [ | |
75 | + 'name', | |
76 | + 'meta_title', | |
77 | + 'description', | |
78 | + 'h1', | |
79 | + 'alias', | |
80 | + ], | |
81 | + 'string', | |
82 | + 'max' => 255, | |
83 | + ], | |
84 | + [ | |
85 | + [ | |
86 | + 'event_id', | |
87 | + 'language_id', | |
88 | + ], | |
89 | + 'unique', | |
90 | + 'targetAttribute' => [ | |
91 | + 'event_id', | |
92 | + 'language_id', | |
93 | + ], | |
94 | + 'message' => 'The combination of Event ID and Language ID has already been taken.', | |
95 | + ], | |
96 | + [ | |
97 | + [ 'event_id' ], | |
98 | + 'exist', | |
99 | + 'skipOnError' => true, | |
100 | + 'targetClass' => Event::className(), | |
101 | + 'targetAttribute' => [ 'event_id' => 'event_id' ], | |
102 | + ], | |
103 | + [ | |
104 | + [ 'language_id' ], | |
105 | + 'exist', | |
106 | + 'skipOnError' => true, | |
107 | + 'targetClass' => Language::className(), | |
108 | + 'targetAttribute' => [ 'language_id' => 'language_id' ], | |
109 | + ], | |
110 | + ]; | |
111 | + } | |
112 | + | |
113 | + /** | |
114 | + * @inheritdoc | |
115 | + */ | |
116 | + public function attributeLabels() | |
117 | + { | |
118 | + return [ | |
119 | + 'event_id' => Yii::t('app', 'Event ID'), | |
120 | + 'language_id' => Yii::t('app', 'Language ID'), | |
121 | + 'name' => Yii::t('app', 'Name'), | |
122 | + 'body' => Yii::t('app', 'Body'), | |
123 | + 'meta_title' => Yii::t('app', 'Meta Title'), | |
124 | + 'description' => Yii::t('app', 'Description'), | |
125 | + 'seo_text' => Yii::t('app', 'Seo Text'), | |
126 | + 'h1' => Yii::t('app', 'H1'), | |
127 | + ]; | |
128 | + } | |
129 | + | |
130 | + /** | |
131 | + * @return \yii\db\ActiveQuery | |
132 | + */ | |
133 | + public function getEvent() | |
134 | + { | |
135 | + return $this->hasOne(Event::className(), [ 'event_id' => 'event_id' ]); | |
136 | + } | |
137 | + | |
138 | + /** | |
139 | + * @return \yii\db\ActiveQuery | |
140 | + */ | |
141 | + public function getLanguage() | |
142 | + { | |
143 | + return $this->hasOne(Language::className(), [ 'language_id' => 'language_id' ]); | |
144 | + } | |
88 | 145 | } |
89 | -} | ... | ... |
common/models/EventSearch.php
... | ... | @@ -17,7 +17,6 @@ class EventSearch extends Event |
17 | 17 | { |
18 | 18 | return [ |
19 | 19 | [['event_id', 'created_at', 'updated_at', 'end_at'], 'integer'], |
20 | - [['name', 'alias', 'body', 'image', 'meta_title', 'description', 'h1', 'seo_text'], 'safe'], | |
21 | 20 | ]; |
22 | 21 | } |
23 | 22 | |
... | ... | @@ -70,15 +69,6 @@ class EventSearch extends Event |
70 | 69 | 'end_at' => $this->end_at, |
71 | 70 | ]); |
72 | 71 | |
73 | - $query->andFilterWhere(['like', 'name', $this->name]) | |
74 | - ->andFilterWhere(['like', 'alias', $this->alias]) | |
75 | - ->andFilterWhere(['like', 'body', $this->body]) | |
76 | - ->andFilterWhere(['like', 'image', $this->image]) | |
77 | - ->andFilterWhere(['like', 'meta_title', $this->meta_title]) | |
78 | - ->andFilterWhere(['like', 'description', $this->description]) | |
79 | - ->andFilterWhere(['like', 'h1', $this->h1]) | |
80 | - ->andFilterWhere(['like', 'seo_text', $this->seo_text]); | |
81 | - | |
82 | 72 | return $dataProvider; |
83 | 73 | } |
84 | 74 | } | ... | ... |
common/models/OrdersDeliveryLang.php
... | ... | @@ -46,7 +46,7 @@ class OrdersDeliveryLang extends \yii\db\ActiveRecord |
46 | 46 | [['title'], 'string', 'max' => 255], |
47 | 47 | [['orders_delivery_id', 'language_id'], 'unique', 'targetAttribute' => ['orders_delivery_id', 'language_id'], 'message' => 'The combination of Orders Delivery ID and Language ID has already been taken.'], |
48 | 48 | [['language_id'], 'exist', 'skipOnError' => true, 'targetClass' => Language::className(), 'targetAttribute' => ['language_id' => 'language_id']], |
49 | - [['orders_delivery_id'], 'exist', 'skipOnError' => true, 'targetClass' => OrdersDelivery::className(), 'targetAttribute' => ['orders_delivery_id' => 'id']], | |
49 | + [['orders_delivery_id'], 'exist', 'skipOnError' => true, 'targetClass' => Delivery::className(), 'targetAttribute' => ['orders_delivery_id' => 'id']], | |
50 | 50 | ]; |
51 | 51 | } |
52 | 52 | ... | ... |
common/models/Page.php
... | ... | @@ -9,14 +9,6 @@ |
9 | 9 | /** |
10 | 10 | * This is the model class for table "page". |
11 | 11 | * @property integer $id |
12 | - * @property string $translit | |
13 | - * @property string $title | |
14 | - * @property string $body | |
15 | - * @property string $meta_title | |
16 | - * @property string $meta_keywords | |
17 | - * @property string $meta_description | |
18 | - * @property string $seo_text | |
19 | - * @property string $h1 | |
20 | 12 | * @property bool $in_menu |
21 | 13 | * * From language behavior * |
22 | 14 | * @property PageLang $lang |
... | ... | @@ -53,12 +45,6 @@ |
53 | 45 | public function behaviors() |
54 | 46 | { |
55 | 47 | return [ |
56 | - 'slug' => [ | |
57 | - 'class' => 'common\behaviors\Slug', | |
58 | - 'in_attribute' => 'title', | |
59 | - 'out_attribute' => 'translit', | |
60 | - 'translit' => true, | |
61 | - ], | |
62 | 48 | 'language' => [ |
63 | 49 | 'class' => LanguageBehavior::className(), |
64 | 50 | ], |
... | ... | @@ -73,25 +59,6 @@ |
73 | 59 | return [ |
74 | 60 | [ |
75 | 61 | [ |
76 | - 'body', | |
77 | - 'seo_text', | |
78 | - ], | |
79 | - 'string', | |
80 | - ], | |
81 | - [ | |
82 | - [ | |
83 | - 'translit', | |
84 | - 'title', | |
85 | - 'meta_title', | |
86 | - 'meta_keywords', | |
87 | - 'meta_description', | |
88 | - 'h1', | |
89 | - ], | |
90 | - 'string', | |
91 | - 'max' => 255, | |
92 | - ], | |
93 | - [ | |
94 | - [ | |
95 | 62 | 'in_menu', |
96 | 63 | ], |
97 | 64 | 'boolean', |
... | ... | @@ -99,14 +66,6 @@ |
99 | 66 | ]; |
100 | 67 | } |
101 | 68 | |
102 | - public function getPageTranslit($page) | |
103 | - { | |
104 | - return self::find() | |
105 | - ->where([ 'translit' => $page ]) | |
106 | - ->one(); | |
107 | - | |
108 | - } | |
109 | - | |
110 | 69 | /** |
111 | 70 | * @inheritdoc |
112 | 71 | */ |
... | ... | @@ -114,14 +73,6 @@ |
114 | 73 | { |
115 | 74 | return [ |
116 | 75 | 'id' => 'ID', |
117 | - 'translit' => 'Translit', | |
118 | - 'title' => 'Title', | |
119 | - 'body' => 'Body', | |
120 | - 'meta_title' => 'Meta Title', | |
121 | - 'meta_keywords' => 'Meta Keywords', | |
122 | - 'meta_description' => 'Meta Description', | |
123 | - 'seo_text' => 'Seo Text', | |
124 | - 'h1' => 'H1', | |
125 | 76 | 'in_menu' => 'Show in menu', |
126 | 77 | ]; |
127 | 78 | } | ... | ... |
common/models/PageLang.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use common\modules\language\models\Language; | |
6 | -use Yii; | |
7 | - | |
8 | -/** | |
9 | - * This is the model class for table "page_lang". | |
10 | - * | |
11 | - * @property integer $page_id | |
12 | - * @property integer $language_id | |
13 | - * @property string $title | |
14 | - * @property string $body | |
15 | - * @property string $meta_title | |
16 | - * @property string $meta_keywords | |
17 | - * @property string $meta_description | |
18 | - * @property string $seo_text | |
19 | - * @property string $h1 | |
20 | - * | |
21 | - * @property Language $language | |
22 | - * @property Page $page | |
23 | - */ | |
24 | -class PageLang extends \yii\db\ActiveRecord | |
25 | -{ | |
26 | 2 | |
27 | - public static function primaryKey() | |
28 | - { | |
29 | - return [ | |
30 | - 'page_id', | |
31 | - 'language_id', | |
32 | - ]; | |
33 | - } | |
3 | + namespace common\models; | |
4 | + | |
5 | + use common\modules\language\models\Language; | |
6 | + use Yii; | |
34 | 7 | |
35 | 8 | /** |
36 | - * @inheritdoc | |
37 | - */ | |
38 | - public static function tableName() | |
39 | - { | |
40 | - return 'page_lang'; | |
41 | - } | |
42 | - | |
43 | - /** | |
44 | - * @inheritdoc | |
45 | - */ | |
46 | - public function rules() | |
47 | - { | |
48 | - return [ | |
49 | - [['title', 'body'], 'required'], | |
50 | - [['body', 'seo_text'], 'string'], | |
51 | - [['title', 'meta_title', 'meta_keywords', 'meta_description', 'h1'], 'string', 'max' => 255], | |
52 | - [['page_id', 'language_id'], 'unique', 'targetAttribute' => ['page_id', 'language_id'], 'message' => 'The combination of Page ID and Language ID has already been taken.'], | |
53 | - [['language_id'], 'exist', 'skipOnError' => true, 'targetClass' => Language::className(), 'targetAttribute' => ['language_id' => 'language_id']], | |
54 | - [['page_id'], 'exist', 'skipOnError' => true, 'targetClass' => Page::className(), 'targetAttribute' => ['page_id' => 'id']], | |
55 | - ]; | |
56 | - } | |
57 | - | |
58 | - /** | |
59 | - * @inheritdoc | |
60 | - */ | |
61 | - public function attributeLabels() | |
62 | - { | |
63 | - return [ | |
64 | - 'page_id' => Yii::t('app', 'Page ID'), | |
65 | - 'language_id' => Yii::t('app', 'Language ID'), | |
66 | - 'title' => Yii::t('app', 'Title'), | |
67 | - 'body' => Yii::t('app', 'Body'), | |
68 | - 'meta_title' => Yii::t('app', 'Meta Title'), | |
69 | - 'meta_keywords' => Yii::t('app', 'Meta Keywords'), | |
70 | - 'meta_description' => Yii::t('app', 'Meta Description'), | |
71 | - 'seo_text' => Yii::t('app', 'Seo Text'), | |
72 | - 'h1' => Yii::t('app', 'H1'), | |
73 | - ]; | |
74 | - } | |
75 | - | |
76 | - /** | |
77 | - * @return \yii\db\ActiveQuery | |
78 | - */ | |
79 | - public function getLanguage() | |
80 | - { | |
81 | - return $this->hasOne(Language::className(), ['language_id' => 'language_id']); | |
82 | - } | |
83 | - | |
84 | - /** | |
85 | - * @return \yii\db\ActiveQuery | |
9 | + * This is the model class for table "page_lang". | |
10 | + * @property integer $page_id | |
11 | + * @property integer $language_id | |
12 | + * @property string $title | |
13 | + * @property string $body | |
14 | + * @property string $meta_title | |
15 | + * @property string $meta_keywords | |
16 | + * @property string $meta_description | |
17 | + * @property string $seo_text | |
18 | + * @property string $h1 | |
19 | + * @property string $alias | |
20 | + * @property Language $language | |
21 | + * @property Page $page | |
86 | 22 | */ |
87 | - public function getPage() | |
23 | + class PageLang extends \yii\db\ActiveRecord | |
88 | 24 | { |
89 | - return $this->hasOne(Page::className(), ['id' => 'page_id']); | |
25 | + | |
26 | + public static function primaryKey() | |
27 | + { | |
28 | + return [ | |
29 | + 'page_id', | |
30 | + 'language_id', | |
31 | + ]; | |
32 | + } | |
33 | + | |
34 | + /** | |
35 | + * @inheritdoc | |
36 | + */ | |
37 | + public static function tableName() | |
38 | + { | |
39 | + return 'page_lang'; | |
40 | + } | |
41 | + | |
42 | + public function behaviors() | |
43 | + { | |
44 | + return [ | |
45 | + 'slug' => [ | |
46 | + 'class' => 'common\behaviors\Slug', | |
47 | + 'in_attribute' => 'title', | |
48 | + 'out_attribute' => 'alias', | |
49 | + 'translit' => true, | |
50 | + ], | |
51 | + ]; | |
52 | + } | |
53 | + | |
54 | + /** | |
55 | + * @inheritdoc | |
56 | + */ | |
57 | + public function rules() | |
58 | + { | |
59 | + return [ | |
60 | + [ | |
61 | + [ | |
62 | + 'title', | |
63 | + 'body', | |
64 | + ], | |
65 | + 'required', | |
66 | + ], | |
67 | + [ | |
68 | + [ | |
69 | + 'body', | |
70 | + 'seo_text', | |
71 | + ], | |
72 | + 'string', | |
73 | + ], | |
74 | + [ | |
75 | + [ | |
76 | + 'title', | |
77 | + 'meta_title', | |
78 | + 'meta_keywords', | |
79 | + 'meta_description', | |
80 | + 'h1', | |
81 | + 'alias', | |
82 | + ], | |
83 | + 'string', | |
84 | + 'max' => 255, | |
85 | + ], | |
86 | + [ | |
87 | + [ | |
88 | + 'page_id', | |
89 | + 'language_id', | |
90 | + ], | |
91 | + 'unique', | |
92 | + 'targetAttribute' => [ | |
93 | + 'page_id', | |
94 | + 'language_id', | |
95 | + ], | |
96 | + 'message' => 'The combination of Page ID and Language ID has already been taken.', | |
97 | + ], | |
98 | + [ | |
99 | + [ 'language_id' ], | |
100 | + 'exist', | |
101 | + 'skipOnError' => true, | |
102 | + 'targetClass' => Language::className(), | |
103 | + 'targetAttribute' => [ 'language_id' => 'language_id' ], | |
104 | + ], | |
105 | + [ | |
106 | + [ 'page_id' ], | |
107 | + 'exist', | |
108 | + 'skipOnError' => true, | |
109 | + 'targetClass' => Page::className(), | |
110 | + 'targetAttribute' => [ 'page_id' => 'id' ], | |
111 | + ], | |
112 | + ]; | |
113 | + } | |
114 | + | |
115 | + /** | |
116 | + * @inheritdoc | |
117 | + */ | |
118 | + public function attributeLabels() | |
119 | + { | |
120 | + return [ | |
121 | + 'page_id' => Yii::t('app', 'Page ID'), | |
122 | + 'language_id' => Yii::t('app', 'Language ID'), | |
123 | + 'title' => Yii::t('app', 'Title'), | |
124 | + 'body' => Yii::t('app', 'Body'), | |
125 | + 'meta_title' => Yii::t('app', 'Meta Title'), | |
126 | + 'meta_keywords' => Yii::t('app', 'Meta Keywords'), | |
127 | + 'meta_description' => Yii::t('app', 'Meta Description'), | |
128 | + 'seo_text' => Yii::t('app', 'Seo Text'), | |
129 | + 'h1' => Yii::t('app', 'H1'), | |
130 | + 'alias' => Yii::t('app', 'Alias'), | |
131 | + ]; | |
132 | + } | |
133 | + | |
134 | + /** | |
135 | + * @return \yii\db\ActiveQuery | |
136 | + */ | |
137 | + public function getLanguage() | |
138 | + { | |
139 | + return $this->hasOne(Language::className(), [ 'language_id' => 'language_id' ]); | |
140 | + } | |
141 | + | |
142 | + /** | |
143 | + * @return \yii\db\ActiveQuery | |
144 | + */ | |
145 | + public function getPage() | |
146 | + { | |
147 | + return $this->hasOne(Page::className(), [ 'id' => 'page_id' ]); | |
148 | + } | |
90 | 149 | } |
91 | -} | ... | ... |
common/models/PageSearch.php
... | ... | @@ -17,7 +17,6 @@ class PageSearch extends Page |
17 | 17 | { |
18 | 18 | return [ |
19 | 19 | [['id'], 'integer'], |
20 | - [['translit', 'title', 'body', 'meta_title', 'meta_keywords', 'meta_description', 'seo_text', 'h1'], 'safe'], | |
21 | 20 | ]; |
22 | 21 | } |
23 | 22 | |
... | ... | @@ -65,15 +64,6 @@ class PageSearch extends Page |
65 | 64 | 'id' => $this->id, |
66 | 65 | ]); |
67 | 66 | |
68 | - $query->andFilterWhere(['like', 'translit', $this->translit]) | |
69 | - ->andFilterWhere(['like', 'title', $this->title]) | |
70 | - ->andFilterWhere(['like', 'body', $this->body]) | |
71 | - ->andFilterWhere(['like', 'meta_title', $this->meta_title]) | |
72 | - ->andFilterWhere(['like', 'meta_keywords', $this->meta_keywords]) | |
73 | - ->andFilterWhere(['like', 'meta_description', $this->meta_description]) | |
74 | - ->andFilterWhere(['like', 'seo_text', $this->seo_text]) | |
75 | - ->andFilterWhere(['like', 'h1', $this->h1]); | |
76 | - | |
77 | 67 | return $dataProvider; |
78 | 68 | } |
79 | 69 | } | ... | ... |
common/models/ProductSpec.php
... | ... | @@ -13,10 +13,8 @@ |
13 | 13 | * This is the model class for table "product_spec". |
14 | 14 | * @property integer $product_spec_id |
15 | 15 | * @property integer $product_id |
16 | - * @property string $tech_spec_text | |
17 | 16 | * @property string $tech_spec_link |
18 | 17 | * @property string $tech_char_link |
19 | - * @property string $instruction | |
20 | 18 | * @property Product $product |
21 | 19 | * |
22 | 20 | * * From language behavior * |
... | ... | @@ -75,13 +73,6 @@ |
75 | 73 | return [ |
76 | 74 | [ |
77 | 75 | [ |
78 | - 'tech_spec_text', | |
79 | - 'instruction', | |
80 | - ], | |
81 | - 'string', | |
82 | - ], | |
83 | - [ | |
84 | - [ | |
85 | 76 | 'techSpecFile', |
86 | 77 | 'techCharFile', |
87 | 78 | ], |
... | ... | @@ -99,10 +90,8 @@ |
99 | 90 | return [ |
100 | 91 | 'product_spec_id' => 'Product Spec ID', |
101 | 92 | 'product_id' => 'Product ID', |
102 | - 'tech_spec_text' => 'Tech Spec Text', | |
103 | 93 | 'tech_spec_link' => 'Tech Spec Link', |
104 | 94 | 'tech_char_link' => 'Tech Char Link', |
105 | - 'instruction' => 'Instruction', | |
106 | 95 | 'techSpecFile' => 'techSpecFile', |
107 | 96 | 'techCharFile' => 'techCharFile', |
108 | 97 | ]; | ... | ... |
common/models/Project.php
... | ... | @@ -11,9 +11,6 @@ |
11 | 11 | /** |
12 | 12 | * This is the model class for table "project". |
13 | 13 | * @property integer $project_id |
14 | - * @property string $title | |
15 | - * @property string $link | |
16 | - * @property string $description | |
17 | 14 | * @property integer $date_add |
18 | 15 | * @property ProjectImage[] $images |
19 | 16 | * @property ProjectImage $image |
... | ... | @@ -57,12 +54,6 @@ |
57 | 54 | public function behaviors() |
58 | 55 | { |
59 | 56 | return [ |
60 | - 'slug' => [ | |
61 | - 'class' => 'common\behaviors\Slug', | |
62 | - 'in_attribute' => 'title', | |
63 | - 'out_attribute' => 'link', | |
64 | - 'translit' => true, | |
65 | - ], | |
66 | 57 | 'language' => [ |
67 | 58 | 'class' => LanguageBehavior::className(), |
68 | 59 | ], |
... | ... | @@ -83,14 +74,6 @@ |
83 | 74 | }, |
84 | 75 | ], |
85 | 76 | [ |
86 | - [ 'title' ], | |
87 | - 'required', | |
88 | - ], | |
89 | - [ | |
90 | - [ 'description' ], | |
91 | - 'string', | |
92 | - ], | |
93 | - [ | |
94 | 77 | [ |
95 | 78 | 'date_add', |
96 | 79 | 'imagesUpload', | ... | ... |
common/models/ProjectLang.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use common\modules\language\models\Language; | |
6 | -use Yii; | |
7 | - | |
8 | -/** | |
9 | - * This is the model class for table "project_lang". | |
10 | - * | |
11 | - * @property integer $project_id | |
12 | - * @property integer $language_id | |
13 | - * @property string $title | |
14 | - * @property string $description | |
15 | - * | |
16 | - * @property Language $language | |
17 | - * @property Project $project | |
18 | - */ | |
19 | -class ProjectLang extends \yii\db\ActiveRecord | |
20 | -{ | |
21 | 2 | |
22 | - public static function primaryKey() | |
23 | - { | |
24 | - return [ | |
25 | - 'project_id', | |
26 | - 'language_id', | |
27 | - ]; | |
28 | - } | |
3 | + namespace common\models; | |
4 | + | |
5 | + use common\modules\language\models\Language; | |
6 | + use Yii; | |
29 | 7 | |
30 | 8 | /** |
31 | - * @inheritdoc | |
32 | - */ | |
33 | - public static function tableName() | |
34 | - { | |
35 | - return 'project_lang'; | |
36 | - } | |
37 | - | |
38 | - /** | |
39 | - * @inheritdoc | |
40 | - */ | |
41 | - public function rules() | |
42 | - { | |
43 | - return [ | |
44 | - [['title'], 'required'], | |
45 | - [['description'], 'string'], | |
46 | - [['title'], 'string', 'max' => 255], | |
47 | - [['project_id', 'language_id'], 'unique', 'targetAttribute' => ['project_id', 'language_id'], 'message' => 'The combination of Project ID and Language ID has already been taken.'], | |
48 | - [['language_id'], 'exist', 'skipOnError' => true, 'targetClass' => Language::className(), 'targetAttribute' => ['language_id' => 'language_id']], | |
49 | - [['project_id'], 'exist', 'skipOnError' => true, 'targetClass' => Project::className(), 'targetAttribute' => ['project_id' => 'project_id']], | |
50 | - ]; | |
51 | - } | |
52 | - | |
53 | - /** | |
54 | - * @inheritdoc | |
55 | - */ | |
56 | - public function attributeLabels() | |
57 | - { | |
58 | - return [ | |
59 | - 'project_id' => Yii::t('app', 'Project ID'), | |
60 | - 'language_id' => Yii::t('app', 'Language ID'), | |
61 | - 'title' => Yii::t('app', 'Title'), | |
62 | - 'description' => Yii::t('app', 'Description'), | |
63 | - ]; | |
64 | - } | |
65 | - | |
66 | - /** | |
67 | - * @return \yii\db\ActiveQuery | |
68 | - */ | |
69 | - public function getLanguage() | |
70 | - { | |
71 | - return $this->hasOne(Language::className(), ['language_id' => 'language_id']); | |
72 | - } | |
73 | - | |
74 | - /** | |
75 | - * @return \yii\db\ActiveQuery | |
9 | + * This is the model class for table "project_lang". | |
10 | + * @property integer $project_id | |
11 | + * @property integer $language_id | |
12 | + * @property string $title | |
13 | + * @property string $description | |
14 | + * @property string $alias | |
15 | + * @property Language $language | |
16 | + * @property Project $project | |
76 | 17 | */ |
77 | - public function getProject() | |
18 | + class ProjectLang extends \yii\db\ActiveRecord | |
78 | 19 | { |
79 | - return $this->hasOne(Project::className(), ['project_id' => 'project_id']); | |
20 | + | |
21 | + public static function primaryKey() | |
22 | + { | |
23 | + return [ | |
24 | + 'project_id', | |
25 | + 'language_id', | |
26 | + ]; | |
27 | + } | |
28 | + | |
29 | + /** | |
30 | + * @inheritdoc | |
31 | + */ | |
32 | + public static function tableName() | |
33 | + { | |
34 | + return 'project_lang'; | |
35 | + } | |
36 | + | |
37 | + public function behaviors() | |
38 | + { | |
39 | + return [ | |
40 | + 'slug' => [ | |
41 | + 'class' => 'common\behaviors\Slug', | |
42 | + 'in_attribute' => 'title', | |
43 | + 'out_attribute' => 'alias', | |
44 | + 'translit' => true, | |
45 | + ], | |
46 | + ]; | |
47 | + } | |
48 | + | |
49 | + /** | |
50 | + * @inheritdoc | |
51 | + */ | |
52 | + public function rules() | |
53 | + { | |
54 | + return [ | |
55 | + [ | |
56 | + [ 'title' ], | |
57 | + 'required', | |
58 | + ], | |
59 | + [ | |
60 | + [ 'description' ], | |
61 | + 'string', | |
62 | + ], | |
63 | + [ | |
64 | + [ | |
65 | + 'title', | |
66 | + 'alias', | |
67 | + ], | |
68 | + 'string', | |
69 | + 'max' => 255, | |
70 | + ], | |
71 | + [ | |
72 | + [ | |
73 | + 'project_id', | |
74 | + 'language_id', | |
75 | + ], | |
76 | + 'unique', | |
77 | + 'targetAttribute' => [ | |
78 | + 'project_id', | |
79 | + 'language_id', | |
80 | + ], | |
81 | + 'message' => 'The combination of Project ID and Language ID has already been taken.', | |
82 | + ], | |
83 | + [ | |
84 | + [ 'language_id' ], | |
85 | + 'exist', | |
86 | + 'skipOnError' => true, | |
87 | + 'targetClass' => Language::className(), | |
88 | + 'targetAttribute' => [ 'language_id' => 'language_id' ], | |
89 | + ], | |
90 | + [ | |
91 | + [ 'project_id' ], | |
92 | + 'exist', | |
93 | + 'skipOnError' => true, | |
94 | + 'targetClass' => Project::className(), | |
95 | + 'targetAttribute' => [ 'project_id' => 'project_id' ], | |
96 | + ], | |
97 | + ]; | |
98 | + } | |
99 | + | |
100 | + /** | |
101 | + * @inheritdoc | |
102 | + */ | |
103 | + public function attributeLabels() | |
104 | + { | |
105 | + return [ | |
106 | + 'project_id' => Yii::t('app', 'Project ID'), | |
107 | + 'language_id' => Yii::t('app', 'Language ID'), | |
108 | + 'title' => Yii::t('app', 'Title'), | |
109 | + 'description' => Yii::t('app', 'Description'), | |
110 | + 'alias' => Yii::t('app', 'Alias'), | |
111 | + ]; | |
112 | + } | |
113 | + | |
114 | + /** | |
115 | + * @return \yii\db\ActiveQuery | |
116 | + */ | |
117 | + public function getLanguage() | |
118 | + { | |
119 | + return $this->hasOne(Language::className(), [ 'language_id' => 'language_id' ]); | |
120 | + } | |
121 | + | |
122 | + /** | |
123 | + * @return \yii\db\ActiveQuery | |
124 | + */ | |
125 | + public function getProject() | |
126 | + { | |
127 | + return $this->hasOne(Project::className(), [ 'project_id' => 'project_id' ]); | |
128 | + } | |
80 | 129 | } |
81 | -} | ... | ... |
common/models/ProjectSearch.php
... | ... | @@ -23,7 +23,6 @@ class ProjectSearch extends Project |
23 | 23 | { |
24 | 24 | return [ |
25 | 25 | [['project_id', 'date_add'], 'integer'], |
26 | - [['title', 'link', 'description'], 'safe'], | |
27 | 26 | ]; |
28 | 27 | } |
29 | 28 | |
... | ... | @@ -67,10 +66,6 @@ class ProjectSearch extends Project |
67 | 66 | 'date_add' => $this->date_add, |
68 | 67 | ]); |
69 | 68 | |
70 | - $query->andFilterWhere(['like', 'title', $this->title]) | |
71 | - ->andFilterWhere(['like', 'link', $this->link]) | |
72 | - ->andFilterWhere(['like', 'description', $this->description]); | |
73 | - | |
74 | 69 | return $dataProvider; |
75 | 70 | } |
76 | 71 | } | ... | ... |
common/models/Seo.php
... | ... | @@ -13,11 +13,6 @@ use yii\web\Request; |
13 | 13 | * |
14 | 14 | * @property integer $seo_id |
15 | 15 | * @property string $url |
16 | - * @property string $title | |
17 | - * @property string $meta | |
18 | - * @property string $description | |
19 | - * @property string $h1 | |
20 | - * @property string $seo_text | |
21 | 16 | * |
22 | 17 | * * From language behavior * |
23 | 18 | * @property SeoLang $lang |
... | ... | @@ -63,8 +58,7 @@ class Seo extends \yii\db\ActiveRecord |
63 | 58 | { |
64 | 59 | return [ |
65 | 60 | [['url'], 'required'], |
66 | - [['seo_text'], 'string'], | |
67 | - [['url', 'title', 'meta', 'description', 'h1'], 'string', 'max' => 255], | |
61 | + [['url'], 'string', 'max' => 255], | |
68 | 62 | ]; |
69 | 63 | } |
70 | 64 | |
... | ... | @@ -76,11 +70,6 @@ class Seo extends \yii\db\ActiveRecord |
76 | 70 | return [ |
77 | 71 | 'seo_id' => Yii::t('app', 'seo_id'), |
78 | 72 | 'url' => Yii::t('app', 'url'), |
79 | - 'title' => Yii::t('app', 'title'), | |
80 | - 'meta' => Yii::t('app', 'meta_title'), | |
81 | - 'description' => Yii::t('app', 'description'), | |
82 | - 'h1' => Yii::t('app', 'h1'), | |
83 | - 'seo_text' => Yii::t('app', 'seo_text'), | |
84 | 73 | ]; |
85 | 74 | } |
86 | 75 | } | ... | ... |
common/models/SeoCategory.php
... | ... | @@ -12,7 +12,6 @@ use yii\web\Request; |
12 | 12 | * This is the model class for table "seo_category". |
13 | 13 | * |
14 | 14 | * @property integer $seo_category_id |
15 | - * @property string $name | |
16 | 15 | * @property string $controller |
17 | 16 | * @property integer $status |
18 | 17 | * |
... | ... | @@ -62,7 +61,6 @@ class SeoCategory extends \yii\db\ActiveRecord |
62 | 61 | { |
63 | 62 | return [ |
64 | 63 | [['status'], 'integer'], |
65 | - [['name'], 'string', 'max' => 255], | |
66 | 64 | [['controller'], 'string', 'max' => 100], |
67 | 65 | ]; |
68 | 66 | } |
... | ... | @@ -74,7 +72,6 @@ class SeoCategory extends \yii\db\ActiveRecord |
74 | 72 | { |
75 | 73 | return [ |
76 | 74 | 'seo_category_id' => Yii::t('app', 'seo_category_id'), |
77 | - 'name' => Yii::t('app', 'name'), | |
78 | 75 | 'controller' => Yii::t('app', 'controller'), |
79 | 76 | 'status' => Yii::t('app', 'status'), |
80 | 77 | ]; | ... | ... |
common/models/SeoCategorySearch.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use Yii; | |
6 | -use yii\base\Model; | |
7 | -use yii\data\ActiveDataProvider; | |
8 | -use common\models\SeoCategory; | |
9 | - | |
10 | -/** | |
11 | - * SeoCategorySearch represents the model behind the search form about `common\models\SeoCategory`. | |
12 | - */ | |
13 | -class SeoCategorySearch extends SeoCategory | |
14 | -{ | |
15 | 2 | |
16 | - public function behaviors() | |
17 | - { | |
18 | - return []; | |
19 | - } | |
3 | + namespace common\models; | |
4 | + | |
5 | + use yii\base\Model; | |
6 | + use yii\data\ActiveDataProvider; | |
20 | 7 | |
21 | 8 | /** |
22 | - * @inheritdoc | |
23 | - */ | |
24 | - public function rules() | |
25 | - { | |
26 | - return [ | |
27 | - [['seo_category_id', 'status'], 'integer'], | |
28 | - [['name', 'controller'], 'safe'], | |
29 | - ]; | |
30 | - } | |
31 | - | |
32 | - /** | |
33 | - * @inheritdoc | |
34 | - */ | |
35 | - public function scenarios() | |
36 | - { | |
37 | - // bypass scenarios() implementation in the parent class | |
38 | - return Model::scenarios(); | |
39 | - } | |
40 | - | |
41 | - /** | |
42 | - * Creates data provider instance with search query applied | |
43 | - * | |
44 | - * @param array $params | |
45 | - * | |
46 | - * @return ActiveDataProvider | |
9 | + * SeoCategorySearch represents the model behind the search form about | |
10 | + * `common\models\SeoCategory`. | |
47 | 11 | */ |
48 | - public function search($params) | |
12 | + class SeoCategorySearch extends SeoCategory | |
49 | 13 | { |
50 | - $query = SeoCategory::find(); | |
51 | - | |
52 | - // add conditions that should always apply here | |
53 | - | |
54 | - $dataProvider = new ActiveDataProvider([ | |
55 | - 'query' => $query, | |
56 | - ]); | |
57 | - | |
58 | - $this->load($params); | |
59 | - | |
60 | - if (!$this->validate()) { | |
61 | - // uncomment the following line if you do not want to return any records when validation fails | |
62 | - // $query->where('0=1'); | |
14 | + | |
15 | + public function behaviors() | |
16 | + { | |
17 | + return []; | |
18 | + } | |
19 | + | |
20 | + /** | |
21 | + * @inheritdoc | |
22 | + */ | |
23 | + public function rules() | |
24 | + { | |
25 | + return [ | |
26 | + [ | |
27 | + [ | |
28 | + 'seo_category_id', | |
29 | + 'status', | |
30 | + ], | |
31 | + 'integer', | |
32 | + ], | |
33 | + [ | |
34 | + [ 'controller' ], | |
35 | + 'safe', | |
36 | + ], | |
37 | + ]; | |
38 | + } | |
39 | + | |
40 | + /** | |
41 | + * @inheritdoc | |
42 | + */ | |
43 | + public function scenarios() | |
44 | + { | |
45 | + // bypass scenarios() implementation in the parent class | |
46 | + return Model::scenarios(); | |
47 | + } | |
48 | + | |
49 | + /** | |
50 | + * Creates data provider instance with search query applied | |
51 | + * | |
52 | + * @param array $params | |
53 | + * | |
54 | + * @return ActiveDataProvider | |
55 | + */ | |
56 | + public function search($params) | |
57 | + { | |
58 | + $query = SeoCategory::find(); | |
59 | + | |
60 | + // add conditions that should always apply here | |
61 | + | |
62 | + $dataProvider = new ActiveDataProvider([ | |
63 | + 'query' => $query, | |
64 | + ]); | |
65 | + | |
66 | + $this->load($params); | |
67 | + | |
68 | + if(!$this->validate()) { | |
69 | + // uncomment the following line if you do not want to return any records when validation fails | |
70 | + // $query->where('0=1'); | |
71 | + return $dataProvider; | |
72 | + } | |
73 | + | |
74 | + // grid filtering conditions | |
75 | + $query->andFilterWhere([ | |
76 | + 'seo_category_id' => $this->seo_category_id, | |
77 | + 'status' => $this->status, | |
78 | + ]); | |
79 | + | |
80 | + $query->andFilterWhere([ | |
81 | + 'like', | |
82 | + 'controller', | |
83 | + $this->controller, | |
84 | + ]); | |
85 | + | |
63 | 86 | return $dataProvider; |
64 | 87 | } |
65 | - | |
66 | - // grid filtering conditions | |
67 | - $query->andFilterWhere([ | |
68 | - 'seo_category_id' => $this->seo_category_id, | |
69 | - 'status' => $this->status, | |
70 | - ]); | |
71 | - | |
72 | - $query->andFilterWhere(['like', 'name', $this->name]) | |
73 | - ->andFilterWhere(['like', 'controller', $this->controller]); | |
74 | - | |
75 | - return $dataProvider; | |
76 | 88 | } |
77 | -} | ... | ... |
common/models/SeoDynamic.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use common\modules\language\behaviors\LanguageBehavior; | |
6 | -use Yii; | |
7 | -use yii\db\ActiveQuery; | |
8 | -use yii\db\ActiveRecord; | |
9 | -use yii\web\Request; | |
10 | -/** | |
11 | - * This is the model class for table "seo_dynamic". | |
12 | - * | |
13 | - * @property integer $seo_dynamic_id | |
14 | - * @property integer $seo_category_id | |
15 | - * @property string $name | |
16 | - * @property string $action | |
17 | - * @property string $fields | |
18 | - * @property string $title | |
19 | - * @property string $h1 | |
20 | - * @property string $description | |
21 | - * @property string $seo_text | |
22 | - * @property integer $status | |
23 | - * @property string $param | |
24 | - * @property string $key | |
25 | - * | |
26 | - * * From language behavior * | |
27 | - * @property SeoDynamicLang $lang | |
28 | - * @property SeoDynamicLang[] $langs | |
29 | - * @property SeoDynamicLang $object_lang | |
30 | - * @property string $ownerKey | |
31 | - * @property string $langKey | |
32 | - * @method string getOwnerKey() | |
33 | - * @method void setOwnerKey(string $value) | |
34 | - * @method string getLangKey() | |
35 | - * @method void setLangKey(string $value) | |
36 | - * @method ActiveQuery getLangs() | |
37 | - * @method ActiveQuery getLang( integer $language_id ) | |
38 | - * @method SeoDynamicLang[] generateLangs() | |
39 | - * @method void loadLangs(Request $request, ActiveRecord[] $model_langs) | |
40 | - * @method bool linkLangs(ActiveRecord[] $model_langs) | |
41 | - * @method bool saveLangs(ActiveRecord[] $model_langs) | |
42 | - * * End language behavior * | |
43 | - * @property SeoCategory $seoCategory | |
44 | - */ | |
45 | -class SeoDynamic extends \yii\db\ActiveRecord | |
46 | -{ | |
47 | - /** | |
48 | - * @inheritdoc | |
49 | - */ | |
50 | - public static function tableName() | |
51 | - { | |
52 | - return 'seo_dynamic'; | |
53 | - } | |
54 | 2 | |
55 | - public function behaviors() | |
56 | - { | |
57 | - return [ | |
58 | - 'language' => [ | |
59 | - 'class' => LanguageBehavior::className(), | |
60 | - ], | |
61 | - ]; | |
62 | - } | |
3 | + namespace common\models; | |
4 | + | |
5 | + use common\modules\language\behaviors\LanguageBehavior; | |
6 | + use Yii; | |
7 | + use yii\db\ActiveQuery; | |
8 | + use yii\db\ActiveRecord; | |
9 | + use yii\web\Request; | |
63 | 10 | |
64 | 11 | /** |
65 | - * @inheritdoc | |
66 | - */ | |
67 | - public function rules() | |
68 | - { | |
69 | - return [ | |
70 | - [['seo_category_id', 'status'], 'integer'], | |
71 | - [['seo_text'], 'string'], | |
72 | - [['name', 'action'], 'string', 'max' => 200], | |
73 | - [['fields', 'title', 'meta', 'h1', 'description', 'param', 'key'], 'string', 'max' => 255], | |
74 | - [['seo_category_id'], 'exist', 'skipOnError' => true, 'targetClass' => SeoCategory::className(), 'targetAttribute' => ['seo_category_id' => 'seo_category_id']], | |
75 | - ]; | |
76 | - } | |
77 | - | |
78 | - /** | |
79 | - * @inheritdoc | |
80 | - */ | |
81 | - public function attributeLabels() | |
82 | - { | |
83 | - return [ | |
84 | - 'seo_dynamic_id' => Yii::t('app', 'seo_dynamic_id'), | |
85 | - 'seo_category_id' => Yii::t('app', 'seo_category_id'), | |
86 | - 'name' => Yii::t('app', 'name'), | |
87 | - 'action' => Yii::t('app', 'action'), | |
88 | - 'fields' => Yii::t('app', 'fields'), | |
89 | - 'title' => Yii::t('app', 'title'), | |
90 | - 'meta' => Yii::t('app', 'meta'), | |
91 | - 'h1' => Yii::t('app', 'h1'), | |
92 | - 'description' => Yii::t('app', 'description'), | |
93 | - 'seo_text' => Yii::t('app', 'seo_text'), | |
94 | - 'status' => Yii::t('app', 'status'), | |
95 | - 'param' => Yii::t('app', 'param'), | |
96 | - 'key' => Yii::t('app', 'key'), | |
97 | - ]; | |
98 | - } | |
99 | - | |
100 | - /** | |
101 | - * @return \yii\db\ActiveQuery | |
12 | + * This is the model class for table "seo_dynamic". | |
13 | + * @property integer $seo_dynamic_id | |
14 | + * @property integer $seo_category_id | |
15 | + * @property string $action | |
16 | + * @property string $fields | |
17 | + * @property integer $status | |
18 | + * @property string $param | |
19 | + * * From language behavior * | |
20 | + * @property SeoDynamicLang $lang | |
21 | + * @property SeoDynamicLang[] $langs | |
22 | + * @property SeoDynamicLang $object_lang | |
23 | + * @property string $ownerKey | |
24 | + * @property string $langKey | |
25 | + * @method string getOwnerKey() | |
26 | + * @method void setOwnerKey( string $value ) | |
27 | + * @method string getLangKey() | |
28 | + * @method void setLangKey( string $value ) | |
29 | + * @method ActiveQuery getLangs() | |
30 | + * @method ActiveQuery getLang( integer $language_id ) | |
31 | + * @method SeoDynamicLang[] generateLangs() | |
32 | + * @method void loadLangs( Request $request, ActiveRecord[] $model_langs ) | |
33 | + * @method bool linkLangs( ActiveRecord[] $model_langs ) | |
34 | + * @method bool saveLangs( ActiveRecord[] $model_langs ) | |
35 | + * * End language behavior * | |
36 | + * @property SeoCategory $seoCategory | |
102 | 37 | */ |
103 | - public function getSeoCategory() | |
38 | + class SeoDynamic extends \yii\db\ActiveRecord | |
104 | 39 | { |
105 | - return $this->hasOne(SeoCategory::className(), ['seo_category_id' => 'seo_category_id']); | |
40 | + | |
41 | + /** | |
42 | + * @inheritdoc | |
43 | + */ | |
44 | + public static function tableName() | |
45 | + { | |
46 | + return 'seo_dynamic'; | |
47 | + } | |
48 | + | |
49 | + public function behaviors() | |
50 | + { | |
51 | + return [ | |
52 | + 'language' => [ | |
53 | + 'class' => LanguageBehavior::className(), | |
54 | + ], | |
55 | + ]; | |
56 | + } | |
57 | + | |
58 | + /** | |
59 | + * @inheritdoc | |
60 | + */ | |
61 | + public function rules() | |
62 | + { | |
63 | + return [ | |
64 | + [ | |
65 | + [ | |
66 | + 'seo_category_id', | |
67 | + 'status', | |
68 | + ], | |
69 | + 'integer', | |
70 | + ], | |
71 | + [ | |
72 | + [ | |
73 | + 'action', | |
74 | + ], | |
75 | + 'string', | |
76 | + 'max' => 200, | |
77 | + ], | |
78 | + [ | |
79 | + [ | |
80 | + 'fields', | |
81 | + 'param', | |
82 | + ], | |
83 | + 'string', | |
84 | + 'max' => 255, | |
85 | + ], | |
86 | + [ | |
87 | + [ 'seo_category_id' ], | |
88 | + 'exist', | |
89 | + 'skipOnError' => true, | |
90 | + 'targetClass' => SeoCategory::className(), | |
91 | + 'targetAttribute' => [ 'seo_category_id' => 'seo_category_id' ], | |
92 | + ], | |
93 | + ]; | |
94 | + } | |
95 | + | |
96 | + /** | |
97 | + * @inheritdoc | |
98 | + */ | |
99 | + public function attributeLabels() | |
100 | + { | |
101 | + return [ | |
102 | + 'seo_dynamic_id' => Yii::t('app', 'seo_dynamic_id'), | |
103 | + 'seo_category_id' => Yii::t('app', 'seo_category_id'), | |
104 | + 'action' => Yii::t('app', 'action'), | |
105 | + 'fields' => Yii::t('app', 'fields'), | |
106 | + 'status' => Yii::t('app', 'status'), | |
107 | + 'param' => Yii::t('app', 'param'), | |
108 | + ]; | |
109 | + } | |
110 | + | |
111 | + /** | |
112 | + * @return \yii\db\ActiveQuery | |
113 | + */ | |
114 | + public function getSeoCategory() | |
115 | + { | |
116 | + return $this->hasOne(SeoCategory::className(), [ 'seo_category_id' => 'seo_category_id' ]); | |
117 | + } | |
106 | 118 | } |
107 | -} | ... | ... |
common/models/SeoDynamicSearch.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use Yii; | |
6 | -use yii\base\Model; | |
7 | -use yii\data\ActiveDataProvider; | |
8 | -use common\models\SeoDynamic; | |
9 | - | |
10 | -/** | |
11 | - * SeoDynamicSearch represents the model behind the search form about `common\models\SeoDynamic`. | |
12 | - */ | |
13 | -class SeoDynamicSearch extends SeoDynamic | |
14 | -{ | |
15 | 2 | |
16 | - public function behaviors() | |
17 | - { | |
18 | - return []; | |
19 | - } | |
3 | + namespace common\models; | |
4 | + | |
5 | + use yii\base\Model; | |
6 | + use yii\data\ActiveDataProvider; | |
20 | 7 | |
21 | 8 | /** |
22 | - * @inheritdoc | |
23 | - */ | |
24 | - public function rules() | |
25 | - { | |
26 | - return [ | |
27 | - [['seo_dynamic_id', 'seo_category_id', 'status'], 'integer'], | |
28 | - [['name', 'action', 'fields', 'title', 'meta', 'h1', 'description', 'seo_text'], 'safe'], | |
29 | - ]; | |
30 | - } | |
31 | - | |
32 | - /** | |
33 | - * @inheritdoc | |
34 | - */ | |
35 | - public function scenarios() | |
36 | - { | |
37 | - // bypass scenarios() implementation in the parent class | |
38 | - return Model::scenarios(); | |
39 | - } | |
40 | - | |
41 | - /** | |
42 | - * Creates data provider instance with search query applied | |
43 | - * | |
44 | - * @param array $params | |
45 | - * | |
46 | - * @return ActiveDataProvider | |
9 | + * SeoDynamicSearch represents the model behind the search form about | |
10 | + * `common\models\SeoDynamic`. | |
47 | 11 | */ |
48 | - public function search($seo_category_id, $params) | |
12 | + class SeoDynamicSearch extends SeoDynamic | |
49 | 13 | { |
50 | - $query = SeoDynamic::find(); | |
51 | - | |
52 | - // add conditions that should always apply here | |
53 | - | |
54 | - $dataProvider = new ActiveDataProvider([ | |
55 | - 'query' => $query, | |
56 | - ]); | |
57 | - | |
58 | - $this->load($params); | |
59 | - | |
60 | - if (!$this->validate()) { | |
61 | - // uncomment the following line if you do not want to return any records when validation fails | |
62 | - // $query->where('0=1'); | |
14 | + | |
15 | + public function behaviors() | |
16 | + { | |
17 | + return []; | |
18 | + } | |
19 | + | |
20 | + /** | |
21 | + * @inheritdoc | |
22 | + */ | |
23 | + public function rules() | |
24 | + { | |
25 | + return [ | |
26 | + [ | |
27 | + [ | |
28 | + 'seo_dynamic_id', | |
29 | + 'seo_category_id', | |
30 | + 'status', | |
31 | + ], | |
32 | + 'integer', | |
33 | + ], | |
34 | + [ | |
35 | + [ | |
36 | + 'action', | |
37 | + 'fields', | |
38 | + ], | |
39 | + 'safe', | |
40 | + ], | |
41 | + ]; | |
42 | + } | |
43 | + | |
44 | + /** | |
45 | + * @inheritdoc | |
46 | + */ | |
47 | + public function scenarios() | |
48 | + { | |
49 | + // bypass scenarios() implementation in the parent class | |
50 | + return Model::scenarios(); | |
51 | + } | |
52 | + | |
53 | + /** | |
54 | + * Creates data provider instance with search query applied | |
55 | + * | |
56 | + * @param array $params | |
57 | + * | |
58 | + * @return ActiveDataProvider | |
59 | + */ | |
60 | + public function search($seo_category_id, $params) | |
61 | + { | |
62 | + $query = SeoDynamic::find(); | |
63 | + | |
64 | + // add conditions that should always apply here | |
65 | + | |
66 | + $dataProvider = new ActiveDataProvider([ | |
67 | + 'query' => $query, | |
68 | + ]); | |
69 | + | |
70 | + $this->load($params); | |
71 | + | |
72 | + if(!$this->validate()) { | |
73 | + // uncomment the following line if you do not want to return any records when validation fails | |
74 | + // $query->where('0=1'); | |
75 | + return $dataProvider; | |
76 | + } | |
77 | + | |
78 | + // grid filtering conditions | |
79 | + $query->andFilterWhere([ | |
80 | + 'seo_dynamic_id' => $this->seo_dynamic_id, | |
81 | + 'seo_category_id' => $seo_category_id, | |
82 | + 'status' => $this->status, | |
83 | + ]); | |
84 | + | |
85 | + $query->andFilterWhere([ | |
86 | + 'like', | |
87 | + 'action', | |
88 | + $this->action, | |
89 | + ]) | |
90 | + ->andFilterWhere([ | |
91 | + 'like', | |
92 | + 'fields', | |
93 | + $this->fields, | |
94 | + ]); | |
95 | + | |
63 | 96 | return $dataProvider; |
64 | 97 | } |
65 | - | |
66 | - // grid filtering conditions | |
67 | - $query->andFilterWhere([ | |
68 | - 'seo_dynamic_id' => $this->seo_dynamic_id, | |
69 | - 'seo_category_id' => $seo_category_id, | |
70 | - 'status' => $this->status, | |
71 | - ]); | |
72 | - | |
73 | - $query->andFilterWhere(['like', 'name', $this->name]) | |
74 | - ->andFilterWhere(['like', 'action', $this->action]) | |
75 | - ->andFilterWhere(['like', 'fields', $this->fields]) | |
76 | - ->andFilterWhere(['like', 'title', $this->title]) | |
77 | - ->andFilterWhere(['like', 'meta', $this->title]) | |
78 | - ->andFilterWhere(['like', 'h1', $this->h1]) | |
79 | - ->andFilterWhere(['like', 'description', $this->description]) | |
80 | - ->andFilterWhere(['like', 'seo_text', $this->seo_text]); | |
81 | - | |
82 | - return $dataProvider; | |
83 | 98 | } |
84 | -} | ... | ... |
common/models/SeoSearch.php
... | ... | @@ -2,10 +2,8 @@ |
2 | 2 | |
3 | 3 | namespace common\models; |
4 | 4 | |
5 | -use Yii; | |
6 | 5 | use yii\base\Model; |
7 | 6 | use yii\data\ActiveDataProvider; |
8 | -use common\models\Seo; | |
9 | 7 | |
10 | 8 | /** |
11 | 9 | * SeoSearch represents the model behind the search form about `common\models\Seo`. |
... | ... | @@ -25,7 +23,7 @@ class SeoSearch extends Seo |
25 | 23 | { |
26 | 24 | return [ |
27 | 25 | [['seo_id'], 'integer'], |
28 | - [['url', 'title', 'meta', 'description', 'h1', 'seo_text'], 'safe'], | |
26 | + [['url'], 'safe'], | |
29 | 27 | ]; |
30 | 28 | } |
31 | 29 | |
... | ... | @@ -68,12 +66,7 @@ class SeoSearch extends Seo |
68 | 66 | 'seo_id' => $this->seo_id, |
69 | 67 | ]); |
70 | 68 | |
71 | - $query->andFilterWhere(['like', 'url', $this->url]) | |
72 | - ->andFilterWhere(['like', 'title', $this->title]) | |
73 | - ->andFilterWhere(['like', 'meta', $this->meta]) | |
74 | - ->andFilterWhere(['like', 'description', $this->description]) | |
75 | - ->andFilterWhere(['like', 'h1', $this->h1]) | |
76 | - ->andFilterWhere(['like', 'seo_text', $this->seo_text]); | |
69 | + $query->andFilterWhere(['like', 'url', $this->url]); | |
77 | 70 | |
78 | 71 | return $dataProvider; |
79 | 72 | } | ... | ... |
common/models/Service.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use common\modules\language\behaviors\LanguageBehavior; | |
6 | -use Yii; | |
7 | -use yii\behaviors\TimestampBehavior; | |
8 | -use yii\db\ActiveQuery; | |
9 | -use yii\db\ActiveRecord; | |
10 | -use yii\web\Request; | |
11 | - | |
12 | -/** | |
13 | - * This is the model class for table "service". | |
14 | - * | |
15 | - * @property integer $service_id | |
16 | - * @property string $name | |
17 | - * @property string $alias | |
18 | - * @property string $body | |
19 | - * @property string $image | |
20 | - * @property string $meta_title | |
21 | - * @property string $description | |
22 | - * @property string $h1 | |
23 | - * @property string $seo_text | |
24 | - * @property integer $created_at | |
25 | - * @property integer $updated_at | |
26 | - * | |
27 | - * * From language behavior * | |
28 | - * @property ServiceLang $lang | |
29 | - * @property ServiceLang[] $langs | |
30 | - * @property ServiceLang $object_lang | |
31 | - * @property string $ownerKey | |
32 | - * @property string $langKey | |
33 | - * @method string getOwnerKey() | |
34 | - * @method void setOwnerKey(string $value) | |
35 | - * @method string getLangKey() | |
36 | - * @method void setLangKey(string $value) | |
37 | - * @method ActiveQuery getLangs() | |
38 | - * @method ActiveQuery getLang( integer $language_id ) | |
39 | - * @method ServiceLang[] generateLangs() | |
40 | - * @method void loadLangs(Request $request, ActiveRecord[] $model_langs) | |
41 | - * @method bool linkLangs(ActiveRecord[] $model_langs) | |
42 | - * @method bool saveLangs(ActiveRecord[] $model_langs) | |
43 | - * * End language behavior * | |
44 | - */ | |
45 | -class Service extends \yii\db\ActiveRecord | |
46 | -{ | |
47 | - /** | |
48 | - * @inheritdoc | |
49 | - */ | |
50 | - public static function tableName() | |
51 | - { | |
52 | - return 'service'; | |
53 | - } | |
2 | + | |
3 | + namespace common\models; | |
4 | + | |
5 | + use common\behaviors\SaveImgBehavior; | |
6 | + use common\modules\language\behaviors\LanguageBehavior; | |
7 | + use Yii; | |
8 | + use yii\behaviors\TimestampBehavior; | |
9 | + use yii\db\ActiveQuery; | |
10 | + use yii\db\ActiveRecord; | |
11 | + use yii\web\Request; | |
54 | 12 | |
55 | 13 | /** |
56 | - * @inheritdoc | |
57 | - */ | |
58 | - public function rules() | |
59 | - { | |
60 | - return [ | |
61 | - [['name', 'body'], 'required'], | |
62 | - [['body', 'seo_text'], 'string'], | |
63 | - [['created_at', 'updated_at'], 'integer'], | |
64 | - [['name', 'alias', 'image', 'meta_title', 'description', 'h1'], 'string', 'max' => 255], | |
65 | - ]; | |
66 | - } | |
67 | - /** | |
68 | - * @inheritdoc | |
69 | - */ | |
70 | - public function behaviors() | |
71 | - { | |
72 | - return [ | |
73 | - TimestampBehavior::className(), | |
74 | - 'slug' => [ | |
75 | - 'class' => 'common\behaviors\Slug', | |
76 | - 'in_attribute' => 'name', | |
77 | - 'out_attribute' => 'alias', | |
78 | - 'translit' => true | |
79 | - ], | |
80 | - [ | |
81 | - 'class' => 'common\behaviors\ShowImage', | |
82 | - ], | |
83 | - 'language' => [ | |
84 | - 'class' => LanguageBehavior::className(), | |
85 | - ], | |
86 | - ]; | |
87 | - } | |
88 | - /** | |
89 | - * @inheritdoc | |
14 | + * This is the model class for table "service". | |
15 | + * @property integer $service_id | |
16 | + * @property string $image | |
17 | + * @property integer $created_at | |
18 | + * @property integer $updated_at | |
19 | + * * From language behavior * | |
20 | + * @property ServiceLang $lang | |
21 | + * @property ServiceLang[] $langs | |
22 | + * @property ServiceLang $object_lang | |
23 | + * @property string $ownerKey | |
24 | + * @property string $langKey | |
25 | + * @method string getOwnerKey() | |
26 | + * @method void setOwnerKey( string $value ) | |
27 | + * @method string getLangKey() | |
28 | + * @method void setLangKey( string $value ) | |
29 | + * @method ActiveQuery getLangs() | |
30 | + * @method ActiveQuery getLang( integer $language_id ) | |
31 | + * @method ServiceLang[] generateLangs() | |
32 | + * @method void loadLangs( Request $request, ActiveRecord[] $model_langs ) | |
33 | + * @method bool linkLangs( ActiveRecord[] $model_langs ) | |
34 | + * @method bool saveLangs( ActiveRecord[] $model_langs ) | |
35 | + * * End language behavior * | |
90 | 36 | */ |
91 | - public function attributeLabels() | |
37 | + class Service extends \yii\db\ActiveRecord | |
92 | 38 | { |
93 | - return [ | |
94 | - 'service_id' => Yii::t('app', 'service_id'), | |
95 | - 'name' => Yii::t('app', 'name'), | |
96 | - 'alias' => Yii::t('app', 'alias'), | |
97 | - 'body' => Yii::t('app', 'body'), | |
98 | - 'image' => Yii::t('app', 'image'), | |
99 | - 'meta_title' => Yii::t('app', 'meta_title'), | |
100 | - 'description' => Yii::t('app', 'description'), | |
101 | - 'h1' => Yii::t('app', 'h1'), | |
102 | - 'seo_text' => Yii::t('app', 'seo_text'), | |
103 | - 'created_at' => Yii::t('app', 'created_at'), | |
104 | - 'updated_at' => Yii::t('app', 'updated_at'), | |
105 | - ]; | |
39 | + | |
40 | + /** | |
41 | + * @inheritdoc | |
42 | + */ | |
43 | + public static function tableName() | |
44 | + { | |
45 | + return 'service'; | |
46 | + } | |
47 | + | |
48 | + /** | |
49 | + * @inheritdoc | |
50 | + */ | |
51 | + public function rules() | |
52 | + { | |
53 | + return [ | |
54 | + [ | |
55 | + [ | |
56 | + 'created_at', | |
57 | + 'updated_at', | |
58 | + ], | |
59 | + 'integer', | |
60 | + ], | |
61 | + ]; | |
62 | + } | |
63 | + | |
64 | + /** | |
65 | + * @inheritdoc | |
66 | + */ | |
67 | + public function behaviors() | |
68 | + { | |
69 | + return [ | |
70 | + [ | |
71 | + 'class' => SaveImgBehavior::className(), | |
72 | + 'fields' => [ | |
73 | + [ | |
74 | + 'name' => 'image', | |
75 | + 'directory' => 'service', | |
76 | + ], | |
77 | + ], | |
78 | + ], | |
79 | + TimestampBehavior::className(), | |
80 | + [ | |
81 | + 'class' => 'common\behaviors\ShowImage', | |
82 | + ], | |
83 | + 'language' => [ | |
84 | + 'class' => LanguageBehavior::className(), | |
85 | + ], | |
86 | + ]; | |
87 | + } | |
88 | + | |
89 | + /** | |
90 | + * @inheritdoc | |
91 | + */ | |
92 | + public function attributeLabels() | |
93 | + { | |
94 | + return [ | |
95 | + 'service_id' => Yii::t('app', 'service_id'), | |
96 | + 'image' => Yii::t('app', 'image'), | |
97 | + 'created_at' => Yii::t('app', 'created_at'), | |
98 | + 'updated_at' => Yii::t('app', 'updated_at'), | |
99 | + ]; | |
100 | + } | |
106 | 101 | } |
107 | -} | ... | ... |
common/models/ServiceLang.php
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 | */ |
21 | 21 | class ServiceLang extends \yii\db\ActiveRecord |
22 | 22 | { |
23 | - | |
23 | + | |
24 | 24 | public static function primaryKey() |
25 | 25 | { |
26 | 26 | return [ |
... | ... | @@ -37,6 +37,18 @@ |
37 | 37 | return 'service_lang'; |
38 | 38 | } |
39 | 39 | |
40 | + public function behaviors() | |
41 | + { | |
42 | + return [ | |
43 | + 'slug' => [ | |
44 | + 'class' => 'common\behaviors\Slug', | |
45 | + 'in_attribute' => 'name', | |
46 | + 'out_attribute' => 'alias', | |
47 | + 'translit' => true, | |
48 | + ], | |
49 | + ]; | |
50 | + } | |
51 | + | |
40 | 52 | /** |
41 | 53 | * @inheritdoc |
42 | 54 | */ | ... | ... |
common/models/ServiceSearch.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\models; | |
4 | - | |
5 | -use Yii; | |
6 | -use yii\base\Model; | |
7 | -use yii\data\ActiveDataProvider; | |
8 | -use common\models\Service; | |
9 | - | |
10 | -/** | |
11 | - * ServiceSearch represents the model behind the search form about `common\models\Service`. | |
12 | - */ | |
13 | -class ServiceSearch extends Service | |
14 | -{ | |
15 | 2 | |
16 | - public function behaviors() | |
17 | - { | |
18 | - return []; | |
19 | - } | |
3 | + namespace common\models; | |
4 | + | |
5 | + use yii\base\Model; | |
6 | + use yii\data\ActiveDataProvider; | |
20 | 7 | |
21 | 8 | /** |
22 | - * @inheritdoc | |
23 | - */ | |
24 | - public function rules() | |
25 | - { | |
26 | - return [ | |
27 | - [['service_id', 'created_at', 'updated_at'], 'integer'], | |
28 | - [['name', 'alias', 'body', 'image', 'meta_title', 'description', 'h1', 'seo_text'], 'safe'], | |
29 | - ]; | |
30 | - } | |
31 | - | |
32 | - /** | |
33 | - * @inheritdoc | |
34 | - */ | |
35 | - public function scenarios() | |
36 | - { | |
37 | - // bypass scenarios() implementation in the parent class | |
38 | - return Model::scenarios(); | |
39 | - } | |
40 | - | |
41 | - /** | |
42 | - * Creates data provider instance with search query applied | |
43 | - * | |
44 | - * @param array $params | |
45 | - * | |
46 | - * @return ActiveDataProvider | |
9 | + * ServiceSearch represents the model behind the search form about `common\models\Service`. | |
47 | 10 | */ |
48 | - public function search($params) | |
11 | + class ServiceSearch extends Service | |
49 | 12 | { |
50 | - $query = Service::find(); | |
51 | - | |
52 | - // add conditions that should always apply here | |
53 | - | |
54 | - $dataProvider = new ActiveDataProvider([ | |
55 | - 'query' => $query, | |
56 | - ]); | |
57 | - | |
58 | - $this->load($params); | |
59 | - | |
60 | - if (!$this->validate()) { | |
61 | - // uncomment the following line if you do not want to return any records when validation fails | |
62 | - // $query->where('0=1'); | |
13 | + | |
14 | + public function behaviors() | |
15 | + { | |
16 | + return []; | |
17 | + } | |
18 | + | |
19 | + /** | |
20 | + * @inheritdoc | |
21 | + */ | |
22 | + public function rules() | |
23 | + { | |
24 | + return [ | |
25 | + [ | |
26 | + [ | |
27 | + 'service_id', | |
28 | + 'created_at', | |
29 | + 'updated_at', | |
30 | + ], | |
31 | + 'integer', | |
32 | + ], | |
33 | + ]; | |
34 | + } | |
35 | + | |
36 | + /** | |
37 | + * @inheritdoc | |
38 | + */ | |
39 | + public function scenarios() | |
40 | + { | |
41 | + // bypass scenarios() implementation in the parent class | |
42 | + return Model::scenarios(); | |
43 | + } | |
44 | + | |
45 | + /** | |
46 | + * Creates data provider instance with search query applied | |
47 | + * | |
48 | + * @param array $params | |
49 | + * | |
50 | + * @return ActiveDataProvider | |
51 | + */ | |
52 | + public function search($params) | |
53 | + { | |
54 | + $query = Service::find(); | |
55 | + | |
56 | + // add conditions that should always apply here | |
57 | + | |
58 | + $dataProvider = new ActiveDataProvider([ | |
59 | + 'query' => $query, | |
60 | + ]); | |
61 | + | |
62 | + $this->load($params); | |
63 | + | |
64 | + if(!$this->validate()) { | |
65 | + // uncomment the following line if you do not want to return any records when validation fails | |
66 | + // $query->where('0=1'); | |
67 | + return $dataProvider; | |
68 | + } | |
69 | + | |
70 | + // grid filtering conditions | |
71 | + $query->andFilterWhere([ | |
72 | + 'service_id' => $this->service_id, | |
73 | + 'created_at' => $this->created_at, | |
74 | + 'updated_at' => $this->updated_at, | |
75 | + ]); | |
76 | + | |
63 | 77 | return $dataProvider; |
64 | 78 | } |
65 | - | |
66 | - // grid filtering conditions | |
67 | - $query->andFilterWhere([ | |
68 | - 'service_id' => $this->service_id, | |
69 | - 'created_at' => $this->created_at, | |
70 | - 'updated_at' => $this->updated_at, | |
71 | - ]); | |
72 | - | |
73 | - $query->andFilterWhere(['like', 'name', $this->name]) | |
74 | - ->andFilterWhere(['like', 'alias', $this->alias]) | |
75 | - ->andFilterWhere(['like', 'body', $this->body]) | |
76 | - ->andFilterWhere(['like', 'image', $this->image]) | |
77 | - ->andFilterWhere(['like', 'meta_title', $this->meta_title]) | |
78 | - ->andFilterWhere(['like', 'description', $this->description]) | |
79 | - ->andFilterWhere(['like', 'h1', $this->h1]) | |
80 | - ->andFilterWhere(['like', 'seo_text', $this->seo_text]); | |
81 | - | |
82 | - return $dataProvider; | |
83 | 79 | } |
84 | -} | ... | ... |
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 common\modules\language\behaviors\LanguageBehavior; |
6 | 7 | use Yii; |
7 | 8 | use yii\db\ActiveQuery; |
... | ... | @@ -13,8 +14,6 @@ |
13 | 14 | * @property integer $slider_image_id |
14 | 15 | * @property integer $slider_id |
15 | 16 | * @property string $image |
16 | - * @property string $alt | |
17 | - * @property string $title | |
18 | 17 | * @property string $url |
19 | 18 | * @property integer $status |
20 | 19 | * @property integer $sort |
... | ... | @@ -64,9 +63,6 @@ |
64 | 63 | ], |
65 | 64 | [ |
66 | 65 | [ |
67 | - 'image', | |
68 | - 'alt', | |
69 | - 'title', | |
70 | 66 | 'url', |
71 | 67 | ], |
72 | 68 | 'string', |
... | ... | @@ -88,6 +84,15 @@ |
88 | 84 | 'language' => [ |
89 | 85 | 'class' => LanguageBehavior::className(), |
90 | 86 | ], |
87 | + [ | |
88 | + 'class' => SaveImgBehavior::className(), | |
89 | + 'fields' => [ | |
90 | + [ | |
91 | + 'name' => 'image', | |
92 | + 'directory' => 'slider', | |
93 | + ], | |
94 | + ], | |
95 | + ], | |
91 | 96 | ]; |
92 | 97 | } |
93 | 98 | |
... | ... | @@ -100,8 +105,6 @@ |
100 | 105 | 'slider_image_id' => Yii::t('app', 'slider_image_id'), |
101 | 106 | 'slider_id' => Yii::t('app', 'slider_id'), |
102 | 107 | 'image' => Yii::t('app', 'image'), |
103 | - 'alt' => Yii::t('app', 'alt'), | |
104 | - 'title' => Yii::t('app', 'title'), | |
105 | 108 | 'url' => Yii::t('app', 'url'), |
106 | 109 | 'status' => Yii::t('app', 'status'), |
107 | 110 | 'sort' => Yii::t('app', 'sort'), |
... | ... | @@ -116,14 +119,4 @@ |
116 | 119 | return $this->hasOne(Slider::className(), [ 'slider_id' => 'slider_id' ]); |
117 | 120 | } |
118 | 121 | |
119 | - public function getImageFile() | |
120 | - { | |
121 | - return empty( $this->image ) ? NULL : '/storage/slider/' . $this->image; | |
122 | - } | |
123 | - | |
124 | - public function getImageUrl() | |
125 | - { | |
126 | - return empty( $this->image ) ? NULL : '/storage/slider/' . $this->image; | |
127 | - } | |
128 | - | |
129 | 122 | } | ... | ... |
common/models/SliderImageSearch.php
... | ... | @@ -34,9 +34,6 @@ |
34 | 34 | ], |
35 | 35 | [ |
36 | 36 | [ |
37 | - 'image', | |
38 | - 'alt', | |
39 | - 'title', | |
40 | 37 | 'url', |
41 | 38 | ], |
42 | 39 | 'safe', |
... | ... | @@ -88,25 +85,10 @@ |
88 | 85 | ]); |
89 | 86 | |
90 | 87 | $query->andFilterWhere([ |
91 | - 'like', | |
92 | - 'image', | |
93 | - $this->image, | |
94 | - ]) | |
95 | - ->andFilterWhere([ | |
96 | - 'like', | |
97 | - 'alt', | |
98 | - $this->alt, | |
99 | - ]) | |
100 | - ->andFilterWhere([ | |
101 | - 'like', | |
102 | - 'title', | |
103 | - $this->title, | |
104 | - ]) | |
105 | - ->andFilterWhere([ | |
106 | - 'like', | |
107 | - 'url', | |
108 | - $this->url, | |
109 | - ]); | |
88 | + 'like', | |
89 | + 'url', | |
90 | + $this->url, | |
91 | + ]); | |
110 | 92 | |
111 | 93 | return $dataProvider; |
112 | 94 | } | ... | ... |
common/modules/product/models/Brand.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\modules\product\models; | |
4 | - | |
5 | -use common\behaviors\SaveImgBehavior; | |
6 | -use common\modules\language\behaviors\LanguageBehavior; | |
7 | -use Yii; | |
8 | -use yii\db\ActiveQuery; | |
9 | -use yii\db\ActiveRecord; | |
10 | -use yii\web\Request; | |
11 | - | |
12 | -/** | |
13 | - * This is the model class for table "brand". | |
14 | - * | |
15 | - * @property integer $brand_id | |
16 | - | |
17 | - * @property string $alias | |
18 | - * @property string $image | |
19 | - * @property string $meta_title | |
20 | - * @property string $meta_desc | |
21 | - * @property string $meta_robots | |
22 | - * @property string $seo_text | |
23 | - * @property string $name | |
24 | - * | |
25 | - * @property Product[] $products | |
26 | - * * From language behavior * | |
27 | - * @property BrandLang $lang | |
28 | - * @property BrandLang[] $langs | |
29 | - * @property BrandLang $object_lang | |
30 | - * @property string $ownerKey | |
31 | - * @property string $langKey | |
32 | - * @method string getOwnerKey() | |
33 | - * @method void setOwnerKey(string $value) | |
34 | - * @method string getLangKey() | |
35 | - * @method void setLangKey(string $value) | |
36 | - * @method ActiveQuery getLangs() | |
37 | - * @method ActiveQuery getLang( integer $language_id ) | |
38 | - * @method BrandLang[] generateLangs() | |
39 | - * @method void loadLangs(Request $request, ActiveRecord[] $model_langs) | |
40 | - * @method bool linkLangs(ActiveRecord[] $model_langs) | |
41 | - * @method bool saveLangs(ActiveRecord[] $model_langs) | |
42 | - * * End language behavior * | |
43 | - */ | |
44 | -class Brand extends \yii\db\ActiveRecord | |
45 | -{ | |
46 | - public $_items_count = 0; | |
47 | - | |
2 | + | |
3 | + namespace common\modules\product\models; | |
4 | + | |
5 | + use common\behaviors\SaveImgBehavior; | |
6 | + use common\modules\language\behaviors\LanguageBehavior; | |
7 | + use Yii; | |
8 | + use yii\db\ActiveQuery; | |
9 | + use yii\db\ActiveRecord; | |
10 | + use yii\web\Request; | |
11 | + | |
48 | 12 | /** |
49 | - * @inheritdoc | |
13 | + * This is the model class for table "brand". | |
14 | + * @property integer $brand_id | |
15 | + * @property string $image | |
16 | + * @property bool $in_menu | |
17 | + * @property Product[] $products | |
18 | + * * From language behavior * | |
19 | + * @property BrandLang $lang | |
20 | + * @property BrandLang[] $langs | |
21 | + * @property BrandLang $object_lang | |
22 | + * @property string $ownerKey | |
23 | + * @property string $langKey | |
24 | + * @method string getOwnerKey() | |
25 | + * @method void setOwnerKey( string $value ) | |
26 | + * @method string getLangKey() | |
27 | + * @method void setLangKey( string $value ) | |
28 | + * @method ActiveQuery getLangs() | |
29 | + * @method ActiveQuery getLang( integer $language_id ) | |
30 | + * @method BrandLang[] generateLangs() | |
31 | + * @method void loadLangs( Request $request, ActiveRecord[] $model_langs ) | |
32 | + * @method bool linkLangs( ActiveRecord[] $model_langs ) | |
33 | + * @method bool saveLangs( ActiveRecord[] $model_langs ) | |
34 | + * * End language behavior * | |
50 | 35 | */ |
51 | - public static function tableName() | |
36 | + class Brand extends \yii\db\ActiveRecord | |
52 | 37 | { |
53 | - return 'brand'; | |
54 | - } | |
55 | - | |
56 | - | |
57 | - public function behaviors() | |
58 | - { | |
59 | - return [ | |
60 | - 'slug' => [ | |
61 | - 'class' => 'common\behaviors\Slug', | |
62 | - 'in_attribute' => 'name', | |
63 | - 'out_attribute' => 'alias', | |
64 | - 'translit' => true | |
65 | - ], | |
66 | - [ | |
67 | - 'class' => SaveImgBehavior::className(), | |
68 | - 'fields' => [ | |
69 | - [ | |
70 | - 'name' => 'image', | |
71 | - 'directory' => 'brand', | |
38 | + | |
39 | + public $_items_count = 0; | |
40 | + | |
41 | + /** | |
42 | + * @inheritdoc | |
43 | + */ | |
44 | + public static function tableName() | |
45 | + { | |
46 | + return 'brand'; | |
47 | + } | |
48 | + | |
49 | + public function behaviors() | |
50 | + { | |
51 | + return [ | |
52 | + [ | |
53 | + 'class' => SaveImgBehavior::className(), | |
54 | + 'fields' => [ | |
55 | + [ | |
56 | + 'name' => 'image', | |
57 | + 'directory' => 'brand', | |
58 | + ], | |
72 | 59 | ], |
73 | 60 | ], |
74 | - ], | |
75 | - 'language' => [ | |
76 | - 'class' => LanguageBehavior::className(), | |
77 | - ], | |
78 | - ]; | |
79 | - } | |
80 | - | |
81 | - /** | |
82 | - * @inheritdoc | |
83 | - */ | |
84 | - public function rules() | |
85 | - { | |
86 | - return [ | |
87 | - [['name'], 'string'], | |
88 | - [['meta_desc', 'seo_text'], 'string'], | |
89 | - [['alias', 'name'], 'string', 'max' => 250], | |
90 | - [['meta_title', 'image'], 'string', 'max' => 255], | |
91 | - [['meta_robots'], 'string', 'max' => 50], | |
92 | - ]; | |
93 | - } | |
94 | - | |
95 | - /** | |
96 | - * @inheritdoc | |
97 | - */ | |
98 | - public function attributeLabels() | |
99 | - { | |
100 | - return [ | |
101 | - 'name' => Yii::t('product', 'Name of the brand'), | |
102 | - 'brand_id' => Yii::t('product', 'Brand ID'), | |
103 | - 'alias' => Yii::t('product', 'Alias'), | |
104 | - 'image' => Yii::t('product', 'Image'), | |
105 | - 'imageUrl' => Yii::t('product', 'Image'), | |
106 | - 'meta_title' => Yii::t('product', 'Meta Title'), | |
107 | - 'meta_desc' => Yii::t('product', 'Meta Desc'), | |
108 | - 'meta_robots' => Yii::t('product', 'Meta Robots'), | |
109 | - 'seo_text' => Yii::t('product', 'Seo Text'), | |
110 | - ]; | |
111 | - } | |
112 | - | |
113 | - | |
114 | - | |
115 | - /** | |
116 | - * @return \yii\db\ActiveQuery | |
117 | - */ | |
118 | - public function getProducts() | |
119 | - { | |
120 | - return $this->hasMany(Product::className(), ['brand_id' => 'brand_id']); | |
61 | + 'language' => [ | |
62 | + 'class' => LanguageBehavior::className(), | |
63 | + ], | |
64 | + ]; | |
65 | + } | |
66 | + | |
67 | + /** | |
68 | + * @inheritdoc | |
69 | + */ | |
70 | + public function rules() | |
71 | + { | |
72 | + return [ | |
73 | + [ | |
74 | + [ 'in_menu' ], | |
75 | + 'boolean', | |
76 | + ], | |
77 | + ]; | |
78 | + } | |
79 | + | |
80 | + /** | |
81 | + * @inheritdoc | |
82 | + */ | |
83 | + public function attributeLabels() | |
84 | + { | |
85 | + return [ | |
86 | + 'brand_id' => Yii::t('product', 'Brand ID'), | |
87 | + 'image' => Yii::t('product', 'Image'), | |
88 | + ]; | |
89 | + } | |
90 | + | |
91 | + /** | |
92 | + * @return \yii\db\ActiveQuery | |
93 | + */ | |
94 | + public function getProducts() | |
95 | + { | |
96 | + return $this->hasMany(Product::className(), [ 'brand_id' => 'brand_id' ]); | |
97 | + } | |
121 | 98 | } |
122 | -} | ... | ... |
common/modules/product/models/BrandLang.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\modules\product\models; | |
4 | - | |
5 | -use common\modules\language\models\Language; | |
6 | -use Yii; | |
7 | - | |
8 | -/** | |
9 | - * This is the model class for table "brand_lang". | |
10 | - * | |
11 | - * @property integer $brand_id | |
12 | - * @property integer $language_id | |
13 | - * @property string $name | |
14 | - * @property string $meta_title | |
15 | - * @property string $meta_robots | |
16 | - * @property string $meta_desc | |
17 | - * @property string $seo_text | |
18 | - * | |
19 | - * @property Brand $brand | |
20 | - * @property Language $language | |
21 | - */ | |
22 | -class BrandLang extends \yii\db\ActiveRecord | |
23 | -{ | |
24 | 2 | |
25 | - public static function primaryKey() | |
26 | - { | |
27 | - return [ | |
28 | - 'brand_id', | |
29 | - 'language_id', | |
30 | - ]; | |
31 | - } | |
3 | + namespace common\modules\product\models; | |
4 | + | |
5 | + use common\modules\language\models\Language; | |
6 | + use Yii; | |
32 | 7 | |
33 | 8 | /** |
34 | - * @inheritdoc | |
35 | - */ | |
36 | - public static function tableName() | |
37 | - { | |
38 | - return 'brand_lang'; | |
39 | - } | |
40 | - | |
41 | - /** | |
42 | - * @inheritdoc | |
43 | - */ | |
44 | - public function rules() | |
45 | - { | |
46 | - return [ | |
47 | - [['name'], 'required'], | |
48 | - [['seo_text'], 'string'], | |
49 | - [['name', 'meta_title', 'meta_robots', 'meta_desc'], 'string', 'max' => 255], | |
50 | - [['brand_id', 'language_id'], 'unique', 'targetAttribute' => ['brand_id', 'language_id'], 'message' => 'The combination of Brand ID and Language ID has already been taken.'], | |
51 | - [['brand_id'], 'exist', 'skipOnError' => true, 'targetClass' => Brand::className(), 'targetAttribute' => ['brand_id' => 'brand_id']], | |
52 | - [['language_id'], 'exist', 'skipOnError' => true, 'targetClass' => Language::className(), 'targetAttribute' => ['language_id' => 'language_id']], | |
53 | - ]; | |
54 | - } | |
55 | - | |
56 | - /** | |
57 | - * @inheritdoc | |
58 | - */ | |
59 | - public function attributeLabels() | |
60 | - { | |
61 | - return [ | |
62 | - 'brand_id' => Yii::t('app', 'Brand ID'), | |
63 | - 'language_id' => Yii::t('app', 'Language ID'), | |
64 | - 'name' => Yii::t('app', 'Name'), | |
65 | - 'meta_title' => Yii::t('app', 'Meta Title'), | |
66 | - 'meta_robots' => Yii::t('app', 'Meta Robots'), | |
67 | - 'meta_desc' => Yii::t('app', 'Meta Desc'), | |
68 | - 'seo_text' => Yii::t('app', 'Seo Text'), | |
69 | - ]; | |
70 | - } | |
71 | - | |
72 | - /** | |
73 | - * @return \yii\db\ActiveQuery | |
74 | - */ | |
75 | - public function getBrand() | |
76 | - { | |
77 | - return $this->hasOne(Brand::className(), ['brand_id' => 'brand_id']); | |
78 | - } | |
79 | - | |
80 | - /** | |
81 | - * @return \yii\db\ActiveQuery | |
9 | + * This is the model class for table "brand_lang". | |
10 | + * @property integer $brand_id | |
11 | + * @property integer $language_id | |
12 | + * @property string $name | |
13 | + * @property string $meta_title | |
14 | + * @property string $meta_robots | |
15 | + * @property string $meta_desc | |
16 | + * @property string $seo_text | |
17 | + * @property string $alias | |
18 | + * @property Brand $brand | |
19 | + * @property Language $language | |
82 | 20 | */ |
83 | - public function getLanguage() | |
21 | + class BrandLang extends \yii\db\ActiveRecord | |
84 | 22 | { |
85 | - return $this->hasOne(Language::className(), ['language_id' => 'language_id']); | |
23 | + | |
24 | + public static function primaryKey() | |
25 | + { | |
26 | + return [ | |
27 | + 'brand_id', | |
28 | + 'language_id', | |
29 | + ]; | |
30 | + } | |
31 | + | |
32 | + /** | |
33 | + * @inheritdoc | |
34 | + */ | |
35 | + public static function tableName() | |
36 | + { | |
37 | + return 'brand_lang'; | |
38 | + } | |
39 | + | |
40 | + public function behaviors() | |
41 | + { | |
42 | + return [ | |
43 | + 'slug' => [ | |
44 | + 'class' => 'common\behaviors\Slug', | |
45 | + 'in_attribute' => 'name', | |
46 | + 'out_attribute' => 'alias', | |
47 | + 'translit' => true, | |
48 | + ], | |
49 | + ]; | |
50 | + } | |
51 | + | |
52 | + /** | |
53 | + * @inheritdoc | |
54 | + */ | |
55 | + public function rules() | |
56 | + { | |
57 | + return [ | |
58 | + [ | |
59 | + [ 'name' ], | |
60 | + 'required', | |
61 | + ], | |
62 | + [ | |
63 | + [ 'seo_text' ], | |
64 | + 'string', | |
65 | + ], | |
66 | + [ | |
67 | + [ | |
68 | + 'name', | |
69 | + 'meta_title', | |
70 | + 'meta_robots', | |
71 | + 'meta_desc', | |
72 | + 'alias', | |
73 | + ], | |
74 | + 'string', | |
75 | + 'max' => 255, | |
76 | + ], | |
77 | + [ | |
78 | + [ | |
79 | + 'brand_id', | |
80 | + 'language_id', | |
81 | + ], | |
82 | + 'unique', | |
83 | + 'targetAttribute' => [ | |
84 | + 'brand_id', | |
85 | + 'language_id', | |
86 | + ], | |
87 | + 'message' => 'The combination of Brand ID and Language ID has already been taken.', | |
88 | + ], | |
89 | + [ | |
90 | + [ 'brand_id' ], | |
91 | + 'exist', | |
92 | + 'skipOnError' => true, | |
93 | + 'targetClass' => Brand::className(), | |
94 | + 'targetAttribute' => [ 'brand_id' => 'brand_id' ], | |
95 | + ], | |
96 | + [ | |
97 | + [ 'language_id' ], | |
98 | + 'exist', | |
99 | + 'skipOnError' => true, | |
100 | + 'targetClass' => Language::className(), | |
101 | + 'targetAttribute' => [ 'language_id' => 'language_id' ], | |
102 | + ], | |
103 | + ]; | |
104 | + } | |
105 | + | |
106 | + /** | |
107 | + * @inheritdoc | |
108 | + */ | |
109 | + public function attributeLabels() | |
110 | + { | |
111 | + return [ | |
112 | + 'brand_id' => Yii::t('app', 'Brand ID'), | |
113 | + 'language_id' => Yii::t('app', 'Language ID'), | |
114 | + 'name' => Yii::t('app', 'Name'), | |
115 | + 'meta_title' => Yii::t('app', 'Meta Title'), | |
116 | + 'meta_robots' => Yii::t('app', 'Meta Robots'), | |
117 | + 'meta_desc' => Yii::t('app', 'Meta Desc'), | |
118 | + 'seo_text' => Yii::t('app', 'Seo Text'), | |
119 | + 'alias' => Yii::t('app', 'Alias'), | |
120 | + ]; | |
121 | + } | |
122 | + | |
123 | + /** | |
124 | + * @return \yii\db\ActiveQuery | |
125 | + */ | |
126 | + public function getBrand() | |
127 | + { | |
128 | + return $this->hasOne(Brand::className(), [ 'brand_id' => 'brand_id' ]); | |
129 | + } | |
130 | + | |
131 | + /** | |
132 | + * @return \yii\db\ActiveQuery | |
133 | + */ | |
134 | + public function getLanguage() | |
135 | + { | |
136 | + return $this->hasOne(Language::className(), [ 'language_id' => 'language_id' ]); | |
137 | + } | |
86 | 138 | } |
87 | -} | ... | ... |
common/modules/product/models/BrandSearch.php
... | ... | @@ -5,7 +5,6 @@ namespace common\modules\product\models; |
5 | 5 | use yii\base\Model; |
6 | 6 | use yii\data\ActiveDataProvider; |
7 | 7 | use yii\db\ActiveQuery; |
8 | -use yii\web\NotFoundHttpException; | |
9 | 8 | |
10 | 9 | /** |
11 | 10 | * BrandSearch represents the model behind the search form about `common\modules\product\models\Brand`. |
... | ... | @@ -20,7 +19,6 @@ class BrandSearch extends Brand |
20 | 19 | { |
21 | 20 | return [ |
22 | 21 | [['brand_id'], 'integer'], |
23 | - [['alias', 'image', 'meta_title', 'meta_desc', 'meta_robots', 'seo_text', 'brand_name'], 'safe'], | |
24 | 22 | ]; |
25 | 23 | } |
26 | 24 | |
... | ... | @@ -66,8 +64,7 @@ class BrandSearch extends Brand |
66 | 64 | $dataProvider->setSort([ |
67 | 65 | 'attributes' => [ |
68 | 66 | 'brand_name', |
69 | - 'alias' | |
70 | - ] | |
67 | + ], | |
71 | 68 | ]); |
72 | 69 | |
73 | 70 | // grid filtering conditions |
... | ... | @@ -75,17 +72,6 @@ class BrandSearch extends Brand |
75 | 72 | 'brand_id' => $this->brand_id, |
76 | 73 | ]); |
77 | 74 | |
78 | - | |
79 | - $query->andFilterWhere(['ilike', 'alias', $this->alias]) | |
80 | - ->andFilterWhere(['ilike', 'image', $this->image]) | |
81 | - ->andFilterWhere(['ilike', 'meta_title', $this->meta_title]) | |
82 | - ->andFilterWhere(['ilike', 'meta_desc', $this->meta_desc]) | |
83 | - ->andFilterWhere(['ilike', 'meta_robots', $this->meta_robots]) | |
84 | - ->andFilterWhere(['ilike', 'seo_text', $this->seo_text]); | |
85 | - if (!empty($this->brand_name)) { | |
86 | - $query->andFilterWhere(['ilike', 'name', $this->brand_name]); | |
87 | - } | |
88 | - | |
89 | 75 | $query->orderBy(['brand_id' => SORT_ASC]); |
90 | 76 | |
91 | 77 | return $dataProvider; |
... | ... | @@ -119,15 +105,4 @@ class BrandSearch extends Brand |
119 | 105 | |
120 | 106 | return $query; |
121 | 107 | } |
122 | - | |
123 | - public static function findByAlias($alias) { | |
124 | - /** @var CategoryQuery $query */ | |
125 | - $query = Brand::find() | |
126 | - ->andFilterWhere(['alias' => $alias]); | |
127 | - if (($model = $query->one()) !== null) { | |
128 | - return $model; | |
129 | - } else { | |
130 | - throw new NotFoundHttpException('The requested page does not exist.'); | |
131 | - } | |
132 | - } | |
133 | 108 | } | ... | ... |
common/modules/product/models/Category.php
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | |
3 | 3 | namespace common\modules\product\models; |
4 | 4 | |
5 | + use common\behaviors\SaveImgBehavior; | |
5 | 6 | use common\components\artboxtree\ArtboxTreeBehavior; |
6 | 7 | use common\components\artboxtree\ArtboxTreeHelper; |
7 | 8 | use common\modules\language\behaviors\LanguageBehavior; |
... | ... | @@ -20,13 +21,7 @@ |
20 | 21 | * @property string $path |
21 | 22 | * @property integer $depth |
22 | 23 | * @property string $image |
23 | - * @property string $meta_title | |
24 | - * @property string $meta_desc | |
25 | - * @property string $meta_robots | |
26 | - * @property string $seo_text | |
27 | 24 | * @property integer $product_unit_id |
28 | - * @property string $alias | |
29 | - * @property boolean $name | |
30 | 25 | * * From language behavior * |
31 | 26 | * @property CategoryLang $lang |
32 | 27 | * @property CategoryLang[] $langs |
... | ... | @@ -51,8 +46,6 @@ |
51 | 46 | class Category extends \yii\db\ActiveRecord |
52 | 47 | { |
53 | 48 | |
54 | - public $imageUpload; | |
55 | - | |
56 | 49 | public function behaviors() |
57 | 50 | { |
58 | 51 | return [ |
... | ... | @@ -61,15 +54,18 @@ |
61 | 54 | 'keyNameGroup' => NULL, |
62 | 55 | 'keyNamePath' => 'path', |
63 | 56 | ], |
64 | - 'slug' => [ | |
65 | - 'class' => 'common\behaviors\Slug', | |
66 | - 'in_attribute' => 'name', | |
67 | - 'out_attribute' => 'alias', | |
68 | - 'translit' => true, | |
69 | - ], | |
70 | 57 | 'language' => [ |
71 | 58 | 'class' => LanguageBehavior::className(), |
72 | 59 | ], |
60 | + [ | |
61 | + 'class' => SaveImgBehavior::className(), | |
62 | + 'fields' => [ | |
63 | + [ | |
64 | + 'name' => 'image', | |
65 | + 'directory' => 'brand', | |
66 | + ], | |
67 | + ], | |
68 | + ], | |
73 | 69 | ]; |
74 | 70 | } |
75 | 71 | |
... | ... | @@ -88,10 +84,6 @@ |
88 | 84 | { |
89 | 85 | return [ |
90 | 86 | [ |
91 | - [ 'name' ], | |
92 | - 'string', | |
93 | - ], | |
94 | - [ | |
95 | 87 | [ |
96 | 88 | 'parent_id', |
97 | 89 | 'depth', |
... | ... | @@ -102,42 +94,9 @@ |
102 | 94 | [ |
103 | 95 | [ |
104 | 96 | 'path', |
105 | - 'meta_desc', | |
106 | - 'h1', | |
107 | - 'seo_text', | |
108 | 97 | ], |
109 | 98 | 'string', |
110 | 99 | ], |
111 | - [ | |
112 | - [ | |
113 | - 'meta_title', | |
114 | - 'image', | |
115 | - ], | |
116 | - 'string', | |
117 | - 'max' => 255, | |
118 | - ], | |
119 | - [ | |
120 | - [ 'meta_robots' ], | |
121 | - 'string', | |
122 | - 'max' => 50, | |
123 | - ], | |
124 | - [ | |
125 | - [ | |
126 | - 'alias', | |
127 | - 'name', | |
128 | - ], | |
129 | - 'string', | |
130 | - 'max' => 250, | |
131 | - ], | |
132 | - [ | |
133 | - [ 'imageUpload' ], | |
134 | - 'safe', | |
135 | - ], | |
136 | - [ | |
137 | - [ 'imageUpload' ], | |
138 | - 'file', | |
139 | - 'extensions' => 'jpg, gif, png', | |
140 | - ], | |
141 | 100 | ]; |
142 | 101 | } |
143 | 102 | |
... | ... | @@ -153,14 +112,7 @@ |
153 | 112 | 'depth' => Yii::t('product', 'Depth'), |
154 | 113 | 'image' => Yii::t('product', 'Image'), |
155 | 114 | 'imageUrl' => Yii::t('product', 'Image'), |
156 | - 'meta_title' => Yii::t('product', 'Meta Title'), | |
157 | - 'meta_desc' => Yii::t('product', 'Meta Desc'), | |
158 | - 'meta_robots' => Yii::t('product', 'Meta Robots'), | |
159 | - 'h1' => Yii::t('product', 'h1'), | |
160 | - 'seo_text' => Yii::t('product', 'Seo Text'), | |
161 | 115 | 'product_unit_id' => Yii::t('product', 'Product Unit ID'), |
162 | - 'alias' => Yii::t('product', 'Alias'), | |
163 | - 'name' => Yii::t('product', 'Name'), | |
164 | 116 | 'remote_id' => Yii::t('product', 'Remote ID'), |
165 | 117 | ]; |
166 | 118 | } |
... | ... | @@ -220,16 +172,6 @@ |
220 | 172 | } |
221 | 173 | } |
222 | 174 | |
223 | - public function getImageFile() | |
224 | - { | |
225 | - return empty( $this->image ) ? '/images/no_photo.png' : Yii::getAlias('@imagesDir/categories/' . $this->image); | |
226 | - } | |
227 | - | |
228 | - public function getImageUrl() | |
229 | - { | |
230 | - return empty( $this->image ) ? '/images/no_photo.png' : Yii::getAlias('@imagesUrl/categories/' . $this->image); | |
231 | - } | |
232 | - | |
233 | 175 | public function beforeSave($insert) |
234 | 176 | { |
235 | 177 | if(parent::beforeSave($insert)) { | ... | ... |
common/modules/product/models/CategoryLang.php
... | ... | @@ -38,6 +38,18 @@ class CategoryLang extends \yii\db\ActiveRecord |
38 | 38 | return 'category_lang'; |
39 | 39 | } |
40 | 40 | |
41 | + public function behaviors() | |
42 | + { | |
43 | + return [ | |
44 | + 'slug' => [ | |
45 | + 'class' => 'common\behaviors\Slug', | |
46 | + 'in_attribute' => 'name', | |
47 | + 'out_attribute' => 'alias', | |
48 | + 'translit' => true, | |
49 | + ], | |
50 | + ]; | |
51 | + } | |
52 | + | |
41 | 53 | /** |
42 | 54 | * @inheritdoc |
43 | 55 | */ | ... | ... |
common/modules/product/models/CategorySearch.php
... | ... | @@ -5,7 +5,6 @@ namespace common\modules\product\models; |
5 | 5 | use common\components\artboxtree\ArtboxTreeHelper; |
6 | 6 | use yii\base\Model; |
7 | 7 | use yii\data\ActiveDataProvider; |
8 | -use yii\web\NotFoundHttpException; | |
9 | 8 | |
10 | 9 | /** |
11 | 10 | * CategorySearch represents the model behind the search form about `common\modules\product\models\Category`. |
... | ... | @@ -24,7 +23,6 @@ class CategorySearch extends Category |
24 | 23 | { |
25 | 24 | return [ |
26 | 25 | [['category_id', 'parent_id', 'depth', 'product_unit_id'], 'integer'], |
27 | - [['path', 'image', 'meta_title', 'meta_desc', 'meta_robots', 'seo_text', 'alias'], 'safe'], | |
28 | 26 | ]; |
29 | 27 | } |
30 | 28 | |
... | ... | @@ -68,25 +66,12 @@ class CategorySearch extends Category |
68 | 66 | 'category.parent_id' => $this->parent_id, |
69 | 67 | 'category.product_unit_id' => $this->product_unit_id, |
70 | 68 | ]); |
71 | - | |
72 | - $query->andFilterWhere(['like', 'category.alias', $this->alias]); | |
73 | - | |
69 | + | |
74 | 70 | $query->orderBy(['category.path' => SORT_ASC, 'category.depth' => SORT_ASC, 'category.category_id' => SORT_ASC]); |
75 | 71 | |
76 | 72 | return $dataProvider; |
77 | 73 | } |
78 | 74 | |
79 | - public static function findByAlias($alias) { | |
80 | - /** @var CategoryQuery $query */ | |
81 | - $query = Category::find() | |
82 | - ->andFilterWhere(['alias' => $alias]); | |
83 | - if (($model = $query->one()) !== null) { | |
84 | - return $model; | |
85 | - } else { | |
86 | - throw new NotFoundHttpException('The requested page does not exist.'); | |
87 | - } | |
88 | - } | |
89 | - | |
90 | 75 | public static function findByRemoteID($id) { |
91 | 76 | /** @var CategoryQuery $query */ |
92 | 77 | $query = Category::find() | ... | ... |
common/modules/product/models/Product.php
... | ... | @@ -2,7 +2,6 @@ |
2 | 2 | |
3 | 3 | namespace common\modules\product\models; |
4 | 4 | |
5 | - use common\behaviors\Slug; | |
6 | 5 | use common\models\ProductCertificate; |
7 | 6 | use common\models\ProductSpec; |
8 | 7 | use common\models\ProductToRating; |
... | ... | @@ -19,27 +18,24 @@ |
19 | 18 | |
20 | 19 | /** |
21 | 20 | * This is the model class for table "{{%product}}". |
22 | - * @property string $name | |
23 | 21 | * @property integer $brand_id |
24 | 22 | * @property integer $product_id |
25 | 23 | * @property Category $category |
26 | - * @property array $categories | |
27 | - * @property array of ProductVariant $variants | |
24 | + * @property Category[] $categories | |
25 | + * @property ProductVariant[] $variants | |
28 | 26 | * @property ProductVariant $variant |
29 | 27 | * @property ProductImage $image |
30 | - * @property array $images | |
28 | + * @property ProductImage[] $images | |
31 | 29 | * @property boolean $is_top |
32 | 30 | * @property boolean $is_new |
33 | 31 | * @property boolean $akciya |
34 | 32 | * @property ProductToRating $averageRating |
35 | 33 | * @property array $properties |
36 | 34 | * @property ProductVariant $enabledVariant |
37 | - * @property array $enabledVariants | |
35 | + * @property ProductVariant[] $enabledVariants | |
38 | 36 | * @property string $video |
39 | - * @property string $description | |
40 | 37 | * @property TaxOption[] $options |
41 | 38 | * @property Brand $brand |
42 | - * @property ProductVariant[] $variants | |
43 | 39 | * @property ProductSpec $productSpec |
44 | 40 | * @property ProductCertificate[] $productCertificates |
45 | 41 | * * From language behavior * |
... | ... | @@ -80,12 +76,6 @@ |
80 | 76 | [ |
81 | 77 | 'class' => FilterBehavior::className(), |
82 | 78 | ], |
83 | - [ | |
84 | - 'class' => Slug::className(), | |
85 | - 'in_attribute' => 'name', | |
86 | - 'out_attribute' => 'alias', | |
87 | - 'translit' => true, | |
88 | - ], | |
89 | 79 | 'language' => [ |
90 | 80 | 'class' => LanguageBehavior::className(), |
91 | 81 | ], |
... | ... | @@ -111,16 +101,6 @@ |
111 | 101 | 'integer', |
112 | 102 | ], |
113 | 103 | [ |
114 | - [ 'name' ], | |
115 | - 'string', | |
116 | - 'max' => 150, | |
117 | - ], | |
118 | - [ | |
119 | - [ 'alias' ], | |
120 | - 'string', | |
121 | - 'max' => 250, | |
122 | - ], | |
123 | - [ | |
124 | 104 | [ |
125 | 105 | 'categories', |
126 | 106 | 'variants', |
... | ... | @@ -132,7 +112,6 @@ |
132 | 112 | ], |
133 | 113 | [ |
134 | 114 | [ |
135 | - 'description', | |
136 | 115 | 'video', |
137 | 116 | ], |
138 | 117 | 'safe', |
... | ... | @@ -154,29 +133,22 @@ |
154 | 133 | public function attributeLabels() |
155 | 134 | { |
156 | 135 | return [ |
157 | - 'product_id' => Yii::t('product', 'ID'), | |
158 | - 'name' => Yii::t('product', 'Name'), | |
159 | - 'brand_id' => Yii::t('product', 'Brand'), | |
160 | - 'categories' => Yii::t('product', 'Categories'), | |
136 | + 'product_id' => Yii::t('product', 'ID'), | |
137 | + 'brand_id' => Yii::t('product', 'Brand'), | |
138 | + 'categories' => Yii::t('product', 'Categories'), | |
161 | 139 | // relation behavior field |
162 | - 'category' => Yii::t('product', 'Category'), | |
140 | + 'category' => Yii::t('product', 'Category'), | |
163 | 141 | // relation behavior field |
164 | - 'image' => Yii::t('product', 'Image'), | |
165 | - 'images' => Yii::t('product', 'Images'), | |
166 | - 'description' => Yii::t('product', 'Description'), | |
167 | - 'video' => Yii::t('product', 'Video embeded'), | |
168 | - 'variants' => Yii::t('product', 'Variants'), | |
169 | - 'is_top' => Yii::t('product', 'Is top'), | |
170 | - 'is_new' => Yii::t('product', 'Is new'), | |
171 | - 'akciya' => Yii::t('product', 'Is promo'), | |
142 | + 'image' => Yii::t('product', 'Image'), | |
143 | + 'images' => Yii::t('product', 'Images'), | |
144 | + 'video' => Yii::t('product', 'Video embeded'), | |
145 | + 'variants' => Yii::t('product', 'Variants'), | |
146 | + 'is_top' => Yii::t('product', 'Is top'), | |
147 | + 'is_new' => Yii::t('product', 'Is new'), | |
148 | + 'akciya' => Yii::t('product', 'Is promo'), | |
172 | 149 | ]; |
173 | 150 | } |
174 | 151 | |
175 | - public function getUrl() | |
176 | - { | |
177 | - return '/product/' . $this->alias; | |
178 | - } | |
179 | - | |
180 | 152 | /** |
181 | 153 | * @return \yii\db\ActiveQuery |
182 | 154 | */ |
... | ... | @@ -269,7 +241,7 @@ |
269 | 241 | |
270 | 242 | public function getFullName() |
271 | 243 | { |
272 | - return empty( $this->brand ) ? $this->name : $this->brand->name . ' ' . $this->name; | |
244 | + return empty( $this->brand ) ? $this->lang->name : $this->brand->lang->name . ' ' . $this->lang->name; | |
273 | 245 | } |
274 | 246 | |
275 | 247 | public function getCategories() |
... | ... | @@ -288,7 +260,7 @@ |
288 | 260 | { |
289 | 261 | $result = []; |
290 | 262 | foreach($this->categories as $category) { |
291 | - $result[] = $category->name; | |
263 | + $result[] = $category->lang->name; | |
292 | 264 | } |
293 | 265 | return $result; |
294 | 266 | } | ... | ... |
common/modules/product/models/ProductLang.php
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | |
3 | 3 | namespace common\modules\product\models; |
4 | 4 | |
5 | +use common\behaviors\Slug; | |
5 | 6 | use common\modules\language\models\Language; |
6 | 7 | use Yii; |
7 | 8 | |
... | ... | @@ -12,6 +13,7 @@ use Yii; |
12 | 13 | * @property integer $language_id |
13 | 14 | * @property string $name |
14 | 15 | * @property string $description |
16 | + * @property string $alias | |
15 | 17 | * |
16 | 18 | * @property Language $language |
17 | 19 | * @property Product $product |
... | ... | @@ -35,6 +37,18 @@ class ProductLang extends \yii\db\ActiveRecord |
35 | 37 | return 'product_lang'; |
36 | 38 | } |
37 | 39 | |
40 | + public function behaviors() | |
41 | + { | |
42 | + return [ | |
43 | + 'slug' => [ | |
44 | + 'class' => 'common\behaviors\Slug', | |
45 | + 'in_attribute' => 'name', | |
46 | + 'out_attribute' => 'alias', | |
47 | + 'translit' => true, | |
48 | + ], | |
49 | + ]; | |
50 | + } | |
51 | + | |
38 | 52 | /** |
39 | 53 | * @inheritdoc |
40 | 54 | */ |
... | ... | @@ -43,7 +57,7 @@ class ProductLang extends \yii\db\ActiveRecord |
43 | 57 | return [ |
44 | 58 | [['name'], 'required'], |
45 | 59 | [['description'], 'string'], |
46 | - [['name'], 'string', 'max' => 255], | |
60 | + [['name', 'alias'], 'string', 'max' => 255], | |
47 | 61 | [['product_id', 'language_id'], 'unique', 'targetAttribute' => ['product_id', 'language_id'], 'message' => 'The combination of Product ID and Language ID has already been taken.'], |
48 | 62 | [['language_id'], 'exist', 'skipOnError' => true, 'targetClass' => Language::className(), 'targetAttribute' => ['language_id' => 'language_id']], |
49 | 63 | [['product_id'], 'exist', 'skipOnError' => true, 'targetClass' => Product::className(), 'targetAttribute' => ['product_id' => 'product_id']], |
... | ... | @@ -60,6 +74,7 @@ class ProductLang extends \yii\db\ActiveRecord |
60 | 74 | 'language_id' => Yii::t('app', 'Language ID'), |
61 | 75 | 'name' => Yii::t('app', 'Name'), |
62 | 76 | 'description' => Yii::t('app', 'Description'), |
77 | + 'alias' => Yii::t('app', 'Alias'), | |
63 | 78 | ]; |
64 | 79 | } |
65 | 80 | ... | ... |
common/modules/product/models/ProductSearch.php
... | ... | @@ -4,8 +4,6 @@ namespace common\modules\product\models; |
4 | 4 | |
5 | 5 | use yii\base\Model; |
6 | 6 | use yii\data\ActiveDataProvider; |
7 | -use yii\db\ActiveQuery; | |
8 | -use yii\web\NotFoundHttpException; | |
9 | 7 | |
10 | 8 | /** |
11 | 9 | * ProductSearch represents the model behind the search form about `common\modules\product\models\Product`. |
... | ... | @@ -33,7 +31,7 @@ class ProductSearch extends Product |
33 | 31 | public function rules() |
34 | 32 | { |
35 | 33 | return [ |
36 | - [['name', 'brand_name', 'brand_id', 'category_id', 'category_name', 'variant_sku'], 'safe'], | |
34 | + [['brand_name', 'brand_id', 'category_id', 'category_name', 'variant_sku'], 'safe'], | |
37 | 35 | [['brand_id', 'product_id'], 'integer'], |
38 | 36 | [['is_top', 'is_new', 'akciya'], 'boolean'], |
39 | 37 | ]; |
... | ... | @@ -60,7 +58,7 @@ class ProductSearch extends Product |
60 | 58 | |
61 | 59 | $query = Product::find(); |
62 | 60 | |
63 | - $query->joinWith(['brand', 'categories', 'variant']); | |
61 | +// $query->joinWith(['brand', 'categories', 'variant']); | |
64 | 62 | |
65 | 63 | $query->groupBy(['product.product_id']); |
66 | 64 | |
... | ... | @@ -72,19 +70,18 @@ class ProductSearch extends Product |
72 | 70 | return $dataProvider; |
73 | 71 | } |
74 | 72 | |
75 | - $dataProvider->setSort([ | |
76 | - 'attributes' => [ | |
77 | - 'name', | |
78 | - 'brand_name' => [ | |
79 | - 'asc' => ['brand.name' => SORT_ASC], | |
80 | - 'desc' => ['brand.name' => SORT_DESC], | |
81 | - 'default' => SORT_DESC, | |
82 | - 'label' => 'Brand name', | |
83 | - ], | |
84 | - 'category_name', | |
85 | - 'variant_sku', | |
86 | - ] | |
87 | - ]); | |
73 | +// $dataProvider->setSort([ | |
74 | +// 'attributes' => [ | |
75 | +// 'brand_name' => [ | |
76 | +// 'asc' => ['brand.name' => SORT_ASC], | |
77 | +// 'desc' => ['brand.name' => SORT_DESC], | |
78 | +// 'default' => SORT_DESC, | |
79 | +// 'label' => 'Brand name', | |
80 | +// ], | |
81 | +// 'category_name', | |
82 | +// 'variant_sku', | |
83 | +// ] | |
84 | +// ]); | |
88 | 85 | |
89 | 86 | if (isset($this->is_top)) { |
90 | 87 | $query->andFilterWhere([ |
... | ... | @@ -104,28 +101,16 @@ class ProductSearch extends Product |
104 | 101 | $query->andFilterWhere([ |
105 | 102 | 'product.brand_id' => $this->brand_id, |
106 | 103 | 'product.product_id' => $this->product_id, |
107 | - 'product_category.category_id' => $this->category_id | |
104 | +// 'product_category.category_id' => $this->category_id | |
108 | 105 | ]); |
109 | 106 | |
110 | - $query->andFilterWhere(['ilike', 'product.name', $this->name]); | |
111 | - $query->andFilterWhere(['ilike', 'brand.name', $this->brand_name]); | |
112 | - $query->andFilterWhere(['ilike', 'category.name', $this->category_name]); | |
113 | - $query->andFilterWhere(['ilike', 'product_variant.sku', $this->variant_sku]); | |
107 | +// $query->andFilterWhere(['ilike', 'brand.name', $this->brand_name]); | |
108 | +// $query->andFilterWhere(['ilike', 'category.name', $this->category_name]); | |
109 | +// $query->andFilterWhere(['ilike', 'product_variant.sku', $this->variant_sku]); | |
114 | 110 | |
115 | 111 | return $dataProvider; |
116 | 112 | } |
117 | 113 | |
118 | - public static function findByAlias($alias) { | |
119 | - /** @var ActiveQuery $query */ | |
120 | - $query = Product::find(); | |
121 | - $query->andFilterWhere(['alias' => $alias]); | |
122 | - if (($model = $query->one()) !== null) { | |
123 | - return $model; | |
124 | - } else { | |
125 | - throw new NotFoundHttpException('The requested product does not exist.'); | |
126 | - } | |
127 | - } | |
128 | - | |
129 | 114 | public static function findByRemoteID($id) { |
130 | 115 | /** @var CategoryQuery $query */ |
131 | 116 | $query = Product::find() | ... | ... |
common/modules/product/models/ProductUnit.php
... | ... | @@ -12,8 +12,6 @@ use yii\web\Request; |
12 | 12 | * This is the model class for table "product_unit". |
13 | 13 | * |
14 | 14 | * @property integer $product_unit_id |
15 | - * @property string $name | |
16 | - * @property string $code | |
17 | 15 | * @property boolean $is_default |
18 | 16 | * |
19 | 17 | * @property Category[] $categories |
... | ... | @@ -62,10 +60,7 @@ class ProductUnit extends \yii\db\ActiveRecord |
62 | 60 | public function rules() |
63 | 61 | { |
64 | 62 | return [ |
65 | - [['name', 'code'], 'required'], | |
66 | 63 | [['is_default'], 'boolean'], |
67 | - [['name'], 'string', 'max' => 255], | |
68 | - [['code'], 'string', 'max' => 50], | |
69 | 64 | ]; |
70 | 65 | } |
71 | 66 | |
... | ... | @@ -76,8 +71,6 @@ class ProductUnit extends \yii\db\ActiveRecord |
76 | 71 | { |
77 | 72 | return [ |
78 | 73 | 'product_unit_id' => Yii::t('product', 'Product Unit ID'), |
79 | - 'name' => Yii::t('product', 'Name'), | |
80 | - 'code' => Yii::t('product', 'Code'), | |
81 | 74 | 'is_default' => Yii::t('product', 'Is Default'), |
82 | 75 | ]; |
83 | 76 | } | ... | ... |
common/modules/product/models/ProductUnitSearch.php
... | ... | @@ -23,7 +23,6 @@ class ProductUnitSearch extends ProductUnit |
23 | 23 | { |
24 | 24 | return [ |
25 | 25 | [['product_unit_id'], 'integer'], |
26 | - [['name', 'code'], 'safe'], | |
27 | 26 | [['is_default'], 'boolean'], |
28 | 27 | ]; |
29 | 28 | } |
... | ... | @@ -68,9 +67,6 @@ class ProductUnitSearch extends ProductUnit |
68 | 67 | 'is_default' => $this->is_default, |
69 | 68 | ]); |
70 | 69 | |
71 | - $query->andFilterWhere(['like', 'name', $this->name]) | |
72 | - ->andFilterWhere(['like', 'code', $this->code]); | |
73 | - | |
74 | 70 | return $dataProvider; |
75 | 71 | } |
76 | 72 | } | ... | ... |
common/modules/product/models/ProductVariant.php
... | ... | @@ -15,7 +15,6 @@ |
15 | 15 | * This is the model class for table "product_variant". |
16 | 16 | * @property integer $product_variant_id |
17 | 17 | * @property integer $product_id |
18 | - * @property string $name | |
19 | 18 | * @property string $remote_id |
20 | 19 | * @property string $sku |
21 | 20 | * @property double $price |
... | ... | @@ -26,6 +25,7 @@ |
26 | 25 | * @property array $images |
27 | 26 | * @property TaxOption[] $options |
28 | 27 | * @property ProductUnit $productUnit |
28 | + * @property Product $product | |
29 | 29 | * * From language behavior * |
30 | 30 | * @property ProductVariantLang $lang |
31 | 31 | * @property ProductVariantLang[] $langs |
... | ... | @@ -47,20 +47,10 @@ |
47 | 47 | class ProductVariant extends \yii\db\ActiveRecord |
48 | 48 | { |
49 | 49 | |
50 | - /**just for rukzachok**/ | |
51 | - public $count; | |
52 | - | |
53 | 50 | public $sum_cost; |
54 | 51 | |
55 | 52 | public $product_name; |
56 | 53 | |
57 | - //public $image; | |
58 | - public $translit; | |
59 | - | |
60 | - public $translit_rubric; | |
61 | - | |
62 | - private $data; | |
63 | - | |
64 | 54 | /** @var array $_images */ |
65 | 55 | public $imagesUpload = ''; |
66 | 56 | |
... | ... | @@ -111,7 +101,6 @@ |
111 | 101 | ], |
112 | 102 | [ |
113 | 103 | [ |
114 | - 'name', | |
115 | 104 | 'sku', |
116 | 105 | ], |
117 | 106 | 'string', |
... | ... | @@ -147,7 +136,6 @@ |
147 | 136 | return [ |
148 | 137 | 'product_variant_id' => Yii::t('product', 'Product Variant ID'), |
149 | 138 | 'product_id' => Yii::t('product', 'Product ID'), |
150 | - 'name' => Yii::t('product', 'Name'), | |
151 | 139 | 'sku' => Yii::t('product', 'Sku'), |
152 | 140 | 'price' => Yii::t('product', 'Price'), |
153 | 141 | 'price_old' => Yii::t('product', 'Price Old'), |
... | ... | @@ -234,7 +222,7 @@ |
234 | 222 | |
235 | 223 | public function getFullname() |
236 | 224 | { |
237 | - return empty( $this->product ) ? NULL : ( $this->product->name . ( empty( $this->name ) ? '' : ' ' . $this->name ) ); | |
225 | + return empty( $this->product ) ? NULL : ( $this->product->lang->name . ( empty( $this->lang->name ) ? '' : ' ' . $this->lang->name ) ); | |
238 | 226 | } |
239 | 227 | |
240 | 228 | public function getImagesHTML() | ... | ... |
common/modules/product/models/ProductVariantListSearch.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\modules\product\models; | |
4 | - | |
5 | -use yii\base\Model; | |
6 | -use yii\data\ActiveDataProvider; | |
7 | - | |
8 | -/** | |
9 | - * ProductVariantSearch represents the model behind the search form about `backend\models\ProductVariant`. | |
10 | - */ | |
11 | -class ProductVariantListSearch extends ProductVariant | |
12 | -{ | |
13 | - public function behaviors() | |
14 | - { | |
15 | - return []; | |
16 | - } | |
2 | + | |
3 | + namespace common\modules\product\models; | |
4 | + | |
5 | + use yii\base\Model; | |
6 | + use yii\data\ActiveDataProvider; | |
17 | 7 | |
18 | 8 | /** |
19 | - * @inheritdoc | |
20 | - */ | |
21 | - public function rules() | |
22 | - { | |
23 | - return [ | |
24 | - [['product_variant_id', 'product_id', 'product_unit_id'], 'integer'], | |
25 | - [['name', 'sku', 'remote_id'], 'safe'], | |
26 | - [['price', 'price_old', 'stock'], 'number'], | |
27 | - ]; | |
28 | - } | |
29 | - | |
30 | - /** | |
31 | - * @inheritdoc | |
32 | - */ | |
33 | - public function scenarios() | |
34 | - { | |
35 | - // bypass scenarios() implementation in the parent class | |
36 | - return Model::scenarios(); | |
37 | - } | |
38 | - | |
39 | - /** | |
40 | - * Creates data provider instance with search query applied | |
41 | - * | |
42 | - * @param array $params | |
43 | - * | |
44 | - * @return ActiveDataProvider | |
9 | + * ProductVariantSearch represents the model behind the search form about | |
10 | + * `backend\models\ProductVariant`. | |
45 | 11 | */ |
46 | - public function search($params, $product_id = false) | |
12 | + class ProductVariantListSearch extends ProductVariant | |
47 | 13 | { |
48 | - $query = ProductVariant::find(); | |
49 | - | |
50 | - // add conditions that should always apply here | |
51 | - | |
52 | - $dataProvider = new ActiveDataProvider([ | |
53 | - 'query' => $query, | |
54 | - ]); | |
55 | - | |
56 | - $this->load($params); | |
57 | - | |
58 | - if (!$this->validate()) { | |
59 | - // uncomment the following line if you do not want to return any records when validation fails | |
60 | - // $query->where('0=1'); | |
61 | - return $dataProvider; | |
14 | + | |
15 | + public function behaviors() | |
16 | + { | |
17 | + return []; | |
18 | + } | |
19 | + | |
20 | + /** | |
21 | + * @inheritdoc | |
22 | + */ | |
23 | + public function rules() | |
24 | + { | |
25 | + return [ | |
26 | + [ | |
27 | + [ | |
28 | + 'product_variant_id', | |
29 | + 'product_id', | |
30 | + 'product_unit_id', | |
31 | + ], | |
32 | + 'integer', | |
33 | + ], | |
34 | + [ | |
35 | + [ | |
36 | + 'sku', | |
37 | + 'remote_id', | |
38 | + ], | |
39 | + 'safe', | |
40 | + ], | |
41 | + [ | |
42 | + [ | |
43 | + 'price', | |
44 | + 'price_old', | |
45 | + 'stock', | |
46 | + ], | |
47 | + 'number', | |
48 | + ], | |
49 | + ]; | |
62 | 50 | } |
63 | - | |
64 | - if($product_id){ | |
51 | + | |
52 | + /** | |
53 | + * @inheritdoc | |
54 | + */ | |
55 | + public function scenarios() | |
56 | + { | |
57 | + // bypass scenarios() implementation in the parent class | |
58 | + return Model::scenarios(); | |
59 | + } | |
60 | + | |
61 | + /** | |
62 | + * Creates data provider instance with search query applied | |
63 | + * | |
64 | + * @param array $params | |
65 | + * | |
66 | + * @return ActiveDataProvider | |
67 | + */ | |
68 | + public function search($params, $product_id = false) | |
69 | + { | |
70 | + $query = ProductVariant::find(); | |
71 | + | |
72 | + // add conditions that should always apply here | |
73 | + | |
74 | + $dataProvider = new ActiveDataProvider([ | |
75 | + 'query' => $query, | |
76 | + ]); | |
77 | + | |
78 | + $this->load($params); | |
79 | + | |
80 | + if(!$this->validate()) { | |
81 | + // uncomment the following line if you do not want to return any records when validation fails | |
82 | + // $query->where('0=1'); | |
83 | + return $dataProvider; | |
84 | + } | |
85 | + | |
86 | + if($product_id) { | |
87 | + $query->andFilterWhere([ | |
88 | + 'product_id' => $product_id, | |
89 | + ]); | |
90 | + } | |
91 | + | |
92 | + // grid filtering conditions | |
65 | 93 | $query->andFilterWhere([ |
66 | - 'product_id' => $product_id, | |
94 | + 'product_variant_id' => $this->product_variant_id, | |
95 | + 'price' => $this->price, | |
96 | + 'price_old' => $this->price_old, | |
97 | + 'stock' => $this->stock, | |
98 | + 'product_unit_id' => $this->product_unit_id, | |
67 | 99 | ]); |
100 | + | |
101 | + $query->andFilterWhere([ | |
102 | + 'like', | |
103 | + 'sku', | |
104 | + $this->sku, | |
105 | + ]) | |
106 | + ->andFilterWhere([ | |
107 | + 'like', | |
108 | + 'remote_id', | |
109 | + $this->remote_id, | |
110 | + ]); | |
111 | + | |
112 | + return $dataProvider; | |
68 | 113 | } |
69 | - | |
70 | - // grid filtering conditions | |
71 | - $query->andFilterWhere([ | |
72 | - 'product_variant_id' => $this->product_variant_id, | |
73 | - 'price' => $this->price, | |
74 | - 'price_old' => $this->price_old, | |
75 | - 'stock' => $this->stock, | |
76 | - 'product_unit_id' => $this->product_unit_id, | |
77 | - ]); | |
78 | - | |
79 | - $query->andFilterWhere(['like', 'name', $this->name]) | |
80 | - ->andFilterWhere(['like', 'sku', $this->sku]) | |
81 | - ->andFilterWhere(['like', 'remote_id', $this->remote_id]); | |
82 | - | |
83 | - return $dataProvider; | |
84 | 114 | } |
85 | -} | ... | ... |
common/modules/product/views/manage/_form.php
... | ... | @@ -29,9 +29,6 @@ |
29 | 29 | 'options' => [ 'enctype' => 'multipart/form-data' ], |
30 | 30 | ]); ?> |
31 | 31 | |
32 | - <?= $form->field($model, 'name') | |
33 | - ->textInput([ 'maxlength' => true ]) ?> | |
34 | - | |
35 | 32 | <?= $form->field($model, 'is_top') |
36 | 33 | ->checkbox([ 'label' => 'ТОП' ]) ?> |
37 | 34 | <?= $form->field($model, 'is_new') |
... | ... | @@ -39,25 +36,18 @@ |
39 | 36 | <?= $form->field($model, 'akciya') |
40 | 37 | ->checkbox([ 'label' => 'Акционный' ]) ?> |
41 | 38 | |
42 | - <?= $form->field($model, 'description') | |
43 | - ->widget(\mihaildev\ckeditor\CKEditor::className(), [ | |
44 | - 'editorOptions' => [ | |
45 | - 'preset' => 'full', | |
46 | - 'inline' => false, | |
47 | - ], | |
48 | - ]); ?> | |
49 | 39 | <?= $form->field($model, 'video') |
50 | 40 | ->textarea(); ?> |
51 | 41 | |
52 | 42 | <?= $form->field($model, 'brand_id') |
53 | 43 | ->dropDownList(ArrayHelper::map(ProductHelper::getBrands() |
54 | - ->all(), 'brand_id', 'name'), [ | |
44 | + ->all(), 'brand_id', 'brand_id'), [ | |
55 | 45 | 'prompt' => Yii::t('product', 'Select brand'), |
56 | 46 | ]) ?> |
57 | 47 | |
58 | 48 | <?= $form->field($model, 'categories') |
59 | 49 | ->widget(Select2::className(), [ |
60 | - 'data' => ArtboxTreeHelper::treeMap(ProductHelper::getCategories(), 'category_id', 'name'), | |
50 | + 'data' => ArtboxTreeHelper::treeMap(ProductHelper::getCategories(), 'category_id', 'category_id'), | |
61 | 51 | 'language' => 'ru', |
62 | 52 | 'options' => [ |
63 | 53 | 'placeholder' => Yii::t('product', 'Select categories'), |
... | ... | @@ -123,25 +113,17 @@ |
123 | 113 | <?php if(isset( $groups )) : ?> |
124 | 114 | <?php foreach($groups->all() as $group) : ?> |
125 | 115 | <?= $form->field($model, 'options') |
126 | - ->checkboxList(ArrayHelper::map($group->options, 'tax_option_id', 'value'), [ | |
116 | + ->checkboxList(ArrayHelper::map($group->options, 'tax_option_id', 'tax_option_id'), [ | |
127 | 117 | 'multiple' => true, |
128 | 118 | 'unselect' => NULL, |
129 | 119 | ]) |
130 | - ->label($group->name); ?> | |
120 | + ->label($group->tax_group_id); ?> | |
131 | 121 | <?php endforeach ?> |
132 | 122 | <?php endif ?> |
133 | 123 | |
134 | 124 | <hr> |
135 | 125 | |
136 | 126 | <?php |
137 | - echo $form->field($product_spec, 'tech_spec_text') | |
138 | - ->widget(\mihaildev\ckeditor\CKEditor::className(), [ | |
139 | - 'editorOptions' => [ | |
140 | - 'preset' => 'full', | |
141 | - 'inline' => false, | |
142 | - ], | |
143 | - ]); | |
144 | - | |
145 | 127 | echo $form->field($product_spec, 'techCharFile') |
146 | 128 | ->widget(\kartik\file\FileInput::className(), [ |
147 | 129 | 'language' => 'ru', |
... | ... | @@ -175,14 +157,6 @@ |
175 | 157 | 'previewFileType' => 'image', |
176 | 158 | ], |
177 | 159 | ]); |
178 | - | |
179 | - echo $form->field($product_spec, 'instruction') | |
180 | - ->widget(\mihaildev\ckeditor\CKEditor::className(), [ | |
181 | - 'editorOptions' => [ | |
182 | - 'preset' => 'full', | |
183 | - 'inline' => false, | |
184 | - ], | |
185 | - ]); | |
186 | 160 | ?> |
187 | 161 | |
188 | 162 | <?= LanguageForm::widget([ | ... | ... |
common/modules/product/views/manage/_form_language.php
... | ... | @@ -15,6 +15,8 @@ |
15 | 15 | ?> |
16 | 16 | <?= $form->field($model_lang, '[' . $language->language_id . ']name') |
17 | 17 | ->textInput([ 'maxlength' => true ]); ?> |
18 | +<?= $form->field($model_lang, '[' . $language->language_id . ']alias') | |
19 | + ->textInput([ 'maxlength' => true ]); ?> | |
18 | 20 | <?= $form->field($model_lang, '[' . $language->language_id . ']description') |
19 | 21 | ->widget(CKEditor::className(), [ |
20 | 22 | 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [ | ... | ... |
common/modules/product/views/manage/index.php
... | ... | @@ -17,7 +17,6 @@ $this->params['breadcrumbs'][] = $this->title; |
17 | 17 | <div class="product-index"> |
18 | 18 | |
19 | 19 | <h1><?= Html::encode($this->title) ?></h1> |
20 | - <?php // echo $this->render('_search', ['model' => $searchModel]); ?> | |
21 | 20 | |
22 | 21 | <p> |
23 | 22 | <?= Html::a(Yii::t('product', 'Create Product'), ['create'], ['class' => 'btn btn-success']) ?> |
... | ... | @@ -27,63 +26,63 @@ $this->params['breadcrumbs'][] = $this->title; |
27 | 26 | 'filterModel' => $searchModel, |
28 | 27 | 'columns' => [ |
29 | 28 | ['class' => 'yii\grid\SerialColumn'], |
30 | - 'name', | |
31 | - [ | |
32 | - 'label' => Yii::t('product', 'Brand'), | |
33 | - 'attribute' => 'brand_name', | |
34 | - 'value' => 'brand.name', | |
35 | - 'format' => 'raw', | |
36 | - 'filter' => Select2::widget([ | |
37 | - 'model' => $searchModel, | |
38 | - 'attribute' => 'brand_id', | |
39 | - 'data' => ArrayHelper::map(ProductHelper::getBrands()->all(), 'brand_id', 'name'), | |
40 | - 'language' => 'ru', | |
41 | - 'options' => [ | |
42 | - 'placeholder' => Yii::t('product', 'Select brand'), | |
43 | - 'multiple' => false, | |
44 | - ], | |
45 | - 'pluginOptions' => [ | |
46 | - 'allowClear' => true | |
47 | - ], | |
48 | - ]) | |
49 | - ], | |
50 | - [ | |
51 | - 'label' => Yii::t('product', 'Category'), | |
52 | - 'attribute' => 'category_name', | |
53 | - 'value' => function($model) { | |
54 | - $categories = []; | |
55 | - foreach ($model->categories as $category) { | |
56 | - $categories[] = $category->name; | |
57 | - } | |
58 | - return implode(", ", $categories); | |
59 | - }, | |
60 | - 'format' => 'raw', | |
61 | - 'filter' => Select2::widget([ | |
62 | - 'model' => $searchModel, | |
63 | - 'attribute' => 'category_id', | |
64 | - 'data' => ArtboxTreeHelper::treeMap(ProductHelper::getCategories(), 'category_id', 'name'), | |
65 | - 'language' => 'ru', | |
66 | - 'options' => [ | |
67 | - 'placeholder' => Yii::t('product', 'Select category'), | |
68 | - 'multiple' => false, | |
69 | - ], | |
70 | - 'pluginOptions' => [ | |
71 | - 'allowClear' => true | |
72 | - ], | |
73 | - ]) | |
74 | - ], | |
75 | - [ | |
76 | - 'label' => Yii::t('product', 'SKU'), | |
77 | - 'attribute' => 'variant_sku', | |
78 | - 'value' => 'variant.sku', | |
79 | - ], | |
80 | - 'variant.price', | |
81 | - 'variant.price_old', | |
82 | - [ | |
83 | - 'label' => Yii::t('product', 'Stock'), | |
84 | - 'attribute' => 'variant_stock', | |
85 | - 'value' => 'variant.stock_caption', | |
86 | - ], | |
29 | + 'product_id', | |
30 | +// [ | |
31 | +// 'label' => Yii::t('product', 'Brand'), | |
32 | +// 'attribute' => 'brand_name', | |
33 | +// 'value' => 'brand.name', | |
34 | +// 'format' => 'raw', | |
35 | +// 'filter' => Select2::widget([ | |
36 | +// 'model' => $searchModel, | |
37 | +// 'attribute' => 'brand_id', | |
38 | +// 'data' => ArrayHelper::map(ProductHelper::getBrands()->all(), 'brand_id', 'name'), | |
39 | +// 'language' => 'ru', | |
40 | +// 'options' => [ | |
41 | +// 'placeholder' => Yii::t('product', 'Select brand'), | |
42 | +// 'multiple' => false, | |
43 | +// ], | |
44 | +// 'pluginOptions' => [ | |
45 | +// 'allowClear' => true | |
46 | +// ], | |
47 | +// ]) | |
48 | +// ], | |
49 | +// [ | |
50 | +// 'label' => Yii::t('product', 'Category'), | |
51 | +// 'attribute' => 'category_name', | |
52 | +// 'value' => function($model) { | |
53 | +// $categories = []; | |
54 | +// foreach ($model->categories as $category) { | |
55 | +// $categories[] = $category->name; | |
56 | +// } | |
57 | +// return implode(", ", $categories); | |
58 | +// }, | |
59 | +// 'format' => 'raw', | |
60 | +// 'filter' => Select2::widget([ | |
61 | +// 'model' => $searchModel, | |
62 | +// 'attribute' => 'category_id', | |
63 | +// 'data' => ArtboxTreeHelper::treeMap(ProductHelper::getCategories(), 'category_id', 'name'), | |
64 | +// 'language' => 'ru', | |
65 | +// 'options' => [ | |
66 | +// 'placeholder' => Yii::t('product', 'Select category'), | |
67 | +// 'multiple' => false, | |
68 | +// ], | |
69 | +// 'pluginOptions' => [ | |
70 | +// 'allowClear' => true | |
71 | +// ], | |
72 | +// ]) | |
73 | +// ], | |
74 | +// [ | |
75 | +// 'label' => Yii::t('product', 'SKU'), | |
76 | +// 'attribute' => 'variant_sku', | |
77 | +// 'value' => 'variant.sku', | |
78 | +// ], | |
79 | +// 'variant.price', | |
80 | +// 'variant.price_old', | |
81 | +// [ | |
82 | +// 'label' => Yii::t('product', 'Stock'), | |
83 | +// 'attribute' => 'variant_stock', | |
84 | +// 'value' => 'variant.stock_caption', | |
85 | +// ], | |
87 | 86 | [ |
88 | 87 | 'class' => 'yii\grid\ActionColumn', |
89 | 88 | 'template' => '{items} {view} |{is_top} {is_new} {akciya} | {update} {delete}', | ... | ... |
common/modules/product/views/manage/update.php
... | ... | @@ -8,22 +8,22 @@ |
8 | 8 | use yii\web\View; |
9 | 9 | |
10 | 10 | /** |
11 | - * @var View $this | |
12 | - * @var Product $model | |
13 | - * @var ProductLang[] $model_langs | |
14 | - * @var ProductSpec $product_spec | |
11 | + * @var View $this | |
12 | + * @var Product $model | |
13 | + * @var ProductLang[] $model_langs | |
14 | + * @var ProductSpec $product_spec | |
15 | 15 | * @var ProductSpecLang[] $product_spec_langs |
16 | 16 | */ |
17 | 17 | |
18 | 18 | $this->title = Yii::t('product', 'Update {modelClass}: ', [ |
19 | 19 | 'modelClass' => 'Product', |
20 | - ]) . ' ' . $model->name; | |
20 | + ]) . ' ' . $model->product_id; | |
21 | 21 | $this->params[ 'breadcrumbs' ][] = [ |
22 | 22 | 'label' => Yii::t('product', 'Products'), |
23 | 23 | 'url' => [ 'index' ], |
24 | 24 | ]; |
25 | 25 | $this->params[ 'breadcrumbs' ][] = [ |
26 | - 'label' => $model->name, | |
26 | + 'label' => $model->product_id, | |
27 | 27 | 'url' => [ |
28 | 28 | 'view', |
29 | 29 | 'id' => $model->product_id, |
... | ... | @@ -36,10 +36,10 @@ |
36 | 36 | <h1><?= Html::encode($this->title) ?></h1> |
37 | 37 | |
38 | 38 | <?= $this->render('_form', [ |
39 | - 'model' => $model, | |
40 | - 'model_langs' => $model_langs, | |
41 | - 'groups' => $groups, | |
42 | - 'product_spec' => $product_spec, | |
39 | + 'model' => $model, | |
40 | + 'model_langs' => $model_langs, | |
41 | + 'groups' => $groups, | |
42 | + 'product_spec' => $product_spec, | |
43 | 43 | 'product_spec_langs' => $product_spec_langs, |
44 | 44 | ]) ?> |
45 | 45 | ... | ... |
common/modules/product/views/manage/view.php
... | ... | @@ -6,7 +6,7 @@ use yii\widgets\DetailView; |
6 | 6 | /* @var $this yii\web\View */ |
7 | 7 | /* @var $model common\modules\product\models\Product */ |
8 | 8 | |
9 | -$this->title = $model->name; | |
9 | +$this->title = $model->product_id; | |
10 | 10 | $this->params['breadcrumbs'][] = ['label' => Yii::t('product', 'Products'), 'url' => ['index']]; |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
... | ... | @@ -29,10 +29,8 @@ $this->params['breadcrumbs'][] = $this->title; |
29 | 29 | 'model' => $model, |
30 | 30 | 'attributes' => [ |
31 | 31 | 'product_id', |
32 | - 'name', | |
33 | - 'fullname', | |
34 | - 'brand.name', | |
35 | - 'category.name', | |
32 | +// 'brand.name', | |
33 | +// 'category.name', | |
36 | 34 | 'image.imageUrl:image' |
37 | 35 | ], |
38 | 36 | ]) ?> | ... | ... |
common/modules/product/views/product-unit/_form.php
... | ... | @@ -19,12 +19,6 @@ |
19 | 19 | |
20 | 20 | <?php $form = ActiveForm::begin(); ?> |
21 | 21 | |
22 | - <?= $form->field($model, 'name') | |
23 | - ->textInput([ 'maxlength' => true ]) ?> | |
24 | - | |
25 | - <?= $form->field($model, 'code') | |
26 | - ->textInput([ 'maxlength' => true ]) ?> | |
27 | - | |
28 | 22 | <?= $form->field($model, 'is_default') |
29 | 23 | ->checkbox() ?> |
30 | 24 | ... | ... |
common/modules/product/views/product-unit/index.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\grid\GridView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $searchModel common\modules\product\models\ProductUnitSearch */ | |
8 | -/* @var $dataProvider yii\data\ActiveDataProvider */ | |
9 | - | |
10 | -$this->title = Yii::t('product', 'Product Units'); | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\grid\GridView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $searchModel common\modules\product\models\ProductUnitSearch */ | |
8 | + /* @var $dataProvider yii\data\ActiveDataProvider */ | |
9 | + | |
10 | + $this->title = Yii::t('product', 'Product Units'); | |
11 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 12 | ?> |
13 | 13 | <div class="product-unit-index"> |
14 | - | |
14 | + | |
15 | 15 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - <?php // echo $this->render('_search', ['model' => $searchModel]); ?> | |
17 | - | |
16 | + | |
18 | 17 | <p> |
19 | - <?= Html::a(Yii::t('product', 'Create Product Unit'), ['create'], ['class' => 'btn btn-success']) ?> | |
18 | + <?= Html::a(Yii::t('product', 'Create Product Unit'), [ 'create' ], [ 'class' => 'btn btn-success' ]) ?> | |
20 | 19 | </p> |
21 | 20 | <?= GridView::widget([ |
22 | 21 | 'dataProvider' => $dataProvider, |
23 | - 'filterModel' => $searchModel, | |
24 | - 'columns' => [ | |
25 | - ['class' => 'yii\grid\SerialColumn'], | |
26 | - | |
27 | - 'name', | |
28 | - 'code:html', | |
22 | + 'filterModel' => $searchModel, | |
23 | + 'columns' => [ | |
24 | + [ 'class' => 'yii\grid\SerialColumn' ], | |
25 | + 'product_unit_id', | |
29 | 26 | 'is_default:boolean', |
30 | - | |
31 | - ['class' => 'yii\grid\ActionColumn'], | |
27 | + [ 'class' => 'yii\grid\ActionColumn' ], | |
32 | 28 | ], |
33 | 29 | ]); ?> |
34 | 30 | </div> | ... | ... |
common/modules/product/views/product-unit/update.php
... | ... | @@ -13,13 +13,13 @@ |
13 | 13 | |
14 | 14 | $this->title = Yii::t('product', 'Update {modelClass}: ', [ |
15 | 15 | 'modelClass' => 'Product Unit', |
16 | - ]) . $model->name; | |
16 | + ]) . $model->product_unit_id; | |
17 | 17 | $this->params[ 'breadcrumbs' ][] = [ |
18 | 18 | 'label' => Yii::t('product', 'Product Units'), |
19 | 19 | 'url' => [ 'index' ], |
20 | 20 | ]; |
21 | 21 | $this->params[ 'breadcrumbs' ][] = [ |
22 | - 'label' => $model->name, | |
22 | + 'label' => $model->product_unit_id, | |
23 | 23 | 'url' => [ |
24 | 24 | 'view', |
25 | 25 | 'id' => $model->product_unit_id, | ... | ... |
common/modules/product/views/product-unit/view.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\widgets\DetailView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $model common\modules\product\models\ProductUnit */ | |
8 | - | |
9 | -$this->title = $model->name; | |
10 | -$this->params['breadcrumbs'][] = ['label' => Yii::t('product', 'Product Units'), 'url' => ['index']]; | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\widgets\DetailView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $model common\modules\product\models\ProductUnit */ | |
8 | + | |
9 | + $this->title = $model->product_unit_id; | |
10 | + $this->params[ 'breadcrumbs' ][] = [ | |
11 | + 'label' => Yii::t('product', 'Product Units'), | |
12 | + 'url' => [ 'index' ], | |
13 | + ]; | |
14 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 15 | ?> |
13 | 16 | <div class="product-unit-view"> |
14 | - | |
17 | + | |
15 | 18 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | |
19 | + | |
17 | 20 | <p> |
18 | - <?= Html::a(Yii::t('product', 'Update'), ['update', 'id' => $model->product_unit_id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a(Yii::t('product', 'Delete'), ['delete', 'id' => $model->product_unit_id], [ | |
21 | + <?= Html::a(Yii::t('product', 'Update'), [ | |
22 | + 'update', | |
23 | + 'id' => $model->product_unit_id, | |
24 | + ], [ 'class' => 'btn btn-primary' ]) ?> | |
25 | + <?= Html::a(Yii::t('product', 'Delete'), [ | |
26 | + 'delete', | |
27 | + 'id' => $model->product_unit_id, | |
28 | + ], [ | |
20 | 29 | 'class' => 'btn btn-danger', |
21 | - 'data' => [ | |
30 | + 'data' => [ | |
22 | 31 | 'confirm' => Yii::t('product', 'Are you sure you want to delete this item?'), |
23 | - 'method' => 'post', | |
32 | + 'method' => 'post', | |
24 | 33 | ], |
25 | 34 | ]) ?> |
26 | 35 | </p> |
27 | - | |
36 | + | |
28 | 37 | <?= DetailView::widget([ |
29 | - 'model' => $model, | |
38 | + 'model' => $model, | |
30 | 39 | 'attributes' => [ |
31 | 40 | 'product_unit_id', |
32 | - 'name', | |
33 | - 'code', | |
34 | 41 | 'is_default:boolean', |
35 | 42 | ], |
36 | 43 | ]) ?> | ... | ... |
common/modules/product/views/variant/_form.php
... | ... | @@ -21,14 +21,6 @@ |
21 | 21 | */ |
22 | 22 | |
23 | 23 | $js = ' |
24 | -$(".dynamicform_wrapper").on("beforeInsert", function(e, item) { | |
25 | - console.log("beforeInsert"); | |
26 | -}); | |
27 | - | |
28 | -$(".dynamicform_wrapper").on("afterInsert", function(e, item) { | |
29 | - console.log("afterInsert"); | |
30 | -}); | |
31 | - | |
32 | 24 | $(".dynamicform_wrapper").on("beforeDelete", function(e, item) { |
33 | 25 | if (! confirm("Are you sure you want to delete this item?")) { |
34 | 26 | return false; |
... | ... | @@ -36,10 +28,6 @@ $(".dynamicform_wrapper").on("beforeDelete", function(e, item) { |
36 | 28 | return true; |
37 | 29 | }); |
38 | 30 | |
39 | -$(".dynamicform_wrapper").on("afterDelete", function(e) { | |
40 | - console.log("Deleted item!"); | |
41 | -}); | |
42 | - | |
43 | 31 | $(".dynamicform_wrapper").on("limitReached", function(e, item) { |
44 | 32 | alert("Limit reached"); |
45 | 33 | }); |
... | ... | @@ -54,9 +42,6 @@ $(".dynamicform_wrapper").on("limitReached", function(e, item) { |
54 | 42 | 'options' => [ 'enctype' => 'multipart/form-data' ], |
55 | 43 | ]); ?> |
56 | 44 | |
57 | - <?= $form->field($model, 'name') | |
58 | - ->textInput([ 'maxlength' => true ]) ?> | |
59 | - | |
60 | 45 | <?= $form->field($model, 'product_id') |
61 | 46 | ->hiddenInput() |
62 | 47 | ->label(false); ?> |
... | ... | @@ -161,7 +146,7 @@ $(".dynamicform_wrapper").on("limitReached", function(e, item) { |
161 | 146 | |
162 | 147 | <?= $form->field($model, 'product_unit_id') |
163 | 148 | ->dropDownList(ArrayHelper::map(\common\modules\product\models\ProductUnit::find() |
164 | - ->all(), 'product_unit_id', 'name'), [ | |
149 | + ->all(), 'product_unit_id', 'product_unit_id'), [ | |
165 | 150 | 'prompt' => Yii::t('product', 'Unit'), |
166 | 151 | ]) |
167 | 152 | ->label(Yii::t('product', 'Unit')) ?> |
... | ... | @@ -169,11 +154,11 @@ $(".dynamicform_wrapper").on("limitReached", function(e, item) { |
169 | 154 | <?php if(isset( $groups )) : ?> |
170 | 155 | <?php foreach($groups->all() as $group) : ?> |
171 | 156 | <?= $form->field($model, 'options') |
172 | - ->checkboxList(ArrayHelper::map($group->options, 'tax_option_id', 'value'), [ | |
157 | + ->checkboxList(ArrayHelper::map($group->options, 'tax_option_id', 'tax_option_id'), [ | |
173 | 158 | 'multiple' => true, |
174 | 159 | 'unselect' => NULL, |
175 | 160 | ]) |
176 | - ->label($group->name); ?> | |
161 | + ->label($group->tax_group_id); ?> | |
177 | 162 | <?php endforeach ?> |
178 | 163 | <?php endif ?> |
179 | 164 | ... | ... |
common/modules/product/views/variant/index.php
... | ... | @@ -22,7 +22,6 @@ if (!empty($product)) { |
22 | 22 | <div class="product-index"> |
23 | 23 | |
24 | 24 | <h1><?= Html::encode($this->title) ?></h1> |
25 | - <?php // echo $this->render('_search', ['model' => $searchModel]); ?> | |
26 | 25 | |
27 | 26 | <p> |
28 | 27 | <?= Html::a(Yii::t('product', 'Create Variant'), Url::toRoute(['create','product_id'=> $product_id]), ['class' => 'btn btn-success']) ?> |
... | ... | @@ -32,7 +31,6 @@ if (!empty($product)) { |
32 | 31 | 'filterModel' => $searchModel, |
33 | 32 | 'columns' => [ |
34 | 33 | ['class' => 'yii\grid\SerialColumn'], |
35 | - | |
36 | 34 | [ |
37 | 35 | 'attribute' => 'product_id', |
38 | 36 | 'value' => 'fullname', |
... | ... | @@ -40,7 +38,7 @@ if (!empty($product)) { |
40 | 38 | 'filter' => \kartik\select2\Select2::widget([ |
41 | 39 | 'model' => $searchModel, |
42 | 40 | 'attribute' => 'product_id', |
43 | - 'data' => \yii\helpers\ArrayHelper::map(\common\modules\product\models\Product::find()->orderBy(['name' => 'ASC'])->all(), 'product_id', 'name'), | |
41 | +// 'data' => \yii\helpers\ArrayHelper::map(\common\modules\product\models\Product::find()->orderBy(['name' => 'ASC'])->all(), 'product_id', 'name'), | |
44 | 42 | 'language' => 'ru', |
45 | 43 | 'options' => [ |
46 | 44 | 'placeholder' => Yii::t('product', 'Select product'), |
... | ... | @@ -55,7 +53,6 @@ if (!empty($product)) { |
55 | 53 | 'price', |
56 | 54 | 'price_old', |
57 | 55 | 'stock', |
58 | - | |
59 | 56 | [ |
60 | 57 | 'class' => 'yii\grid\ActionColumn', |
61 | 58 | 'buttons' => [ | ... | ... |
common/modules/product/views/variant/update.php
... | ... | @@ -17,13 +17,13 @@ |
17 | 17 | */ |
18 | 18 | $this->title = Yii::t('product', 'Update {modelClass}: ', [ |
19 | 19 | 'modelClass' => 'Product', |
20 | - ]) . ' ' . $model->name; | |
20 | + ]) . ' ' . $model->product_variant_id; | |
21 | 21 | $this->params[ 'breadcrumbs' ][] = [ |
22 | 22 | 'label' => Yii::t('product', 'Products'), |
23 | 23 | 'url' => [ 'index' ], |
24 | 24 | ]; |
25 | 25 | $this->params[ 'breadcrumbs' ][] = [ |
26 | - 'label' => $model->product->name, | |
26 | + 'label' => $model->product->product_id, | |
27 | 27 | 'url' => [ |
28 | 28 | 'view', |
29 | 29 | 'id' => $model->product->product_id, | ... | ... |
common/modules/product/views/variant/view.php
... | ... | @@ -4,11 +4,11 @@ use yii\helpers\Html; |
4 | 4 | use yii\widgets\DetailView; |
5 | 5 | |
6 | 6 | /* @var $this yii\web\View */ |
7 | -/* @var $model common\modules\product\models\Product */ | |
7 | +/* @var $model common\modules\product\models\ProductVariant */ | |
8 | 8 | |
9 | -$this->title = $model->name; | |
9 | +$this->title = $model->product_variant_id; | |
10 | 10 | $this->params['breadcrumbs'][] = ['label' => Yii::t('product', 'Products'), 'url' => ['index']]; |
11 | -$this->params['breadcrumbs'][] = ['label' => $model->product->name, 'url' => ['view', 'id' => $model->product->product_id]]; | |
11 | +$this->params['breadcrumbs'][] = ['label' => $model->product->lang->name, 'url' => ['view', 'id' => $model->product->product_id]]; | |
12 | 12 | $this->params['breadcrumbs'][] = ['label' => Yii::t('product', 'Variants'), 'url' => ['/product/variant?product_id='. $model->product->product_id]]; |
13 | 13 | $this->params['breadcrumbs'][] = $this->title; |
14 | 14 | ?> |
... | ... | @@ -31,10 +31,7 @@ $this->params['breadcrumbs'][] = $this->title; |
31 | 31 | 'model' => $model, |
32 | 32 | 'attributes' => [ |
33 | 33 | 'product_id', |
34 | - 'name', | |
35 | 34 | 'fullname', |
36 | - 'brand.name', | |
37 | - 'category.name', | |
38 | 35 | 'image.imageUrl:image' |
39 | 36 | ], |
40 | 37 | ]) ?> | ... | ... |
common/modules/rubrication/controllers/TaxOptionController.php
... | ... | @@ -9,7 +9,6 @@ |
9 | 9 | use yii\web\Controller; |
10 | 10 | use yii\web\NotFoundHttpException; |
11 | 11 | use yii\filters\VerbFilter; |
12 | - use yii\web\UploadedFile; | |
13 | 12 | |
14 | 13 | /** |
15 | 14 | * TaxOptionController implements the CRUD actions for TaxOption model. |
... | ... | @@ -78,23 +77,8 @@ |
78 | 77 | $model_langs = $model->generateLangs(); |
79 | 78 | $group = TaxGroup::findOne(Yii::$app->request->queryParams[ 'group' ]); |
80 | 79 | |
81 | - if($model->load(Yii::$app->request->post())) { | |
80 | + if($model->load(Yii::$app->request->post()) && $model->save()) { | |
82 | 81 | $model->loadLangs(\Yii::$app->request, $model_langs); |
83 | - if(( $image = UploadedFile::getInstance($model, 'image') )) { | |
84 | - $model->image = $image->name; | |
85 | - } | |
86 | - if($model->save() && $image) { | |
87 | - | |
88 | - $imgDir = Yii::getAlias('@storage/tax_option/'); | |
89 | - | |
90 | - if(!is_dir($imgDir)) { | |
91 | - mkdir($imgDir, 0755, true); | |
92 | - } | |
93 | - | |
94 | - $image->saveAs(Yii::getAlias('@storage/tax_option/' . $image->name)); | |
95 | - } | |
96 | - | |
97 | - $model->save(); | |
98 | 82 | |
99 | 83 | if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { |
100 | 84 | return is_null(Yii::$app->request->post('create_and_new')) ? $this->redirect([ |
... | ... | @@ -108,17 +92,16 @@ |
108 | 92 | ]); |
109 | 93 | } |
110 | 94 | |
111 | - } else { | |
112 | - $model->tax_group_id = $group->tax_group_id; | |
113 | - if(!empty( Yii::$app->request->queryParams[ 'parent' ] )) { | |
114 | - $model->parent_id = Yii::$app->request->queryParams[ 'parent' ]; | |
115 | - } | |
116 | - return $this->render('create', [ | |
117 | - 'model' => $model, | |
118 | - 'model_langs' => $model_langs, | |
119 | - 'group' => $group, | |
120 | - ]); | |
121 | 95 | } |
96 | + $model->tax_group_id = $group->tax_group_id; | |
97 | + if(!empty( Yii::$app->request->queryParams[ 'parent' ] )) { | |
98 | + $model->parent_id = Yii::$app->request->queryParams[ 'parent' ]; | |
99 | + } | |
100 | + return $this->render('create', [ | |
101 | + 'model' => $model, | |
102 | + 'model_langs' => $model_langs, | |
103 | + 'group' => $group, | |
104 | + ]); | |
122 | 105 | } |
123 | 106 | |
124 | 107 | /** |
... | ... | @@ -135,21 +118,8 @@ |
135 | 118 | $model_langs = $model->generateLangs(); |
136 | 119 | $group = TaxGroup::findOne($model->tax_group_id); |
137 | 120 | |
138 | - if($model->load(Yii::$app->request->post())) { | |
121 | + if($model->load(Yii::$app->request->post()) && $model->save()) { | |
139 | 122 | $model->loadLangs(\Yii::$app->request, $model_langs); |
140 | - if(( $image = UploadedFile::getInstance($model, 'image') )) { | |
141 | - $model->image = $image->name; | |
142 | - } | |
143 | - if($model->save() && $image) { | |
144 | - | |
145 | - $imgDir = Yii::getAlias('@storage/tax_option/'); | |
146 | - | |
147 | - if(!is_dir($imgDir)) { | |
148 | - mkdir($imgDir, 0755, true); | |
149 | - } | |
150 | - | |
151 | - $image->saveAs(Yii::getAlias('@storage/tax_option/' . $image->name)); | |
152 | - } | |
153 | 123 | |
154 | 124 | TaxOption::find() |
155 | 125 | ->rebuildMP($model->tax_group_id); | ... | ... |
common/modules/rubrication/models/TaxGroup.php
... | ... | @@ -7,43 +7,39 @@ |
7 | 7 | use yii\db\ActiveQuery; |
8 | 8 | use yii\db\ActiveRecord; |
9 | 9 | use yii\web\Request; |
10 | - | |
10 | + | |
11 | 11 | /** |
12 | 12 | * This is the model class for table "{{%tax_group}}". |
13 | - * @property integer $tax_group_id | |
14 | - * @property string $alias | |
15 | - * @property string $name | |
16 | - * @property string $description | |
17 | - * @property boolean $is_filter | |
18 | - * @property integer $level | |
19 | - * @property integer $sort | |
20 | - * @property boolean $display | |
21 | - * @property boolean $is_menu | |
22 | - * @property TaxOption[] $taxOptions | |
23 | - * @property Category[] $categories | |
24 | - * @property TaxOption[] $options | |
25 | - * | |
13 | + * @property integer $tax_group_id | |
14 | + * @property boolean $is_filter | |
15 | + * @property integer $level | |
16 | + * @property integer $sort | |
17 | + * @property boolean $display | |
18 | + * @property boolean $is_menu | |
19 | + * @property TaxOption[] $taxOptions | |
20 | + * @property Category[] $categories | |
21 | + * @property TaxOption[] $options | |
26 | 22 | * * From language behavior * |
27 | - * @property TaxGroupLang $lang | |
28 | - * @property TaxGroupLang[] $langs | |
29 | - * @property TaxGroupLang $object_lang | |
23 | + * @property TaxGroupLang $lang | |
24 | + * @property TaxGroupLang[] $langs | |
25 | + * @property TaxGroupLang $object_lang | |
30 | 26 | * @property string $ownerKey |
31 | 27 | * @property string $langKey |
32 | 28 | * @method string getOwnerKey() |
33 | - * @method void setOwnerKey(string $value) | |
29 | + * @method void setOwnerKey( string $value ) | |
34 | 30 | * @method string getLangKey() |
35 | - * @method void setLangKey(string $value) | |
31 | + * @method void setLangKey( string $value ) | |
36 | 32 | * @method ActiveQuery getLangs() |
37 | 33 | * @method ActiveQuery getLang( integer $language_id ) |
38 | 34 | * @method TaxGroupLang[] generateLangs() |
39 | - * @method void loadLangs(Request $request, ActiveRecord[] $model_langs) | |
40 | - * @method bool linkLangs(ActiveRecord[] $model_langs) | |
41 | - * @method bool saveLangs(ActiveRecord[] $model_langs) | |
35 | + * @method void loadLangs( Request $request, ActiveRecord[] $model_langs ) | |
36 | + * @method bool linkLangs( ActiveRecord[] $model_langs ) | |
37 | + * @method bool saveLangs( ActiveRecord[] $model_langs ) | |
42 | 38 | * * End language behavior * |
43 | 39 | */ |
44 | 40 | class TaxGroup extends \yii\db\ActiveRecord |
45 | 41 | { |
46 | - | |
42 | + | |
47 | 43 | /** |
48 | 44 | * @var TaxOption[] $_options |
49 | 45 | */ |
... | ... | @@ -55,12 +51,6 @@ |
55 | 51 | public function behaviors() |
56 | 52 | { |
57 | 53 | return [ |
58 | - 'slug' => [ | |
59 | - 'class' => 'common\behaviors\Slug', | |
60 | - 'in_attribute' => 'name', | |
61 | - 'out_attribute' => 'alias', | |
62 | - 'translit' => true, | |
63 | - ], | |
64 | 54 | 'language' => [ |
65 | 55 | 'class' => LanguageBehavior::className(), |
66 | 56 | ], |
... | ... | @@ -83,18 +73,6 @@ |
83 | 73 | return [ |
84 | 74 | [ |
85 | 75 | [ |
86 | - 'name', | |
87 | - ], | |
88 | - 'required', | |
89 | - ], | |
90 | - [ | |
91 | - [ | |
92 | - 'description', | |
93 | - ], | |
94 | - 'string', | |
95 | - ], | |
96 | - [ | |
97 | - [ | |
98 | 76 | 'is_filter', |
99 | 77 | 'display', |
100 | 78 | 'is_menu', |
... | ... | @@ -109,18 +87,6 @@ |
109 | 87 | 'integer', |
110 | 88 | ], |
111 | 89 | [ |
112 | - [ | |
113 | - 'alias', | |
114 | - ], | |
115 | - 'string', | |
116 | - 'max' => 50, | |
117 | - ], | |
118 | - [ | |
119 | - [ 'name' ], | |
120 | - 'string', | |
121 | - 'max' => 255, | |
122 | - ], | |
123 | - [ | |
124 | 90 | [ 'categories' ], |
125 | 91 | 'safe', |
126 | 92 | ], |
... | ... | @@ -134,9 +100,6 @@ |
134 | 100 | { |
135 | 101 | return [ |
136 | 102 | 'tax_group_id' => 'Tax Group ID', |
137 | - 'alias' => 'Alias', | |
138 | - 'name' => 'Name', | |
139 | - 'description' => 'Description', | |
140 | 103 | 'is_filter' => 'Use in filter', |
141 | 104 | 'sort' => 'Sort', |
142 | 105 | 'display' => 'Display', | ... | ... |
common/modules/rubrication/models/TaxGroupLang.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\modules\rubrication\models; | |
4 | - | |
5 | -use common\modules\language\models\Language; | |
6 | -use Yii; | |
7 | - | |
8 | -/** | |
9 | - * This is the model class for table "tax_group_lang". | |
10 | - * | |
11 | - * @property integer $tax_group_id | |
12 | - * @property integer $language_id | |
13 | - * @property string $name | |
14 | - * @property string $description | |
15 | - * | |
16 | - * @property Language $language | |
17 | - * @property TaxGroup $taxGroup | |
18 | - */ | |
19 | -class TaxGroupLang extends \yii\db\ActiveRecord | |
20 | -{ | |
21 | 2 | |
22 | - public static function primaryKey() | |
23 | - { | |
24 | - return [ | |
25 | - 'tax_group_id', | |
26 | - 'language_id', | |
27 | - ]; | |
28 | - } | |
3 | + namespace common\modules\rubrication\models; | |
4 | + | |
5 | + use common\modules\language\models\Language; | |
6 | + use Yii; | |
29 | 7 | |
30 | 8 | /** |
31 | - * @inheritdoc | |
32 | - */ | |
33 | - public static function tableName() | |
34 | - { | |
35 | - return 'tax_group_lang'; | |
36 | - } | |
37 | - | |
38 | - /** | |
39 | - * @inheritdoc | |
40 | - */ | |
41 | - public function rules() | |
42 | - { | |
43 | - return [ | |
44 | - [['name'], 'required'], | |
45 | - [['description'], 'string'], | |
46 | - [['name'], 'string', 'max' => 255], | |
47 | - [['tax_group_id', 'language_id'], 'unique', 'targetAttribute' => ['tax_group_id', 'language_id'], 'message' => 'The combination of Tax Group ID and Language ID has already been taken.'], | |
48 | - [['language_id'], 'exist', 'skipOnError' => true, 'targetClass' => Language::className(), 'targetAttribute' => ['language_id' => 'language_id']], | |
49 | - [['tax_group_id'], 'exist', 'skipOnError' => true, 'targetClass' => TaxGroup::className(), 'targetAttribute' => ['tax_group_id' => 'tax_group_id']], | |
50 | - ]; | |
51 | - } | |
52 | - | |
53 | - /** | |
54 | - * @inheritdoc | |
55 | - */ | |
56 | - public function attributeLabels() | |
57 | - { | |
58 | - return [ | |
59 | - 'tax_group_id' => Yii::t('app', 'Tax Group ID'), | |
60 | - 'language_id' => Yii::t('app', 'Language ID'), | |
61 | - 'name' => Yii::t('app', 'Name'), | |
62 | - 'description' => Yii::t('app', 'Description'), | |
63 | - ]; | |
64 | - } | |
65 | - | |
66 | - /** | |
67 | - * @return \yii\db\ActiveQuery | |
68 | - */ | |
69 | - public function getLanguage() | |
70 | - { | |
71 | - return $this->hasOne(Language::className(), ['language_id' => 'language_id']); | |
72 | - } | |
73 | - | |
74 | - /** | |
75 | - * @return \yii\db\ActiveQuery | |
9 | + * This is the model class for table "tax_group_lang". | |
10 | + * @property integer $tax_group_id | |
11 | + * @property integer $language_id | |
12 | + * @property string $name | |
13 | + * @property string $alias | |
14 | + * @property string $description | |
15 | + * @property Language $language | |
16 | + * @property TaxGroup $taxGroup | |
76 | 17 | */ |
77 | - public function getTaxGroup() | |
18 | + class TaxGroupLang extends \yii\db\ActiveRecord | |
78 | 19 | { |
79 | - return $this->hasOne(TaxGroup::className(), ['tax_group_id' => 'tax_group_id']); | |
20 | + | |
21 | + public static function primaryKey() | |
22 | + { | |
23 | + return [ | |
24 | + 'tax_group_id', | |
25 | + 'language_id', | |
26 | + ]; | |
27 | + } | |
28 | + | |
29 | + /** | |
30 | + * @inheritdoc | |
31 | + */ | |
32 | + public static function tableName() | |
33 | + { | |
34 | + return 'tax_group_lang'; | |
35 | + } | |
36 | + | |
37 | + public function behaviors() | |
38 | + { | |
39 | + return [ | |
40 | + 'slug' => [ | |
41 | + 'class' => 'common\behaviors\Slug', | |
42 | + 'in_attribute' => 'name', | |
43 | + 'out_attribute' => 'alias', | |
44 | + 'translit' => true, | |
45 | + ], | |
46 | + ]; | |
47 | + } | |
48 | + | |
49 | + /** | |
50 | + * @inheritdoc | |
51 | + */ | |
52 | + public function rules() | |
53 | + { | |
54 | + return [ | |
55 | + [ | |
56 | + [ 'name' ], | |
57 | + 'required', | |
58 | + ], | |
59 | + [ | |
60 | + [ 'description' ], | |
61 | + 'string', | |
62 | + ], | |
63 | + [ | |
64 | + [ | |
65 | + 'name', | |
66 | + 'alias', | |
67 | + ], | |
68 | + 'string', | |
69 | + 'max' => 255, | |
70 | + ], | |
71 | + [ | |
72 | + [ | |
73 | + 'tax_group_id', | |
74 | + 'language_id', | |
75 | + ], | |
76 | + 'unique', | |
77 | + 'targetAttribute' => [ | |
78 | + 'tax_group_id', | |
79 | + 'language_id', | |
80 | + ], | |
81 | + 'message' => 'The combination of Tax Group ID and Language ID has already been taken.', | |
82 | + ], | |
83 | + [ | |
84 | + [ 'language_id' ], | |
85 | + 'exist', | |
86 | + 'skipOnError' => true, | |
87 | + 'targetClass' => Language::className(), | |
88 | + 'targetAttribute' => [ 'language_id' => 'language_id' ], | |
89 | + ], | |
90 | + [ | |
91 | + [ 'tax_group_id' ], | |
92 | + 'exist', | |
93 | + 'skipOnError' => true, | |
94 | + 'targetClass' => TaxGroup::className(), | |
95 | + 'targetAttribute' => [ 'tax_group_id' => 'tax_group_id' ], | |
96 | + ], | |
97 | + ]; | |
98 | + } | |
99 | + | |
100 | + /** | |
101 | + * @inheritdoc | |
102 | + */ | |
103 | + public function attributeLabels() | |
104 | + { | |
105 | + return [ | |
106 | + 'tax_group_id' => Yii::t('app', 'Tax Group ID'), | |
107 | + 'language_id' => Yii::t('app', 'Language ID'), | |
108 | + 'name' => Yii::t('app', 'Name'), | |
109 | + 'description' => Yii::t('app', 'Description'), | |
110 | + 'alias' => Yii::t('app', 'Alias'), | |
111 | + ]; | |
112 | + } | |
113 | + | |
114 | + /** | |
115 | + * @return \yii\db\ActiveQuery | |
116 | + */ | |
117 | + public function getLanguage() | |
118 | + { | |
119 | + return $this->hasOne(Language::className(), [ 'language_id' => 'language_id' ]); | |
120 | + } | |
121 | + | |
122 | + /** | |
123 | + * @return \yii\db\ActiveQuery | |
124 | + */ | |
125 | + public function getTaxGroup() | |
126 | + { | |
127 | + return $this->hasOne(TaxGroup::className(), [ 'tax_group_id' => 'tax_group_id' ]); | |
128 | + } | |
80 | 129 | } |
81 | -} | ... | ... |
common/modules/rubrication/models/TaxOption.php
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | |
3 | 3 | namespace common\modules\rubrication\models; |
4 | 4 | |
5 | + use common\behaviors\SaveImgBehavior; | |
5 | 6 | use common\modules\language\behaviors\LanguageBehavior; |
6 | 7 | use common\modules\product\models\Product; |
7 | 8 | use Yii; |
... | ... | @@ -9,40 +10,37 @@ |
9 | 10 | use yii\db\ActiveQuery; |
10 | 11 | use yii\db\ActiveRecord; |
11 | 12 | use yii\web\Request; |
12 | - | |
13 | + | |
13 | 14 | /** |
14 | 15 | * This is the model class for table "{{%tax_option}}". |
15 | - * @property string $tax_option_id | |
16 | - * @property integer $tax_group_id | |
17 | - * @property integer $parent_id | |
18 | - * @property integer $tree | |
19 | - * @property string $path_int | |
20 | - * @property integer $depth | |
21 | - * @property string $alias | |
22 | - * @property integer $sort | |
23 | - * @property integer $value | |
24 | - * @property array $image | |
25 | - * @property TaxGroup $taxGroup | |
26 | - * @property TaxOption $parent | |
27 | - * @property TaxOption[] $taxOptions | |
28 | - * @property Product[] $products | |
29 | - * | |
16 | + * @property string $tax_option_id | |
17 | + * @property integer $tax_group_id | |
18 | + * @property integer $parent_id | |
19 | + * @property integer $tree | |
20 | + * @property string $path_int | |
21 | + * @property integer $depth | |
22 | + * @property integer $sort | |
23 | + * @property string $image | |
24 | + * @property TaxGroup $taxGroup | |
25 | + * @property TaxOption $parent | |
26 | + * @property TaxOption[] $taxOptions | |
27 | + * @property Product[] $products | |
30 | 28 | * * From language behavior * |
31 | - * @property TaxOptionLang $lang | |
32 | - * @property TaxOptionLang[] $langs | |
33 | - * @property TaxOptionLang $object_lang | |
34 | - * @property string $ownerKey | |
35 | - * @property string $langKey | |
29 | + * @property TaxOptionLang $lang | |
30 | + * @property TaxOptionLang[] $langs | |
31 | + * @property TaxOptionLang $object_lang | |
32 | + * @property string $ownerKey | |
33 | + * @property string $langKey | |
36 | 34 | * @method string getOwnerKey() |
37 | - * @method void setOwnerKey(string $value) | |
35 | + * @method void setOwnerKey( string $value ) | |
38 | 36 | * @method string getLangKey() |
39 | - * @method void setLangKey(string $value) | |
37 | + * @method void setLangKey( string $value ) | |
40 | 38 | * @method ActiveQuery getLangs() |
41 | 39 | * @method ActiveQuery getLang( integer $language_id ) |
42 | 40 | * @method TaxOptionLang[] generateLangs() |
43 | - * @method void loadLangs(Request $request, ActiveRecord[] $model_langs) | |
44 | - * @method bool linkLangs(ActiveRecord[] $model_langs) | |
45 | - * @method bool saveLangs(ActiveRecord[] $model_langs) | |
41 | + * @method void loadLangs( Request $request, ActiveRecord[] $model_langs ) | |
42 | + * @method bool linkLangs( ActiveRecord[] $model_langs ) | |
43 | + * @method bool saveLangs( ActiveRecord[] $model_langs ) | |
46 | 44 | * * End language behavior * |
47 | 45 | */ |
48 | 46 | class TaxOption extends \yii\db\ActiveRecord |
... | ... | @@ -56,17 +54,20 @@ |
56 | 54 | public function behaviors() |
57 | 55 | { |
58 | 56 | return [ |
57 | + [ | |
58 | + 'class' => SaveImgBehavior::className(), | |
59 | + 'fields' => [ | |
60 | + [ | |
61 | + 'name' => 'image', | |
62 | + 'directory' => 'tax_option', | |
63 | + ], | |
64 | + ], | |
65 | + ], | |
59 | 66 | 'artboxtree' => [ |
60 | 67 | 'class' => ArtboxTreeBehavior::className(), |
61 | 68 | 'keyNameGroup' => 'tax_group_id', |
62 | 69 | ], |
63 | - 'slug' => [ | |
64 | - 'class' => 'common\behaviors\Slug', | |
65 | - 'in_attribute' => 'value', | |
66 | - 'out_attribute' => 'alias', | |
67 | - 'translit' => true, | |
68 | - ], | |
69 | - 'language' => [ | |
70 | + 'language' => [ | |
70 | 71 | 'class' => LanguageBehavior::className(), |
71 | 72 | ], |
72 | 73 | ]; |
... | ... | @@ -89,7 +90,6 @@ |
89 | 90 | [ |
90 | 91 | [ |
91 | 92 | 'tax_group_id', |
92 | - 'value', | |
93 | 93 | ], |
94 | 94 | 'required', |
95 | 95 | ], |
... | ... | @@ -102,15 +102,6 @@ |
102 | 102 | 'integer', |
103 | 103 | ], |
104 | 104 | [ |
105 | - [ | |
106 | - 'image', | |
107 | - 'alias', | |
108 | - 'value', | |
109 | - ], | |
110 | - 'string', | |
111 | - 'max' => 255, | |
112 | - ], | |
113 | - [ | |
114 | 105 | [ 'tax_group_id' ], |
115 | 106 | 'exist', |
116 | 107 | 'skipOnError' => true, |
... | ... | @@ -129,7 +120,6 @@ |
129 | 120 | 'tax_option_id' => Yii::t('app', 'Tax Option ID'), |
130 | 121 | 'tax_group_id' => Yii::t('app', 'Tax Group ID'), |
131 | 122 | 'parent_id' => Yii::t('app', 'Parent ID'), |
132 | - 'alias' => Yii::t('app', 'Alias'), | |
133 | 123 | 'sort' => Yii::t('app', 'Sort'), |
134 | 124 | 'image' => Yii::t('product', 'Image'), |
135 | 125 | ]; |
... | ... | @@ -177,16 +167,6 @@ |
177 | 167 | return false; |
178 | 168 | } |
179 | 169 | |
180 | - public function getImageFile() | |
181 | - { | |
182 | - return empty( $this->image ) ? NULL : Yii::getAlias('@imagesDir/tax_option/' . $this->image); | |
183 | - } | |
184 | - | |
185 | - public function getImageUrl() | |
186 | - { | |
187 | - return empty( $this->image ) ? NULL : Yii::getAlias('@imagesUrl/tax_option/' . $this->image); | |
188 | - } | |
189 | - | |
190 | 170 | public function getProducts() |
191 | 171 | { |
192 | 172 | return $this->hasMany(Product::className(), [ 'product_id' => 'product_id' ]) | ... | ... |
common/modules/rubrication/models/TaxOptionLang.php
1 | 1 | <?php |
2 | - | |
3 | -namespace common\modules\rubrication\models; | |
4 | - | |
5 | -use common\modules\language\models\Language; | |
6 | -use Yii; | |
7 | - | |
8 | -/** | |
9 | - * This is the model class for table "tax_option_lang". | |
10 | - * | |
11 | - * @property integer $tax_option_id | |
12 | - * @property integer $language_id | |
13 | - * @property string $value | |
14 | - * | |
15 | - * @property Language $language | |
16 | - * @property TaxOption $taxOption | |
17 | - */ | |
18 | -class TaxOptionLang extends \yii\db\ActiveRecord | |
19 | -{ | |
20 | 2 | |
21 | - public static function primaryKey() | |
22 | - { | |
23 | - return [ | |
24 | - 'tax_option_id', | |
25 | - 'language_id', | |
26 | - ]; | |
27 | - } | |
3 | + namespace common\modules\rubrication\models; | |
4 | + | |
5 | + use common\modules\language\models\Language; | |
6 | + use Yii; | |
28 | 7 | |
29 | 8 | /** |
30 | - * @inheritdoc | |
31 | - */ | |
32 | - public static function tableName() | |
33 | - { | |
34 | - return 'tax_option_lang'; | |
35 | - } | |
36 | - | |
37 | - /** | |
38 | - * @inheritdoc | |
39 | - */ | |
40 | - public function rules() | |
41 | - { | |
42 | - return [ | |
43 | - [['value'], 'required'], | |
44 | - [['value'], 'string', 'max' => 255], | |
45 | - [['tax_option_id', 'language_id'], 'unique', 'targetAttribute' => ['tax_option_id', 'language_id'], 'message' => 'The combination of Tax Option ID and Language ID has already been taken.'], | |
46 | - [['language_id'], 'exist', 'skipOnError' => true, 'targetClass' => Language::className(), 'targetAttribute' => ['language_id' => 'language_id']], | |
47 | - [['tax_option_id'], 'exist', 'skipOnError' => true, 'targetClass' => TaxOption::className(), 'targetAttribute' => ['tax_option_id' => 'tax_option_id']], | |
48 | - ]; | |
49 | - } | |
50 | - | |
51 | - /** | |
52 | - * @inheritdoc | |
53 | - */ | |
54 | - public function attributeLabels() | |
55 | - { | |
56 | - return [ | |
57 | - 'tax_option_id' => Yii::t('app', 'Tax Option ID'), | |
58 | - 'language_id' => Yii::t('app', 'Language ID'), | |
59 | - 'value' => Yii::t('app', 'Value'), | |
60 | - ]; | |
61 | - } | |
62 | - | |
63 | - /** | |
64 | - * @return \yii\db\ActiveQuery | |
65 | - */ | |
66 | - public function getLanguage() | |
67 | - { | |
68 | - return $this->hasOne(Language::className(), ['language_id' => 'language_id']); | |
69 | - } | |
70 | - | |
71 | - /** | |
72 | - * @return \yii\db\ActiveQuery | |
9 | + * This is the model class for table "tax_option_lang". | |
10 | + * @property integer $tax_option_id | |
11 | + * @property integer $language_id | |
12 | + * @property string $value | |
13 | + * @property string $alias | |
14 | + * @property Language $language | |
15 | + * @property TaxOption $taxOption | |
73 | 16 | */ |
74 | - public function getTaxOption() | |
17 | + class TaxOptionLang extends \yii\db\ActiveRecord | |
75 | 18 | { |
76 | - return $this->hasOne(TaxOption::className(), ['tax_option_id' => 'tax_option_id']); | |
19 | + | |
20 | + public static function primaryKey() | |
21 | + { | |
22 | + return [ | |
23 | + 'tax_option_id', | |
24 | + 'language_id', | |
25 | + ]; | |
26 | + } | |
27 | + | |
28 | + /** | |
29 | + * @inheritdoc | |
30 | + */ | |
31 | + public static function tableName() | |
32 | + { | |
33 | + return 'tax_option_lang'; | |
34 | + } | |
35 | + | |
36 | + public function behaviors() | |
37 | + { | |
38 | + return [ | |
39 | + 'slug' => [ | |
40 | + 'class' => 'common\behaviors\Slug', | |
41 | + 'in_attribute' => 'value', | |
42 | + 'out_attribute' => 'alias', | |
43 | + 'translit' => true, | |
44 | + ], | |
45 | + ]; | |
46 | + } | |
47 | + | |
48 | + /** | |
49 | + * @inheritdoc | |
50 | + */ | |
51 | + public function rules() | |
52 | + { | |
53 | + return [ | |
54 | + [ | |
55 | + [ 'value' ], | |
56 | + 'required', | |
57 | + ], | |
58 | + [ | |
59 | + [ | |
60 | + 'value', | |
61 | + 'alias', | |
62 | + ], | |
63 | + 'string', | |
64 | + 'max' => 255, | |
65 | + ], | |
66 | + [ | |
67 | + [ | |
68 | + 'tax_option_id', | |
69 | + 'language_id', | |
70 | + ], | |
71 | + 'unique', | |
72 | + 'targetAttribute' => [ | |
73 | + 'tax_option_id', | |
74 | + 'language_id', | |
75 | + ], | |
76 | + 'message' => 'The combination of Tax Option ID and Language ID has already been taken.', | |
77 | + ], | |
78 | + [ | |
79 | + [ 'language_id' ], | |
80 | + 'exist', | |
81 | + 'skipOnError' => true, | |
82 | + 'targetClass' => Language::className(), | |
83 | + 'targetAttribute' => [ 'language_id' => 'language_id' ], | |
84 | + ], | |
85 | + [ | |
86 | + [ 'tax_option_id' ], | |
87 | + 'exist', | |
88 | + 'skipOnError' => true, | |
89 | + 'targetClass' => TaxOption::className(), | |
90 | + 'targetAttribute' => [ 'tax_option_id' => 'tax_option_id' ], | |
91 | + ], | |
92 | + ]; | |
93 | + } | |
94 | + | |
95 | + /** | |
96 | + * @inheritdoc | |
97 | + */ | |
98 | + public function attributeLabels() | |
99 | + { | |
100 | + return [ | |
101 | + 'tax_option_id' => Yii::t('app', 'Tax Option ID'), | |
102 | + 'language_id' => Yii::t('app', 'Language ID'), | |
103 | + 'value' => Yii::t('app', 'Value'), | |
104 | + 'alias' => Yii::t('app', 'Alias'), | |
105 | + ]; | |
106 | + } | |
107 | + | |
108 | + /** | |
109 | + * @return \yii\db\ActiveQuery | |
110 | + */ | |
111 | + public function getLanguage() | |
112 | + { | |
113 | + return $this->hasOne(Language::className(), [ 'language_id' => 'language_id' ]); | |
114 | + } | |
115 | + | |
116 | + /** | |
117 | + * @return \yii\db\ActiveQuery | |
118 | + */ | |
119 | + public function getTaxOption() | |
120 | + { | |
121 | + return $this->hasOne(TaxOption::className(), [ 'tax_option_id' => 'tax_option_id' ]); | |
122 | + } | |
77 | 123 | } |
78 | -} | ... | ... |
common/modules/rubrication/models/TaxOptionSearch.php
... | ... | @@ -27,7 +27,6 @@ class TaxOptionSearch extends TaxOption |
27 | 27 | { |
28 | 28 | return [ |
29 | 29 | [['tax_option_id', 'tax_group_id', 'parent_id', 'sort'], 'integer'], |
30 | - [['alias', 'value'], 'safe'], | |
31 | 30 | ]; |
32 | 31 | } |
33 | 32 | |
... | ... | @@ -73,9 +72,7 @@ class TaxOptionSearch extends TaxOption |
73 | 72 | 'parent_id' => $this->parent_id, |
74 | 73 | 'sort' => $this->sort, |
75 | 74 | ]); |
76 | - | |
77 | - $query->andFilterWhere(['like', 'alias', $this->alias]); | |
78 | - | |
75 | + | |
79 | 76 | $query->orderBy(['path_int' => SORT_ASC, 'depth' => SORT_ASC, 'sort' => SORT_ASC]); |
80 | 77 | |
81 | 78 | return $dataProvider; | ... | ... |
common/modules/rubrication/views/tax-group/_form.php
... | ... | @@ -21,17 +21,8 @@ |
21 | 21 | |
22 | 22 | <?php $form = ActiveForm::begin([ 'options' => [ 'enctype' => 'multipart/form-data' ] ]); ?> |
23 | 23 | |
24 | - <?= $form->field($model, 'name') | |
25 | - ->textInput([ 'maxlength' => true ]) ?> | |
26 | - | |
27 | - <?= $form->field($model, 'alias') | |
28 | - ->textInput([ 'maxlength' => true ]) ?> | |
29 | - | |
30 | - <?= $form->field($model, 'description') | |
31 | - ->textarea([ 'rows' => 6 ]) ?> | |
32 | - | |
33 | 24 | <?= $form->field($model, 'categories') |
34 | - ->dropDownList(ArtboxTreeHelper::treeMap(ProductHelper::getCategories(), 'category_id', 'name'), [ | |
25 | + ->dropDownList(ArtboxTreeHelper::treeMap(ProductHelper::getCategories(), 'category_id', 'category_id'), [ | |
35 | 26 | 'multiple' => true, |
36 | 27 | ]) |
37 | 28 | ->label('Use in the following categories') ?> | ... | ... |
common/modules/rubrication/views/tax-group/_form_language.php
... | ... | @@ -13,5 +13,7 @@ |
13 | 13 | ?> |
14 | 14 | <?= $form->field($model_lang, '[' . $language->language_id . ']name') |
15 | 15 | ->textInput([ 'maxlength' => true ]); ?> |
16 | +<?= $form->field($model_lang, '[' . $language->language_id . ']alias') | |
17 | + ->textInput([ 'maxlength' => true ]); ?> | |
16 | 18 | <?= $form->field($model_lang, '[' . $language->language_id . ']description') |
17 | 19 | ->textarea([ 'rows' => 6 ]) ?> |
18 | 20 | \ No newline at end of file | ... | ... |
common/modules/rubrication/views/tax-group/index.php
1 | 1 | <?php |
2 | -use yii\helpers\Html; | |
3 | -use yii\grid\GridView; | |
4 | -use yii\helpers\Url; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $level integer | |
8 | -/* @var $dataProvider yii\data\ActiveDataProvider */ | |
9 | - | |
10 | -$this->title = Yii::t('rubrication', 'Groups'); | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + use yii\helpers\Html; | |
3 | + use yii\grid\GridView; | |
4 | + use yii\helpers\Url; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $level integer | |
8 | + /* @var $dataProvider yii\data\ActiveDataProvider */ | |
9 | + | |
10 | + $this->title = Yii::t('rubrication', 'Groups'); | |
11 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 12 | ?> |
13 | 13 | |
14 | 14 | <div class="tax-group-index"> |
15 | - | |
15 | + | |
16 | 16 | <h1><?= Html::encode($this->title) ?></h1> |
17 | 17 | <p> |
18 | - <?= Html::a(Yii::t('rubrication', 'Create Group'), Url::to(['/rubrication/tax-group/create', 'level'=> $level]), ['class' => 'btn btn-success']) ?> | |
18 | + <?= Html::a(Yii::t('rubrication', 'Create Group'), Url::to([ | |
19 | + '/rubrication/tax-group/create', | |
20 | + 'level' => $level, | |
21 | + ]), [ 'class' => 'btn btn-success' ]) ?> | |
19 | 22 | </p> |
20 | - | |
23 | + | |
21 | 24 | <?= GridView::widget([ |
22 | 25 | 'dataProvider' => $dataProvider, |
23 | - 'columns' => [ | |
24 | - ['class' => 'yii\grid\SerialColumn'], | |
25 | - | |
26 | - 'name', | |
27 | - 'alias', | |
28 | - 'description:ntext', | |
29 | - 'is_filter:boolean', | |
30 | - | |
26 | + 'columns' => [ | |
27 | + [ 'class' => 'yii\grid\SerialColumn' ], | |
28 | + 'tax_group_id', | |
29 | + 'is_filter:boolean', | |
30 | + | |
31 | 31 | [ |
32 | - 'class' => 'yii\grid\ActionColumn', | |
33 | - 'template' => '{update} {options} {relations} {delete} {rebuild}', | |
34 | - 'buttons' => [ | |
35 | - 'options' => function ($url, $model) { | |
32 | + 'class' => 'yii\grid\ActionColumn', | |
33 | + 'template' => '{update} {options} {relations} {delete} {rebuild}', | |
34 | + 'buttons' => [ | |
35 | + 'options' => function($url, $model) { | |
36 | 36 | return Html::a('<span class="glyphicon glyphicon-th-list"></span>', $url, [ |
37 | 37 | 'title' => Yii::t('rubrication', 'Options'), |
38 | 38 | ]); |
39 | 39 | }, |
40 | - 'relations' => function ($url, $model) { | |
40 | + 'relations' => function($url, $model) { | |
41 | 41 | return Html::a('<!--span class="glyphicon glyphicon-random"></span-->', $url, [ |
42 | 42 | 'title' => Yii::t('rubrication', 'Relations'), |
43 | 43 | ]); |
44 | 44 | }, |
45 | - 'rebuild' => function ($url, $model) { | |
45 | + 'rebuild' => function($url, $model) { | |
46 | 46 | return Html::a('<!--span class="glyphicon glyphicon-refresh"></span-->', $url, [ |
47 | 47 | 'title' => Yii::t('rubrication', 'Rebuild cache'), |
48 | 48 | ]); |
49 | - } | |
49 | + }, | |
50 | 50 | ], |
51 | - 'urlCreator' => function ($action, $model, $key, $index) use ($level) { | |
52 | - if ($action === 'options') { | |
53 | - $url ='/admin/rubrication/tax-option?group='.$model->tax_group_id; | |
51 | + 'urlCreator' => function($action, $model, $key, $index) use ($level) { | |
52 | + if($action === 'options') { | |
53 | + $url = '/admin/rubrication/tax-option?group=' . $model->tax_group_id; | |
54 | 54 | return $url; |
55 | - } elseif ($action === 'relations') { | |
56 | - $url ='/admin/rubrication/tax-group/relation&id='.$model->tax_group_id; | |
55 | + } elseif($action === 'relations') { | |
56 | + $url = '/admin/rubrication/tax-group/relation&id=' . $model->tax_group_id; | |
57 | 57 | return $url; |
58 | - } elseif ($action === 'update') { | |
59 | - $url =Url::to(['/rubrication/tax-group/update', 'level'=> $level,'id' =>$model->tax_group_id]); | |
58 | + } elseif($action === 'update') { | |
59 | + $url = Url::to([ | |
60 | + '/rubrication/tax-group/update', | |
61 | + 'level' => $level, | |
62 | + 'id' => $model->tax_group_id, | |
63 | + ]); | |
60 | 64 | return $url; |
61 | - } elseif ($action === 'delete') { | |
62 | - $url =Url::to(['/rubrication/tax-group/delete', 'level'=> $level,'id' =>$model->tax_group_id]); | |
65 | + } elseif($action === 'delete') { | |
66 | + $url = Url::to([ | |
67 | + '/rubrication/tax-group/delete', | |
68 | + 'level' => $level, | |
69 | + 'id' => $model->tax_group_id, | |
70 | + ]); | |
63 | 71 | return $url; |
64 | - } elseif ($action === 'rebuild') { | |
65 | - $url ='/admin/rubrication/tax-group/rebuild?id='.$model->tax_group_id; | |
72 | + } elseif($action === 'rebuild') { | |
73 | + $url = '/admin/rubrication/tax-group/rebuild?id=' . $model->tax_group_id; | |
66 | 74 | return $url; |
67 | 75 | } |
68 | - } | |
76 | + return ''; | |
77 | + }, | |
69 | 78 | ], |
70 | 79 | ], |
71 | 80 | ]); ?> | ... | ... |
common/modules/rubrication/views/tax-group/update.php
... | ... | @@ -13,13 +13,13 @@ |
13 | 13 | |
14 | 14 | $this->title = Yii::t('rubrication', 'Update {modelClass}: ', [ |
15 | 15 | 'modelClass' => 'Tax Group', |
16 | - ]) . ' ' . $model->name; | |
16 | + ]) . ' ' . $model->tax_group_id; | |
17 | 17 | $this->params[ 'breadcrumbs' ][] = [ |
18 | 18 | 'label' => Yii::t('rubrication', 'Groups'), |
19 | 19 | 'url' => [ 'index' ], |
20 | 20 | ]; |
21 | 21 | $this->params[ 'breadcrumbs' ][] = [ |
22 | - 'label' => $model->name, | |
22 | + 'label' => $model->tax_group_id, | |
23 | 23 | 'url' => [ |
24 | 24 | 'view', |
25 | 25 | 'id' => $model->tax_group_id, | ... | ... |
common/modules/rubrication/views/tax-group/view.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\widgets\DetailView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $model common\modules\rubrication\models\TaxGroup */ | |
8 | - | |
9 | -$this->title = $model->name; | |
10 | -$this->params['breadcrumbs'][] = ['label' => Yii::t('rubrication', 'Tax Groups'), 'url' => ['index']]; | |
11 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\widgets\DetailView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $model common\modules\rubrication\models\TaxGroup */ | |
8 | + | |
9 | + $this->title = $model->tax_group_id; | |
10 | + $this->params[ 'breadcrumbs' ][] = [ | |
11 | + 'label' => Yii::t('rubrication', 'Tax Groups'), | |
12 | + 'url' => [ 'index' ], | |
13 | + ]; | |
14 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
12 | 15 | ?> |
13 | 16 | <div class="tax-group-view"> |
14 | - | |
17 | + | |
15 | 18 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | |
19 | + | |
17 | 20 | <p> |
18 | - <?= Html::a(Yii::t('rubrication', 'Update'), ['update', 'id' => $model->tax_group_id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a(Yii::t('rubrication', 'Delete'), ['delete', 'id' => $model->tax_group_id], [ | |
21 | + <?= Html::a(Yii::t('rubrication', 'Update'), [ | |
22 | + 'update', | |
23 | + 'id' => $model->tax_group_id, | |
24 | + ], [ 'class' => 'btn btn-primary' ]) ?> | |
25 | + <?= Html::a(Yii::t('rubrication', 'Delete'), [ | |
26 | + 'delete', | |
27 | + 'id' => $model->tax_group_id, | |
28 | + ], [ | |
20 | 29 | 'class' => 'btn btn-danger', |
21 | - 'data' => [ | |
30 | + 'data' => [ | |
22 | 31 | 'confirm' => Yii::t('rubrication', 'Are you sure you want to delete this item?'), |
23 | - 'method' => 'post', | |
32 | + 'method' => 'post', | |
24 | 33 | ], |
25 | 34 | ]) ?> |
26 | - <?= Html::a(Yii::t('rubrication', 'Create Option'), ['tax-option/create?group='. $model->tax_group_id], ['class' => 'btn btn-success']) ?> | |
35 | + <?= Html::a(Yii::t('rubrication', 'Create Option'), [ 'tax-option/create?group=' . $model->tax_group_id ], [ 'class' => 'btn btn-success' ]) ?> | |
27 | 36 | </p> |
28 | - | |
37 | + | |
29 | 38 | <?= DetailView::widget([ |
30 | 39 | 'model' => $model, |
31 | 40 | 'attributes' => [ |
32 | 41 | 'tax_group_id', |
33 | - 'alias', | |
34 | - 'name', | |
35 | - 'description:ntext', | |
36 | 42 | 'is_filter:boolean', |
37 | 43 | ], |
38 | 44 | ]) ?> | ... | ... |
common/modules/rubrication/views/tax-option/_form.php
... | ... | @@ -24,7 +24,7 @@ |
24 | 24 | <?php if(empty( $group->tax_group_id )) : ?> |
25 | 25 | <?= $form->field($model, 'tax_group_id') |
26 | 26 | ->dropDownList(ArrayHelper::map(TaxOption::find() |
27 | - ->all(), 'tax_group_id', 'value'), [ | |
27 | + ->all(), 'tax_group_id', 'tax_group_id'), [ | |
28 | 28 | 'prompt' => Yii::t('rubrication', 'Select group'), |
29 | 29 | ]) ?> |
30 | 30 | <?php else : ?> |
... | ... | @@ -33,15 +33,8 @@ |
33 | 33 | ->label('') ?> |
34 | 34 | <?php endif ?> |
35 | 35 | |
36 | - | |
37 | - <?= $form->field($model, 'value') | |
38 | - ->textInput([ 'maxlength' => true ]) ?> | |
39 | - | |
40 | - <?= $form->field($model, 'alias') | |
41 | - ->textInput([ 'maxlength' => true ]) ?> | |
42 | - | |
43 | 36 | <?= $form->field($model, 'image') |
44 | - ->widget(\kartik\file\FileInput::classname(), [ | |
37 | + ->widget(\kartik\file\FileInput::className(), [ | |
45 | 38 | 'language' => 'ru', |
46 | 39 | 'options' => [ |
47 | 40 | 'accept' => 'image/*', | ... | ... |
common/modules/rubrication/views/tax-option/_form_language.php
... | ... | @@ -12,4 +12,6 @@ |
12 | 12 | */ |
13 | 13 | ?> |
14 | 14 | <?= $form->field($model_lang, '[' . $language->language_id . ']value') |
15 | - ->textInput([ 'maxlength' => true ]); ?> | |
16 | 15 | \ No newline at end of file |
16 | + ->textInput([ 'maxlength' => true ]); ?> | |
17 | +<?= $form->field($model_lang, '[' . $language->language_id . ']alias') | |
18 | + ->textInput([ 'maxlength' => true ]); ?> | ... | ... |
common/modules/rubrication/views/tax-option/create.php
... | ... | @@ -16,14 +16,14 @@ |
16 | 16 | 'url' => [ 'tax-group/index' ], |
17 | 17 | ]; |
18 | 18 | $this->params[ 'breadcrumbs' ][] = [ |
19 | - 'label' => Yii::t('rubrication', $group->name), | |
19 | + 'label' => Yii::t('rubrication', $group->tax_group_id), | |
20 | 20 | 'url' => [ |
21 | 21 | 'index', |
22 | 22 | 'group' => $group->tax_group_id, |
23 | 23 | ], |
24 | 24 | ]; |
25 | 25 | $this->params[ 'breadcrumbs' ][] = [ |
26 | - 'label' => Yii::t('rubrication', Yii::t('rubrication', 'Options of {name}', [ 'name' => $group->name ])), | |
26 | + 'label' => Yii::t('rubrication', Yii::t('rubrication', 'Options of {name}', [ 'name' => $group->tax_group_id ])), | |
27 | 27 | 'url' => [ |
28 | 28 | 'index', |
29 | 29 | 'group' => $group->tax_group_id, | ... | ... |
common/modules/rubrication/views/tax-option/index.php
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 | * @var TaxGroup $group |
12 | 12 | */ |
13 | 13 | |
14 | - $this->title = Yii::t('rubrication', 'Options for group "{group}"', [ 'group' => $group->name ]); | |
14 | + $this->title = Yii::t('rubrication', 'Options for group "{group}"', [ 'group' => $group->tax_group_id ]); | |
15 | 15 | $this->params[ 'breadcrumbs' ][] = [ |
16 | 16 | 'label' => Yii::t('rubrication', 'Groups'), |
17 | 17 | 'url' => [ 'tax-group/index' ], |
... | ... | @@ -30,8 +30,7 @@ |
30 | 30 | 'dataProvider' => $dataProvider, |
31 | 31 | 'columns' => [ |
32 | 32 | [ 'class' => 'yii\grid\SerialColumn' ], |
33 | - 'value', | |
34 | - 'alias', | |
33 | + 'tax_option_id', | |
35 | 34 | [ |
36 | 35 | 'class' => 'yii\grid\ActionColumn', |
37 | 36 | 'template' => '{update} {delete}', | ... | ... |
common/modules/rubrication/views/tax-option/update.php
... | ... | @@ -18,14 +18,14 @@ |
18 | 18 | 'url' => [ 'tax-group/index' ], |
19 | 19 | ]; |
20 | 20 | $this->params[ 'breadcrumbs' ][] = [ |
21 | - 'label' => $group->name, | |
21 | + 'label' => $group->tax_group_id, | |
22 | 22 | 'url' => [ |
23 | 23 | 'view', |
24 | 24 | 'id' => $group->tax_group_id, |
25 | 25 | ], |
26 | 26 | ]; |
27 | 27 | $this->params[ 'breadcrumbs' ][] = [ |
28 | - 'label' => Yii::t('rubrication', Yii::t('rubrication', 'Options of {name}', [ 'name' => $group->name ])), | |
28 | + 'label' => Yii::t('rubrication', Yii::t('rubrication', 'Options of {name}', [ 'name' => $group->tax_group_id ])), | |
29 | 29 | 'url' => [ |
30 | 30 | 'index', |
31 | 31 | 'group' => $group->tax_group_id, | ... | ... |
common/modules/rubrication/views/tax-option/view.php
1 | 1 | <?php |
2 | - | |
3 | -use yii\helpers\Html; | |
4 | -use yii\widgets\DetailView; | |
5 | - | |
6 | -/* @var $this yii\web\View */ | |
7 | -/* @var $model common\modules\rubrication\models\TaxOption */ | |
8 | - | |
9 | -$this->title = $model->value; | |
10 | -$this->params['breadcrumbs'][] = ['label' => Yii::t('rubrication', 'Groups'), 'url' => ['tax-group/index']]; | |
11 | -$this->params['breadcrumbs'][] = ['label' => Yii::t('rubrication', $group->name), 'url' => ['index', 'group' => $group->tax_group_id]]; | |
12 | -$this->params['breadcrumbs'][] = ['label' => Yii::t('rubrication', Yii::t('rubrication', 'Options of {name}', ['name' => $group->name])), 'url' => ['index', 'group' => $group->tax_group_id]]; | |
13 | -$this->params['breadcrumbs'][] = $this->title; | |
2 | + | |
3 | + use yii\helpers\Html; | |
4 | + use yii\widgets\DetailView; | |
5 | + | |
6 | + /* @var $this yii\web\View */ | |
7 | + /* @var $model common\modules\rubrication\models\TaxOption */ | |
8 | + | |
9 | + $this->title = $model->tax_option_id; | |
10 | + $this->params[ 'breadcrumbs' ][] = [ | |
11 | + 'label' => Yii::t('rubrication', 'Groups'), | |
12 | + 'url' => [ 'tax-group/index' ], | |
13 | + ]; | |
14 | + $this->params[ 'breadcrumbs' ][] = [ | |
15 | + 'label' => Yii::t('rubrication', $group->tax_group_id), | |
16 | + 'url' => [ | |
17 | + 'index', | |
18 | + 'group' => $group->tax_group_id, | |
19 | + ], | |
20 | + ]; | |
21 | + $this->params[ 'breadcrumbs' ][] = [ | |
22 | + 'label' => Yii::t('rubrication', Yii::t('rubrication', 'Options of {name}', [ 'name' => $group->tax_group_id ])), | |
23 | + 'url' => [ | |
24 | + 'index', | |
25 | + 'group' => $group->tax_group_id, | |
26 | + ], | |
27 | + ]; | |
28 | + $this->params[ 'breadcrumbs' ][] = $this->title; | |
14 | 29 | ?> |
15 | 30 | <div class="tax-option-view"> |
16 | - | |
31 | + | |
17 | 32 | <h1><?= Html::encode($this->title) ?></h1> |
18 | - | |
33 | + | |
19 | 34 | <p> |
20 | - <?= Html::a(Yii::t('rubrication', 'Update'), ['update', 'id' => $model->tax_option_id], ['class' => 'btn btn-primary']) ?> | |
21 | - <?= Html::a(Yii::t('rubrication', 'Delete'), ['delete', 'id' => $model->tax_option_id], [ | |
35 | + <?= Html::a(Yii::t('rubrication', 'Update'), [ | |
36 | + 'update', | |
37 | + 'id' => $model->tax_option_id, | |
38 | + ], [ 'class' => 'btn btn-primary' ]) ?> | |
39 | + <?= Html::a(Yii::t('rubrication', 'Delete'), [ | |
40 | + 'delete', | |
41 | + 'id' => $model->tax_option_id, | |
42 | + ], [ | |
22 | 43 | 'class' => 'btn btn-danger', |
23 | - 'data' => [ | |
44 | + 'data' => [ | |
24 | 45 | 'confirm' => Yii::t('rubrication', 'Are you sure you want to delete this item?'), |
25 | - 'method' => 'post', | |
46 | + 'method' => 'post', | |
26 | 47 | ], |
27 | 48 | ]) ?> |
28 | - <?= Html::a(Yii::t('rubrication', 'Create Option'), ['tax-option/create?group='. $model->tax_group_id], ['class' => 'btn btn-success']) ?> | |
29 | - <?php if (!empty($model->parent_id)) :?> | |
30 | - <?= Html::a(Yii::t('rubrication', 'Create Option By {name}', ['name' => $model->parent->value]), ['tax-option/create?group='. $model->tax_group_id .'&parent='. $model->parent->tax_option_id], ['class' => 'btn btn-success']) ?> | |
31 | - <?php endif?> | |
49 | + <?= Html::a(Yii::t('rubrication', 'Create Option'), [ 'tax-option/create?group=' . $model->tax_group_id ], [ 'class' => 'btn btn-success' ]) ?> | |
50 | + <?php if(!empty( $model->parent_id )) : ?> | |
51 | + <?= Html::a(Yii::t('rubrication', 'Create Option By {name}', [ 'name' => $model->parent->tax_option_id ]), [ 'tax-option/create?group=' . $model->tax_group_id . '&parent=' . $model->parent->tax_option_id ], [ 'class' => 'btn btn-success' ]) ?> | |
52 | + <?php endif ?> | |
32 | 53 | </p> |
33 | - | |
54 | + | |
34 | 55 | <?= DetailView::widget([ |
35 | 56 | 'model' => $model, |
36 | 57 | 'attributes' => [ |
37 | 58 | 'tax_option_id', |
38 | - 'value', | |
39 | - 'alias', | |
40 | - 'parent.value', | |
41 | - 'group.name', | |
59 | + 'parent.tax_option_id', | |
60 | + 'group.tax_group_id', | |
42 | 61 | 'sort', |
43 | 62 | ], |
44 | 63 | ]) ?> | ... | ... |
console/migrations/m161004_102751_add_lang_column.php
0 → 100644
1 | +<?php | |
2 | + | |
3 | + use yii\db\Migration; | |
4 | + | |
5 | + class m161004_102751_add_lang_column extends Migration | |
6 | + { | |
7 | + | |
8 | + public function up() | |
9 | + { | |
10 | + $this->addColumn('articles_lang', 'alias', $this->string(255)); | |
11 | + $this->addColumn('brand_lang', 'alias', $this->string(255)); | |
12 | + $this->addColumn('category_lang', 'alias', $this->string(255)); | |
13 | + $this->addColumn('event_lang', 'alias', $this->string(255)); | |
14 | + $this->addColumn('page_lang', 'alias', $this->string(255)); | |
15 | + $this->addColumn('product_lang', 'alias', $this->string(255)); | |
16 | + $this->addColumn('project_lang', 'alias', $this->string(255)); | |
17 | + $this->addColumn('service_lang', 'alias', $this->string(255)); | |
18 | + $this->addColumn('tax_group_lang', 'alias', $this->string(255)); | |
19 | + $this->addColumn('tax_option_lang', 'alias', $this->string(255)); | |
20 | + $this->createIndex('articles_lang_alias', 'articles_lang', 'alias', true); | |
21 | + $this->createIndex('brand_lang_alias', 'brand_lang', 'alias', true); | |
22 | + $this->createIndex('category_lang_alias', 'category_lang', 'alias', true); | |
23 | + $this->createIndex('event_lang_alias', 'event_lang', 'alias', true); | |
24 | + $this->createIndex('page_lang_alias', 'page_lang', 'alias', true); | |
25 | + $this->createIndex('product_lang_alias', 'product_lang', 'alias', true); | |
26 | + $this->createIndex('project_lang_alias', 'project_lang', 'alias', true); | |
27 | + $this->createIndex('service_lang_alias', 'service_lang', 'alias', true); | |
28 | + $this->createIndex('tax_group_lang_alias', 'tax_group_lang', 'alias', true); | |
29 | + $this->createIndex('tax_option_lang_alias', 'tax_option_lang', 'alias', true); | |
30 | + } | |
31 | + | |
32 | + public function down() | |
33 | + { | |
34 | + $this->dropIndex('articles_lang_alias', 'articles_lang'); | |
35 | + $this->dropIndex('brand_lang_alias', 'brand_lang'); | |
36 | + $this->dropIndex('category_lang_alias', 'category_lang'); | |
37 | + $this->dropIndex('event_lang_alias', 'event_lang'); | |
38 | + $this->dropIndex('page_lang_alias', 'page_lang'); | |
39 | + $this->dropIndex('product_lang_alias', 'product_lang'); | |
40 | + $this->dropIndex('project_lang_alias', 'project_lang'); | |
41 | + $this->dropIndex('service_lang_alias', 'service_lang'); | |
42 | + $this->dropIndex('tax_group_lang_alias', 'tax_group_lang'); | |
43 | + $this->dropIndex('tax_option_lang_alias', 'tax_option_lang'); | |
44 | + $this->dropColumn('articles_lang', 'alias'); | |
45 | + $this->dropColumn('brand_lang', 'alias'); | |
46 | + $this->dropColumn('category_lang', 'alias'); | |
47 | + $this->dropColumn('event_lang', 'alias'); | |
48 | + $this->dropColumn('page_lang', 'alias'); | |
49 | + $this->dropColumn('product_lang', 'alias'); | |
50 | + $this->dropColumn('project_lang', 'alias'); | |
51 | + $this->dropColumn('service_lang', 'alias'); | |
52 | + $this->dropColumn('tax_group_lang', 'alias'); | |
53 | + $this->dropColumn('tax_option_lang', 'alias'); | |
54 | + } | |
55 | + } | ... | ... |
1 | -1. OrdersDelivery - добавить возможность добавления. | |
2 | -2. Переименовать все id в table_id. | |
3 | -3. Переименовать все table!s! в table. | |
4 | -4. Пересмотреть структура таблицы orders_products. | |
5 | -5. Посмотреть разницу ProductVariantSearch и ProductVariantListSearch. | |
6 | -6. Wishlist | |
7 | -7. Lookbook (типа коллекций)? | |
1 | +1. Написать стандарты. | |
2 | +1.1. Таблицы и колонки. (0.25 час Ярик, Виталик) | |
3 | +1.2. Классы. (0.25 час Ярик, Виталик) (http://svyatoslav.biz/misc/psr_translation/) | |
4 | +1.3. Написать как пользоваться GIT. (1 час Виталик) | |
5 | +1.4. Стандарты по JS (pure, jQuery). (1 час Ярик) (https://learn.javascript.ru/coding-style) | |
6 | + | |
7 | +2. База данных. | |
8 | +2.1. Удалить поля, которые перешли в мультиязычность. (1 час Ярик) | |
9 | +2.2. Привести наименование колонок и таблиц к одному стилю. (1 час Ярик) | |
10 | +2.3. Написать миграциию. (15 мин на таблицу 71 таблица) (20 часа Женя, 1 час Ярик) | |
11 | + | |
12 | +3. Классы | |
13 | +3.1. Пофиксить после изменений в базе + формы. (8 часов Ярик) | |
14 | +3.2. SlugBeahvior перенести на классы языков где требуется. (1 час Ярик) | |
15 | + | |
16 | +4. Админка | |
17 | +4.1. Почистить админку. | |
18 | +4.2. Перевести все поля. (3 час Женя) | |
19 | +4.3. Пофиксить крошки и другие баги. (3 часа Леша) | |
20 | +4.4. Настроить везде одинаковую загрузку картинок (1 час Ярик) | |
21 | +4.4.1. Написать behavior для множественной загрузки картинок. (4 час Виталик) | |
22 | +4.5. Добавить страницы добавления OrdersDelivery, OrdersLabel. (2 час Леша) | |
23 | +4.6. Вывод информации на главную страницу админки. (∞ Леша) | |
24 | + | |
25 | +5. Подготовка под Composer (∞) (https://github.com/yiisoft/yii2/blob/master/docs/guide-ru/structure-extensions.md#Создание-расширений-) | |
26 | +5.1. Свести все зависимости в одну директорию. | |
27 | +5.2. Свести все ключевые правки в один проект. | |
28 | +5.2.1. Импорт с линии света (∞ Виталик) | |
29 | +5.2.2. Акции с рюкзака (1 час Виталик) | |
30 | +5.2.3. Мультиязычность с витекса (1 часа Ярик) | |
31 | +5.2.4. Блог на бакаре (Леша) | |
32 | +5.2.5. Загрузка картинок с витекса (0.25 часа Ярик) | |
33 | + | |
34 | +6. Модуль заказов | |
35 | +6.1. Доставка | |
36 | +6.1.1. Бесплатная | |
37 | +6.1.2. Доставка новая почта | |
38 | +6.2. Оплата онлайн | |
39 | + | |
40 | +7. Wishlist | |
41 | + | |
8 | 42 | 8. Compare |
9 | -9. Tags для блога | |
10 | -10. Social integration | |
11 | 43 | \ No newline at end of file |
44 | + | |
45 | +9. Blog (Леша делает) | |
46 | +9.1. Рубрики | |
47 | +9.2. Теги | |
48 | + | |
49 | +10. Сторонние сервисы | |
50 | +10.1. Доставка | |
51 | +10.2. Оплата | |
52 | +10.3. Интеграция с 1С (baucenter) (3 часа Виталик) | |
53 | + | |
54 | +11. Базовая верстка | |
55 | + | |
56 | +12. Фильтры (8 часа Ярик, Виталик) | |
57 | +12.1. Чтобы исчезали | |
58 | + | |
59 | +13. Пофиксить Product Stock (1 час Ярик) | |
60 | + | |
61 | +14. Настройка продакшн сервера (2 часа Виталик, Леша) | |
62 | + | |
63 | +15. Узнать о снижении цены | |
64 | + | |
65 | +16. Блок просмотренные товары | |
66 | + | |
67 | +17. Блок похожие товары | |
68 | + | |
69 | +18. Валюты | |
70 | + | |
71 | +19. Промокоды | |
72 | + | |
73 | +Осталось Ярик: | |
74 | +- Посмотреть разницу ProductVariantSearch и ProductVariantListSearch. | |
75 | +- Social integration | |
76 | + | |
77 | +Fix по существующему: | |
78 | +1. Product - разобратсья с картинками | |
79 | +2. Product->getCategories = Product->getCategoriesWithNames | ... | ... |