关于dedecms5.7图集点击图片翻页BUG跪求解决方法
dedecms吧
全部回复
仅看楼主
level 1
最近我用dedecms5.7的图集做站,发现许多大型门户网站的图片都有点击图片翻页和最后一页时自动跳倒转到下一图集,于是我在网上找到了代码,可是我发现存在着一个BUG,我们都知道新添加的图集会在最前面显示,我按网上的方法修改后发现,新添加的图集的图片到最后一张时不能自动跳转到下一图集了,发现这段代码是倒续的,从以前添加的图集点击图片一直能翻页到最新的图集,最新添加的图集不能点击图片向后翻页到以前的图集,我给出网上的代码,哪位大哥帮看看,小弟感激不尽!
网上流传的做发是这样的,我给出代码
dedecms5.7sp1
一、打开 include/arc.archives.class.php ,搜索“ 解析模板,对内容里的变动进行赋值 ”,找到以下代码:
/**
* 解析模板,对内容里的变动进行赋值
*
* @access public
* @param string $pageNo 页码数
* @param string $ismake 是否生成
* @return string
*/
function ClickPicNext($ismake=1,$aid,&$body)
{
global $cfg_rewrite;
if($this->NowPage!=$this->TotalPage)
{
$lPage=$this->NowPage+1;
if($ismake=0)
{
$body=preg_replace("/<(img|IMG)(.*)(src|SRC)=[\"|'| ]{0,}((.*)>)/isU","点击图片,进入下一页<br/><a href='".$this->NameFirst."_".$lPage.".".$this->ShortName."'>"."\${0}"."</a>",$body);
}
else
{
//静态页
$PageList="<a href='".$this->NameFirst."_".$lPage.".".$this->ShortName."'>"."\${0}"."</a>";
//动态页
//$PageList="<a href='view.php?aid=$aid&pageno=$lPage'>"."\${0}"."</a>";
if($cfg_rewrite == 'Y')
{
$PageList = str_replace(".php?aid=","-",$PageList);
$PageList = preg_replace("/&pageno=(\d+)/i",'-\\1.html',$PageList);
}
$body=preg_replace("/<(img|IMG)(.*)(src|SRC)=[\"|'| ]{0,}((.*)>)/isU",$PageList,$body);
}
}
else
{
$body=preg_replace("/<(img|IMG)(.*)(src|SRC)=[\"|'| ]{0,}((.*)>)/isU",$this->GetPreNext('imgnext'),$body);
}
return $body;
}
2、查找:“$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];”,在其下方添加如下代码:
if($ClickPicNext){
$this->Fields[$this->SplitPageField]=$this->Fields[$this->SplitPageField];
}else{
$this->Fields[$this->SplitPageField]=$this->ClickPicNext($ismake,$this->Fields['id'],$this->Fields[$this->SplitPageField]);
}
3、查找“$this->PreNext['next'] = "下一篇:<a href='$mlink'>{$nextRow['title']}</a> ";”,在其下方添加如下代码:
$this->PreNext['imgnext'] ="<a href='$mlink'>"."\${0}"."</a>";
4、查找如下代码:
else if($gtype=='next')
{
$rs = $this->PreNext['next'];
}
然后在其下面添加如下代码:
else if($gtype=='imgnext')
{
$rs = $this->PreNext['imgnext'];
}

2012年06月19日 03点06分 1
level 6
同问!
2012年08月14日 06点08分 2
1