织梦模板DEDECMS如何生成静态手机页面的教程

织梦DEDECMS生成静态手机页面
工具/原料
dedecms
实现wap手机静态生成
一、添加后台导航栏目链接
1 打开dede/inc/inc_menu.php,在146行下面添加代码:
<m:item name='更新WAP主页' link='makehtml_homepagewap.php' rank='sys_MakeHtml' target='main' /> <m:item name='更新WAP栏目' link='makehtml_listwap.php' rank='sys_MakeHtml' target='main' />  <m:item name='更新WAP文档' link='makehtml_archiveswap.php' rank='sys_MakeHtml' target='main' />
二、更新WAP主页
1.复制文件dede/makehtml_homepage.php,重命名为makehtml_homepagewap.php2.打开makehtml_homepagewap.php,找到最后一行
include DedeInclude('templets/makehtml_homepage.htm');
修改为
include DedeInclude('templets/makehtml_homepagewap.htm');
3.复制文件dede/templets/makehtml_homepage.htm,重命名为makehtml_homepagewap.htm
4打开dede/templets/makehtml_homepagewap.htm 修改21行
<form action="makehtml_homepage.php" method="post" name="form1" target="stafrm">
修改为 
<form action="makehtml_homepagewap.php" method="post" name="form1" target="stafrm">
3
4.修改36行,指定生成WAP主页模板
<input name="templet" type="text" id="templet" value="default/wap.htm">
4
5.修改48行,指定生成WAP主页路径 
<td height="20" valign="top" bgcolor="#FFFFFF"><input name="position" type="text" id="position" value="../m/index.html" size="30"> 
6.修改69~70行,"checked"移到"不保存当前选项",系统默认是提交保存主页模板和路径数据的
<input name="saveset" type="radio" value="0" class="np" checked> 
不保存当前选项
 <input name="saveset" type="radio" class="np" value="1" >
保存当前选项
END
三、更新WAP栏目
1.复制文件dede/makehtml_list.php,重命名为makehtml_listwap.php
2.打开makehtml_listwap.php,找到最后一行
include DedeInclude('templets/makehtml_list.htm');
修改为
include DedeInclude('templets/makehtml_listwap.htm');
3.复制文件dede/templets/makehtml_list.htm 重命名为makehtml_listwap.htm ,修改第10行
<form name="form1" action="makehtml_list_action.php" method="get" target='stafrm'>
修改为
<form name="form1" action="makehtml_listwap_action.php" method="get" target='stafrm'>
4.复制dede/makehtml_list_action.php 重命名makehtml_listwap_action.php
require_once(DEDEINC."/arc.listview.class.php");
修改为
require_once(DEDEINC."/arc.listwapview.class.php");
5.复制include/arc.listview.class.php 重命名为arc.listwapview.class.php
if(!file_exists($tempfile))
        {
            $tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/list_default.htm";
        }
        if(!file_exists($tempfile)||!is_file($tempfile))
        {
            echo "模板文件不存在,无法解析文档!";
            exit();
        }
替换为
$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/list_wap.htm";
修改栏目储存目录,在658-659行后面添加代码,生成的栏目文件保存在文件夹"m"下面
$typedir = MfTypedir('/m/'.$typedir);
修改
function GetMakeFileRule($typeid,$wname,$typedir,$defaultname,$namerule2)
    {
     $typedir = MfTypedir('/m/'.$typedir);
     if($wname=='index')
代码345-371行是把list第一页复制为首页index.html的,修改354行修改复制保存路径,在$this->Fields['typedir'])前面添加'/m/'. 如下面10行所示
if($startpage==1)
{
//如果列表启用封面文件,复制这个文件第一页
if($this->TypeLink->TypeInfos['isdefault']==1
&& $this->TypeLink->TypeInfos['ispart']==0)
{
$onlyrule = $this->GetMakeFileRule($this->Fields['id'],"list",$this->Fields['typedir'],'',$this->Fields['namerule2']);
$onlyrule = str_replace("{page}","1",$onlyrule);
$list_1 = $this->GetTruePath().$onlyrule;
$murl = MfTypedir('/m/'.$this->Fields['typedir']).'/'.$this->Fields['defaultname'];
//如果启用远程发布则需要进行判断
if($cfg_remote_site=='Y'&& $isremote == 1)
{
//分析远程文件路径
$remotefile = $murl;
$localfile = '..'.$remotefile;
$remotedir = preg_replace('/[^/]*.html/', '',$remotefile);
//不相等则说明已经切换目录则可以创建镜像
$this->ftp->rmkdir($remotedir);
$this->ftp->upload($localfile, $remotefile, 'acii');
}
$indexname = $this->GetTruePath().$murl;
copy($list_1,$indexname);
}
}
return $murl;
}
四、更新WAP文档
1.复制dede/makehtml_archives.php 重命名为makehtml_archiveswap.php 修改最后一行
include DedeInclude('templets/makehtml_archives.htm');
修改为
include DedeInclude('templets/makehtml_archiveswap.htm');
2.复制dede/templets/makehtml_archives.htm 重命名为makehtml_archiveswap.htm 修改13行form提交地址
<form name="form1" action="makehtml_archives_action.php" method="get" target='stafrm'>
修改为
<form name="form1" action="makehtml_archiveswap_action.php" method="get" target='stafrm'>
3.复制dede/makehtml_archives_action.php 重命名为makehtml_archiveswap_action.php 修改13行 
require_once(DEDEINC."/arc.archives.class.php");
修改为
require_once(DEDEINC."/arc.archiveswap.class.php");
4.复制include/arc.archives.class.php 重命名为arc.archiveswap.class.php
修改文章页储存位置,476行,站点真实路径后面添加"/m/" 如下第9行所示:
    /**
     *  获得站点的真实根路径
     *
     * @access    public
     * @return    string
     */
    function GetTruePath()
    {
        $TRUEpath = $GLOBALS["cfg_basedir"].'/m/';
        return $TRUEpath;
    }
修改获得模板文件位置,屏蔽528-536行代码,后面添加调用模版路径
/*  if(!empty($this->Fields['templet']))
        {  
            $filetag = MfTemplet($this->Fields['templet']);
            if( !preg_match("#/#", $filetag) ) $filetag = $GLOBALS['cfg_df_style'].'/'.$filetag;
        }
        else
        {
            $filetag = MfTemplet($this->TypeLink->TypeInfos["temparticle"]);
        }*/
$filetag = $GLOBALS['cfg_df_style'].'/'.'article_wap.htm';
是将上面的代码注释掉
注意事项
DEDE手机目录是M