diff --git a/common/components/artboximage/ArtboxImageHelper.php b/common/components/artboximage/ArtboxImageHelper.php index ed7a3bf..a6c6ae5 100755 --- a/common/components/artboximage/ArtboxImageHelper.php +++ b/common/components/artboximage/ArtboxImageHelper.php @@ -40,6 +40,7 @@ class ArtboxImageHelper extends Object { if (empty($preset) || empty($preset_alias)) { return $file; } + $filePath = self::getPathFromUrl($file); if (!file_exists($filePath) || !preg_match('#^(.*)\.(' . self::getExtensionsRegexp() . ')$#', $file, $matches)) { return $file; diff --git a/common/config/main.php b/common/config/main.php index 3ae7548..ef64fab 100755 --- a/common/config/main.php +++ b/common/config/main.php @@ -155,6 +155,12 @@ return [ 'width' => 256, ], ], + 'option_menu' => [ + 'resize' => [ + 'width' => 100, + 'height' => 110, + ], + ], ] ], 'basket' => [ diff --git a/common/models/Basket.php b/common/models/Basket.php old mode 100644 new mode 100755 index 3330951..3330951 --- a/common/models/Basket.php +++ b/common/models/Basket.php diff --git a/common/modules/product/models/Category.php b/common/modules/product/models/Category.php index 025a456..7abe2a3 100755 --- a/common/modules/product/models/Category.php +++ b/common/modules/product/models/Category.php @@ -240,7 +240,7 @@ class Category extends \yii\db\ActiveRecord return $query3; } - public function getTaxGroupsByAlias($alias) + public function getTaxGroupsForMenu() { $connection = Yii::$app->getDb(); @@ -255,9 +255,8 @@ class Category extends \yii\db\ActiveRecord SELECT product_id FROM product_category WHERE category_id = :category_id ) ) - AND tax_group.alias = :alias', + AND tax_group.is_menu = true', [ - ':alias' => $alias, ':category_id' => $this->category_id ]); diff --git a/common/modules/product/models/Export.php b/common/modules/product/models/Export.php index 543ca7b..0cdf722 100755 --- a/common/modules/product/models/Export.php +++ b/common/modules/product/models/Export.php @@ -18,7 +18,8 @@ class Export extends Model { $handle = fopen($dirName .'/'. $filename, "w"); ///$products = Product::find()->joinWith(['variants'])->where(['!=', ProductVariant::tableName() .'.stock', 0])->select('product.product_id')->all(); $products = Product::find() - ->with(['variantsWithFilters','brand','categories'])->all(); + ->with(['variantsWithFilters','brand','categories','filters'])->all(); + $i = 0; foreach ($products as $product) @@ -89,6 +90,7 @@ class Export extends Model { fputcsv($handle, $to_write, ';'); + unset($product); } diff --git a/common/modules/product/models/Product.php b/common/modules/product/models/Product.php index f73ad62..5326577 100755 --- a/common/modules/product/models/Product.php +++ b/common/modules/product/models/Product.php @@ -231,7 +231,7 @@ class Product extends \yii\db\ActiveRecord } public function getVariantsWithFilters(){ - return $this->hasMany(ProductVariant::className(), ['product_id' => 'product_id'])->with(['filters','images']); + return $this->hasMany(ProductVariant::className(), ['product_id' => 'product_id'])->with(['filters','image']); } /** diff --git a/common/modules/rubrication/controllers/TaxOptionController.php b/common/modules/rubrication/controllers/TaxOptionController.php index e94a90c..71dacd3 100755 --- a/common/modules/rubrication/controllers/TaxOptionController.php +++ b/common/modules/rubrication/controllers/TaxOptionController.php @@ -3,6 +3,7 @@ namespace common\modules\rubrication\controllers; use common\modules\rubrication\models\TaxGroup; +use common\modules\rubrication\models\TaxOptionImage; use Yii; use common\modules\rubrication\models\TaxOption; use common\modules\rubrication\models\TaxOptionSearch; @@ -10,6 +11,7 @@ use yii\data\ActiveDataProvider; use yii\web\Controller; use yii\web\NotFoundHttpException; use yii\filters\VerbFilter; +use yii\web\UploadedFile; /** * TaxOptionController implements the CRUD actions for TaxOption model. @@ -78,7 +80,29 @@ class TaxOptionController extends Controller if ($model->load(Yii::$app->request->post())) { - $model->save(); + if ($model->save() && ($image = UploadedFile::getInstance($model, 'image')) ) { + $imageModel = TaxOptionImage::find()->where(['tax_option_id' => $model->tax_option_id])->one(); + + if($imageModel instanceof TaxOptionImage) { + $imageModel->product_variant_id = $model->product_variant_id; + $imageModel->image = $image->name; + $imageModel->save(); + } else { + $imageModel = new TaxOptionImage(); + $imageModel->product_variant_id = $model->product_variant_id; + $imageModel->image = $image->name; + $imageModel->save(); + } + + + $imgDir = Yii::getAlias('@storage/tax_option/'); + + if(!is_dir($imgDir)) { + mkdir($imgDir, 0755, true); + } + + $image->saveAs(Yii::getAlias('@storage/tax_option/' . $image->name)); + } $valueModel->tax_option_id = $model->tax_option_id; $valueModel->value = $model->name; @@ -111,26 +135,32 @@ class TaxOptionController extends Controller { $model = $this->findModel($id); $group = TaxGroup::findOne($model->tax_group_id); - $valueModelName = $this->getValueModelName($group); - $valueModel = $valueModelName::findOne($model->default_value); + if ($model->load(Yii::$app->request->post())) { - $model->save(); - $valueModel->tax_option_id = $model->tax_option_id; - $valueModel->value = $model->name; - $valueModel->save(); - $model->default_value = $valueModel->tax_value_id; - $model->save(); - TaxOption::find()->rebuildMP($model->tax_group_id); + if ( ($image = UploadedFile::getInstance($model, 'image')) ) { + $model->image = $image->name; + } + if ($model->save() && $image) { + + $imgDir = Yii::getAlias('@storage/tax_option/'); + + if(!is_dir($imgDir)) { + mkdir($imgDir, 0755, true); + } + + $image->saveAs(Yii::getAlias('@storage/tax_option/' . $image->name)); + } + + //TaxOption::find()->rebuildMP($model->tax_group_id); return $this->redirect(['view', 'id' => $model->tax_option_id]); } else { return $this->render('update', [ 'model' => $model, - 'group' => $group, - 'valueModel' => $valueModel, + 'group' => $group ]); } } diff --git a/common/modules/rubrication/models/TaxGroup.php b/common/modules/rubrication/models/TaxGroup.php index 8d93d2f..096eaa7 100755 --- a/common/modules/rubrication/models/TaxGroup.php +++ b/common/modules/rubrication/models/TaxGroup.php @@ -19,6 +19,7 @@ use Yii; * @property integer $level * @property integer $sort * @property boolean $display + * @property boolean $is_menu * @property TaxGroupToGroup[] $taxGroupToGroups * @property TaxGroupToGroup[] $taxGroupToGroups0 * @property TaxOption[] $taxOptions @@ -58,7 +59,7 @@ class TaxGroup extends \yii\db\ActiveRecord return [ [['name', 'module'], 'required'], [['description', 'settings'], 'string'], - [['hierarchical', 'is_filter', 'display'], 'boolean'], + [['hierarchical', 'is_filter', 'display','is_menu'], 'boolean'], [['level', 'sort'], 'integer'], [['alias', 'module'], 'string', 'max' => 50], [['name'], 'string', 'max' => 255], @@ -82,6 +83,7 @@ class TaxGroup extends \yii\db\ActiveRecord 'is_filter' => 'Use in filter', 'sort' => 'Sort', 'display' => 'Display', + 'is_menu' => 'Отображать в меню', ]; } diff --git a/common/modules/rubrication/models/TaxGroupToCategory.php b/common/modules/rubrication/models/TaxGroupToCategory.php old mode 100644 new mode 100755 index 481b582..481b582 --- a/common/modules/rubrication/models/TaxGroupToCategory.php +++ b/common/modules/rubrication/models/TaxGroupToCategory.php diff --git a/common/modules/rubrication/models/TaxOption.php b/common/modules/rubrication/models/TaxOption.php index 71d773f..d977fd9 100755 --- a/common/modules/rubrication/models/TaxOption.php +++ b/common/modules/rubrication/models/TaxOption.php @@ -2,7 +2,6 @@ namespace common\modules\rubrication\models; -use common\modules\relation\relationBehavior; use Yii; use common\components\artboxtree\ArtboxTreeBehavior; use yii\db\ActiveRecord; @@ -20,6 +19,7 @@ use yii\db\ActiveRecord; * @property integer $sort * @property integer $default_value * @property integer $name + * @property array $image * * @property TaxEntityRelation[] $taxEntityRelations * @property TaxGroup $taxGroup @@ -74,9 +74,8 @@ class TaxOption extends \yii\db\ActiveRecord return [ [['tax_group_id','name'], 'required'], [['tax_group_id', 'parent_id', 'sort', 'default_value'], 'integer'], - [['alias', 'value'], 'string', 'max' => 50], + [['image','alias', 'value'], 'string', 'max' => 255], [['tax_group_id'], 'exist', 'skipOnError' => true, 'targetClass' => TaxGroup::className(), 'targetAttribute' => ['tax_group_id' => 'tax_group_id']], -// [['parent_id'], 'exist', 'skipOnError' => true, 'targetClass' => TaxOption::className(), 'targetAttribute' => ['parent_id' => 'tax_option_id']], ]; } @@ -92,6 +91,7 @@ class TaxOption extends \yii\db\ActiveRecord 'alias' => Yii::t('app', 'Alias'), 'sort' => Yii::t('app', 'Sort'), 'default_value' => Yii::t('app', 'Default Value'), + 'image' => Yii::t('product', 'Image'), ]; } @@ -210,15 +210,12 @@ class TaxOption extends \yii\db\ActiveRecord return false; } -// public function beforeDelete() { -// if ( ($model = $this->getValueModelName()) !== FALSE ) { -// -// } -// } + public function getImageFile() { + return empty($this->image) ? null : Yii::getAlias('@imagesDir/tax_option/'. $this->image); + } - private function getValueModelName() { - $group = $this->taxGroup; - $valueClass = '\common\modules\rubrication\models\TaxValue'. ucfirst($group->module); - return class_exists($valueClass) ? $valueClass : FALSE; + public function getImageUrl() + { + return empty($this->image) ? null : Yii::getAlias('@imagesUrl/tax_option/' . $this->image); } } diff --git a/common/modules/rubrication/views/tax-group/_form.php b/common/modules/rubrication/views/tax-group/_form.php index d270c34..4c3a784 100755 --- a/common/modules/rubrication/views/tax-group/_form.php +++ b/common/modules/rubrication/views/tax-group/_form.php @@ -13,7 +13,7 @@ use common\components\artboxtree\ArtboxTreeHelper;
- + ['enctype' => 'multipart/form-data']]); ?> field($model, 'name')->textInput(['maxlength' => true]) ?> @@ -37,7 +37,9 @@ use common\components\artboxtree\ArtboxTreeHelper; field($model, 'is_filter')->checkbox() ?> field($model, 'display')->checkbox() ?> - + + field($model, 'is_menu')->checkbox() ?> + field($model, 'sort')->textInput() ?>
diff --git a/common/modules/rubrication/views/tax-option/_form.php b/common/modules/rubrication/views/tax-option/_form.php index d73bcbd..f8084d5 100755 --- a/common/modules/rubrication/views/tax-option/_form.php +++ b/common/modules/rubrication/views/tax-option/_form.php @@ -15,7 +15,7 @@ use common\modules\rubrication\helpers\RubricationHelper;
- + ['enctype' => 'multipart/form-data']]); ?> tax_group_id)) :?> field($model, 'tax_group_id')->dropDownList( ArrayHelper::map(TaxOption::find()->all(), 'tax_group_id', 'name'), @@ -33,23 +33,39 @@ use common\modules\rubrication\helpers\RubricationHelper; field($model, 'alias')->textInput(['maxlength' => true]) ?> - hierarchical) :?> - hierarchical) { $tree = TaxOption::find()->getTree($model->tax_group_id); - ?> - field($model, 'parent_id')->dropDownList( + $form->field($model, 'parent_id')->dropDownList( ArtboxTreeHelper::treeMap($tree, 'tax_option_id', 'ValueRenderFlash', '.'), [ 'prompt' => Yii::t('rubrication', 'Root level'), 'options' => [ $model->tax_option_id => ['disabled' => true] ] - ] - ) ?> - - field($model, 'parent_id')->hiddenInput()->label('') ?> - + ]); + + }else { + + $form->field($model, 'parent_id')->hiddenInput()->label(''); + } + ?> + + field($model, 'image')->widget(\kartik\file\FileInput::classname(), [ + 'language' => 'ru', + 'options' => [ + 'accept' => 'image/*', + 'multiple' => false, + ], + 'pluginOptions' => [ + 'allowedFileExtensions' => ['jpg', 'gif', 'png'], + 'initialPreview' => !empty($model->imageUrl) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'list') : '', + 'overwriteInitial' => true, + 'showRemove' => false, + 'showUpload' => false, + 'previewFileType' => 'image', + ], + ]); ?> field($model, 'sort')->dropDownList(RubricationHelper::SortArray()) ?>
diff --git a/common/modules/rubrication/views/tax-option/create.php b/common/modules/rubrication/views/tax-option/create.php index 55ddf4a..5ce0728 100755 --- a/common/modules/rubrication/views/tax-option/create.php +++ b/common/modules/rubrication/views/tax-option/create.php @@ -18,8 +18,7 @@ $this->params['breadcrumbs'][] = $this->title; render('_form', [ 'model' => $model, - 'group' => $group, - 'valueModel' => $valueModel, + 'group' => $group ]) ?>
diff --git a/common/modules/rubrication/views/tax-option/update.php b/common/modules/rubrication/views/tax-option/update.php index a0dbb1c..b115adb 100755 --- a/common/modules/rubrication/views/tax-option/update.php +++ b/common/modules/rubrication/views/tax-option/update.php @@ -19,8 +19,7 @@ $this->params['breadcrumbs'][] = Yii::t('rubrication', 'Update'); render('_form', [ 'model' => $model, - 'group' => $group, - 'valueModel' => $valueModel, + 'group' => $group ]) ?>
diff --git a/console/migrations/m160812_140415_tax_group_to_category.php b/console/migrations/m160812_140415_tax_group_to_category.php old mode 100644 new mode 100755 index ce82660..ce82660 --- a/console/migrations/m160812_140415_tax_group_to_category.php +++ b/console/migrations/m160812_140415_tax_group_to_category.php diff --git a/console/migrations/m160815_101433_add_name_to_category.php b/console/migrations/m160815_101433_add_name_to_category.php old mode 100644 new mode 100755 index fe3db3d..fe3db3d --- a/console/migrations/m160815_101433_add_name_to_category.php +++ b/console/migrations/m160815_101433_add_name_to_category.php diff --git a/console/migrations/m160815_101441_add_name_to_brand.php b/console/migrations/m160815_101441_add_name_to_brand.php old mode 100644 new mode 100755 index 2fea94e..2fea94e --- a/console/migrations/m160815_101441_add_name_to_brand.php +++ b/console/migrations/m160815_101441_add_name_to_brand.php diff --git a/frontend/assets/FotoramaAsset.php b/frontend/assets/FotoramaAsset.php old mode 100644 new mode 100755 index d9a6515..d9a6515 --- a/frontend/assets/FotoramaAsset.php +++ b/frontend/assets/FotoramaAsset.php diff --git a/frontend/controllers/OrderController.php b/frontend/controllers/OrderController.php old mode 100644 new mode 100755 index 130e3ac..130e3ac --- a/frontend/controllers/OrderController.php +++ b/frontend/controllers/OrderController.php diff --git a/frontend/models/SignupForm.php b/frontend/models/SignupForm.php old mode 100644 new mode 100755 index 7115378..7115378 --- a/frontend/models/SignupForm.php +++ b/frontend/models/SignupForm.php diff --git a/frontend/views/basket/modal_items.php b/frontend/views/basket/modal_items.php old mode 100644 new mode 100755 index 34ee48b..34ee48b --- a/frontend/views/basket/modal_items.php +++ b/frontend/views/basket/modal_items.php diff --git a/frontend/views/layouts/main-menu.php b/frontend/views/layouts/main-menu.php index ed77d47..bdf363f 100755 --- a/frontend/views/layouts/main-menu.php +++ b/frontend/views/layouts/main-menu.php @@ -1,5 +1,7 @@ all(); @@ -24,11 +26,13 @@ $models = Category::find()->all();