1.添加专题:
- /**
- * 添加专题
- */
- public function add() {
- //添加专题
- if (isset($_POST['dosubmit']) && !emptyempty($_POST['dosubmit'])) {
- //添加专题页面表单数组
- $special = $this->check($_POST['special']);
- //插入专题,返回专题id
- $id = $this->db->insert($special, true);
- //如果插入专题成功
- if ($id) {
- $this->special_api->_update_type($id, $_POST['type']);
- if ($special['siteid']>1) {
- $site = pc_base::load_app_class('sites', 'admin');
- $site_info = $site->get_by_id($special['siteid']);
- if ($special['ishtml']) {
- $url = $site_info['domain'].'special/'.$special['filename'].'/';
- } else {
- $url = $site_info['domain'].'index.php?m=special&c=index&id='.$id;
- }
- } else {
- //专题的url路径,$special['filename']-代表专题生成的目录
- $url = $special['ishtml'] ? APP_PATH.substr(pc_base::load_config('system', 'html_root'), 1).'/special/'.$special['filename'].'/' : APP_PATH.'index.php?m=special&c=index&id='.$id;
- }
- //更新专题的url
- $this->db->update(array('url'=>$url), array('id'=>$id, 'siteid'=>$this->get_siteid()));
- //是否生成静态,调用生成静态类
- if ($special['ishtml']) {
- $html = pc_base::load_app_class('html', 'special'); //专用于生成静态的类库文件
- //生成专题首页:参数1-专题id 参数2-每页的个数 参数3-最大更新个数 成功后返回生成文件的大小
- $html->_index($id, 20, 5);
- }
- //更新附件状态
- if(pc_base::load_config('system','attachment_stat')) {
- $this->attachment_db = pc_base::load_model('attachment_model');//附件表
- //更新附件表
- $this->attachment_db->api_update(array($special['thumb'], $special['banner']),'special-'.$id, 1);
- }
- //专题缓存,缓存所有开放中的专题到缓存目录
- $this->special_cache();
- }
- //添加专题成功的提示信息
- showmessage(L('add_special_success'), HTTP_REFERER);
- } else {
- //获取站点模板信息
- pc_base::load_app_func('global', 'admin');
- //站点id
- $siteid = $this->get_siteid();
- $template_list = template_list($siteid, 0);
- $site = pc_base::load_app_class('sites','admin');
- $info = $site->get_by_id($siteid);
- foreach ($template_list as $k=>$v) {
- $template_list[$v['dirname']] = $v['name'] ? $v['name'] : $v['dirname'];
- unset($template_list[$k]);
- }
- include $this->admin_tpl('special_add');
- }
- }
2.对从添加专题页面提交过来的表单数据进行验证:
- /**
- * 表单验证
- * @param array $data 表单传递的值
- * @param string $a add/edit添加操作时,自动加上默认值
- */
- private function check($data, $a = 'add') {
- // 专题名称不能为空
- if(!$data['title']) showmessage(L('title_cannot_empty'), HTTP_REFERER);
- //专题横幅不能为空
- if(!$data['banner']) showmessage(L('banner_no_empty'), HTTP_REFERER);
- //专题缩略图不能为空
- if(!$data['thumb']) showmessage(L('thumb_no_empty'), HTTP_REFERER);
- //一般为空
- if(is_array($data['catids']) && !emptyempty($data['catids'])) {
- $data['catids'] = ','.implode(',', $data['catids']).',';
- }
- if($a=='add') {
- //专题首页模板
- if(!$data['index_template']) $data['index_template'] = 'index';
- //站点
- $data['siteid'] = $this->get_siteid();
- //创建时间
- $data['createtime'] = SYS_TIME;
- //用户名
- $data['username'] = param::get_cookie('admin_username');
- //用户id
- $data['userid'] = $_SESSION['userid'];
- }
- //投票标题
- if ($data['voteid']) {
- //选择已有投票
- if (strpos($data['voteid'], '|')===false) {
- $vote_db = pc_base::load_model('vote_subject_model');//属于专题的投票表
- //根据投票标题获取当前专题的投票记录
- $r = $vote_db->get_one(array('subject'=>$data['voteid'], 'siteid'=>$this->get_siteid()), 'subjectid, subject', 'addtime DESC');
- if ($r) { //开源软件:Vevb.com
- //格式如下:vote|投票id|投票标题
- $data['voteid'] = 'vote|'.$r['subjectid'].'|'.$r['subject'];
- }
- }
- }
- return $data;
- }
- }
新闻热点
疑难解答