本解决方案是在DEDECMS5.7中测试过的,当文档设置为跳转并添加跳转网址后如何不经过中转页而直接可以用标签arcurl在底层模板中显示redirecturl跳转网址。
找到dedecms文件:/include/helpers/channelunit.helper.php中,大概在第159行处开始修改:
查找:if($rank!=0 || $ismake==-1 || $typeid==0 || $money>0)
修改前:
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"; } }
替换为:
//--------跳转网址不经过中间页直接显示----------------begin---by xueleilei global $dsql; $flag = $dsql->GetOne("select * from `#@__archives` where id = $aid;"); $flag = $flag['flag']; if(preg_match("/j/",$flag)){ $addontable = $dsql->GetOne("select art.id,cht.addtable from `#@__arctype` art left join `#@__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 xueleilei //动态文章 if($cfg_rewrite == 'Y') { return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html'; } else { return $GLOBALS['cfg_phpurl']."/view.php?aid=$aid"; } }
修改完毕后,重新更新首页和列表页,跳转网址的文章的网址将直接显示为跳转后的网址,而不会在显示为view.php?aid=XX 的跳转了。
© 著作权归作者所有
文章评论(6)
感谢你解决了我的大问题, 谢谢了!www.itmaller.com
感谢你解决了我的大问题
感谢你解决了我的大问题, 谢谢了!
:shock: 感谢你解决了我的大问题, 谢谢了!
貌似不行啊。求解决方法,修改后。前台后台一律变成空白。。
@burnlife 可能编码没改成跟你的一致,改下编码试试。