把url后面引号内的内容和你自己的伪静态规则做相匹配的修改就可以了,原因好像是这个没有经过模板输出,所以没有自动替换伪静态。
方法一(不推荐):
搜索:$grids[‘slide’] \source\module\forum\forum_index.php 约204行 $grids[‘slide’][$ithread[‘tid’]] = array(
‘image’ => $imageurl,
‘url’ => ‘forum.php?mod=viewthread&tid=’.$ithread[‘tid’],
‘subject’ => $ithread[‘subject’]
);
比如默认的伪静态规则这样子改:
‘url’ =>$_G[‘siteurl’]. ‘thread-‘.$ithread[‘tid’].’-1-1.html’,
方法二(推荐):
搜索:$grids[‘slide’]
template\default\forum\discuz.htm 约70行
{eval $k = 1;}
<!–{loop $grids[‘slide’] $stid $svalue}–>
slideImgs[<!–{echo $k}–>] = ‘$svalue[image]’;
slideImgLinks[<!–{echo $k}–>] = ‘{$svalue}’;
slideImgTexts[<!–{echo $k}–>] = ‘$svalue[subject]’;
{eval $k++;}
<!–{/loop}–>
修改为:
slideImgLinks[<!–{echo $k}–>] = ‘{$_G[‘siteurl’]}thread-<!–{eval echo str_replace(array(“forum.php?mod=viewthread&”,”tid=”),”,$svalue[url]);}–>-1-1.html’;
方法三(不推荐):
修改forum_slide.js中相关的js代码并替换为网站的js代码,替换为网站对应的伪静态规则,此种方式相对繁琐但安全性和对网站的性能影响较低,适合会折腾的前端coder去折腾。就不在这里给出代码了。主要方法是:在下面的window.open执行前将s.imgLinks的值进行替换。也可以在s.imgLinks = slideImgLinks;传递参数时进行替换。
s.imageLink = function () {
window.open(s.imgLinks[s.currentImg]);
};
已修改的站点案例:http://chinavr.net/forum
在discuz官方论坛的相关问题反馈:
[url=https://discuz.dismall.com/thread-3790458-1-1.html]https://discuz.dismall.com/thread-3790458-1-1.html
https://discuz.dismall.com/thread-3654200-1-1.html
- 原文链接: http://jiaminghai.cn/archives/9953
|