dedecms文章分页后的随机推荐文章在每个分页都相同改为不相同随机的方法

问题背景:

dedecms 发布文章,特别是图片的时候一般会分很多页,模板里面可能设置了随机推荐的其他图片,但是同一个文章的每个分页的这个随机推荐是一样的,如何改为不同?

问题解决:

模板里面一般是这类随机

{dede:arclist row=10 orderby=rand}
<li><a href=”[field:arcurl/]”>[field:title/]</a></li>
{/dede:arclist}

造成每个页面的随机都一样的原因就是 这个模板片段是只在处理一个文章的时候分析一次模板,如果每个分页再生成前再次分析下模板,理论上就再次扫描了一次,从而再次随机运行了一次代码。

方案:

include\arc.archives.class.php 的  MakeHtml 函数

在大概 410行,增加   $this->ParseTempletsFirst();

 

dedecms的GetPageTitlesST函数

include\arc.archives.class.php 里面 GetPageTitlesST 函数,在页面调用是

{dede:pagetitle style=’XXXX’ /}

那么就可以根据style来修改GetPageTitlesST 函数,使之能适用多种情况,比如

{dede:pagetitle style=’subtile_title’ /}

就需要走增加

if($styleName==’subtile_title’)
{
return  $this->SplitTitles[$pageNo-1] . “_” . $this->Fields[“title”] ;
}else{
return $this->Fields[“title”] ;
}

发文章的时候用

#p#第几页的标题#e#

 

 

PS:

可能UTF8的,这个函数有点问题,

最后的 #没能去掉,可以考虑用 sub_str($string,0,-1)消掉