【phpcms-v9】专题模块后台控制器special.php文件分析-添加专题
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-23 15:05:33 浏览: 评论:0
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) { //开源软件:phpfensi.com
- //格式如下:vote|投票id|投票标题
- $data['voteid'] = 'vote|'.$r['subjectid'].'|'.$r['subject'];
- }
- }
- }
- return $data;
- }
- }
Tags: phpcms专题模块 special php文件
相关文章
- ·【phpcms-v9】专题模块前端控制器index.php文件分析(2014-10-23)
- ·PHPCMS源文件研究记录之框架主类库mysql.class.php文件(2014-10-20)
- ·【phpcms-v9】index.php文件分析-前台首页模板文件的解析过程(2014-10-22)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)