DEDECMS 文章跳转直接显示网址,不经过中转页跳转(5.6,5.7适用)

2012 年 1 月 4 日 6 条评论 2.26k 次阅读 1 人点赞

本解决方案是在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)

  • simayang01

    感谢你解决了我的大问题, 谢谢了!www.itmaller.com

    2012 年 2 月 21 日
  • simayang01

    感谢你解决了我的大问题

    2012 年 2 月 21 日
  • 昆明信息网

    感谢你解决了我的大问题, 谢谢了!

    2013 年 6 月 10 日
  • 昆明信息网

    :shock: 感谢你解决了我的大问题, 谢谢了!

    2013 年 6 月 10 日
  • burnlife

    貌似不行啊。求解决方法,修改后。前台后台一律变成空白。。

    2013 年 8 月 28 日
    • 雷雷

      @burnlife 可能编码没改成跟你的一致,改下编码试试。

      2013 年 8 月 28 日
  • (Spamcheck Enabled)