织梦dede让频道自动跳转到第一个子栏目

盼什么没什么,怕什么来什么。那些忙于批评别人的人,都忘了检讨自己。生活就是这样,当你想昂着头走路时,你就得随时准备在地上趴着。
平时做网站的时候,难免遇上一些特殊情况,默认的CMS是无法实现的,这时就需要改程序,就比如说,让频道自动跳转到第一个子栏目,当我还对DEDECMS不熟悉的时候,采用了一个非常笨的方法,用JS去跳转,这对优化非常不好。但是反正客户不懂,效果能实现就OK了。
今天我就来说说用如果通过修改源码来简单实现,其实DEDECMS在数据库表@#_arctype中,是否为频道,是用ispart这个字段去保存的,它有3个值(0,-1,1),对应的网站后台的 频道封面、最终栏目、外部连接。
所以我们只需要在程序中对ispart进行一个简单的判断,就OK。废话不多说了,

第一步:打开/include/helpers/channelunit.helper.php 打开下面的代码  GetOneTypeUrlA函数
/**
 *  获取某栏目的url
 *
 * @param     array  $typeinfos  栏目信息
 * @return    string
 */
function GetOneTypeUrlA($typeinfos)
{
    return GetTypeUrl($typeinfos['id'],MfTypedir($typeinfos['typedir']),$typeinfos['isdefault'],
$typeinfos['defaultname'],$typeinfos['ispart'],$typeinfos['namerule2'],
$typeinfos['moresite'],$typeinfos['siteurl'],$typeinfos['sitepath']);
}

第二步:对这个GetOneTypeUrlA函数进行修改,修改后如下
/**
 *  获取某栏目的url
 *
 * @param     array  $typeinfos  栏目信息
 * @return    string
 */
function GetOneTypeUrlA($typeinfos)
{
	global $dsql;
	if($typeinfos['ispart']==1) {
		$typeinfos = $dsql->GetOne('select * from idea_arctype where reid='.$typeinfos['id'].'
            ORDER BY sortrank');
	}
    return GetTypeUrl($typeinfos['id'],MfTypedir($typeinfos['typedir']),
$typeinfos['isdefault'],$typeinfos['defaultname'],
    $typeinfos['ispart'],$typeinfos['namerule2'],
$typeinfos['moresite'],$typeinfos['siteurl'],$typeinfos['sitepath']);
}

就这样OK了~! 但是这样频道封面就没有用了,其实我们还可以去给ispart增加一个其它的值,比如“2”来代表需要跳转到第一个子栏目的,把程序中的$typeinfos['ispart']==1改成$typeinfos['ispart']==2就OK了。

到此这篇关于织梦dede让频道自动跳转到第一个子栏目就介绍到这了。是非天天有,不听自然无。更多相关织梦dede让频道自动跳转到第一个子栏目内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
织梦后台文档列表添加复制文档功能支持所有模型

织梦无法上传ico图标格式文件的如何解决方法

dedecms如何实现任意页面调用当前会员信息的方

织梦dede:tag调用指定多个栏目的TAG标签

织梦栏目列表按附加表自定义字段排序