public function actionIndex($alias = '') { Yii::app()->getModule('catalog')->getSettings(true); $alias = trim($alias); //$filter = array(); // Список категорий $categoryList = Category::model()->published()->with(array('slides' => array('scopes' => 'published', 'order' => 'slides.sort ASC'), 'eavSet' => array('with' => array('attrs' => array('scopes' => 'active', 'with' => array('activeVariants'))))))->findAll(array('order' => 't.sort ASC')); // Определяем, выбрана или нет категория if (!empty($alias)) { // Если выбран вид камня $category = Category::model()->published()->with(array('slides' => array('scopes' => 'published', 'order' => 'slides.sort ASC'), 'eavSet' => array('with' => array('attrs' => array('scopes' => 'active', 'with' => array('activeVariants'))))))->find('t.alias = :alias', array(':alias' => $alias)); if (!$category) { throw new CHttpException(404); } } else { if (!empty($categoryList)) { $category = $categoryList[0]; } else { throw new CHttpException(404); } } // Список товаров $model = new Product(); $model->unsetAttributes(); $model->attachEavSet($category->eav_set_id); $model->category_id = $category->id; $model->setOrder(Yii::app()->getRequest()->getParam('sort')); if (isset($_GET['Product'])) { $model->attributes = $_GET['Product']; $model->isSearch = true; } $dataProvider = $model->user_search(); Yii::app()->user->setState('activeProductsList', CJSON::encode($model->getProductsTotalList(true))); // Сохраняем ссылку для возврата Yii::app()->user->setState('productsCatalogReturnUrl', $this->_constructReturnUrl('catalog/catalog/index')); // Сохраняем данные фильтра в сессии //Yii::app()->user->setState('productCatalogFilter', $filter); if (Yii::app()->request->isAjaxRequest) { $this->renderPartial('_catalog', array('category' => $category, 'model' => $model, 'dataProvider' => $dataProvider, 'sizerVariants' => $sizerVariants), false, true); Yii::app()->end(); } else { // Вывод каталога $this->render('index', array('category' => $category, 'model' => $model, 'dataProvider' => $dataProvider, 'categoryList' => $categoryList, 'sizerVariants' => $sizerVariants)); } }