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