/** * 从配置文件中生成新闻表单 * * @param string $action 表单的url * @param string $config 配置文件的名字 * @return object 表单对象 */ static function _createFormConfig($action, $config) { $form = new Form_Admin_News('create_news', $action); $fileName = dirname(__FILE__) . DS . "{$config}"; $form->loadFromConfig(Helper_YAML::load($fileName)); $form->addValidations(News::meta()); //查询类别 $sort = NewSort::find()->order('name ASC')->getAll(); $sort = Helper_Array::toHashmap($sort, 'id', 'name'); $form['newbody']['sort_id']->items = $sort; return $form; }
/** * 从配置文件中生成新闻表单 * @param string $id 表单的id 号 * @param string $action 表单的url * @param string $config 配置文件的名字 * @return object 表单对象 */ static function _createFormConfig($id, $action, $config) { $form = new Form_Admin_News($id, $action); $fileName = dirname(__FILE__) . DS . "{$config}"; $form->loadFromConfig(Helper_YAML::load($fileName)); //验证的模型选择 if ($id == 'news') { $form->addValidations(News::meta()); } else { $form->addValidations(Articles::meta()); } //类别表的选择 if ('news' == $id) { $news = new News(); $form['sort_id']->items = $news->sorts; } else { $article = new Articles(); $form['sort_id']->items = $article->sorts; } return $form; }
/** * 发布新闻 * */ function actionCreate() { $this->_viewname = 'edit'; $form = Form_Admin_News::createForm('news', url('news/create')); if ($this->_context->isPOST() && $form->validate($_POST)) { //是否post提交及通过验证 try { $news = new News($form->values()); $user = $this->_app->currentUser(); $news['user_id'] = $user['id']; // $news['newsort']['news_count']= //更新该栏目下的新闻条数 $newSort = NewSort::meta()->find('id =?', $form['sort_id']->value)->query(); $newSort->news_count++; $newSort->save(); //保存更新 $news->save(); return $this->_redirectMessage('恭喜你发布新闻成功', '如果你不做出选择系统将自动跳转', url('news/index'), 3); } catch (QValidator_ValidateFailedException $ex) { $form->invalidate($ex); } } $this->_view['form'] = $form; }