public function loadModel($id) { if (($model = ProduceCategory::model()->findByPk($id)) === null) { throw new CHttpException(404, 'Страница не найдена'); } return $model; }
echo $model->hasErrors('parent_id') ? 'error' : ''; ?> "> <div class="span3"> <?php if (!$model->isNewRecord) { ?> <?php echo $form->dropDownListRow($model, 'parent_id', array_diff_key(ProduceCategory::model()->root()->getTabList(), $model->root()->getAssocList()), array('class' => 'span7 popover-help', 'empty' => 'Выберите', 'encode' => false)); ?> <?php } else { ?> <?php echo $form->dropDownListRow($model, 'parent_id', ProduceCategory::model()->root()->getTabList(), array('class' => 'span7 popover-help', 'empty' => 'Выберите', 'encode' => false)); ?> <?php } ?> </div> </div> <div class='control-group <?php echo $model->hasErrors("title") ? "error" : ""; ?> '> <?php echo $form->textFieldRow($model, 'title', array('class' => 'span7', 'maxlength' => 250)); ?>
public function getCategoryList() { return ProduceCategory::model()->getTabList(); }
public function actionIndex($alias = '') { $filter = array(); // Список категорий $categoryList = ProduceCategory::model()->published()->root()->findAll(array('order' => 't.sort ASC')); // Определяем, выбрана или нет категория $category = null; if (!empty($alias)) { // Если выбрана категория $category = ProduceCategory::model()->published()->with(array('children' => array('scopes' => 'published', 'order' => 'children.sort ASC'), '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("produce"); } // Формируем список товаров с учетом фильтрации $model = new ProduceItem('user_search'); $model->unsetAttributes(); // Категория if (!empty($category)) { $model->category_id = $category->id; } if (isset($_GET['ProduceItem'])) { $model->attributes = $_GET['ProduceItem']; // Категория if (!empty($model->category_id)) { $filter['category_id'] = $model->category_id; } elseif (!empty($category)) { $filter['category_id'] = $category->id; $model->category_id = $category->id; } // Название if ($model->title != '') { $filter['title'] = $model->title; } // Производитель if (!empty($model->color_id)) { $filter['color_id'] = $model->color_id; } } // Поиск товаров $dataProvider = $model->user_search(); // Сохраняем ссылку для возврата Yii::app()->user->setState('produceCatalogReturnUrl', $this->_constructReturnUrl('/produce/catalog/index')); // Сохраняем данные фильтра в сессии Yii::app()->user->setState('produceCatalogFilter', $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, 'sizerVariants' => $sizerVariants)); } }