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 | 1 | <?php |
| 2 | 2 | |
| 3 | - namespace common\behaviors; | |
| 3 | + namespace artweb\artbox\behaviors; | |
| 4 | 4 | |
| 5 | 5 | use yii\base\Behavior; |
| 6 | 6 | use yii\base\Event; |
| ... | ... | @@ -8,7 +8,7 @@ |
| 8 | 8 | |
| 9 | 9 | /** |
| 10 | 10 | * Class ImageBehavior |
| 11 | - * @package common\behaviors | |
| 11 | + * @package artweb\artbox\behaviors | |
| 12 | 12 | */ |
| 13 | 13 | class ImageBehavior extends Behavior |
| 14 | 14 | { | ... | ... |
behaviors/MultipleImgBehavior.php
| 1 | 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 | 6 | use yii\base\Behavior; |
| 7 | 7 | use yii\db\ActiveRecord; |
| 8 | 8 | use yii\helpers\Url; |
| ... | ... | @@ -13,7 +13,7 @@ |
| 13 | 13 | * @property ActiveRecord $owner |
| 14 | 14 | * @property ActiveRecord $image |
| 15 | 15 | * @property ActiveRecord[] $images |
| 16 | - * @package common\behaviors | |
| 16 | + * @package artweb\artbox\behaviors | |
| 17 | 17 | */ |
| 18 | 18 | class MultipleImgBehavior extends Behavior |
| 19 | 19 | { | ... | ... |
behaviors/SaveImgBehavior.php
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | - namespace common\behaviors; | |
| 3 | + namespace artweb\artbox\behaviors; | |
| 4 | 4 | |
| 5 | 5 | use yii\base\Behavior; |
| 6 | 6 | use yii\base\ModelEvent; |
| ... | ... | @@ -10,7 +10,7 @@ |
| 10 | 10 | /** |
| 11 | 11 | * Class Save Image Behavior |
| 12 | 12 | * @property ActiveRecord $owner |
| 13 | - * @package common\behaviors | |
| 13 | + * @package artweb\artbox\behaviors | |
| 14 | 14 | */ |
| 15 | 15 | class SaveImgBehavior extends Behavior |
| 16 | 16 | { | ... | ... |
behaviors/SaveMultipleFileBehavior.php
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | - namespace common\behaviors; | |
| 3 | + namespace artweb\artbox\behaviors; | |
| 4 | 4 | |
| 5 | 5 | use yii\base\Behavior; |
| 6 | 6 | use yii\base\Event; |
| ... | ... | @@ -12,7 +12,7 @@ |
| 12 | 12 | * |
| 13 | 13 | * @todo Write validators |
| 14 | 14 | * |
| 15 | - * @package common\behaviors | |
| 15 | + * @package artweb\artbox\behaviors | |
| 16 | 16 | */ |
| 17 | 17 | class SaveMultipleFileBehavior extends Behavior |
| 18 | 18 | { | ... | ... |
behaviors/Slug.php
components/SmsSender.php
components/artboximage/ArtboxImage.php
components/artboximage/ArtboxImageHelper.php
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | - namespace common\components\artboximage; | |
| 3 | + namespace artweb\artbox\components\artboximage; | |
| 4 | 4 | |
| 5 | 5 | use Yii; |
| 6 | 6 | use yii\base\Object; |
| ... | ... | @@ -22,7 +22,7 @@ |
| 22 | 22 | /** |
| 23 | 23 | * Get image manipulation driver |
| 24 | 24 | * |
| 25 | - * @return \common\components\artboximage\ArtboxImage | |
| 25 | + * @return \artweb\artbox\components\artboximage\ArtboxImage | |
| 26 | 26 | */ |
| 27 | 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
components/artboxtree/treegrid/TreeGridWidget.php
| 1 | 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 | 6 | use Yii; |
| 7 | 7 | use yii\helpers\Html; |
| 8 | 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 | 13 | * @var array grid column configuration. Each array element represents the configuration | ... | ... |
components/artboxtree/treelist/TreeListWidget.php
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | -namespace common\components\artboxtree\treelist; | |
| 3 | +namespace artweb\artbox\components\artboxtree\treelist; | |
| 4 | 4 | |
| 5 | -use Yii; | |
| 6 | 5 | use yii\helpers\Html; |
| 7 | 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 | 10 | public $displayField = 'title'; |
| 12 | 11 | ... | ... |
components/artboxtree/treemenu/TreeMenuWidget.php
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | -namespace common\components\artboxtree\treemenu; | |
| 3 | +namespace artweb\artbox\components\artboxtree\treemenu; | |
| 4 | 4 | |
| 5 | -use Yii; | |
| 6 | 5 | use yii\helpers\Html; |
| 7 | 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 | 10 | public $displayField = 'title'; |
| 12 | 11 | ... | ... |
composer.json
| ... | ... | @@ -5,7 +5,18 @@ |
| 5 | 5 | "require": { |
| 6 | 6 | "php": ">=7.0", |
| 7 | 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 | 21 | "autoload": { |
| 11 | 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 | 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 | 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 | 1 | <?php |
| 2 | 2 | |
| 3 | - namespace common\models; | |
| 3 | + namespace artweb\artbox\models; | |
| 4 | 4 | |
| 5 | 5 | use yii\base\Model; |
| 6 | 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 | 11 | class CustomerSearch extends Customer |
| 12 | 12 | { | ... | ... |
models/Feedback.php
models/FeedbackSearch.php
models/Page.php
models/PageLang.php
| 1 | 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 | 6 | use Yii; |
| 7 | 7 | use yii\db\ActiveRecord; |
| 8 | 8 | |
| ... | ... | @@ -45,7 +45,7 @@ |
| 45 | 45 | { |
| 46 | 46 | return [ |
| 47 | 47 | 'slug' => [ |
| 48 | - 'class' => 'common\behaviors\Slug', | |
| 48 | + 'class' => 'artweb\artbox\behaviors\Slug', | |
| 49 | 49 | ], |
| 50 | 50 | ]; |
| 51 | 51 | } | ... | ... |
models/PageSearch.php
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | - namespace common\models; | |
| 3 | + namespace artweb\artbox\models; | |
| 4 | 4 | |
| 5 | 5 | use yii\base\Model; |
| 6 | 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 | 11 | class PageSearch extends Page |
| 12 | 12 | { | ... | ... |