DEDECMS5.6和5.7中文档跳转网址不经过中间页跳转而直接显示跳转网址的解决办法

本解决方案是在DEDECMS5.7中测试过的,当文档设置为跳转并添加跳转网址后如何不经过中转页而直接可以用标签arcurl在底层模板中显示redirecturl跳转网址。

 

找到dedecms文件:/include/helpers/channelunit.helper.php中,第157行处开始修改:

修改前:

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";
            }
        }

 

修改后:

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跳转了。

关于笃志情缘

人尽其责,物尽其用,不成功,也无憾,毕竟奋斗过。走自己的路吧! 笃志建站:虚拟主机、域名注册、云主机、成品网站、企业邮局、CDN加速 http://www.duzhi.net QQ:3081689173
此条目发表在网站技术分类目录,贴了, , 标签。将固定链接加入收藏夹。