DEDECMS5.6和5.7中文档跳转网址不经过中间页跳转而直接显示跳转网址的解决办法
本解决方案是在DEDECMS5.7中测试过的,当文档设置为跳转并添加跳转网址后如何不经过中转页而直接可以用标签arcurl在底层模板中显示redirecturl跳转网址。
找到dedecms文件:/include/helpers/channelunit.helper.php中,第157行处开始修改:
修改前:
1 2 3 4 5 6 7 8 9 10 11 12 |
if($rank!=0 || $ismake==-1 || $typeid==0 || $money>0) { //动态文章 if($cfg_rewrite == 'Y') { return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html'; } else { return $GLOBALS['cfg_phpurl']."/view.php?aid=$aid"; } } |
修改后:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
if($rank!=0 || $ismake==-1 || $typeid==0 || $money>0) { //--------跳转网址不经过中间页直接显示----------------begin---by oicto global $dsql; $flag = $dsql->GetOne("select * from dede_archives where id = $aid;"); $flag = $flag['flag']; if(preg_match("/j/",$flag)){ $addontable = $dsql->GetOne("select art.id,cht.addtable from dede_arctype art left join dede_channeltype cht on art.channeltype = cht.id where art.id = $typeid"); $addtable = $addontable['addtable']; $GoUrl = $dsql->GetOne("select redirecturl from $addtable where aid = $aid"); $redirecturl = $GoUrl['redirecturl']; if($redirecturl != ''){ return $redirecturl; } } //--------跳转网址不经过中间页直接显示----------------end---by oicto //动态文章 if($cfg_rewrite == 'Y') { return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html'; } else { return $GLOBALS['cfg_phpurl']."/view.php?aid=$aid"; } } |
修改完毕后,重新发布首页和列表页,则跳转网址的文档其网址直接显示为redirecturl跳转网址而不在显示为view.php跳转了。