Commit d0c66642bfb475d1a14f46c7505a01740708832c
1 parent
01799a55
Namespaces
Showing
28 changed files
with
52 additions
and
606 deletions
Show diff stats
behaviors/ArtBoxAccessBehavior.php
behaviors/ImageBehavior.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | - namespace common\behaviors; | 3 | + namespace artweb\artbox\behaviors; |
4 | 4 | ||
5 | use yii\base\Behavior; | 5 | use yii\base\Behavior; |
6 | use yii\base\Event; | 6 | use yii\base\Event; |
@@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
8 | 8 | ||
9 | /** | 9 | /** |
10 | * Class ImageBehavior | 10 | * Class ImageBehavior |
11 | - * @package common\behaviors | 11 | + * @package artweb\artbox\behaviors |
12 | */ | 12 | */ |
13 | class ImageBehavior extends Behavior | 13 | class ImageBehavior extends Behavior |
14 | { | 14 | { |
behaviors/MultipleImgBehavior.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | - namespace common\behaviors; | 3 | + namespace artweb\artbox\behaviors; |
4 | 4 | ||
5 | - use common\components\artboximage\ArtboxImageHelper; | 5 | + use artweb\artbox\components\artboximage\ArtboxImageHelper; |
6 | use yii\base\Behavior; | 6 | use yii\base\Behavior; |
7 | use yii\db\ActiveRecord; | 7 | use yii\db\ActiveRecord; |
8 | use yii\helpers\Url; | 8 | use yii\helpers\Url; |
@@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
13 | * @property ActiveRecord $owner | 13 | * @property ActiveRecord $owner |
14 | * @property ActiveRecord $image | 14 | * @property ActiveRecord $image |
15 | * @property ActiveRecord[] $images | 15 | * @property ActiveRecord[] $images |
16 | - * @package common\behaviors | 16 | + * @package artweb\artbox\behaviors |
17 | */ | 17 | */ |
18 | class MultipleImgBehavior extends Behavior | 18 | class MultipleImgBehavior extends Behavior |
19 | { | 19 | { |
behaviors/SaveImgBehavior.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | - namespace common\behaviors; | 3 | + namespace artweb\artbox\behaviors; |
4 | 4 | ||
5 | use yii\base\Behavior; | 5 | use yii\base\Behavior; |
6 | use yii\base\ModelEvent; | 6 | use yii\base\ModelEvent; |
@@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
10 | /** | 10 | /** |
11 | * Class Save Image Behavior | 11 | * Class Save Image Behavior |
12 | * @property ActiveRecord $owner | 12 | * @property ActiveRecord $owner |
13 | - * @package common\behaviors | 13 | + * @package artweb\artbox\behaviors |
14 | */ | 14 | */ |
15 | class SaveImgBehavior extends Behavior | 15 | class SaveImgBehavior extends Behavior |
16 | { | 16 | { |
behaviors/SaveMultipleFileBehavior.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | - namespace common\behaviors; | 3 | + namespace artweb\artbox\behaviors; |
4 | 4 | ||
5 | use yii\base\Behavior; | 5 | use yii\base\Behavior; |
6 | use yii\base\Event; | 6 | use yii\base\Event; |
@@ -12,7 +12,7 @@ | @@ -12,7 +12,7 @@ | ||
12 | * | 12 | * |
13 | * @todo Write validators | 13 | * @todo Write validators |
14 | * | 14 | * |
15 | - * @package common\behaviors | 15 | + * @package artweb\artbox\behaviors |
16 | */ | 16 | */ |
17 | class SaveMultipleFileBehavior extends Behavior | 17 | class SaveMultipleFileBehavior extends Behavior |
18 | { | 18 | { |
behaviors/Slug.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | - namespace common\behaviors; | 3 | + namespace artweb\artbox\behaviors; |
4 | 4 | ||
5 | use yii; | 5 | use yii; |
6 | use yii\base\Behavior; | 6 | use yii\base\Behavior; |
7 | use yii\db\ActiveRecord; | 7 | use yii\db\ActiveRecord; |
8 | - use dosamigos\transliterator\TransliteratorHelper; | ||
9 | 8 | ||
10 | class Slug extends Behavior | 9 | class Slug extends Behavior |
11 | { | 10 | { |
components/SmsSender.php
components/artboximage/ArtboxImage.php
components/artboximage/ArtboxImageHelper.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | - namespace common\components\artboximage; | 3 | + namespace artweb\artbox\components\artboximage; |
4 | 4 | ||
5 | use Yii; | 5 | use Yii; |
6 | use yii\base\Object; | 6 | use yii\base\Object; |
@@ -22,7 +22,7 @@ | @@ -22,7 +22,7 @@ | ||
22 | /** | 22 | /** |
23 | * Get image manipulation driver | 23 | * Get image manipulation driver |
24 | * | 24 | * |
25 | - * @return \common\components\artboximage\ArtboxImage | 25 | + * @return \artweb\artbox\components\artboximage\ArtboxImage |
26 | */ | 26 | */ |
27 | public static function getDriver() | 27 | public static function getDriver() |
28 | { | 28 | { |
components/artboxtree/ArtboxTreeBehavior.php
components/artboxtree/ArtboxTreeHelper.php
components/artboxtree/ArtboxTreeQueryTrait.php
components/artboxtree/ArtboxTreeWidget.php
components/artboxtree/treegrid/TreeGridColumn.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | -namespace common\components\artboxtree\treegrid; | 3 | +namespace artweb\artbox\components\artboxtree\treegrid; |
4 | 4 | ||
5 | use Closure; | 5 | use Closure; |
6 | -use Yii; | ||
7 | use yii\base\Model; | 6 | use yii\base\Model; |
8 | use yii\base\Object; | 7 | use yii\base\Object; |
9 | use yii\data\ActiveDataProvider; | 8 | use yii\data\ActiveDataProvider; |
components/artboxtree/treegrid/TreeGridWidget.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | -namespace common\components\artboxtree\treegrid; | 3 | +namespace artweb\artbox\components\artboxtree\treegrid; |
4 | 4 | ||
5 | -use common\modules\rubrication\models\TaxOption; | 5 | +use artweb\artbox\ecommerce\models\TaxOption; |
6 | use Yii; | 6 | use Yii; |
7 | use yii\helpers\Html; | 7 | use yii\helpers\Html; |
8 | use yii\helpers\ArrayHelper; | 8 | use yii\helpers\ArrayHelper; |
9 | 9 | ||
10 | -class TreeGridWidget extends \common\components\artboxtree\ArtboxTreeWidget { | 10 | +class TreeGridWidget extends \artweb\artbox\components\artboxtree\ArtboxTreeWidget { |
11 | 11 | ||
12 | /** | 12 | /** |
13 | * @var array grid column configuration. Each array element represents the configuration | 13 | * @var array grid column configuration. Each array element represents the configuration |
components/artboxtree/treelist/TreeListWidget.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | -namespace common\components\artboxtree\treelist; | 3 | +namespace artweb\artbox\components\artboxtree\treelist; |
4 | 4 | ||
5 | -use Yii; | ||
6 | use yii\helpers\Html; | 5 | use yii\helpers\Html; |
7 | use yii\helpers\ArrayHelper; | 6 | use yii\helpers\ArrayHelper; |
8 | 7 | ||
9 | -class TreeListWidget extends \common\components\artboxtree\ArtboxTreeWidget { | 8 | +class TreeListWidget extends \artweb\artbox\components\artboxtree\ArtboxTreeWidget { |
10 | 9 | ||
11 | public $displayField = 'title'; | 10 | public $displayField = 'title'; |
12 | 11 |
components/artboxtree/treemenu/TreeMenuWidget.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | -namespace common\components\artboxtree\treemenu; | 3 | +namespace artweb\artbox\components\artboxtree\treemenu; |
4 | 4 | ||
5 | -use Yii; | ||
6 | use yii\helpers\Html; | 5 | use yii\helpers\Html; |
7 | use yii\helpers\ArrayHelper; | 6 | use yii\helpers\ArrayHelper; |
8 | 7 | ||
9 | -class TreeMenuWidget extends \common\components\artboxtree\ArtboxTreeWidget { | 8 | +class TreeMenuWidget extends \artweb\artbox\components\artboxtree\ArtboxTreeWidget { |
10 | 9 | ||
11 | public $displayField = 'title'; | 10 | public $displayField = 'title'; |
12 | 11 |
composer.json
@@ -5,7 +5,18 @@ | @@ -5,7 +5,18 @@ | ||
5 | "require": { | 5 | "require": { |
6 | "php": ">=7.0", | 6 | "php": ">=7.0", |
7 | "yiisoft/yii2": "*", | 7 | "yiisoft/yii2": "*", |
8 | - "developeruz/yii2-db-rbac": "*" | 8 | + "developeruz/yii2-db-rbac": "*", |
9 | + "yurkinx/yii2-image": "dev-master", | ||
10 | + "artweb/artbox-ecommerce": "dev-master", | ||
11 | + "artweb/artbox-language": "dev-master", | ||
12 | + "kartik-v/yii2-widget-select2": "@dev", | ||
13 | + "kartik-v/yii2-grid": "@dev", | ||
14 | + "kartik-v/yii2-mpdf": "@dev", | ||
15 | + "kartik-v/yii2-widget-fileinput": "@dev", | ||
16 | + "mihaildev/yii2-ckeditor": "*", | ||
17 | + "mihaildev/yii2-elfinder": "^1.1", | ||
18 | + "kartik-v/yii2-widget-colorinput": "*", | ||
19 | + "kartik-v/yii2-widget-datepicker": "*" | ||
9 | }, | 20 | }, |
10 | "autoload": { | 21 | "autoload": { |
11 | "psr-4": { | 22 | "psr-4": { |
console/GenerateController.php deleted
1 | -<?php | ||
2 | - | ||
3 | - namespace console\controllers; | ||
4 | - | ||
5 | - use common\modules\product\models\Brand; | ||
6 | - use common\modules\product\models\Category; | ||
7 | - use common\modules\product\models\Product; | ||
8 | - use common\modules\product\models\ProductVariant; | ||
9 | - use common\modules\rubrication\models\TaxGroup; | ||
10 | - use common\modules\rubrication\models\TaxOption; | ||
11 | - use Faker\Factory; | ||
12 | - use Faker\Generator; | ||
13 | - use yii\console\Controller; | ||
14 | - use yii\helpers\Console; | ||
15 | - | ||
16 | - /** | ||
17 | - * Class GenerateController to generate ArtBox fake data | ||
18 | - * | ||
19 | - * @package console\controllers | ||
20 | - */ | ||
21 | - class GenerateController extends Controller | ||
22 | - { | ||
23 | - /** | ||
24 | - * Faker Generator locales | ||
25 | - * | ||
26 | - * @var array | ||
27 | - */ | ||
28 | - private $locales = [ | ||
29 | - 2 => 'ru_RU', | ||
30 | - 3 => 'uk_UA', | ||
31 | - ]; | ||
32 | - | ||
33 | - /** | ||
34 | - * Faker Generators instances | ||
35 | - * | ||
36 | - * @var Generator[] $fakers | ||
37 | - */ | ||
38 | - private $fakers = []; | ||
39 | - | ||
40 | - /** | ||
41 | - * Create faker Generators for all $locales | ||
42 | - * | ||
43 | - * @param \yii\base\Action $action | ||
44 | - * | ||
45 | - * @return bool | ||
46 | - */ | ||
47 | - public function beforeAction($action) | ||
48 | - { | ||
49 | - $parent = parent::beforeAction($action); | ||
50 | - $fakers = []; | ||
51 | - foreach ($this->locales as $locale_id => $locale) { | ||
52 | - $fakers[ $locale_id ] = Factory::create($locale); | ||
53 | - } | ||
54 | - $this->fakers = $fakers; | ||
55 | - return $parent; | ||
56 | - } | ||
57 | - | ||
58 | - /** | ||
59 | - * Generate fake Brands | ||
60 | - * | ||
61 | - * @param int $count Brands count | ||
62 | - * | ||
63 | - * @return int | ||
64 | - */ | ||
65 | - public function actionBrand(int $count = 10): int | ||
66 | - { | ||
67 | - /** | ||
68 | - * @var Brand[] $models | ||
69 | - */ | ||
70 | - $models = []; | ||
71 | - $fakers = $this->fakers; | ||
72 | - for ($i = 0; $i < $count; $i++) { | ||
73 | - $models[ $i ] = \Yii::createObject(Brand::className()); | ||
74 | - $models[ $i ]->generateLangs(); | ||
75 | - foreach ($models[ $i ]->modelLangs as $language_id => $modelLang) { | ||
76 | - $modelLang->title = $fakers[ $language_id ]->company; | ||
77 | - } | ||
78 | - if ($models[ $i ]->save() && $models[ $i ]->transactionStatus) { | ||
79 | - $title = $this->ansiFormat($models[ $i ]->modelLangs[ 2 ]->title, Console::FG_YELLOW); | ||
80 | - $id = $this->ansiFormat($models[ $i ]->id, Console::FG_YELLOW); | ||
81 | - echo "Brand '$title' inserted under $id ID.\n"; | ||
82 | - }; | ||
83 | - } | ||
84 | - return 0; | ||
85 | - } | ||
86 | - | ||
87 | - /** | ||
88 | - * Generate fake categories | ||
89 | - * | ||
90 | - * @param int $count Category count | ||
91 | - * | ||
92 | - * @return int | ||
93 | - */ | ||
94 | - public function actionCategory(int $count = 10):int | ||
95 | - { | ||
96 | - /** | ||
97 | - * @var Category[] $models | ||
98 | - */ | ||
99 | - $models = []; | ||
100 | - $fakers = $this->fakers; | ||
101 | - for ($i = 0; $i < $count; $i++) { | ||
102 | - $models[ $i ] = \Yii::createObject( | ||
103 | - [ | ||
104 | - 'class' => Category::className(), | ||
105 | - 'depth' => 0, | ||
106 | - 'parent_id' => 0, | ||
107 | - ] | ||
108 | - ); | ||
109 | - $models[ $i ]->generateLangs(); | ||
110 | - foreach ($models[ $i ]->modelLangs as $language_id => $modelLang) { | ||
111 | - $modelLang->title = ucfirst($fakers[ $language_id ]->word); | ||
112 | - } | ||
113 | - if ($models[ $i ]->save() && $models[ $i ]->transactionStatus) { | ||
114 | - $title = $this->ansiFormat($models[ $i ]->modelLangs[ 2 ]->title, Console::FG_YELLOW); | ||
115 | - $id = $this->ansiFormat($models[ $i ]->id, Console::FG_YELLOW); | ||
116 | - echo "Category '$title' inserted under $id ID.\n"; | ||
117 | - }; | ||
118 | - } | ||
119 | - return 0; | ||
120 | - } | ||
121 | - | ||
122 | - /** | ||
123 | - * Generate fake products with variants, categories and tax options | ||
124 | - * | ||
125 | - * @param int $count Product count | ||
126 | - * | ||
127 | - * @return int | ||
128 | - */ | ||
129 | - public function actionProduct(int $count = 10):int | ||
130 | - { | ||
131 | - /** | ||
132 | - * @var Product[] $models | ||
133 | - */ | ||
134 | - $models = []; | ||
135 | - $fakers = $this->fakers; | ||
136 | - $brands = Brand::find() | ||
137 | - ->limit(20) | ||
138 | - ->asArray() | ||
139 | - ->column(); | ||
140 | - $categories = Category::find() | ||
141 | - ->limit(100) | ||
142 | - ->asArray() | ||
143 | - ->column(); | ||
144 | - $product_options = TaxOption::find() | ||
145 | - ->joinWith('taxGroup') | ||
146 | - ->where([ 'tax_group.level' => TaxGroup::GROUP_PRODUCT ]) | ||
147 | - ->limit(50) | ||
148 | - ->asArray() | ||
149 | - ->column(); | ||
150 | - $variant_options = TaxOption::find() | ||
151 | - ->joinWith('taxGroup') | ||
152 | - ->where([ 'tax_group.level' => TaxGroup::GROUP_VARIANT ]) | ||
153 | - ->limit(50) | ||
154 | - ->asArray() | ||
155 | - ->column(); | ||
156 | - for ($i = 0; $i < $count; $i++) { | ||
157 | - $models[ $i ] = \Yii::createObject( | ||
158 | - [ | ||
159 | - 'class' => Product::className(), | ||
160 | - 'brand_id' => $fakers[ 2 ]->randomElement($brands), | ||
161 | - ] | ||
162 | - ); | ||
163 | - $models[ $i ]->setCategories( | ||
164 | - $fakers[ 2 ]->randomElements($categories, $fakers[ 2 ]->randomDigitNotNull) | ||
165 | - ); | ||
166 | - $models[ $i ]->setOptions( | ||
167 | - $fakers[ 2 ]->randomElements($product_options, $fakers[ 2 ]->randomDigitNotNull) | ||
168 | - ); | ||
169 | - $models[ $i ]->generateLangs(); | ||
170 | - foreach ($models[ $i ]->modelLangs as $language_id => $modelLang) { | ||
171 | - $modelLang->title = ucfirst($fakers[ $language_id ]->word); | ||
172 | - } | ||
173 | - if ($models[ $i ]->save() && $models[ $i ]->transactionStatus) { | ||
174 | - $title = $this->ansiFormat($models[ $i ]->modelLangs[ 2 ]->title, Console::FG_YELLOW); | ||
175 | - $id = $this->ansiFormat($models[ $i ]->id, Console::FG_YELLOW); | ||
176 | - echo "Product '$title' inserted under $id ID.\n"; | ||
177 | - $variant_count = $fakers[ 2 ]->numberBetween(4, 10); | ||
178 | - for ($j = 0; $j < $variant_count; $j++) { | ||
179 | - /** | ||
180 | - * @var ProductVariant $variant | ||
181 | - */ | ||
182 | - $variant = \Yii::createObject( | ||
183 | - [ | ||
184 | - 'class' => ProductVariant::className(), | ||
185 | - 'product_id' => $models[ $i ]->id, | ||
186 | - 'sku' => $fakers[ 2 ]->uuid, | ||
187 | - 'price' => $fakers[ 2 ]->randomFloat(2, 100, 10000), | ||
188 | - 'stock' => 10, | ||
189 | - 'product_unit_id' => 1, | ||
190 | - ] | ||
191 | - ); | ||
192 | - $variant->setOptions( | ||
193 | - $fakers[ 2 ]->randomElements($variant_options, $fakers[ 2 ]->randomDigitNotNull) | ||
194 | - ); | ||
195 | - $variant->generateLangs(); | ||
196 | - foreach ($variant->modelLangs as $variant_language_id => $variantLang) { | ||
197 | - $variantLang->title = ucfirst($fakers[ $variant_language_id ]->word); | ||
198 | - } | ||
199 | - if ($variant->save() && $variant->transactionStatus) { | ||
200 | - $variant_title = $this->ansiFormat($variant->modelLangs[ 2 ]->title, Console::FG_YELLOW); | ||
201 | - $variant_id = $this->ansiFormat($variant->id, Console::FG_YELLOW); | ||
202 | - echo "Variant '$variant_title' inserted under $variant_id ID for product $title.\n"; | ||
203 | - } | ||
204 | - } | ||
205 | - }; | ||
206 | - } | ||
207 | - return 0; | ||
208 | - } | ||
209 | - | ||
210 | - /** | ||
211 | - * Generate fake tax groups with tax options. | ||
212 | - * | ||
213 | - * @param int $count_product Tax Groups for Product | ||
214 | - * @param int $count_variant Tax Groups for ProductVariant | ||
215 | - * | ||
216 | - * @return int | ||
217 | - */ | ||
218 | - public function actionTax(int $count_product = 10, int $count_variant = 10):int | ||
219 | - { | ||
220 | - $categories = Category::find() | ||
221 | - ->asArray() | ||
222 | - ->column(); | ||
223 | - $this->generateTax(TaxGroup::GROUP_PRODUCT, $count_product, $categories); | ||
224 | - $this->generateTax(TaxGroup::GROUP_VARIANT, $count_variant, $categories); | ||
225 | - return 0; | ||
226 | - } | ||
227 | - | ||
228 | - /** | ||
229 | - * Generates tax groups amd tax options for actionTax | ||
230 | - * | ||
231 | - * @param int $level Tax Group for Product or ProductVariant | ||
232 | - * @param int $count Tax Group count | ||
233 | - * @param array $categories Categories for Tax Groups | ||
234 | - * | ||
235 | - * @see GenerateController::actionTax() | ||
236 | - */ | ||
237 | - private function generateTax(int $level, int $count, array $categories = []) | ||
238 | - { | ||
239 | - $count_option = 10; | ||
240 | - $fakers = $this->fakers; | ||
241 | - /** | ||
242 | - * @var TaxGroup[] $models | ||
243 | - */ | ||
244 | - $models = []; | ||
245 | - for ($i = 0; $i < $count; $i++) { | ||
246 | - $models[ $i ] = \Yii::createObject( | ||
247 | - [ | ||
248 | - 'class' => TaxGroup::className(), | ||
249 | - 'is_filter' => true, | ||
250 | - 'display' => true, | ||
251 | - ] | ||
252 | - ); | ||
253 | - $models[ $i ]->level = $level; | ||
254 | - $models[ $i ]->setCategories($categories); | ||
255 | - $models[ $i ]->generateLangs(); | ||
256 | - foreach ($models[ $i ]->modelLangs as $language_id => $modelLang) { | ||
257 | - $modelLang->title = ucfirst($fakers[ $language_id ]->word); | ||
258 | - } | ||
259 | - if ($models[ $i ]->save() && $models[ $i ]->transactionStatus) { | ||
260 | - for ($j = 0; $j < $count_option; $j++) { | ||
261 | - /** | ||
262 | - * @var TaxOption $option | ||
263 | - */ | ||
264 | - $option = \Yii::createObject( | ||
265 | - TaxOption::className() | ||
266 | - ); | ||
267 | - $option->tax_group_id = $models[ $i ]->id; | ||
268 | - $option->generateLangs(); | ||
269 | - foreach ($option->modelLangs as $option_language_id => $taxOptionLang) { | ||
270 | - $taxOptionLang->value = ucfirst($fakers[ $option_language_id ]->word); | ||
271 | - } | ||
272 | - $option->save(); | ||
273 | - } | ||
274 | - $title = $this->ansiFormat($models[ $i ]->modelLangs[ 2 ]->title, Console::FG_YELLOW); | ||
275 | - $id = $this->ansiFormat($models[ $i ]->id, Console::FG_YELLOW); | ||
276 | - $element = $this->ansiFormat( | ||
277 | - ( $level === TaxGroup::GROUP_PRODUCT ) ? 'Product' : 'Variant', | ||
278 | - Console::FG_RED | ||
279 | - ); | ||
280 | - echo "Category '$title' inserted for $element under $id ID.\n"; | ||
281 | - }; | ||
282 | - } | ||
283 | - } | ||
284 | - } | ||
285 | - | ||
286 | \ No newline at end of file | 0 | \ No newline at end of file |
console/ImportController.php deleted
1 | -<?php | ||
2 | - | ||
3 | -namespace console\controllers; | ||
4 | - | ||
5 | -use common\modules\product\models\Import; | ||
6 | -use Yii; | ||
7 | -use yii\console\Controller; | ||
8 | - | ||
9 | -class ImportController extends Controller { | ||
10 | - public $errors = []; | ||
11 | - | ||
12 | - | ||
13 | - private function getProductsFile($file_type = 'uploadFileProducts') { | ||
14 | - $filename = Yii::getAlias('@uploadDir') .'/'. Yii::getAlias('@'. $file_type); | ||
15 | - if (!is_file($filename)) { | ||
16 | - $this->stderr('Task already executed'); | ||
17 | - return Controller::EXIT_CODE_ERROR; | ||
18 | - } | ||
19 | - return fopen ($filename, 'r'); | ||
20 | - } | ||
21 | - | ||
22 | - public function actionProducts() { | ||
23 | -// if (file_exists(Yii::getAlias('@uploadDir/goProducts.lock'))) { | ||
24 | -// $this->errors[] = 'Task already executed'; | ||
25 | -// return Controller::EXIT_CODE_ERROR; | ||
26 | -// } | ||
27 | -// $ff = fopen(Yii::getAlias('@uploadDir/goProducts.lock'), 'w+'); | ||
28 | -// fclose($ff); | ||
29 | - $model = new Import(); | ||
30 | - $model->goProducts(0, null); | ||
31 | -// unlink(Yii::getAlias('@uploadDir/goProducts.lock')); | ||
32 | - return Controller::EXIT_CODE_NORMAL; | ||
33 | - } | ||
34 | - | ||
35 | - public function actionPrices() { | ||
36 | - if (file_exists(Yii::getAlias('@uploadDir/goPrices.lock'))) { | ||
37 | - $this->stderr('Task already executed'); | ||
38 | - return Controller::EXIT_CODE_ERROR; | ||
39 | - } | ||
40 | - $ff = fopen(Yii::getAlias('@uploadDir/goPrices.lock'), 'w+'); | ||
41 | - fclose($ff); | ||
42 | - $model = new Import(); | ||
43 | - $data = $model->goPrices(0, null); | ||
44 | - unlink(Yii::getAlias('@uploadDir/goPrices.lock')); | ||
45 | - return Controller::EXIT_CODE_NORMAL; | ||
46 | - } | ||
47 | - | ||
48 | - private function saveNotFoundRecord (array $line, $filename) | ||
49 | - { | ||
50 | - $str = implode (';', $line)."\n"; | ||
51 | - $str = iconv ("UTF-8//TRANSLIT//IGNORE", "windows-1251", $str); | ||
52 | - | ||
53 | - $fg = fopen (Yii::getAlias('@uploadDir') .'/'. $filename, 'a+'); | ||
54 | - fputs ($fg, $str); | ||
55 | - fclose ($fg); | ||
56 | - } | ||
57 | -} | ||
58 | \ No newline at end of file | 0 | \ No newline at end of file |
console/SiteMapController.php deleted
1 | -<?php | ||
2 | - | ||
3 | -namespace console\controllers; | ||
4 | - | ||
5 | -use common\models\Article; | ||
6 | -use common\models\Seo; | ||
7 | -use common\modules\product\models\Category; | ||
8 | -use common\modules\product\models\Product; | ||
9 | -use frontend\models\ProductFrontendSearch; | ||
10 | -use Yii; | ||
11 | -use common\models\Page; | ||
12 | -use yii\helpers\ArrayHelper; | ||
13 | -use yii\helpers\Url; | ||
14 | -use yii\console\Controller; | ||
15 | -/** | ||
16 | - * PageController implements the CRUD actions for Page model. | ||
17 | - */ | ||
18 | -class SiteMapController extends Controller | ||
19 | -{ | ||
20 | - | ||
21 | - private $urlList = ['http://www.rukzachok.com.ua/']; | ||
22 | - private $count = 1; | ||
23 | - | ||
24 | - | ||
25 | - | ||
26 | - public function checkFilter($category, $filter){ | ||
27 | - $productModel = new ProductFrontendSearch(); | ||
28 | - $productProvider = $productModel->search($category, $filter); | ||
29 | - if(!empty($productProvider->models)){ | ||
30 | - return true; | ||
31 | - } else { | ||
32 | - return false; | ||
33 | - } | ||
34 | - } | ||
35 | - | ||
36 | - | ||
37 | - | ||
38 | - public function getAddStatic(){ | ||
39 | - return [ | ||
40 | - 'http://www.rukzachok.com.ua', | ||
41 | - 'http://www.rukzachok.com.ua/catalog' | ||
42 | - ]; | ||
43 | - } | ||
44 | - | ||
45 | - | ||
46 | - public function getProducts() { | ||
47 | - return Product::find()->all(); | ||
48 | - | ||
49 | - } | ||
50 | - | ||
51 | - | ||
52 | - public function getSeoLinks() { | ||
53 | - return Seo::find()->where(['meta' => ''])->all(); | ||
54 | - | ||
55 | - } | ||
56 | - | ||
57 | - public function getStaticPages(){ | ||
58 | - return Page::find()->all(); | ||
59 | - } | ||
60 | - | ||
61 | - | ||
62 | - public function getCategories(){ | ||
63 | - return Category::find()->all(); | ||
64 | - } | ||
65 | - | ||
66 | - | ||
67 | - public function getArticles(){ | ||
68 | - return Article::find()->all(); | ||
69 | - } | ||
70 | - | ||
71 | - public function getBrands($category){ | ||
72 | - | ||
73 | - return $category->brands; | ||
74 | - } | ||
75 | - | ||
76 | - /** | ||
77 | - * @param $category Category; | ||
78 | - * @return mixed | ||
79 | - */ | ||
80 | - | ||
81 | - public function getFilters($category){ | ||
82 | - | ||
83 | - return $category->getActiveFilters()->all(); | ||
84 | - | ||
85 | - } | ||
86 | - | ||
87 | - | ||
88 | - public function checkUrl($url){ | ||
89 | - if(!in_array($url, $this->urlList)){ | ||
90 | - $this->urlList[] = $url; | ||
91 | - return true; | ||
92 | - } else { | ||
93 | - return false; | ||
94 | - } | ||
95 | - } | ||
96 | - | ||
97 | - | ||
98 | - public function createRow( $url, $priority, &$content ){ | ||
99 | - if($this->checkUrl($url)){ | ||
100 | - print $this->count++ . "\n"; | ||
101 | - $content .= '<url>' . | ||
102 | - '<loc>' . $url . '</loc>' . | ||
103 | - '<lastmod>' . date('Y-m-d') . '</lastmod>' . | ||
104 | - '<changefreq>Daily</changefreq>' . | ||
105 | - '<priority>' . $priority .'</priority>' . | ||
106 | - '</url>'; | ||
107 | - } | ||
108 | - } | ||
109 | - | ||
110 | - | ||
111 | - public function actionProcess() { | ||
112 | - | ||
113 | - $config = ArrayHelper::merge( | ||
114 | - require(__DIR__ . '/../../frontend/config/main.php'), | ||
115 | - require(__DIR__ . '/../../common/config/main.php') | ||
116 | - | ||
117 | - ); | ||
118 | - | ||
119 | - Yii::$app->urlManager->addRules($config['components']['urlManager']['rules']); | ||
120 | - | ||
121 | - | ||
122 | - | ||
123 | - $dirName = Yii::getAlias('@frontend').'/web'; | ||
124 | - | ||
125 | - $filename = 'sitemap.xml'; | ||
126 | - | ||
127 | - setlocale(LC_ALL, 'ru_RU.CP1251'); | ||
128 | - $handle = fopen($dirName .'/'. $filename, "w"); | ||
129 | - | ||
130 | - $content = '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; | ||
131 | - | ||
132 | - foreach ($this->getAddStatic() as $page) { | ||
133 | - $this->createRow($page , 1,$content); | ||
134 | - } | ||
135 | - | ||
136 | - foreach ($this->getStaticPages() as $page) { | ||
137 | - $url = Url::to(['text/index','translit' => $page->translit]); | ||
138 | - $this->createRow($url , 1,$content); | ||
139 | - } | ||
140 | - | ||
141 | - foreach ($this->getCategories() as $category) { | ||
142 | - $url = Url::to(['catalog/category', 'category' => $category]); | ||
143 | - $this->createRow($url , 1,$content); | ||
144 | - } | ||
145 | - | ||
146 | - | ||
147 | - foreach ($this->getProducts() as $product) { | ||
148 | - | ||
149 | - $url = Url::to(['catalog/product', 'product' => $product]); | ||
150 | - $this->createRow($url , 0.9, $content); | ||
151 | - } | ||
152 | - | ||
153 | - | ||
154 | - foreach ($this->getArticles() as $article) { | ||
155 | - | ||
156 | - $url = Url::to(['articles/show', 'translit' => $article->translit, 'id' => $article->id,]); | ||
157 | - $this->createRow($url , 0.8,$content); | ||
158 | - | ||
159 | - } | ||
160 | - | ||
161 | - | ||
162 | - foreach($this->getCategories() as $category){ | ||
163 | - foreach ($this->getBrands($category) as $brand) { | ||
164 | - if($this->checkFilter($category, ['brands' => [$brand->id]])){ | ||
165 | - $url = Url::to(['catalog/category', 'category' => $category, 'filters' => ['brands' => [$brand->alias]]]) ; | ||
166 | - $this->createRow($url , 0.8, $content); | ||
167 | - } | ||
168 | - } | ||
169 | - } | ||
170 | - | ||
171 | - | ||
172 | - foreach($this->getCategories() as $category){ | ||
173 | - foreach ($this->getFilters($category) as $filter) { | ||
174 | - if($this->checkFilter($category, [$filter['group_alias'] => [$filter['option_alias']]])){ | ||
175 | - $url = Url::to(['catalog/category', 'category' => $category, 'filters' => [$filter['group_alias'] => [$filter['option_alias']]] ]); | ||
176 | - $this->createRow($url , 0.8, $content); | ||
177 | - } | ||
178 | - | ||
179 | - } | ||
180 | - } | ||
181 | - | ||
182 | - foreach($this->getSeoLinks() as $link){ | ||
183 | - $url = Yii::$app->urlManager->baseUrl.$link->url; | ||
184 | - $this->createRow($url , 0.7, $content); | ||
185 | - | ||
186 | - } | ||
187 | - | ||
188 | - | ||
189 | - | ||
190 | -// foreach($this->getCategories() as $category){ | ||
191 | -// foreach ($this->getFilters($category) as $filter1) { | ||
192 | -// foreach ($this->getFilters($category) as $filter2) { | ||
193 | -// if($this->checkFilter($category, [$filter1['group_alias'] => [$filter1['option_alias']],$filter2['group_alias'] => [$filter2['option_alias']]] )){ | ||
194 | -// $url = Url::to(['catalog/category', 'category' => $category, 'filters' => [$filter1['group_alias'] => [$filter1['option_alias']],$filter2['group_alias'] => [$filter2['option_alias']]] ]); | ||
195 | -// $this->createRow($url , 0.7, $content); | ||
196 | -// } | ||
197 | -// | ||
198 | -// } | ||
199 | -// | ||
200 | -// foreach ($this->getBrands($category) as $brand) { | ||
201 | -// if($this->checkFilter($category, ['brands' => [$brand->id], $filter1['group_alias'] => [$filter1['option_alias']]] )){ | ||
202 | -// $url = Url::to(['catalog/category', 'category' => $category, 'filters' => ['brands' => [$brand->alias],$filter1['group_alias'] => [$filter1['option_alias']]]]); | ||
203 | -// $this->createRow($url , 0.7,$content); | ||
204 | -// } | ||
205 | -// | ||
206 | -// } | ||
207 | -// } | ||
208 | -// } | ||
209 | - | ||
210 | - | ||
211 | - | ||
212 | - $content .= '</urlset>'; | ||
213 | - | ||
214 | - fwrite($handle, $content); | ||
215 | - fclose($handle); | ||
216 | - | ||
217 | - print $dirName .'/'. $filename; | ||
218 | - } | ||
219 | - | ||
220 | -} |
models/Customer.php
models/CustomerSearch.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | - namespace common\models; | 3 | + namespace artweb\artbox\models; |
4 | 4 | ||
5 | use yii\base\Model; | 5 | use yii\base\Model; |
6 | use yii\data\ActiveDataProvider; | 6 | use yii\data\ActiveDataProvider; |
7 | 7 | ||
8 | /** | 8 | /** |
9 | - * CustomerSearch represents the model behind the search form about `common\models\Customer`. | 9 | + * CustomerSearch represents the model behind the search form about `artweb\artbox\models\Customer`. |
10 | */ | 10 | */ |
11 | class CustomerSearch extends Customer | 11 | class CustomerSearch extends Customer |
12 | { | 12 | { |
models/Feedback.php
models/FeedbackSearch.php
models/Page.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | - namespace common\models; | 3 | + namespace artweb\artbox\models; |
4 | 4 | ||
5 | - use common\modules\language\behaviors\LanguageBehavior; | 5 | + use artweb\artbox\language\behaviors\LanguageBehavior; |
6 | use yii\db\ActiveQuery; | 6 | use yii\db\ActiveQuery; |
7 | use yii\db\ActiveRecord; | 7 | use yii\db\ActiveRecord; |
8 | use yii\web\Request; | 8 | use yii\web\Request; |
models/PageLang.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | - namespace common\models; | 3 | + namespace artweb\artbox\models; |
4 | 4 | ||
5 | - use common\modules\language\models\Language; | 5 | + use artweb\artbox\language\models\Language; |
6 | use Yii; | 6 | use Yii; |
7 | use yii\db\ActiveRecord; | 7 | use yii\db\ActiveRecord; |
8 | 8 | ||
@@ -45,7 +45,7 @@ | @@ -45,7 +45,7 @@ | ||
45 | { | 45 | { |
46 | return [ | 46 | return [ |
47 | 'slug' => [ | 47 | 'slug' => [ |
48 | - 'class' => 'common\behaviors\Slug', | 48 | + 'class' => 'artweb\artbox\behaviors\Slug', |
49 | ], | 49 | ], |
50 | ]; | 50 | ]; |
51 | } | 51 | } |
models/PageSearch.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | - namespace common\models; | 3 | + namespace artweb\artbox\models; |
4 | 4 | ||
5 | use yii\base\Model; | 5 | use yii\base\Model; |
6 | use yii\data\ActiveDataProvider; | 6 | use yii\data\ActiveDataProvider; |
7 | 7 | ||
8 | /** | 8 | /** |
9 | - * PageSearch represents the model behind the search form about `common\models\Page`. | 9 | + * PageSearch represents the model behind the search form about `artweb\artbox\models\Page`. |
10 | */ | 10 | */ |
11 | class PageSearch extends Page | 11 | class PageSearch extends Page |
12 | { | 12 | { |