diy.php dede手机,织梦同时生成全站电脑端手机端静态文件

前提,把电脑端和手机端的模板都做好,注意模板命名都要一样

1、增加系统参数手机模板路径和手机文件夹路径,注意模板是和电脑端的都在templets下面,增加后再 系统》系统基本参数查看

INSERT INTO `dede_sysconfig` (`aid`,`varname`,`info`,`value`,`type`,`groupid`) VALUES ('832','cfg_sjarcdir','手机路径','3g','string','1');

INSERT INTO `dede_sysconfig` (`aid`,`varname`,`info`,`value`,`type`,`groupid`) VALUES ('832','cfg_sj_style','手机模板','sj','string','1');

2、先调试生成文章(这个比较简单)

打开include》arc.archives.class.php

大概351行吧 function MakeHtml  这个函数的结尾找到

$this->dsql->ExecuteNoneQuery("Update `dede_archives` SET ismake=1 WHERE id='".$this->ArcID."'");

return $this->GetTrueUrl($filename);

//改成

$this->dsql->ExecuteNoneQuery( "Update `dede_archives` SET ismake=1 WHERE id='" . $this->ArcID . "'" );

$returl = $this->GetTrueUrl( $filename );

$this->MakeWapHtml( $isremote );

return $returl;

意思就是再执行以下另外一个函数MakeWapHtml,然后我们在函数结束 下面增加另外一个函数MakeWapHtml

核心位置有3处,在下面函数里面有

function MakeWapHtml($isremote=0)

{

global $cfg_df_style,$cfg_arcdir,$cfg_sj_style,$cfg_sjarcdir;//核心位置这里需要增加2个系统参数下面会调用

$tempfile = $this->GetTempletFile();

$tempfile = str_replace('/' . $cfg_df_style . '/','/' . $cfg_sj_style . '/',$tempfile);//这里替换下电脑端模板的路径为增加的路劲参数

if(!file_exists($tempfile) || !is_file($tempfile))

{

}else{

global $cfg_remote_site,$fileFirst;

if($this->IsError)

{

return '';

}

$this->Fields["displaytype"] = "st";

//预编译$th

$this->dtp->LoadTemplate($tempfile);

$this->TempSource = $this->dtp->SourceString;

$this->ParAddTable();

$this->ParseTempletsFirst();

$this->Fields['senddate'] = empty($this->Fields['senddate'])? '' : $this->Fields['senddate'];

$this->Fields['title'] = empty($this->Fields['title'])? '' : $this->Fields['title'];

$this->Fields['arcrank'] = empty($this->Fields['arcrank'])? 0 : $this->Fields['arcrank'];

$this->Fields['ismake'] = empty($this->Fields['ismake'])? 0 : $this->Fields['ismake'];

$this->Fields['money'] = empty($this->Fields['money'])? 0 : $this->Fields['money'];

$this->Fields['filename'] = empty($this->Fields['filename'])? '' : $this->Fields['filename'];

//分析要创建的文件名称

$filename = GetFileNewName(

$this->ArcID,$this->Fields['typeid'],$this->Fields['senddate'],

$this->Fields['title'],$this->Fields['ismake'],$this->Fields['arcrank'],

$this->TypeLink->TypeInfos['namerule'],$this->TypeLink->TypeInfos['typedir'],$this->Fields['money'],$this->Fields['filename']

);

$filename=str_replace($cfg_arcdir .'/',$cfg_sjarcdir . $cfg_arcdir .'/',$filename);

//这里把生成文件的路劲增加一个手机端的路劲,就是上面增加的参数,注意手机端如果是m 系统参数那里就填/m,然后会自动生成和电脑端一样的路劲只是增加一个m

$filenames = explode(".", $filename);

$this->ShortName = $filenames[count($filenames)-1];

if($this->ShortName=='') $this->ShortName = 'html';

$fileFirst = preg_replace("/\.".$this->ShortName."$/i", "", $filename);

$this->Fields['namehand'] = basename($fileFirst);

$filenames = explode("/", $filename);

$this->NameFirst = preg_replace("/\.".$this->ShortName."$/i", "", $filenames[count($filenames)-1]);

if($this->NameFirst=='')

{

$this->NameFirst = $this->arcID;

}

//获得当前文档的全名

$filenameFull = GetFileUrl(

$this->ArcID,$this->Fields['typeid'],$this->Fields["senddate"],

$this->Fields["title"],$this->Fields["ismake"],

$this->Fields["arcrank"],$this->TypeLink->TypeInfos['namerule'],$this->TypeLink->TypeInfos['typedir'],$this->Fields["money"],$this->Fields['filename'],

$this->TypeLink->TypeInfos['moresite'],$this->TypeLink->TypeInfos['siteurl'],$this->TypeLink->TypeInfos['sitepath']

);

$this->Fields['arcurl'] = $this->Fields['fullname'] = $filenameFull;

//对于已设置不生成HTML的文章直接返回网址

if($this->Fields['ismake']==-1 || $this->Fields['arcrank']!=0 || $this->Fields['money']>0

|| ($this->Fields['typeid']==0 && $this->Fields['channel'] != -1) )

{

return $this->GetTrueUrl($filename);

}

//循环生成HTML文件

else

{

for($i=1;$i<=$this->TotalPage;$i++)

{

if($this->TotalPage > 1) {

$this->Fields['tmptitle'] = (empty($this->Fields['tmptitle']) ? $this->Fields['title'] : $this->Fields['tmptitle']);

if($i>1) $this->Fields['title'] = $this->Fields['tmptitle']."($i)";

}

if($i>1)

{

$TRUEfilename = $this->GetTruePath().$fileFirst."_".$i.".".$this->ShortName;

}

else

{

$TRUEfilename = $this->GetTruePath().$filename;

}

$this->ParseDMFields($i,1);

if(!is_dir(dirname($TRUEfilename))) {

mkdir(dirname($TRUEfilename), 0777, true);

}

$this->dtp->SaveTo($TRUEfilename);

//如果启用远程发布则需要进行判断

if($cfg_remote_site=='Y' && $isremote == 1)

{

//分析远程文件路径

$remotefile = str_replace(DEDEROOT, '', $TRUEfilename);

$localfile = '..'.$remotefile;

//创建远程文件夹

$remotedir = preg_replace("#[^\/]*\.html#", '', $remotefile);

$this->ftp->rmkdir($remotedir);

$this->ftp->upload($localfile, $remotefile, 'ascii');

}

}

}

$this->TempSource=='';

}

}

3、下面是首页的,首页的我找了好久,在织梦后台默认的目录里面  即dede

找到dedetag.class.php里面的

function IncludeFile函数的下面的第一行

global $cfg_df_style;

//改成

global $cfg_df_style,$cfg_sj_style;

//即增加一个系统函数下面要调用,再找到就上面的下面几行 大概在1027行

else

{

return "无法在这个位置找到: $filename";

}

//在上面增加

else if(file_exists(DEDEROOT.'/templets'.$cfg_sj_style.'/'.$filename) )

{

$okfile = DEDEROOT.'/templets'.$cfg_sj_style.'/'.$filename;

}

上面的生成后发现是调用的电脑端的头部和底部

那么我们可以先把手机端的

{dede:include filename="head.htm"/}

改成

{dede:include filename="/sj/head.htm"/}即可!

列表页

有2个文件要改arc.listview.class.php ,arc.sglistview.class.php

首先找到

function CountRecord()

//改成

function CountRecord($iswap=0)

然后再这个函数里面找到

if ( defined('DEDEMOB') )

再这个函数后面增加一个函数

if($iswap==1){

$tempfile = str_replace('/'.$GLOBALS['cfg_df_style'].'/','/'.$GLOBALS['cfg_sj_style'].'/',$tempfile);

}

//然后就是

function MakeHtml

//改成

function MakeHtml($startpage=1,$makepagesize=0)

//并且在函数结束为止改,就是再执行一次

$reurl=$murl;

$this->MakeWapHtml($startpage, $makepagesize, $isremote);

return $reurl;

function MakeWapHtml($startpage=1, $makepagesize=0, $isremote=0)

然后    function MakePartTemplets()

结尾处增加

$returl=$this->GetTrueUrl($makeUrl);

$this->MakeWapPartTemplets();

return $returl;

function MakeWapPartTemplets() 复制上面的函数

里面的模板进行替换.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值