PHPCMS的WAP模块如何绑定单页

我公司接到了一个做手机站的小项目,雇主说和原来网络公司关系处的不好,就把手机站的项目给到了我们,雇主给的信息明显就是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行

<td><div class="explain-col"> <?php echo L('listorder')?> <input type="text" value="0" class="input-text" name="info[listorder]" size="5">  <?php echo L('wap_type_name')?>  <input type="text" value="" class="input-text" name="info[typename]">   <?php echo L('wap_bound_type')?>   <?php echo form::select_category('category_content_'.$siteid,$parentid,'name="info[cat]"',L('wap_type_bound'),0,0,0,$siteid);?><input type="submit" value="<?php echo L('wap_toptype_add')?>" class="button" name="dosubmit">

修改为

<td><div class="explain-col"> <?php echo L('listorder')?> <input type="text" value="0" class="input-text" name="info[listorder]" size="5">  <?php echo L('wap_type_name')?>  <input type="text" value="" class="input-text" name="info[typename]">   <?php echo L('wap_bound_type')?>   <?php echo form::select_category('category_content_'.$siteid,$parentid,'name="info[cat]"',L('wap_type_bound'),0,-1,0,$siteid);?><input type="submit" value="<?php echo L('wap_toptype_add')?>" 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后台,更新下换成,在绑定栏目的时候就可以绑定单页模型了。记住每一步都需要操作,不然是没有效果的!

关键词:
返回列表

相关文章

相关案例