コード例 #1
0
 public function loadModel($id)
 {
     if (($model = InteriorCategory::model()->findByPk($id)) === null) {
         throw new CHttpException(404, 'Страница не найдена');
     }
     return $model;
 }
コード例 #2
0
 public function getCategoryList()
 {
     return CHtml::listData(InteriorCategory::model()->findAll(), 'id', 'title');
 }
コード例 #3
0
 public function actionIndex($alias = '')
 {
     $filter = array();
     // Список категорий
     $categoryList = InteriorCategory::model()->published()->findAll(array('order' => 't.sort ASC'));
     // Определяем, выбрана или нет категория
     $category = null;
     if (!empty($alias)) {
         // Если выбрана категория
         $category = InteriorCategory::model()->published()->with(array('slides' => array('scopes' => 'published', 'order' => 'slides.sort ASC')))->find('t.alias = :alias', array(':alias' => $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("interiors");
     }
     // Формируем список товаров с учетом фильтрации
     $model = new InteriorItem('user_search');
     $model->unsetAttributes();
     // Категория
     if (!empty($category)) {
         $model->category_id = $category->id;
     }
     if (isset($_GET['InteriorItem'])) {
         $model->attributes = $_GET['InteriorItem'];
         // Категория
         if (!empty($model->category_id)) {
             $filter['category_id'] = $model->category_id;
         }
         // Название
         if ($model->title != '') {
             $filter['title'] = $model->title;
         }
         // Название камня
         /*
                     if($model->stone_title != '')
                     {
            $filter['stone_title'] = $model->stone_title;
                     }   
         * 
         */
         // Фильтрация по камню
         if ($model->stone_id != '') {
             $filter['stone_id'] = $model->stone_id;
         }
         // Цвет
         if (!empty($model->color_id)) {
             $filter['color_id'] = $model->color_id;
         }
         // ID
         if (!empty($model->id)) {
             $filter['id'] = $model->id;
         }
     }
     // Поиск товаров
     $dataProvider = $model->user_search();
     // Сохраняем ссылку для возврата
     Yii::app()->user->setState('interiorCatalogReturnUrl', $this->_constructReturnUrl('/interior/catalog/index'));
     // Сохраняем данные фильтра в сессии
     Yii::app()->user->setState('interiorCatalogFilter', $filter);
     if (Yii::app()->request->isAjaxRequest) {
         // Обновление списка для бесконечной загрузки элементов
         if (isset($_GET['showMore'])) {
             $this->renderPartial('_list_ajax', array('dataProvider' => $dataProvider, 'pageNumber' => (int) Yii::app()->request->getParam('page', 1)));
         } else {
             $this->renderPartial('_list', array('dataProvider' => $dataProvider), false, true);
         }
         Yii::app()->end();
     } else {
         // Вывод каталога
         $this->render('index', array('page' => $page, 'model' => $model, 'dataProvider' => $dataProvider, 'categoryList' => $categoryList));
     }
 }