我公司接到了一个做手机站的小项目,雇主说和原来网络公司关系处的不好,就把手机站的项目给到了我们,雇主给的信息明显就是phpcms,雇主的要求就是pc站不要动,最简单的办法和最快的时间来实现手机站点的建立。
好在PHPCMS自带了WAP模块,可以直接使用,不过WAP模块毕竟只是一个暂时性解决方案,很多细节官方都没有来得及完善,比如系统中单页模型在PHPCMS的WAP模块中就无法绑定,雇主的网站中有5个栏目均为单页,而且还要经常修改,经过我们技术人员的分析,了解了PHPCMS系统WAP模块的情况后,给出了以下的解决方法,和爱好phpcms这款软件的朋友一起分享。
1、修改phpcms\modules\wap\index.php,添加 function page()函数:
//单页面 function page() { $WAP = $this->wap; $TYPE = $this->types; $WAP_SETTING = string2array($WAP['setting']); $GLOBALS['siteid'] = max($this->siteid,1); //$typeid = intval($_GET['typeid']); $catid = intval($_GET['catid']); if(!$catid) exit(L('parameter_error')); //$catid = $this->types[$typeid]['cat']; $this->page_db = pc_base::load_model('page_model'); $data = $this->page_db->get_one(array('catid'=>$catid)); if(!$data) showmessage(L('info_does_not_exists'),'blank'); extract($data); include template('wap', 'page'); }
上面代码中的L('info_does_not_exists')也要修改,在phpcms\languages\zh-cn\wap.lang.php的最底部增加即可:
$LANG['info_does_not_exists'] = '您要查看的信息不存在或者还未通过审批!';
二、后端代码
(1)修改代码让后台添加栏目时候显示单页面
打开phpcms\modules\wap\wap_admin.php 首页现在11行之后增加代码:
$CATEGORYS = getcache('category_content_'.$siteid,'commons');//pc栏目缓存
找到
$CATEGORYS = getcache('category_content_'.$siteid,'commons');//pc栏目缓存
替换为
$r['select_cat'] = form::select_category('',$r[cat],'name="cat['.$r['typeid'].']"',L('wap_type_bound'),0,-1,0,$siteid);
找到
echo form::select_category('',0,'name="addcat['.$parentid.'][]"',L('wap_type_bound'),0,0,0,$siteid);
替换为
echo form::select_category('',0,'name="addcat['.$parentid.'][]"',L('wap_type_bound'),0,-1,0,$siteid);
(2)找到文件phpcms\modules\wap\templates\type_manage.tpl.php的大概第9行
" class="button" name="dosubmit">修改为
" class="button" name="dosubmit">返回列表
(其实以上两步修改就是把里边的0,0,0 改成0,-1,0),form::select_category函数中间的0代码只调用栏目类型为0的栏目,既只调用栏目,-1代表全部栏目,1代表单页面
(3)修改全局函数,找到:phpcms\modules\wap\functions\global.func.php,
找到:/** * 解析分类url路径 */ function list_url($typeid) { return WAP_SITEURL."&a=lists&typeid=$typeid"; }/** * 解析分类url路径 */ function list_url($typeid) { $siteid = $GLOBALS['siteid']; $types = getcache('wap_type','wap'); $CATEGORYS = getcache('category_content_'.$siteid,'commons'); foreach ($types as $type) { if($type['typeid']== $typeid) { $cattype = intval($type['type']);//栏目类型 $catid = intval($type['cat']);//对应catid break; } } if($cattype){ return WAP_SITEURL."&c=index&a=page&catid=$catid"; }else{ return WAP_SITEURL."&a=lists&typeid=$typeid"; } }找到
/** * 解析内容url路径 * $catid 栏目id * $typeid wap分类id * $id 文章id */ function show_url($catid, $id, $typeid='') { global $WAP; if($typeid=='') { $types = getcache('wap_type','wap'); foreach ($types as $type) { if($type['cat']==$catid) { $typeid = $type['typeid']; break; } } } return WAP_SITEURL."&a=show&catid=$catid&typeid=$typeid&id=$id"; }替换成
/** * 解析内容url路径 * $catid 栏目id * $typeid wap分类id * $id 文章id */ function show_url($catid, $id, $typeid='') { global $WAP; if($typeid=='') { $types = getcache('wap_type','wap'); foreach ($types as $k => $type) { if($type['cat']==$catid) { //$typeid = $type['typeid']; $cattype = intval($type['type']); break; } } } if($cattype){ return WAP_SITEURL."&c=index&a=page&catid=$catid"; }else{ return WAP_SITEURL."&a=show&catid=$catid&typeid=$typeid&id=$id"; } }完成以上工作,进入PHPCMS后台,更新下换成,在绑定栏目的时候就可以绑定单页模型了。记住每一步都需要操作,不然是没有效果的!
相关文章热门文章