From c34b3aa04c75598515de2e318e351917915b885c Mon Sep 17 00:00:00 2001 From: Karnovsky A Date: Tue, 17 May 2016 09:59:59 +0300 Subject: [PATCH] - --- .htaccess | 3 ++- common/modules/product/CatalogUrlManager.php | 4 +++- common/modules/product/models/ProductVariant.php | 19 ++++--------------- console/config/bootstrap.php | 2 +- console/controllers/ImportController.php | 25 +++++++++++++++++-------- frontend/models/ProductFrontendSearch.php | 12 +++++++----- frontend/views/catalog/products.php | 62 +++++++++++++++++++++++++++++++++++++++++++++----------------- frontend/views/layouts/main.php | 5 ++--- frontend/web/css/ion.rangeSlider.css | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/ion.rangeSlider.skinHTML5.css | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/ion.rangeSlider.js | 2317 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/libraries/aaa.php | 7 +++++++ frontend/web/libraries/ion/css/ion.rangeSlider.skinFlat.css | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/libraries/ion/css/ion.rangeSlider.skinModern.css | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/libraries/ion/css/ion.rangeSlider.skinNice.css | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/libraries/ion/css/ion.rangeSlider.skinSimple.css | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/libraries/ion/css/normalize.css | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/libraries/ion/img/sprite-skin-flat.png | Bin 0 -> 304 bytes frontend/web/libraries/ion/img/sprite-skin-modern.png | Bin 0 -> 505 bytes frontend/web/libraries/ion/img/sprite-skin-nice.png | Bin 0 -> 694 bytes frontend/web/libraries/ion/img/sprite-skin-simple.png | Bin 0 -> 358 bytes frontend/web/libraries/ion/js/ion.rangeSlider.min.js | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 22 files changed, 3643 insertions(+), 51 deletions(-) create mode 100644 frontend/web/css/ion.rangeSlider.css create mode 100644 frontend/web/css/ion.rangeSlider.skinHTML5.css create mode 100644 frontend/web/js/ion.rangeSlider.js create mode 100644 frontend/web/libraries/aaa.php create mode 100644 frontend/web/libraries/ion/css/ion.rangeSlider.skinFlat.css create mode 100644 frontend/web/libraries/ion/css/ion.rangeSlider.skinModern.css create mode 100644 frontend/web/libraries/ion/css/ion.rangeSlider.skinNice.css create mode 100644 frontend/web/libraries/ion/css/ion.rangeSlider.skinSimple.css create mode 100644 frontend/web/libraries/ion/css/normalize.css create mode 100644 frontend/web/libraries/ion/img/sprite-skin-flat.png create mode 100644 frontend/web/libraries/ion/img/sprite-skin-modern.png create mode 100644 frontend/web/libraries/ion/img/sprite-skin-nice.png create mode 100644 frontend/web/libraries/ion/img/sprite-skin-simple.png create mode 100644 frontend/web/libraries/ion/js/ion.rangeSlider.min.js diff --git a/.htaccess b/.htaccess index 2984f4b..bccb03a 100644 --- a/.htaccess +++ b/.htaccess @@ -53,13 +53,14 @@ AddDefaultCharset utf-8 RewriteRule ^images/(.*)$ frontend/web/images/$1 [L] + RewriteRule ^libraries/(.*)$ frontend/web/libraries/$1 [L] + RewriteRule ^img/(.*)$ frontend/web/img/$1 [L] RewriteRule ^files/(.*)$ frontend/web/files/$1 [L] RewriteRule ^fonts/(.*)$ frontend/web/fonts/$1 [L] - RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|js|images|fonts|img|files)/ RewriteCond %{REQUEST_URI} !index.php diff --git a/common/modules/product/CatalogUrlManager.php b/common/modules/product/CatalogUrlManager.php index ff3967d..e719c82 100755 --- a/common/modules/product/CatalogUrlManager.php +++ b/common/modules/product/CatalogUrlManager.php @@ -105,12 +105,13 @@ class CatalogUrlManager implements UrlRuleInterface { } else { $url = 'catalog/'; } - if (!empty($params['word'])) { if (!is_array($params['word'])) { $params['word'] = [$params['word']]; } $url .= 'word:'. implode(';', $params['word']); + } + if (isset($params['word'])) { unset($params['word']); } @@ -146,6 +147,7 @@ class CatalogUrlManager implements UrlRuleInterface { } } $url .= 'filter:'. implode(';', $filter); + unset($params['filter']); } if (!empty($params) && ($query = http_build_query($params)) !== '') { diff --git a/common/modules/product/models/ProductVariant.php b/common/modules/product/models/ProductVariant.php index 6be34a5..a5234c2 100755 --- a/common/modules/product/models/ProductVariant.php +++ b/common/modules/product/models/ProductVariant.php @@ -24,19 +24,8 @@ use Yii; */ class ProductVariant extends \yii\db\ActiveRecord { - - /**just for rukzachok**/ - public $count; - public $sum_cost; - public $product_name; - //public $image; - public $translit; - public $translit_rubric; - private $data; - - /** @var array $_images */ - public $imagesUpload = []; +// public $imagesUpload = []; /** * @inheritdoc */ @@ -51,13 +40,13 @@ class ProductVariant extends \yii\db\ActiveRecord public function rules() { return [ - [['product_id', 'sku', 'product_unit_id'], 'required'], + [['product_id', 'product_unit_id'], 'required'], [['product_id', 'product_unit_id', 'product_variant_type_id'], 'integer'], [['price', 'price_old', 'stock'], 'number'], [['name', 'sku'], 'string', 'max' => 255], [['remote_id'], 'string', 'max' => 20], - [['imagesUpload'], 'safe'], - [['imagesUpload'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg, gif', 'maxFiles' => 50], +// [['imagesUpload'], 'safe'], +// [['imagesUpload'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg, gif', 'maxFiles' => 50], [['product_unit_id'], 'exist', 'skipOnError' => true, 'targetClass' => ProductUnit::className(), 'targetAttribute' => ['product_unit_id' => 'product_unit_id']], ]; } diff --git a/console/config/bootstrap.php b/console/config/bootstrap.php index 6b87d4a..a3a31c7 100755 --- a/console/config/bootstrap.php +++ b/console/config/bootstrap.php @@ -2,4 +2,4 @@ Yii::setAlias('@uploadDir', dirname(dirname(__DIR__)) . '/storage/sync'); Yii::setAlias('@uploadFileProducts', 'products.csv'); -Yii::setAlias('@productsDir', '/images/products'); +Yii::setAlias('@productsDir', '@frontend/web/images/products'); diff --git a/console/controllers/ImportController.php b/console/controllers/ImportController.php index 06fc37a..18428d2 100755 --- a/console/controllers/ImportController.php +++ b/console/controllers/ImportController.php @@ -98,10 +98,10 @@ class ImportController extends Controller { $years = explode (',', $data[8]); // 10 Цена старая - $product_cost_old = $data[9]; + $product_cost_old = $data[10]; // 11 Цена - $product_cost = $data[10]; + $product_cost = $data[9]; // 12 Акция $product_akciya = (bool)$data[11]; @@ -198,8 +198,8 @@ class ImportController extends Controller { $mod_size = $mod_arr[1]; $mod_color = $mod_arr[2]; $mod_image = $mod_arr[3]; - $mod_cost = $product_cost; - $mod_old_cost = $product_cost_old; + $mod_cost = floatval($product_cost); + $mod_old_cost = floatval($product_cost_old); // Check product variant if ( ($_productVariant = ProductVariant::find()->andFilterWhere(['ilike', 'sku', $mod_art])->andFilterWhere(['product_id' => $_product->product_id])->one()) === null ) { @@ -234,14 +234,23 @@ class ImportController extends Controller { $_productVariant->product_variant_type_id = $product_variant_type->product_variant_type_id; } } - - $_productVariant->save(); + $_productVariant->save(false); +// if (!$_productVariant->save(false)) { +//// $this->stdout("$j: Product {$_product->name} #{$_product->product_id} NOT saved (". ($is_new_product ? 'new product' : 'exists product') .")\n"); +//// var_dump($_productVariant);exit; +// continue; +// } + +// if ($mod_art == '610934725148') { +// var_dump($_productVariant); +// exit; +// } $MOD_ARRAY[] = $_productVariant->product_variant_id; if ($mod_image) { - $url = 'http://rukzachok.com.ua/upload/mod/' . $mod_image; - $image = file_get_contents($url); + $url = 'http://rukzachok.com.ua/upload/mod/' . urlencode($mod_image); + $image = @file_get_contents($url); if ($image) { if (($variantImage = ProductImage::find()->andFilterWhere(['ilike', 'image', $mod_image])->andFilterWhere(['product_variant_id' => $_productVariant->product_variant_id])->one()) === null) { file_put_contents(Yii::getAlias('@productsDir') . "/" . $mod_image, $image); diff --git a/frontend/models/ProductFrontendSearch.php b/frontend/models/ProductFrontendSearch.php index af06749..27a67c2 100755 --- a/frontend/models/ProductFrontendSearch.php +++ b/frontend/models/ProductFrontendSearch.php @@ -51,10 +51,11 @@ class ProductFrontendSearch extends Product { } else { $query = Product::find(); } -// $query->joinWith('variant'); + $query->joinWith('variant'); $query->joinWith('brand'); -// $query->joinWith('image'); + $query->joinWith('image'); $query->joinWith('categories'); + $query->groupBy('product.product_id'); $dataProvider = new ActiveDataProvider([ 'query' => $query, @@ -89,10 +90,11 @@ class ProductFrontendSearch extends Product { } public function optionsForCategory($category = null, $params = []) { +// , +// 'COUNT('. ProductOption::tableName() .'.product_id) AS _items_count' $query = TaxOption::find() ->select([ - TaxOption::tableName() .'.*', - 'COUNT('. ProductOption::tableName() .'.product_id) AS _items_count' + TaxOption::tableName() .'.*' ]) ->innerJoin(ProductOption::tableName(), ProductOption::tableName() .'.option_id='. TaxOption::tableName() .'.tax_option_id') ->innerJoin(ProductCategory::tableName(), ProductCategory::tableName() .'.product_id='. ProductOption::tableName() .'.product_id') @@ -102,7 +104,7 @@ class ProductFrontendSearch extends Product { $query->andWhere([ProductCategory::tableName() .'.category_id' => $category->category_id]); } $query->groupBy(TaxOption::tableName() .'.tax_option_id'); - + $query->limit(null); if (!empty($params['prices'])) { if ($params['prices']['min'] > 0 || $params['prices']['max'] > 0) { $query->innerJoin(ProductVariant::tableName(), ProductVariant::tableName() .'.product_id='. ProductCategory::tableName() .'.product_id'); diff --git a/frontend/views/catalog/products.php b/frontend/views/catalog/products.php index 39cc79d..a29a158 100755 --- a/frontend/views/catalog/products.php +++ b/frontend/views/catalog/products.php @@ -21,11 +21,39 @@ $this->params['seo']['description'] = 'TEST DESCRIPTION'; $this->params['seo']['fields']['name'] = 'TEST NAME FROM FIELD'; $this->params['seo']['key']= 'product_list'; -$this->registerCssFile (Yii::$app->request->BaseUrl . '/css/begunok.css'); -$this->registerJsFile (Yii::$app->request->baseUrl . '/js/jquery.ui-slider.js', ['position' => View::POS_HEAD, 'depends' => ['yii\web\JqueryAsset']]); -$this->registerJsFile (Yii::$app->request->baseUrl . '/js/begunok.js', ['position' => View::POS_HEAD, 'depends' => ['yii\web\JqueryAsset']]); +$this->registerCssFile (Yii::getAlias('@web/css/ion.rangeSlider.css')); +$this->registerCssFile (Yii::getAlias('@web/css/ion.rangeSlider.skinHTML5.css')); +$this->registerJsFile (Yii::getAlias('@web/js/ion.rangeSlider.js')); ?> +