找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2319|回复: 0

[分享] dedecms织梦系统生成wap手机版静态页完整版

[复制链接]
发表于 2018-7-20 06:56:28 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
打开include目录下的common.inc.php,在26行加入代码:
define('DEDEWAPPATH','/wap');//生成手机版静态页目录
define('DEDEWAPTEMPLATESPATH','/wap/');//手机版模板目录templets

首先创建手机版的文章模板,这里自己创建,跟其他模板一样,不过保存路径/templets/wap/article_article.htm

21414963M-1.webp





























首先找到include目录下的arc.archives.class.php,修改文件前最好备份一下,找到函数function MakeHtml($isremote=0),函数最后一行代码438行修改一如下:
$returl=$this->GetTrueUrl($filename);
$this->MakeWapHtml($isremote);
        return $returl;

栏目页生成html
首先找到include目录下的arc.listview.class.php,修改文件前最好备份一下,找到143行function CountRecord
给函数加一个参数修改成  function CountRecord($iswap=0)
并在函数中229行 if(!file_exists($tempfile))前加入代码
if($iswap==1){
$tempfile = str_replace('/'.$GLOBALS['cfg_df_style'].'/',DEDEWAPTEMPLATESPATH,$tempfile);
}

2141493K8-5.webp
2141494321-6.webp
















function MakeHtml($startpage=1, $makepagesize=0, $isremote=0)
把最后面373行
  return $murl;修改成
$reurl=$murl;
$this->MakeWapHtml($startpage, $makepagesize, $isremote);
        return $reurl;

2141492291-7.webp








377行添加函数MakeWapHtml
代码如下
function MakeWapHtml($startpage=1, $makepagesize=0, $isremote=0)
    {
        global $cfg_remote_site,$cfg_arcdir;
        if(empty($startpage))
        {
            $startpage = 1;
        }
        //创建封面模板文件
        if($this->TypeLink->TypeInfos['isdefault']==-1)
        {
            echo '这个类目是动态类目!';
           // return '../plus/list.php?tid='.$this->TypeLink->TypeInfos['id'];
        }
        //单独页面
        else if($this->TypeLink->TypeInfos['ispart']>0)
        {
            $reurl = $this->MakePartTemplets();
           // return $reurl;
        }
        $this->CountRecord(1);
        //初步给固定值的标记赋值
        $this->;ParseTempletsFirst();
        $totalpage = ceil($this->TotalResult/$this->;PageSize);
        if($totalpage==0)
        {
            $totalpage = 1;
        }
        CreateDir(MfTypedir($this->Fields['typedir']));
        $murl = '';
        if($makepagesize > 0)
        {
            $endpage = $startpage+$makepagesize;
        }
        else
        {
            $endpage = ($totalpage+1);
        }
        if( $endpage >= $totalpage+1 )
        {
            $endpage = $totalpage+1;
        }
        if($endpage==1)
        {
            $endpage = 2;
        }
        for($this->;PageNo=$startpage; $this->;PageNo < $endpage; $this->;PageNo++)
        {
            $this->;ParseDMFields($this->;PageNo,1);
            $makeFile = $this->GetMakeFileRule($this->Fields['id'],'list',$this->Fields['typedir'],'',$this->Fields['namerule2']);
            $makeFile = str_replace("{page}", $this->;PageNo, $makeFile);
            $murl = $makeFile;
            if(!preg_match("/^\//", $makeFile))
            {
                $makeFile = "/".$makeFile;
            }
            $makeFile = $this->GetTruePath().$makeFile;
            $makeFile = preg_replace("/\/{1,}/", "/", $makeFile);

$makeFile=str_replace($cfg_arcdir.'/',DEDEWAPPATH . '/',$makeFile);

            $murl = $this->GetTrueUrl($murl);
if(!is_dir(dirname($makeFile))) {
    mkdir(dirname($makeFile), 0777, true);
}
            $this->dtp->SaveTo($makeFile);
            //如果启用远程发布则需要进行判断
            if($cfg_remote_site=='Y'&& $isremote == 1)
            {
                //分析远程文件路径
                $remotefile = str_replace(DEDEROOT, '',$makeFile);
                $localfile = '..'.$remotefile;
                $remotedir = preg_replace('/[^\/]*.html/', '',$remotefile);
                //不相等则说明已经切换目录则可以创建镜像
                $this->ftp->rmkdir($remotedir);
                $this->ftp->upload($localfile, $remotefile, 'acii');
            }
        }
        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;
$list_1=str_replace($cfg_arcdir.'/',DEDEWAPPATH . '/',$list_1);
                $murl = MfTypedir($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;
$indexname=str_replace($cfg_arcdir.'/',DEDEWAPPATH . '/',$indexname);
                copy($list_1,$indexname);
            }
        }
    }

2141492596-8.webp







找到580行函数 function MakePartTemplets()
修改最后面的代码
return $this->GetTrueUrl($makeUrl);修改成
$returl=$this->GetTrueUrl($makeUrl);
$this->MakeWapPartTemplets();
        return $returl;

2141495302-9.webp





584行添加函数function MakeWapPartTemplets()
代码如下
function MakeWapPartTemplets()
    {
global $cfg_df_style,$cfg_arcdir;
        $this->;PartView = new PartView($this->TypeID,false);
        $this->;PartView->SetTypeLink($this->TypeLink);
        $nmfa = 0;
        $tmpdir = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'];
        if($this->Fields['ispart']==1)
        {
            $tempfile = str_replace("{tid}",$this->TypeID,$this->Fields['tempindex']);
            $tempfile = str_replace("{cid}",$this->ChannelUnit->ChannelInfos['nid'],$tempfile);
            $tempfile = $tmpdir."/".$tempfile;
$tempfile=str_replace('/'.$GLOBALS['cfg_df_style'].'/',DEDEWAPTEMPLATESPATH,$tempfile);
            if(!file_exists($tempfile))
            {
                $tempfile = $tmpdir."/".$GLOBALS['cfg_df_style']."/index_default.htm";
            }
            $this->;PartView->SetTemplet($tempfile);
        }
        else if($this->Fields['ispart']==2)
        {
            //跳转网址
           // return $this->Fields['typedir'];
        }
        CreateDir(MfTypedir($this->Fields['typedir']));
        $makeUrl = $this->GetMakeFileRule($this->Fields['id'],"index",MfTypedir($this->Fields['typedir']),$this->Fields['defaultname'],$this->Fields['namerule2']);
        $makeUrl = preg_replace("/\/{1,}/", "/", $makeUrl);
        $makeFile = $this->GetTruePath().$makeUrl;
$makeFile=str_replace($cfg_arcdir.'/',DEDEWAPPATH . '/',$makeFile);
        if($nmfa==0)
        {
if(!is_dir(dirname($makeFile))) {
    mkdir(dirname($makeFile), 0777, true);
}
            $this->;PartView->SaveToHtml($makeFile);
            //如果启用远程发布则需要进行判断
            if($GLOBALS['cfg_remote_site']=='Y'&& $isremote == 1)
            {
                //分析远程文件路径
                $remotefile = str_replace(DEDEROOT, '',$makeFile);
                $localfile = '..'.$remotefile;
                $remotedir = preg_replace('/[^\/]*.html/', '',$remotefile);
                //不相等则说明已经切换目录则可以创建镜像
                $this->ftp->rmkdir($remotedir);
                $this->ftp->upload($localfile, $remotefile, 'acii');
            }
        }
        else
        {
            if(!file_exists($makeFile))
            {
                $this->;PartView->SaveToHtml($makeFile);
                //如果启用远程发布则需要进行判断
                if($cfg_remote_site=='Y'&& $isremote == 1)
                {
                    //分析远程文件路径
                    $remotefile = str_replace(DEDEROOT, '',$makeFile);
                    $localfile = '..'.$remotefile;
                    $remotedir = preg_replace('/[^\/]*.html/', '',$remotefile);
                    //不相等则说明已经切换目录则可以创建镜像
                    $this->ftp->rmkdir($remotedir);
                    $this->ftp->upload($localfile, $remotefile, 'acii');
              }
            }
        }
    }

2141492061-10.webp











首页生成静态页修改代码
后台目录找到:makehtml_homepage.php文件,47行:
$pv->SaveToHtml($homeFile);后面加上代码:
$pv->SetTemplet(str_replace('/'.$cfg_df_style.'/',DEDEWAPTEMPLATESPATH,$cfg_basedir.$cfg_templets_dir."/".$templet));
$pv->SaveToHtml(str_replace('/index.html',DEDEWAPPATH.'/index.html',$homeFile));

2141494005-11.webp


wap模板中文章路径或栏目路径替把pc路径替换成wap路径。
打开include目录下extend.func.php在最后面
添加函数
function GetWapUrl($pcurl){
global $cfg_arcdir;
return str_replace($cfg_arcdir.'/',DEDEWAPPATH.'/',$pcurl);
}
模板中栏目url调用
{dede:channelartlist typeid='top' }
{dede:field.typename/}
{/dede:channelartlist}

文章url调用
[url=[field:arcurl function=][field:title/][/url]

21414951C-12.webp




基本的就是这些,细节根据各自要求修改






























21414a026-0.webp
21414940E-2.webp
21414a134-3.webp
2141495b3-4.webp

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

▶专业解决各类DiscuzX疑难杂症、discuz版本升级 、网站搬家 和 云服务器销售!▶有偿服务QQ 860855665 更多精品应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2025-1-31 23:58 , Processed in 0.035076 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表