public function actionIndex($id) { $model = ModelCategory::model()->findAll('category_id = :num', array(':num' => $id)); $modelBrand = new Brand(); $modelCategory = new ModelCategory(); if (isset($_POST['ids'])) { ModelCategory::model()->deleteAll('brand_id = :brand_id', array(':brand_id' => $_POST['ids'])); Brand::model()->findByPk($_POST['ids'])->delete(); $this->refresh(); } if (isset($_POST['yt0'])) { $modelBrand->attributes = $_POST['Brand']; $modelBrand->save(); $modelCategory->category_id = $id; $modelCategory->brand_id = $modelBrand->id; if ($modelCategory->save()) { Yii::app()->user->setFlash('status', 'Бренд добавлен'); } $this->refresh(); } $this->render('index', array('model' => $model, 'modelBrand' => $modelBrand, 'idkey' => $id)); }
public function actionGoods($category_id) { $this->pageTitle = 'Мобильный мир - ' . ($category_id == 1 ? 'телефоны' : ($category_id == 2 ? 'планшеты' : ($category_id == 3 ? 'ноутбуки' : ($category_id == 4 ? 'портативная техника' : ($category_id == 5 ? 'аксессуары' : 'услуги'))))); if ($category_id == 1) { $cat = $category_id; //главное меню $this->menu = Category::model()->findAll(); $criteria = new CDbCriteria(); if (isset($_GET)) { if (key($_GET) == 'common') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $filter[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['id']; } } } else { if (key($_GET) == 'brand') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $filter[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'type' || key($_GET) == 'form' || key($_GET) == 'os' || key($_GET) == 'sim' || key($_GET) == 'protection' || key($_GET) == 'screen' || key($_GET) == 'core' || key($_GET) == 'core_frequency' || key($_GET) == 'wifi' || key($_GET) == 'GPS') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $item . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'diagonal') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 12'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'camera') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 21'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'front_camera') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { if ($item == 'нет') { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = "' . $item . '") AND characteristic_id = 22'; } else { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 22'; } } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'ram') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 25'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'rom') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { if ($item == '0.1-4') { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 26'; } else { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = ' . $item . ') AND characteristic_id = 26'; } } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'battery') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 41'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } } } } } } } } } $i = 0; foreach ($_GET as $k => $items) { $i++; if ($i == 2) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 12'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 21'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'front_camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { if ($item == 'нет') { $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = "' . $item . '") AND characteristic_id = 22'; } else { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 22'; } } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 25'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'rom') { $querys = $items; if ($querys[0] == '0.1-4') { if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 26'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { if (is_array($querys)) { foreach ($querys as $item2) { $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = ' . $item2 . ') AND characteristic_id = 26'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } elseif ($k == 'battery') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter7[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 41'; } $sql = implode(' UNION ', $filter7); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t2 = array(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } if ($i == 3) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t3[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t3[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 12'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t3[] = $item['model_id']; } } } elseif ($k == 'camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 21'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t3[] = $item['model_id']; } } } elseif ($k == 'front_camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { if ($item == 'нет') { $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = "' . $item . '") AND characteristic_id = 22'; } else { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 22'; } } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t3[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 25'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t3[] = $item['model_id']; } } } elseif ($k == 'rom') { $querys = $items; if ($querys[0] == '0.1-4') { if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 26'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t3[] = $item['model_id']; } } } else { if (is_array($querys)) { foreach ($querys as $item2) { $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = ' . $item2 . ') AND characteristic_id = 26'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t3[] = $item['model_id']; } } } } elseif ($k == 'battery') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter7[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 41'; } $sql = implode(' UNION ', $filter7); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t3[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t3 = array(); foreach ($model as $item) { $t3[] = $item['model_id']; } } } } if ($i == 4) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t4[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t4[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 12'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t4[] = $item['model_id']; } } } elseif ($k == 'camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 21'; } $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t4[] = $item['model_id']; } } } elseif ($k == 'front_camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { if ($item == 'нет') { $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = "' . $item . '") AND characteristic_id = 22'; } else { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 22'; } } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t4[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 25'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t4[] = $item['model_id']; } } } elseif ($k == 'rom') { $querys = $items; if ($querys[0] == '0.1-4') { if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 26'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t4[] = $item['model_id']; } } } else { if (is_array($querys)) { foreach ($querys as $item2) { $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = ' . $item2 . ') AND characteristic_id = 26'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t4[] = $item['model_id']; } } } } elseif ($k == 'battery') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter7[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 41'; } $sql = implode(' UNION ', $filter7); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t4[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t4 = array(); foreach ($model as $item) { $t4[] = $item['model_id']; } } } } if ($i == 5) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t5[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t5[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 12'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t5[] = $item['model_id']; } } } elseif ($k == 'camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 21'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t5[] = $item['model_id']; } } } elseif ($k == 'front_camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { if ($item == 'нет') { $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = "' . $item . '") AND characteristic_id = 22'; } else { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 22'; } } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t5[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 25'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t5[] = $item['model_id']; } } } elseif ($k == 'rom') { $querys = $items; if ($querys[0] == '0.1-4') { if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 26'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t5[] = $item['model_id']; } } } else { if (is_array($querys)) { foreach ($querys as $item2) { $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = ' . $item2 . ') AND characteristic_id = 26'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t5[] = $item['model_id']; } } } } elseif ($k == 'battery') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter7[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 41'; } $sql = implode(' UNION ', $filter7); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t5[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t5 = array(); foreach ($model as $item) { $t5[] = $item['model_id']; } } } } } } if (isset($t1) && isset($t2)) { $z = array_intersect($t1, $t2); } if (isset($z) && isset($t3)) { $z = array_intersect($z, $t3); } if (isset($z) && isset($t4)) { $z = array_intersect($z, $t4); } if (isset($z) && isset($t5)) { $z = array_intersect($z, $t5); } $a = Yii::app()->getRequest()->getQueryString(); if (Yii::app()->request->isAjaxRequest) { Yii::app()->shoppingCart->put(Models::model()->findByPk($_POST['id'])); $data[0] = Yii::app()->shoppingCart->getCost(); $data[1] = Yii::app()->shoppingCart->getCount(); echo json_encode($data); // Завершаем приложение Yii::app()->end(); } $brand = ModelCategory::model()->findAll('category_id = :category_id', array(':category_id' => $cat)); $array = array(); foreach ($brand as $item) { $array[] = $item->brand_id; } //Бренды для фильтров //$criter = new CDbCriteria; //$criter->addInCondition('id', $array); //$brands = Brand::model()->findAll($criter); //Товары if (isset($z)) { $criteria->addInCondition('t.id', $z); } if (!isset($z) && isset($t1)) { $criteria->addInCondition('t.id', $t1); } $criteria->addInCondition('t.brand_id', $array); /* if(isset($modelId[0])){ $criteria->addInCondition('id', $modelId); } */ //пагинация $model = Models::model()->cache(1000, null, 2)->with('categoryId')->findAll($criteria); $ids = array(); if (!isset($z)) { foreach ($model as $item) { $ids[] = $item->id; } } else { if (!isset($z) && isset($t1)) { $ids = $t1; } else { if (isset($z)) { $ids = $z; } } } $ids_query = implode(', ', $ids); //sql запрос - возвращает количество моделей по каждой характеристике в фильтре $count = Models::filterCategory($ids_query, $category_id); //подсчет количества производителей $count_maker_arr = array(); foreach ($model as $item) { $count_maker_arr[] = $item->brand_id; } $count_maker = array_count_values($count_maker_arr); // подсчет количества моделей "топ продаж" $count_top = 0; foreach ($model as $item) { if ($item->top == 1) { $count_top++; } } // подсчет количества моделей "Акция" $count_promotion = 0; foreach ($model as $item) { if ($item->promotion == 1) { $count_promotion++; } } // подсчет количества моделей "Новинки" $count_novelty = 0; foreach ($model as $item) { if ($item->novelty == 1) { $count_novelty++; } } // подсчет количества моделей "Лучшая цена" $count_bestPrice = 0; foreach ($model as $item) { if ($item->bestPrice == 1) { $count_bestPrice++; } } $brand_name = Models::model()->cache(1000, null, 2)->with('brandModel')->findAll($criteria); $count1 = Models::model()->count($criteria); $pages = new CPagination($count1); $pages->pageSize = 10; $pages->applyLimit($criteria); if (isset($_GET['desc']) && $_GET['desc'] == 1) { $criteria->order = 'price DESC'; } else { if (isset($_GET['desc']) && $_GET['desc'] == 2) { $criteria->order = 'price ASC'; } else { $criteria->order = 'model_name ASC'; } } $model = Models::model()->cache(1000, null, 2)->with('categoryId')->findAll($criteria); } elseif ($category_id == 2) { $cat = $category_id; //главное меню $this->menu = Category::model()->findAll(); $criteria = new CDbCriteria(); if (isset($_GET)) { if (key($_GET) == 'common') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $filter[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['id']; } } } else { if (key($_GET) == 'brand') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $filter[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'type' || key($_GET) == 'os' || key($_GET) == 'sim' || key($_GET) == 'screen' || key($_GET) == 'core' || key($_GET) == 'core_frequency' || key($_GET) == 'GPS') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $item . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'diagonal') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 57'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'camera') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 65'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'front_camera') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { if ($item == 'нет') { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = "' . $item . '") AND characteristic_id = 66'; } else { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 66'; } } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'ram') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 68'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'rom') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { if ($item == '0.1-4') { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 69'; } else { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = ' . $item . ') AND characteristic_id = 69'; } } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'battery') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 80'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } } } } } } } } } $i = 0; foreach ($_GET as $k => $items) { $i++; if ($i == 2) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 57'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 65'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'front_camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { if ($item == 'нет') { $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = "' . $item . '") AND characteristic_id = 66'; } else { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 66'; } } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 68'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'rom') { $querys = $items; if ($querys[0] == '0.1-4') { if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 69'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { if (is_array($querys)) { foreach ($querys as $item2) { $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = ' . $item2 . ') AND characteristic_id = 69'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } elseif ($k == 'battery') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter7[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 80'; } $sql = implode(' UNION ', $filter7); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t2 = array(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } if ($i == 3) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 57'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 65'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'front_camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { if ($item == 'нет') { $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = "' . $item . '") AND characteristic_id = 66'; } else { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 66'; } } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 68'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'rom') { $querys = $items; if ($querys[0] == '0.1-4') { if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 69'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { if (is_array($querys)) { foreach ($querys as $item2) { $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = ' . $item2 . ') AND characteristic_id = 69'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } elseif ($k == 'battery') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter7[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 80'; } $sql = implode(' UNION ', $filter7); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t2 = array(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } if ($i == 4) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 57'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 65'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'front_camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { if ($item == 'нет') { $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = "' . $item . '") AND characteristic_id = 66'; } else { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 66'; } } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 68'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'rom') { $querys = $items; if ($querys[0] == '0.1-4') { if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 69'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { if (is_array($querys)) { foreach ($querys as $item2) { $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = ' . $item2 . ') AND characteristic_id = 69'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } elseif ($k == 'battery') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter7[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 80'; } $sql = implode(' UNION ', $filter7); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t2 = array(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } if ($i == 5) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 57'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 65'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'front_camera') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { if ($item == 'нет') { $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = "' . $item . '") AND characteristic_id = 66'; } else { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 66'; } } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 68'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'rom') { $querys = $items; if ($querys[0] == '0.1-4') { if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 69'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { if (is_array($querys)) { foreach ($querys as $item2) { $filter6[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value = ' . $item2 . ') AND characteristic_id = 69'; } $sql = implode(' UNION ', $filter6); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } elseif ($k == 'battery') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter7[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 80'; } $sql = implode(' UNION ', $filter7); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t2 = array(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } } } if (isset($t1) && isset($t2)) { $z = array_intersect($t1, $t2); } if (isset($z) && isset($t3)) { $z = array_intersect($z, $t3); } if (isset($z) && isset($t4)) { $z = array_intersect($z, $t4); } if (isset($z) && isset($t5)) { $z = array_intersect($z, $t5); } $a = Yii::app()->getRequest()->getQueryString(); if (Yii::app()->request->isAjaxRequest) { Yii::app()->shoppingCart->put(Models::model()->findByPk($_POST['id'])); $data[0] = Yii::app()->shoppingCart->getCost(); $data[1] = Yii::app()->shoppingCart->getCount(); echo json_encode($data); // Завершаем приложение Yii::app()->end(); } $brand = ModelCategory::model()->findAll('category_id = :category_id', array(':category_id' => $cat)); $array = array(); foreach ($brand as $item) { $array[] = $item->brand_id; } //Бренды для фильтров //$criter = new CDbCriteria; //$criter->addInCondition('id', $array); //$brands = Brand::model()->findAll($criter); //Товары if (isset($z)) { $criteria->addInCondition('t.id', $z); } if (!isset($z) && isset($t1)) { $criteria->addInCondition('t.id', $t1); } $criteria->addInCondition('t.brand_id', $array); /* if(isset($modelId[0])){ $criteria->addInCondition('id', $modelId); } */ //пагинация $model = Models::model()->cache(1000, null, 2)->with('categoryId')->findAll($criteria); $ids = array(); if (!isset($z)) { foreach ($model as $item) { $ids[] = $item->id; } } else { if (!isset($z) && isset($t1)) { $ids = $t1; } else { if (isset($z)) { $ids = $z; } } } $ids_query = implode(', ', $ids); //sql запрос - возвращает количество моделей по каждой характеристике в фильтре $count = Models::filterCategory($ids_query, $category_id); //подсчет количества производителей $count_maker_arr = array(); foreach ($model as $item) { $count_maker_arr[] = $item->brand_id; } $count_maker = array_count_values($count_maker_arr); // подсчет количества моделей "топ продаж" $count_top = 0; foreach ($model as $item) { if ($item->top == 1) { $count_top++; } } // подсчет количества моделей "Акция" $count_promotion = 0; foreach ($model as $item) { if ($item->promotion == 1) { $count_promotion++; } } // подсчет количества моделей "Новинки" $count_novelty = 0; foreach ($model as $item) { if ($item->novelty == 1) { $count_novelty++; } } // подсчет количества моделей "Лучшая цена" $count_bestPrice = 0; foreach ($model as $item) { if ($item->bestPrice == 1) { $count_bestPrice++; } } $brand_name = Models::model()->cache(1000, null, 2)->with('brandModel')->findAll($criteria); $count1 = Models::model()->count($criteria); $pages = new CPagination($count1); $pages->pageSize = 10; $pages->applyLimit($criteria); if (isset($_GET['desc']) && $_GET['desc'] == 1) { $criteria->order = 'price DESC'; } else { if (isset($_GET['desc']) && $_GET['desc'] == 2) { $criteria->order = 'price ASC'; } else { $criteria->order = 'model_name ASC'; } } $model = Models::model()->cache(1000, null, 2)->with('categoryId')->findAll($criteria); } elseif ($category_id == 3) { $cat = $category_id; //главное меню $this->menu = Category::model()->findAll(); $criteria = new CDbCriteria(); if (isset($_GET)) { if (key($_GET) == 'common') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $filter[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['id']; } } } else { if (key($_GET) == 'brand') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $filter[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'type' || key($_GET) == 'os' || key($_GET) == 'cpu_type' || key($_GET) == 'core' || key($_GET) == 'video' || key($_GET) == 'rom') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $item . '" AND characteristic_id > 88'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'diagonal') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 94'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'ram') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 106'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'HDD') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 109'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } else { if (key($_GET) == 'SSD') { $bz = key($_GET); foreach ($_GET as $items) { $query = $items; break; } if (is_array($query)) { $filter = array(); foreach ($query as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 110'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t1[] = $item['model_id']; } } } } } } } } } $i = 0; foreach ($_GET as $k => $items) { $i++; if ($i == 2) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 94'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 106'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'HDD') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 109'; } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'SSD') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 110'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"AND characteristic_id > 88'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t2 = array(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } if ($i == 3) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 94'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 106'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'HDD') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 109'; } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'SSD') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 110'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"AND characteristic_id > 88'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t2 = array(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } if ($i == 4) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 94'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 106'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'HDD') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 109'; } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'SSD') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 110'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"AND characteristic_id > 88'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t2 = array(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } if ($i == 5) { if ($k == 'common') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $filter2[] = 'SELECT id FROM {{models}} WHERE ' . $item . '=1'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['id']; } } } elseif ($k == 'brand') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT cms_models.id as model_id FROM cms_models JOIN cms_brand ON brand_id = cms_brand.id WHERE brand = "' . $item . '"'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'diagonal') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter2[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 94'; } $sql = implode(' UNION ', $filter2); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'ram') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter3[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 106'; } $sql = implode(' UNION ', $filter3); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'HDD') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter4[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 109'; } $sql = implode(' UNION ', $filter4); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } elseif ($k == 'SSD') { $querys = $items; if (is_array($querys)) { foreach ($querys as $item) { $items = explode('-', $item); $item_finish = implode(' AND ', $items); $filter5[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE (value BETWEEN ' . $item_finish . ') AND characteristic_id = 110'; } $sql = implode(' UNION ', $filter5); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } else { $querys = $items; if (is_array($querys)) { $filter = array(); foreach ($querys as $itemt) { $filter[] = 'SELECT DISTINCT model_id FROM {{characteristicValue}} WHERE value="' . $itemt . '"AND characteristic_id > 88'; } $sql = implode(' UNION ', $filter); $connection = Yii::app()->db; $model = $connection->createCommand($sql)->queryAll(); $t2 = array(); foreach ($model as $item) { $t2[] = $item['model_id']; } } } } } } if (isset($t1) && isset($t2)) { $z = array_intersect($t1, $t2); } if (isset($z) && isset($t3)) { $z = array_intersect($z, $t3); } if (isset($z) && isset($t4)) { $z = array_intersect($z, $t4); } if (isset($z) && isset($t5)) { $z = array_intersect($z, $t5); } $a = Yii::app()->getRequest()->getQueryString(); if (Yii::app()->request->isAjaxRequest) { Yii::app()->shoppingCart->put(Models::model()->findByPk($_POST['id'])); $data[0] = Yii::app()->shoppingCart->getCost(); $data[1] = Yii::app()->shoppingCart->getCount(); echo json_encode($data); // Завершаем приложение Yii::app()->end(); } $brand = ModelCategory::model()->findAll('category_id = :category_id', array(':category_id' => $cat)); $array = array(); foreach ($brand as $item) { $array[] = $item->brand_id; } //Бренды для фильтров //$criter = new CDbCriteria; //$criter->addInCondition('id', $array); //$brands = Brand::model()->findAll($criter); //Товары if (isset($z)) { $criteria->addInCondition('t.id', $z); } if (!isset($z) && isset($t1)) { $criteria->addInCondition('t.id', $t1); } $criteria->addInCondition('t.brand_id', $array); /* if(isset($modelId[0])){ $criteria->addInCondition('id', $modelId); } */ //пагинация $model = Models::model()->cache(1000, null, 2)->with('categoryId')->findAll($criteria); $ids = array(); if (!isset($z)) { foreach ($model as $item) { $ids[] = $item->id; } } else { if (!isset($z) && isset($t1)) { $ids = $t1; } else { if (isset($z)) { $ids = $z; } } } $ids_query = implode(', ', $ids); //sql запрос - возвращает количество моделей по каждой характеристике в фильтре $count = Models::filterCategory($ids_query, $category_id); //подсчет количества производителей $count_maker_arr = array(); foreach ($model as $item) { $count_maker_arr[] = $item->brand_id; } $count_maker = array_count_values($count_maker_arr); // подсчет количества моделей "топ продаж" $count_top = 0; foreach ($model as $item) { if ($item->top == 1) { $count_top++; } } // подсчет количества моделей "Акция" $count_promotion = 0; foreach ($model as $item) { if ($item->promotion == 1) { $count_promotion++; } } // подсчет количества моделей "Новинки" $count_novelty = 0; foreach ($model as $item) { if ($item->novelty == 1) { $count_novelty++; } } // подсчет количества моделей "Лучшая цена" $count_bestPrice = 0; foreach ($model as $item) { if ($item->bestPrice == 1) { $count_bestPrice++; } } $brand_name = Models::model()->cache(1000, null, 2)->with('brandModel')->findAll($criteria); $count1 = Models::model()->count($criteria); $pages = new CPagination($count1); $pages->pageSize = 10; $pages->applyLimit($criteria); if (isset($_GET['desc']) && $_GET['desc'] == 1) { $criteria->order = 'price DESC'; } else { if (isset($_GET['desc']) && $_GET['desc'] == 2) { $criteria->order = 'price ASC'; } else { $criteria->order = 'model_name ASC'; } } $model = Models::model()->cache(1000, null, 2)->with('categoryId')->findAll($criteria); } $category = Category::model()->find('id = :id', array(':id' => $category_id)); $this->render('goods', array('model' => $model, 'pages' => $pages, 'category_id' => $category_id, 'brand_name' => $brand_name, 'a' => $a, 'count' => isset($count) ? $count : '', 'count_maker' => $count_maker, 'count_top' => $count_top, 'count_promotion' => $count_promotion, 'count_novelty' => $count_novelty, 'count_bestPrice' => $count_bestPrice, 'category' => $category)); }
/** * 进行递归地设置每层分类对应的子类 */ private static function setChild() { $topCat = self::db('category')->where("category_parent = 0 and category_id = :category_id")->select(array('category_id' => self::$topCategory)); if (!empty($topCat)) { foreach ($topCat as $key => $value) { $child = explode(',', self::listChildId($value['category_id'])); self::$tree = ''; foreach ($child as $_key => $_value) { $data['noset']['category_id'] = $_value; $data['category_child'] = self::listChildId($_value); $updateChild = self::db('category')->where('category_id = :category_id')->update($data); self::$tree = ''; } } } }
public function actionIndex($id = false) { $models = new CsvUpload(); if ($id == 1) { if (isset($_POST['CsvUpload']['photo_img'])) { if ($files = CUploadedFile::getInstances($models, 'photo_img')) { $array = array(); foreach ($files as $img) { $filename = $img->name; $img->saveAs('upload/images' . '/' . $filename); } } } if (isset($_POST['yt0'])) { $brand = ModelCategory::model()->findAll('category_id = :id', array(':id' => $id)); $arr = array(); foreach ($brand as $item) { $arr[] = $item->brand_id; } $criteria = new CDbCriteria(); $criteria->addInCondition('brand_id', $arr); $model = Models::model()->findAll($criteria); foreach ($model as $item) { $array_model_id[] = $item->id; } if (isset($array_model_id[0])) { $criteria_model_id = new CDbCriteria(); $criteria_model_id->addInCondition('model_id', $array_model_id); $characteristics = CharacteristicValue::model()->findAll($criteria_model_id); $file_name = 'export.csv'; // название файла $file = fopen($file_name, "w"); // открываем файл для записи, если его нет, то создаем его в текущей папке, где расположен скрипт $csv_file = array('Артикул', 'Название бренда', 'Название модели', 'Цена', 'Старая цена', 'Главная фотография', 'Другие фотографии', 'Количество', 'Описание', 'Сопутствующие товары', 'Топ продаж', 'Акция', 'Новинка', 'Лучшая цена', 'Тип', 'Форм-фактор', 'Операционная система', 'Количество SIM-карт', 'Стандарты связи', 'Формат SIM-карты', 'Материал корпуса', 'Степень защиты', 'Цвет', 'Диагональ экрана', 'Разрешение экрана', 'Тип экрана', 'Количество цветов экрана', 'Тип процессора', 'Количесво ядер', 'Частота процессора', 'Основная камера', 'Фронтальная камера', 'Встроенная вспышка', 'Оперативная память', 'Встроенная память', 'Поддержка карт памяти', 'Wi-Fi', 'Bluetooth', 'GPS', 'NFC', 'MP3-проигрыватель', 'FM-тюнер', 'SMS/MMS/Email', 'Интерфейс', 'Разъем для наушников', 'Емкость аккумулятора', 'Размеры и вес', 'Комплектация', 'Гарантийный срок', 'Возврат и обмен товара', 'Дополнительно'); $csv_file = explode("^", iconv('UTF-8', 'Windows-1251', implode("^", $csv_file))); fputcsv($file, $csv_file, ";"); // записываем в файл заголовки foreach ($model as $item) { $csv_file = array($item->vendor_code, $item->brandModel->brand, $item->model_name, $item->price, $item->old_price, $item->photo, is_array(json_decode($item->photo_other)) ? implode(', ', json_decode($item->photo_other)) : json_decode($item->photo_other), $item->quantity, $item->description, is_array(json_decode($item->accessories)) ? implode(', ', json_decode($item->accessories)) : $item->accessories, $item->top, $item->promotion, $item->novelty, $item->bestPrice); foreach ($characteristics as $characteristic) { if ($item->id == $characteristic->model_id) { if (isset($characteristic->value)) { array_push($csv_file, $characteristic->value); } else { array_push($csv_file, ""); } } } $csv_file = explode("^", iconv('UTF-8', 'Windows-1251', implode("^", $csv_file))); fputcsv($file, $csv_file, ";"); // записываем в файл строки } fclose($file); // закрываем файл // задаем заголовки. то есть задаем всплывающее окошко, которое позволяет нам сохранить файл. header('Content-type: application/csv'); // указываем, что это csv документ header("Content-Disposition: attachment; filename=" . $file_name); // указываем файл, с которым будем работать readfile($file_name); // считываем файл unlink($file_name); // удаляем файл. то есть когда вы сохраните файл на локальном компе, то после он удалится с сервера Yii::app()->end(); } else { Yii::app()->user->setFlash('status', 'База пустая!'); } } // загрузка из файла if (isset($_POST['CsvUpload'])) { $brand = ModelCategory::model()->findAll('category_id = :id', array(':id' => $id)); $arr = array(); foreach ($brand as $item) { $arr[] = $item->brand_id; } $criteria = new CDbCriteria(); $criteria->addInCondition('id', $arr); $model = Brand::model()->findAll($criteria); // получаем данные из формы if ($file = CUploadedFile::getInstance($models, 'csv')) { $extension = strtolower($file->extensionName); $filename = 'import_csv'; $basename = $filename . '.' . $extension; $file->saveAs('upload/csv' . '/' . $basename); $path_csv = Yii::app()->request->baseUrl . 'upload/csv/' . $basename; if (($handle = fopen($path_csv, "r")) !== false) { $modelCharacteristicValue = new CharacteristicValue(); $modelCharacteristics = Characteristics::model()->findAll('category_id = :id', array(':id' => $id)); $modelModelsOld = Models::model()->findAll(); $counter = 0; while (($data = fgetcsv($handle, 5000, ";")) !== false) { $brand_tel = iconv('Windows-1251', 'UTF-8', $data[1]); $counter++; if ($counter == 1) { continue; } // если есть такой бренд, то продолжаем $modelModels = new Models(); $i = 0; foreach ($model as $item) { if (trim(strtolower($item->brand)) == trim(strtolower($brand_tel))) { $i = 1; $modelModels->brand_id = $item->id; $brand_id_update = $item->id; } } // если бренда нет, идем на следующую итерацию if ($i == 0) { continue; } $reset_while = 0; foreach ($modelModelsOld as $itemid) { $vendor = iconv('Windows-1251', 'UTF-8', isset($data[0]) ? $data[0] : ''); //если запись уже есть в базе, обновляем if ($itemid->vendor_code == $vendor) { $description = iconv('Windows-1251', 'UTF-8', isset($data[8]) ? $data[8] : ''); $cena = str_replace(",", '.', isset($data[3]) ? $data[3] : ''); $cena = preg_replace("/[^x\\d|*\\.]/", "", $cena); $old_cena = str_replace(",", '.', isset($data[4]) ? $data[4] : ''); $old_cena = preg_replace("/[^x\\d|*\\.]/", "", $old_cena); //$accessories = iconv('Windows-1251', 'UTF-8', $data[9]); $model_name = iconv('Windows-1251', 'UTF-8', isset($data[2]) ? $data[2] : ''); $photo_other = explode(',', mb_convert_encoding(isset($data[6]) ? $data[6] : '', 'UTF-8')); $photo_other_arr = array(); foreach ($photo_other as $item) { $photo_other_arr[] = trim($item); } $acces = explode(',', mb_convert_encoding(isset($data[9]) ? $data[9] : '', 'UTF-8')); $accessories = array(); foreach ($acces as $item) { $accessories[] = trim($item); } $sql[] = '(\'' . $vendor . '\', \'' . $model_name . '\', \'"' . $cena . '\', \'' . $old_cena . '\', \'' . $brand_id_update . '\', \'' . (isset($data[5]) ? $data[5] : '') . '\', \'' . ($photo_other_arr[0] != '' ? json_encode($photo_other_arr) : '') . '\', \'' . (isset($data[7]) ? $data[7] : '') . '\', \'' . $description . '\', \'' . json_encode($accessories) . '\', \'' . (isset($data[10]) ? $data[10] : '') . '\', \'' . (isset($data[11]) ? $data[11] : '') . '\', \'' . (isset($data[12]) ? $data[12] : '') . '\', \'' . (isset($data[13]) ? $data[13] : '') . '\' )'; $id_update = $itemid->id; $j = 14; foreach ($modelCharacteristics as $k => $items) { if ($items->parent_id != 0 && isset($data[$j])) { $value = $data[$j] != '' ? iconv('Windows-1251', 'UTF-8', $data[$j]) : ''; $sql_char[] = '(\'' . $value . '\', \'' . $items->id . '\', \'' . $id_update . '\')'; $j++; } if ($j == 51) { break; } } $reset_while = 1; } } // если обновили, пропускаем итерацию if ($reset_while == 1) { continue; } // если нет, записываем новые данные $vendor = iconv('Windows-1251', 'UTF-8', isset($data[0]) ? $data[0] : ''); $model_name = iconv('Windows-1251', 'UTF-8', isset($data[2]) ? $data[2] : ''); $modelModels->vendor_code = $vendor; $modelModels->model_name = $model_name; $cena = str_replace(",", '.', isset($data[3]) ? $data[3] : ''); $cena = preg_replace("/[^x\\d|*\\.]/", "", $cena); $old_cena = str_replace(",", '.', isset($data[4]) ? $data[4] : ''); $old_cena = preg_replace("/[^x\\d|*\\.]/", "", $old_cena); $photo_other = explode(',', mb_convert_encoding(isset($data[6]) ? $data[6] : '', 'UTF-8')); $photo_other_arr = array(); foreach ($photo_other as $item) { $photo_other_arr[] = trim($item); } $acces = explode(',', mb_convert_encoding(isset($data[9]) ? $data[9] : '', 'UTF-8')); $accessories = array(); foreach ($acces as $item) { $accessories[] = trim($item); } $modelModels->price = $cena; $modelModels->old_price = $old_cena; $modelModels->photo = isset($data[5]) ? $data[5] : ''; $modelModels->photo_other = $photo_other_arr[0] != '' ? json_encode($photo_other_arr) : ''; $modelModels->quantity = isset($data[7]) ? $data[7] : ''; $description = iconv('Windows-1251', 'UTF-8', isset($data[8]) ? $data[8] : ''); $modelModels->description = $description; $modelModels->accessories = json_encode($accessories); $modelModels->top = isset($data[10]) ? $data[10] : ''; $modelModels->promotion = isset($data[11]) ? $data[11] : ''; $modelModels->novelty = isset($data[12]) ? $data[12] : ''; $modelModels->bestPrice = isset($data[13]) ? $data[13] : ''; if ($modelModels->save(false)) { $id_model = $modelModels->id; $j = 14; foreach ($modelCharacteristics as $k => $item) { if ($item->parent_id != 0 && isset($data[$j])) { $modelCharacteristicValue->id = false; $modelCharacteristicValue->isNewRecord = true; $value = $data[$j] ? iconv('Windows-1251', 'UTF-8', $data[$j]) : ''; $modelCharacteristicValue->value = $value; $modelCharacteristicValue->characteristic_id = $item->id; $modelCharacteristicValue->model_id = $id_model; if ($modelCharacteristicValue->save(false)) { $j++; } } if ($j == 51) { break; } } } } fclose($handle); unlink($path_csv); } if (isset($sql[0])) { $sql_implode = implode(', ', $sql); $sql_query_models = 'INSERT INTO cms_temp_models (vendor_code, model_name, price, old_price, brand_id, photo, photo_other, quantity, description, accessories, top, promotion, novelty, bestPrice ) VALUES ' . $sql_implode; $connection = Yii::app()->db; $connection->createCommand($sql_query_models)->execute(); $sql_query_update = 'update cms_models u inner join cms_temp_models s on u.vendor_code = s.vendor_code set u.model_name = s.model_name, u.price = s.price, u.old_price = s.old_price, u.brand_id = s.brand_id, u.photo = s.photo, u.photo_other = s.photo_other, u.quantity = s.quantity, u.description = s.description, u.accessories = s.accessories, u.top = s.top, u.promotion = s.promotion, u.novelty = s.novelty, u.bestPrice = s.bestPrice'; $connection->createCommand($sql_query_update)->execute(); $connection->createCommand()->truncateTable('cms_temp_models'); if (isset($sql_char)) { $sql_implode_char = implode(', ', $sql_char); $sql_query_models = 'INSERT INTO cms_temp_characteristicValue (value, characteristic_id, model_id) VALUES ' . $sql_implode_char; $connection = Yii::app()->db; $connection->createCommand($sql_query_models)->execute(); $sql_query_update_char = 'UPDATE cms_characteristicValue u INNER JOIN cms_temp_characteristicValue s ON (u.characteristic_id = s.characteristic_id) AND (u.model_id = s.model_id) SET u.value = s.value'; $connection->createCommand($sql_query_update_char)->execute(); $connection->createCommand()->truncateTable('cms_temp_characteristicValue'); } } // сообщение о завершении загрузки Yii::app()->user->setFlash('status', 'Файл загружен, данные добавлены!'); } } } if ($id == 2) { if (isset($_POST['CsvUpload']['photo_img'])) { if ($files = CUploadedFile::getInstances($models, 'photo_img')) { $array = array(); foreach ($files as $img) { $filename = $img->name; //$filename = mb_convert_encoding($filename, 'Windows-1251', 'UTF-8'); $img->saveAs('upload/images' . '/' . $filename); } } } if (isset($_POST['yt0'])) { $brand = ModelCategory::model()->findAll('category_id = :id', array(':id' => $id)); $arr = array(); foreach ($brand as $item) { $arr[] = $item->brand_id; } $criteria = new CDbCriteria(); $criteria->addInCondition('brand_id', $arr); $model = Models::model()->findAll($criteria); foreach ($model as $item) { $array_model_id[] = $item->id; } if (isset($array_model_id[0])) { $criteria_model_id = new CDbCriteria(); $criteria_model_id->addInCondition('model_id', $array_model_id); $characteristics = CharacteristicValue::model()->findAll($criteria_model_id); $file_name = 'export.csv'; // название файла $file = fopen($file_name, "w"); // открываем файл для записи, если его нет, то создаем его в текущей папке, где расположен скрипт $csv_file = array('Артикул', 'Название бренда', 'Название модели', 'Цена', 'Старая цена', 'Главная фотография', 'Другие фотографии', 'Количество', 'Описание', 'Сопутствующие товары', 'Топ продаж', 'Акция', 'Новинка', 'Лучшая цена', 'Тип', 'Операционная система', 'Количество SIM-карт', 'Стандарты связи', 'Материал корпуса', 'Цвет', 'Диагональ экрана', 'Разрешение экрана', 'Тип экрана', 'Тип процессора', 'Количесво ядер', 'Частота процессора', 'Основная камера', 'Фронтальная камера', 'Оперативная память', 'Встроенная память', 'Поддержка карт памяти', 'Wi-Fi', 'Bluetooth', 'GPS', 'NFC', 'Интерфейс', 'Разъем для наушников', 'Емкость аккумулятора', 'Размеры и вес', 'Комплектация', 'Гарантийный срок', 'Возврат и обмен товара', 'Дополнительно'); $csv_file = explode("^", iconv('UTF-8', 'Windows-1251', implode("^", $csv_file))); fputcsv($file, $csv_file, ";"); // записываем в файл заголовки foreach ($model as $item) { $csv_file = array($item->vendor_code, $item->brandModel->brand, $item->model_name, $item->price, $item->old_price, $item->photo, is_array(json_decode($item->photo_other)) ? implode(', ', json_decode($item->photo_other)) : json_decode($item->photo_other), $item->quantity, $item->description, is_array(json_decode($item->accessories)) ? implode(', ', json_decode($item->accessories)) : $item->accessories, $item->top, $item->promotion, $item->novelty, $item->bestPrice); foreach ($characteristics as $characteristic) { if ($item->id == $characteristic->model_id) { if (isset($characteristic->value)) { array_push($csv_file, $characteristic->value); } else { array_push($csv_file, ""); } } } $csv_file = explode("^", iconv('UTF-8', 'Windows-1251', implode("^", $csv_file))); fputcsv($file, $csv_file, ";"); // записываем в файл строки } fclose($file); // закрываем файл // задаем заголовки. то есть задаем всплывающее окошко, которое позволяет нам сохранить файл. header('Content-type: application/csv'); // указываем, что это csv документ header("Content-Disposition: attachment; filename=" . $file_name); // указываем файл, с которым будем работать readfile($file_name); // считываем файл unlink($file_name); // удаляем файл. то есть когда вы сохраните файл на локальном компе, то после он удалится с сервера Yii::app()->end(); } else { Yii::app()->user->setFlash('status', 'База пустая!'); } } if (isset($_POST['CsvUpload'])) { $brand = ModelCategory::model()->findAll('category_id = :id', array(':id' => $id)); $arr = array(); foreach ($brand as $item) { $arr[] = $item->brand_id; } $criteria = new CDbCriteria(); $criteria->addInCondition('id', $arr); $model = Brand::model()->findAll($criteria); // получаем данные из формы if ($file = CUploadedFile::getInstance($models, 'csv')) { $extension = strtolower($file->extensionName); $filename = 'import_csv'; $basename = $filename . '.' . $extension; $file->saveAs('upload/csv' . '/' . $basename); $path_csv = Yii::app()->request->baseUrl . 'upload/csv/' . $basename; if (($handle = fopen($path_csv, "r")) !== false) { $modelCharacteristicValue = new CharacteristicValue(); $modelCharacteristics = Characteristics::model()->findAll('category_id = :id', array(':id' => $id)); $modelModelsOld = Models::model()->findAll(); $counter = 0; while (($data = fgetcsv($handle, 5000, ";")) !== false) { $brand_pl = iconv('Windows-1251', 'UTF-8', $data[1]); $counter++; if ($counter == 1) { continue; } // если есть такой бренд, то продолжаем $modelModels = new Models(); $i = 0; foreach ($model as $item) { if (trim(strtolower($item->brand)) == trim(strtolower($brand_pl))) { $i = 1; $modelModels->brand_id = $item->id; $brand_id_update = $item->id; } } // если бренда нет, идем на следующую итерацию if ($i == 0) { continue; } $reset_while = 0; foreach ($modelModelsOld as $itemid) { //если запись уже есть в базе, обновляем $vendor = iconv('Windows-1251', 'UTF-8', isset($data[0]) ? $data[0] : ''); //если запись уже есть в базе, обновляем if ($itemid->vendor_code == $vendor) { $description = iconv('Windows-1251', 'UTF-8', isset($data[8]) ? $data[8] : ''); $cena = str_replace(",", '.', isset($data[3]) ? $data[3] : ''); $cena = preg_replace("/[^x\\d|*\\.]/", "", $cena); $old_cena = str_replace(",", '.', isset($data[4]) ? $data[4] : ''); $old_cena = preg_replace("/[^x\\d|*\\.]/", "", $old_cena); //$accessories = iconv('Windows-1251', 'UTF-8', $data[9]); $model_name = iconv('Windows-1251', 'UTF-8', isset($data[2]) ? $data[2] : ''); $photo_other = explode(',', mb_convert_encoding(isset($data[6]) ? $data[6] : '', 'UTF-8')); $photo_other_arr = array(); foreach ($photo_other as $item) { $photo_other_arr[] = trim($item); } $acces = explode(',', mb_convert_encoding(isset($data[9]) ? $data[9] : '', 'UTF-8')); $accessories = array(); foreach ($acces as $item) { $accessories[] = trim($item); } $sql[] = '(\'' . $vendor . '\', \'' . $model_name . '\', \'"' . $cena . '\', \'' . $old_cena . '\', \'' . $brand_id_update . '\', \'' . (isset($data[5]) ? $data[5] : '') . '\', \'' . ($photo_other_arr[0] != '' ? json_encode($photo_other_arr) : '') . '\', \'' . (isset($data[7]) ? $data[7] : '') . '\', \'' . $description . '\', \'' . json_encode($accessories) . '\', \'' . (isset($data[10]) ? $data[10] : '') . '\', \'' . (isset($data[11]) ? $data[11] : '') . '\', \'' . (isset($data[12]) ? $data[12] : '') . '\', \'' . (isset($data[13]) ? $data[13] : '') . '\' )'; $id_update = $itemid->id; $j = 14; foreach ($modelCharacteristics as $k => $items) { if ($items->parent_id != 0 && isset($data[$j])) { $value = iconv('Windows-1251', 'UTF-8', $data[$j]); $sql_char[] = '(\'' . $value . '\', \'' . $items->id . '\', \'' . $id_update . '\')'; $j++; } if ($j == 44) { break; } } $reset_while = 1; } } // если обновили, пропускаем итерацию if ($reset_while == 1) { continue; } // если нет, записываем новые данные $vendor = iconv('Windows-1251', 'UTF-8', isset($data[0]) ? $data[0] : ''); $model_name = iconv('Windows-1251', 'UTF-8', isset($data[2]) ? $data[2] : ''); $modelModels->vendor_code = $vendor; $modelModels->model_name = $model_name; $cena = str_replace(",", '.', isset($data[3]) ? $data[3] : ''); $cena = preg_replace("/[^x\\d|*\\.]/", "", $cena); $old_cena = str_replace(",", '.', isset($data[4]) ? $data[4] : ''); $old_cena = preg_replace("/[^x\\d|*\\.]/", "", $old_cena); $photo_other = explode(',', mb_convert_encoding(isset($data[6]) ? $data[6] : '', 'UTF-8')); $photo_other_arr = array(); foreach ($photo_other as $item) { $photo_other_arr[] = trim($item); } $acces = explode(',', mb_convert_encoding(isset($data[9]) ? $data[9] : '', 'UTF-8')); $accessories = array(); foreach ($acces as $item) { $accessories[] = trim($item); } $modelModels->price = $cena; $modelModels->old_price = $old_cena; $modelModels->photo = isset($data[5]) ? $data[5] : ''; $modelModels->photo_other = $photo_other_arr[0] != '' ? json_encode($photo_other_arr) : ''; $modelModels->quantity = isset($data[7]) ? $data[7] : ''; $description = iconv('Windows-1251', 'UTF-8', isset($data[8]) ? $data[8] : ''); $modelModels->description = $description; $modelModels->accessories = json_encode($accessories); $modelModels->top = isset($data[10]) ? $data[10] : ''; $modelModels->promotion = isset($data[11]) ? $data[11] : ''; $modelModels->novelty = isset($data[12]) ? $data[12] : ''; $modelModels->bestPrice = isset($data[13]) ? $data[13] : ''; if ($modelModels->save(false)) { $id_model = $modelModels->id; $j = 14; foreach ($modelCharacteristics as $k => $item) { if ($item->parent_id != 0 && isset($data[$j])) { $modelCharacteristicValue->id = false; $modelCharacteristicValue->isNewRecord = true; $value = iconv('Windows-1251', 'UTF-8', $data[$j]); $modelCharacteristicValue->value = $value; $modelCharacteristicValue->characteristic_id = $item->id; $modelCharacteristicValue->model_id = $id_model; if ($modelCharacteristicValue->save(false)) { $j++; } } if ($j == 44) { break; } } } } fclose($handle); unlink($path_csv); } if (isset($sql[0])) { $sql_implode = implode(', ', $sql); $sql_query_models = 'INSERT INTO cms_temp_models (vendor_code, model_name, price, old_price, brand_id, photo, photo_other, quantity, description, accessories, top, promotion, novelty, bestPrice ) VALUES ' . $sql_implode; $connection = Yii::app()->db; $connection->createCommand($sql_query_models)->execute(); $sql_query_update = 'update cms_models u inner join cms_temp_models s on u.vendor_code = s.vendor_code set u.model_name = s.model_name, u.price = s.price, u.old_price = s.old_price, u.brand_id = s.brand_id, u.photo = s.photo, u.photo_other = s.photo_other, u.quantity = s.quantity, u.description = s.description, u.accessories = s.accessories, u.top = s.top, u.promotion = s.promotion, u.novelty = s.novelty, u.bestPrice = s.bestPrice'; $connection->createCommand($sql_query_update)->execute(); $connection->createCommand()->truncateTable('cms_temp_models'); if (isset($sql_char)) { $sql_implode_char = implode(', ', $sql_char); $sql_query_models = 'INSERT INTO cms_temp_characteristicValue (value, characteristic_id, model_id) VALUES ' . $sql_implode_char; $connection = Yii::app()->db; $connection->createCommand($sql_query_models)->execute(); $sql_query_update_char = 'UPDATE cms_characteristicValue u INNER JOIN cms_temp_characteristicValue s ON (u.characteristic_id = s.characteristic_id) AND (u.model_id = s.model_id) SET u.value = s.value'; $connection->createCommand($sql_query_update_char)->execute(); $connection->createCommand()->truncateTable('cms_temp_characteristicValue'); } } // сообщение о завершении загрузки Yii::app()->user->setFlash('status', 'Файл загружен, данные добавлены!'); } } } if ($id == 3) { if (isset($_POST['CsvUpload']['photo_img'])) { if ($files = CUploadedFile::getInstances($models, 'photo_img')) { $array = array(); foreach ($files as $img) { $filename = $img->name; $img->saveAs('upload/images' . '/' . $filename); } } } if (isset($_POST['yt0'])) { $brand = ModelCategory::model()->findAll('category_id = :id', array(':id' => $id)); $arr = array(); foreach ($brand as $item) { $arr[] = $item->brand_id; } $criteria = new CDbCriteria(); $criteria->addInCondition('brand_id', $arr); $model = Models::model()->findAll($criteria); foreach ($model as $item) { $array_model_id[] = $item->id; } if (isset($array_model_id[0])) { $criteria_model_id = new CDbCriteria(); $criteria_model_id->addInCondition('model_id', $array_model_id); $characteristics = CharacteristicValue::model()->findAll($criteria_model_id); $file_name = 'export.csv'; // название файла $file = fopen($file_name, "w"); // открываем файл для записи, если его нет, то создаем его в текущей папке, где расположен скрипт $csv_file = array('Артикул', 'Название бренда', 'Название модели', 'Цена', 'Старая цена', 'Главная фотография', 'Другие фотографии', 'Количество', 'Описание', 'Сопутствующие товары', 'Топ продаж', 'Акция', 'Новинка', 'Лучшая цена', 'Тип', 'Операционная система', 'Материал корпуса', 'Цвет', 'Диагональ дисплея', 'Покрытие экрана', 'Разрешение дисплея', 'Процессор', 'Тип процессора', 'Количество ядер', 'Тип графическго адаптера', 'Объем видеокарты', 'Тип видеокарты', 'Объем оперативной памяти', 'Тип оперативной памяти', 'Объем дисков HDD', 'Объем дисков SSD', 'Оптический привод', 'Веб-камера', 'Микрофон', 'Встроенные динамики', 'WiFi', 'Bluetooth', 'Сетевой адаптер Ethernet', 'USB 2.0', 'USB 3.0', 'VGA', 'HDMI', 'Аудиоразъем', 'Разъем для микрофона', 'Емкость аккумулятора', 'Размеры и вес', 'Комплектация', 'Гарантийный срок', 'Возврат и обмен товара', 'Дополнительно'); $csv_file = explode("^", iconv('UTF-8', 'Windows-1251', implode("^", $csv_file))); fputcsv($file, $csv_file, ";"); // записываем в файл заголовки foreach ($model as $item) { $csv_file = array(trim($item->vendor_code), trim($item->brandModel->brand), trim($item->model_name), trim($item->price), trim($item->old_price), trim($item->photo), is_array(json_decode($item->photo_other)) ? implode(', ', json_decode($item->photo_other)) : json_decode($item->photo_other), trim($item->quantity), trim($item->description), is_array(json_decode($item->accessories)) ? implode(', ', json_decode($item->accessories)) : $item->accessories, trim($item->top), trim($item->promotion), trim($item->novelty), trim($item->bestPrice)); foreach ($characteristics as $characteristic) { if ($item->id == $characteristic->model_id) { if (isset($characteristic->value)) { array_push($csv_file, $characteristic->value); } else { array_push($csv_file, ""); } } } $csv_file = explode("^", iconv('UTF-8', 'Windows-1251', implode("^", $csv_file))); fputcsv($file, $csv_file, ";"); // записываем в файл строки } fclose($file); // закрываем файл // задаем заголовки. то есть задаем всплывающее окошко, которое позволяет нам сохранить файл. header('Content-type: application/csv'); // указываем, что это csv документ header("Content-Disposition: attachment; filename=" . $file_name); // указываем файл, с которым будем работать readfile($file_name); // считываем файл unlink($file_name); // удаляем файл. то есть когда вы сохраните файл на локальном компе, то после он удалится с сервера Yii::app()->end(); } else { Yii::app()->user->setFlash('status', 'База пустая!'); } } // загрузка из файла if (isset($_POST['CsvUpload'])) { $brand = ModelCategory::model()->findAll('category_id = :id', array(':id' => $id)); $arr = array(); foreach ($brand as $item) { $arr[] = $item->brand_id; } $criteria = new CDbCriteria(); $criteria->addInCondition('id', $arr); $model = Brand::model()->findAll($criteria); // получаем данные из формы if ($file = CUploadedFile::getInstance($models, 'csv')) { $extension = strtolower($file->extensionName); $filename = 'import_csv'; $basename = $filename . '.' . $extension; $file->saveAs('upload/csv' . '/' . $basename); $path_csv = Yii::app()->request->baseUrl . 'upload/csv/' . $basename; if (($handle = fopen($path_csv, "r")) !== false) { $modelCharacteristicValue = new CharacteristicValue(); $modelCharacteristics = Characteristics::model()->findAll('category_id = :id', array(':id' => $id)); $modelModelsOld = Models::model()->findAll(); $counter = 0; while (($data = fgetcsv($handle, 5000, ";")) !== false) { $brand_tel = iconv('Windows-1251', 'UTF-8', $data[1]); $counter++; if ($counter == 1) { continue; } // если есть такой бренд, то продолжаем $modelModels = new Models(); $i = 0; foreach ($model as $item) { if (trim(strtolower($item->brand)) == trim(strtolower($brand_tel))) { $i = 1; $modelModels->brand_id = $item->id; $brand_id_update = $item->id; } } // если бренда нет, идем на следующую итерацию if ($i == 0) { continue; } $reset_while = 0; foreach ($modelModelsOld as $itemid) { $vendor = iconv('Windows-1251', 'UTF-8', isset($data[0]) ? $data[0] : ''); //если запись уже есть в базе, обновляем if ($itemid->vendor_code == $vendor) { $description = iconv('Windows-1251', 'UTF-8', isset($data[8]) ? $data[8] : ''); $cena = str_replace(",", '.', isset($data[3]) ? $data[3] : ''); $cena = preg_replace("/[^x\\d|*\\.]/", "", $cena); $old_cena = str_replace(",", '.', isset($data[4]) ? $data[4] : ''); $old_cena = preg_replace("/[^x\\d|*\\.]/", "", $old_cena); //$accessories = iconv('Windows-1251', 'UTF-8', $data[9]); $model_name = iconv('Windows-1251', 'UTF-8', isset($data[2]) ? $data[2] : ''); $photo_other = explode(',', mb_convert_encoding(isset($data[6]) ? $data[6] : '', 'UTF-8')); $photo_other_arr = array(); foreach ($photo_other as $item) { $photo_other_arr[] = trim($item); } $acces = explode(',', mb_convert_encoding(isset($data[9]) ? $data[9] : '', 'UTF-8')); $accessories = array(); foreach ($acces as $item) { $accessories[] = trim($item); } $sql[] = '(\'' . $vendor . '\', \'' . $model_name . '\', \'"' . $cena . '\', \'' . $old_cena . '\', \'' . $brand_id_update . '\', \'' . (isset($data[5]) ? $data[5] : '') . '\', \'' . ($photo_other_arr[0] != '' ? json_encode($photo_other_arr) : '') . '\', \'' . (isset($data[7]) ? $data[7] : '') . '\', \'' . $description . '\', \'' . json_encode($accessories) . '\', \'' . (isset($data[10]) ? $data[10] : '') . '\', \'' . (isset($data[11]) ? $data[11] : '') . '\', \'' . (isset($data[12]) ? $data[12] : '') . '\', \'' . (isset($data[13]) ? $data[13] : '') . '\' )'; $id_update = $itemid->id; $j = 14; foreach ($modelCharacteristics as $k => $items) { if ($items->parent_id != 0 && isset($data[$j])) { $value = $data[$j] != '' ? iconv('Windows-1251', 'UTF-8', $data[$j]) : ''; $sql_char[] = '(\'' . trim($value) . '\', \'' . $items->id . '\', \'' . $id_update . '\')'; $j++; } if ($j == 50) { break; } } $reset_while = 1; } } // если обновили, пропускаем итерацию if ($reset_while == 1) { continue; } // если нет, записываем новые данные $vendor = iconv('Windows-1251', 'UTF-8', isset($data[0]) ? $data[0] : ''); $model_name = iconv('Windows-1251', 'UTF-8', isset($data[2]) ? $data[2] : ''); $modelModels->vendor_code = $vendor; $modelModels->model_name = $model_name; $cena = str_replace(",", '.', isset($data[3]) ? $data[3] : ''); $cena = preg_replace("/[^x\\d|*\\.]/", "", $cena); $old_cena = str_replace(",", '.', isset($data[4]) ? $data[4] : ''); $old_cena = preg_replace("/[^x\\d|*\\.]/", "", $old_cena); $photo_other = explode(',', mb_convert_encoding(isset($data[6]) ? $data[6] : '', 'UTF-8')); $photo_other_arr = array(); foreach ($photo_other as $item) { $photo_other_arr[] = trim($item); } $acces = explode(',', mb_convert_encoding(isset($data[9]) ? $data[9] : '', 'UTF-8')); $accessories = array(); foreach ($acces as $item) { $accessories[] = trim($item); } $modelModels->price = $cena; $modelModels->old_price = $old_cena; $modelModels->photo = isset($data[5]) ? $data[5] : ''; $modelModels->photo_other = $photo_other_arr[0] != '' ? json_encode($photo_other_arr) : ''; $modelModels->quantity = isset($data[7]) ? $data[7] : ''; $description = iconv('Windows-1251', 'UTF-8', isset($data[8]) ? $data[8] : ''); $modelModels->description = $description; $modelModels->accessories = json_encode($accessories); $modelModels->top = isset($data[10]) ? $data[10] : ''; $modelModels->promotion = isset($data[11]) ? $data[11] : ''; $modelModels->novelty = isset($data[12]) ? $data[12] : ''; $modelModels->bestPrice = isset($data[13]) ? $data[13] : ''; if ($modelModels->save(false)) { $id_model = $modelModels->id; $j = 14; foreach ($modelCharacteristics as $k => $item) { if ($item->parent_id != 0 && isset($data[$j])) { $modelCharacteristicValue->id = false; $modelCharacteristicValue->isNewRecord = true; $value = $data[$j] ? iconv('Windows-1251', 'UTF-8', $data[$j]) : '-'; $modelCharacteristicValue->value = $value; $modelCharacteristicValue->characteristic_id = $item->id; $modelCharacteristicValue->model_id = $id_model; if ($modelCharacteristicValue->save(false)) { $j++; } } if ($j == 51) { break; } } } } fclose($handle); unlink($path_csv); } if (isset($sql[0])) { $sql_implode = implode(', ', $sql); $sql_query_models = 'INSERT INTO cms_temp_models (vendor_code, model_name, price, old_price, brand_id, photo, photo_other, quantity, description, accessories, top, promotion, novelty, bestPrice ) VALUES ' . $sql_implode; $connection = Yii::app()->db; $connection->createCommand($sql_query_models)->execute(); $sql_query_update = 'update cms_models u inner join cms_temp_models s on u.vendor_code = s.vendor_code set u.model_name = s.model_name, u.price = s.price, u.old_price = s.old_price, u.brand_id = s.brand_id, u.photo = s.photo, u.photo_other = s.photo_other, u.quantity = s.quantity, u.description = s.description, u.accessories = s.accessories, u.top = s.top, u.promotion = s.promotion, u.novelty = s.novelty, u.bestPrice = s.bestPrice'; $connection->createCommand($sql_query_update)->execute(); $connection->createCommand()->truncateTable('cms_temp_models'); if (isset($sql_char)) { $sql_implode_char = implode(', ', $sql_char); $sql_query_models = 'INSERT INTO cms_temp_characteristicValue (value, characteristic_id, model_id) VALUES ' . $sql_implode_char; $connection = Yii::app()->db; $connection->createCommand($sql_query_models)->execute(); $sql_query_update_char = 'UPDATE cms_characteristicValue u INNER JOIN cms_temp_characteristicValue s ON (u.characteristic_id = s.characteristic_id) AND (u.model_id = s.model_id) SET u.value = s.value'; $connection->createCommand($sql_query_update_char)->execute(); $connection->createCommand()->truncateTable('cms_temp_characteristicValue'); } } // сообщение о завершении загрузки Yii::app()->user->setFlash('status', 'Файл загружен, данные добавлены!'); } } } if (isset($_POST['del'])) { $brand = ModelCategory::model()->findAll('category_id = :id', array(':id' => $id)); $arr = array(); foreach ($brand as $item) { $arr[] = $item->brand_id; } $criteria = new CDbCriteria(); $criteria->addInCondition('brand_id', $arr); $model = Models::model()->findAll($criteria); $del = Models::model()->deleteAll($criteria); $arr_val = array(); foreach ($model as $item) { $arr_val[] = $item->id; } $criteria_val = new CDbCriteria(); $criteria_val->addInCondition('model_id', $arr_val); $val = CharacteristicValue::model()->deleteAll($criteria_val); Yii::app()->user->setFlash('status', 'Данные удалены!'); $this->refresh(); } $this->render('index', array('id' => $id, 'models' => $models)); }