织梦(子)栏目和内容页调用顶级栏目ID(topid)方法

织梦(dedecms)子栏目和内容页调用顶级栏目ID(topid)的方法总结。

使用织梦顶级栏目id可以实现很多功能比如:在每个列表页调用不同的栏目图片(同一顶级栏目调用相同的图片),当我们建立多个栏目的时候,如果采用一般的 方法,就意味着要做多个栏目列表页模板,这对在模板制作和后期维护上会照成相当大的麻烦,显示这种方法是不可取的。那么我们怎样来更快更简单的处理这个问 题呢,具体的思路是这样的:调用顶级栏目ID,然后将图片的命名规则改为(xxx+id.jpg)的模式,如:img1.jpg 、img2.jpg即为imgID.jpg这样我们只需要使用一个模板,制作几张图片就可以了,下面是具体的方法:

dede调用顶级栏目ID 方法一:

{dede:field.id function="GetTopid(@me)"/}

首推这一方法,织梦自带函数,而且不需要改动任何源码!

dede调用顶级栏目ID 方法二(相对麻烦,不建议使用):

首先,修改源文件,找到include目录下的taglib目录下的type.lib.php。

找到这条语句

$row = $dsql->GetOne(“Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where id=’$typeid’ “);

修改成为

$row = $dsql->GetOne(“Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where id=’$typeid’ “);// 在数据查询的时候,增加查询topid的值。

在if(!is_array($row)) return '';下一行添加

if( $row['topid']==0){$row['topid']=$row['id'];} //当前栏目为顶级目录时,topid值为0,直接将当前顶级栏目的id值服务topid输出。

第二,在所需要调用顶级栏目ID的地方,添加这段标签语法:

{dede:type}[feild:topid/]{/dede:type}

这样,这条语句不论在顶级栏目还是子栏目甚至是文章页,都可以调用了相应的顶级栏目id了。

你可能感兴趣的:(dedecms)