public function actionIndex($alias = '') { $filter = array(); // Определяем, выбрана или нет категория $category = null; if (!empty($alias)) { // Если выбрана категория $category = Category::model()->published()->with(array('slides' => array('scopes' => 'published', 'order' => 'slides.sort ASC')))->findByAlias($alias); if (!$category) { throw new CHttpException(404); } $page = $category; } else { // Загружаем страницу "Галерея" Yii::import("application.modules.page.models.Page"); $page = Page::model()->with(array('slides' => array('scopes' => 'published', 'order' => 'slides.sort ASC')))->findByPath("gallery"); } // Формируем список товаров с учетом фильтрации $model = new Picture('user_search'); $model->unsetAttributes(); // Категория if (!empty($category)) { $model->category_id = $category->id; } if (isset($_GET['search'])) { $model->setAttributes(array('searchText' => $_GET['search'])); if (!empty($model->searchText)) { $filter['searchText'] = $model->searchText; } } elseif (isset($_GET['Picture'])) { $model->attributes = $_GET['Picture']; // Категория if (!empty($model->category_id)) { $filter['category_id'] = $model->category_id; } if (!empty($model->title)) { $filter['title'] = $model->title; } // Автор if (!empty($model->author_id)) { $filter['author_id'] = $model->author_id; } // Цвет if (!empty($model->color_id)) { $filter['color_id'] = $model->color_id; } } // Поиск товаров if (!$model->validate()) { $model->unsetAttributes(); } $dataProvider = $model->user_search(); // Сохраняем ссылку для возврата Yii::app()->user->setState('galleryReturnUrl', $this->_constructReturnUrl('/catalog/catalog/index')); // Сохраняем данные фильтра в сессии Yii::app()->user->setState('galleryFilter', $filter); if (Yii::app()->request->isAjaxRequest) { $this->renderPartial('_list', array('dataProvider' => $dataProvider), false, true); Yii::app()->end(); } else { // Вывод каталога $this->render('index', array('page' => $page, 'model' => $model, 'dataProvider' => $dataProvider)); } }