/** * Create or update new category * @param boolean $new */ public function actionUpdate($new = false) { if ($new === true) { $model = new PageCategory(); } else { $model = PageCategory::model()->language($_GET)->findByPk($_GET['id']); } if (!$model) { throw new CHttpException(400, 'Bad request.'); } $form = new STabbedForm('application.modules.pages.views.admin.category.categoryForm', $model); if (Yii::app()->request->isPostRequest) { $model->attributes = $_POST['PageCategory']; if ($model->isNewRecord) { $model->created = date('Y-m-d H:i:s'); } $model->updated = date('Y-m-d H:i:s'); if ($model->validate()) { $model->save(); $tree = new PageCategoryTree(); $tree->rebuildFullUrl(); $this->setFlashMessage(Yii::t('PagesModule.core', 'Изменения успешно сохранены')); if (isset($_POST['REDIRECT'])) { $this->smartRedirect($model); } else { $this->redirect(array('index')); } } } $this->render('update', array('model' => $model, 'form' => $form)); }
/** * Get all categories list to display in dropdown. * @param type $excludeId Exclude self model * @return array id=>name */ public static function keyValueList() { $models = PageCategory::model()->findAll(); $tree = new PageCategoryTree($models); return CHtml::listData($tree->buildTree(), 'id', 'nameWithLevel'); }