dede 调用四级导航
一、修改文件:\include\taglib目录下的channel.lib.php,请将以下代码全部复制替换上述文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
<?php function lib_channel(& $ctag ,& $refObj ) { global $_sys_globals , $envs , $dsql ; $attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|" ; FillAttsDefault( $ctag ->CAttribute->Items, $attlist ); extract( $ctag ->CAttribute->Items, EXTR_SKIP); $innertext = $ctag ->GetInnerText(); $cacheid = trim( $cacheid ); if ( $cacheid != '' ) { $likeType = GetCacheBlock( $cacheid ); if ( $likeType != '' ) return $likeType ; } $reid = 0; $topid = 0; if ( empty ( $typeid ) && $envs [ 'typeid' ]!=0) { $typeid = $envs [ 'typeid' ]; $reid = $envs [ 'reid' ]; } else { $reid =0; } if ( $type == '' || $type == 'sun' ) $type = "son" ; if ( $innertext == '' ) $innertext = GetSysTemplets( "channel_list.htm" ); if ( $reid ==0 && $typeid >0) { $dbrow = $dsql ->GetOne( "Select reid From dede_arctype where id='$typeid' " ); if (<a href= "https://www.baidu.com/s?wd=is_array&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmHDkmWDsnju-nHb1rHTd0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4P1nzrH63nWDzrHDzPjcL" target= "_blank" class = "baidu-highlight" > is_array </a>( $dbrow )) $reid = $dbrow [ 'reid' ]; } $likeType = '' ; if ( $type == 'top' ) { $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From dede_arctype where reid=0 And ishidden<>1 order by sortrank asc limit 0, $row "; } else if ( $type == "son" ) { //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid']; if ( $typeid ==0) { return '' ; } $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From dede_arctype where reid= '$typeid' And ishidden<>1 order by sortrank asc limit 0, $row "; } else if ( $type == "self" ) { if ( $reid ==0) { return '' ; } $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From `dede_arctype` where reid= '$reid' And ishidden<>1 order by sortrank asc limit 0, $row "; } //And id<>'$typeid' $needRel = false; $dtp2 = new DedeTagParse(); $dtp2 ->SetNameSpace( "field" , "[" , "]" ); $dtp2 ->LoadSource( $innertext ); $dsql2 = clone $dsql ; $dsql ->SetQuery( $sql ); $dsql ->Execute(); $line = $row ; //检查是否有子栏目,并返回rel提示(用于二级菜单) if ( ereg ( ':rel' , $innertext )) $needRel = true; if ( empty ( $sql )) return '' ; $dsql ->SetQuery( $sql ); $dsql ->Execute(); $totalRow = $dsql ->GetTotalRow(); $GLOBALS [ 'autoindex' ] = 0; for ( $i =0; $i < $line ; $i ++) { if ( $col >1) $likeType .= "<dl>\r\n" ; for ( $j =0; $j < $col ; $j ++) { if ( $col >1) $likeType .= "<dd>\r\n" ; if ( $row = $dsql ->GetArray()) { $row [ 'sonids' ] = $row [ 'rel' ] = '' ; if ( $needRel ) { $row [ 'sonids' ] = GetSonIds( $row [ 'id' ], 0, false); if ( $row [ 'sonids' ]== '' ) $row [ 'rel' ] = '' ; else $row [ 'rel' ] = " rel='dropmenu{$row['id']}'" ; } //处理同级栏目中,当前栏目的样式 if ( ( $row [ 'id' ]== $typeid || ( $topid == $row [ 'id' ] && $type == 'top' ) ) && $currentstyle != '' ) { if ( $currentstyle != '' ) { $linkOkstr = $currentstyle ; $row [ 'typelink' ] = GetOneTypeUrlA( $row ); $linkOkstr = <a href= "https://www.baidu.com/s?wd=str_replace&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmHDkmWDsnju-nHb1rHTd0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4P1nzrH63nWDzrHDzPjcL" target= "_blank" class = "baidu-highlight" > str_replace </a>( "~rel~" , $row [ 'rel' ], $linkOkstr ); $linkOkstr = <a href= "https://www.baidu.com/s?wd=str_replace&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmHDkmWDsnju-nHb1rHTd0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4P1nzrH63nWDzrHDzPjcL" target= "_blank" class = "baidu-highlight" > str_replace </a>( "~id~" , $row [ 'id' ], $linkOkstr ); $linkOkstr = <a href= "https://www.baidu.com/s?wd=str_replace&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmHDkmWDsnju-nHb1rHTd0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4P1nzrH63nWDzrHDzPjcL" target= "_blank" class = "baidu-highlight" > str_replace </a>( "~typelink~" , $row [ 'typelink' ], $linkOkstr ); $linkOkstr = str_replace ( "~typename~" , $row [ 'typename' ], $linkOkstr ); $likeType .= $linkOkstr ; } } else { $row [ 'typelink' ] = $row [ 'typeurl' ] = GetOneTypeUrlA( $row ); if (<a href= "https://www.baidu.com/s?wd=is_array&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmHDkmWDsnju-nHb1rHTd0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4P1nzrH63nWDzrHDzPjcL" target= "_blank" class = "baidu-highlight" > is_array </a>( $dtp2 ->CTags)) { foreach ( $dtp2 ->CTags as $tagid => $ctag ){ if (isset( $row [ $ctag ->GetName()])) { $dtp2 ->Assign( $tagid , $row [ $ctag ->GetName()]); } elseif (<a href= "https://www.baidu.com/s?wd=preg_match&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmHDkmWDsnju-nHb1rHTd0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4P1nzrH63nWDzrHDzPjcL" target= "_blank" class = "baidu-highlight" >preg_match</a>( '/^sonchannel[0-9]*$/' , $ctag ->GetName())) { $dtp2 ->Assign( $tagid ,lib_channel_son( $ctag , $row [ 'id' ], $dsql2 )); } } } $likeType .= $dtp2 ->GetResult(); } } if ( $col >1) $likeType .= "</dd>\r\n" ; $GLOBALS [ 'autoindex' ]++; } //Loop Col if ( $col >1) { $i += $col - 1; $likeType .= " </dl>\r\n" ; } } //Loop for $i reset( $dsql2 ); $dsql ->FreeResult(); return $likeType ; } function lib_channel_son( $ctag , $typeid = 0, $dsql2 ) { $attlist = "row|100,col|1,currentstyle|" ; FillAttsDefault( $ctag ->CAttribute->Items, $attlist ); extract( $ctag ->CAttribute->Items, EXTR_SKIP); $innertext = $ctag ->GetInnerText(); $dsql3 = clone $dsql2 ; $likeType = '' ; //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid']; if ( $typeid ==0) { return '' ; } $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From dede_arctype where reid= '$typeid' And ishidden<>1 order by sortrank asc limit 0, $row "; //And id<>'$typeid' $dtp2 = new DedeTagParse(); $dtp2 ->SetNameSpace( "field" , "[" , "]" ); $dtp2 ->LoadSource( $innertext ); $dsql2 ->SetQuery( $sql ); $dsql2 ->Execute(); $line = $row ; for ( $i =0; $i < $line ; $i ++) { if ( $col >1) $likeType .= "<dl>\r\n" ; for ( $j =0; $j < $col ; $j ++) { if ( $col >1) $likeType .= "<dd>\r\n" ; if ( $row = $dsql2 ->GetArray()) { $row [ 'typelink' ] = $row [ 'typeurl' ] = GetOneTypeUrlA( $row ); if (<a href= "https://www.baidu.com/s?wd=is_array&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmHDkmWDsnju-nHb1rHTd0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4P1nzrH63nWDzrHDzPjcL" target= "_blank" class = "baidu-highlight" > is_array </a>( $dtp2 ->CTags)) { foreach ( $dtp2 ->CTags as $tagid => $ctag ){ if (isset( $row [ $ctag ->GetName()])) { $dtp2 ->Assign( $tagid , $row [ $ctag ->GetName()]); } elseif (<a href= "https://www.baidu.com/s?wd=preg_match&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmHDkmWDsnju-nHb1rHTd0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4P1nzrH63nWDzrHDzPjcL" target= "_blank" class = "baidu-highlight" >preg_match</a>( '/^sonchannel[0-9]*$/' , $ctag ->GetName())) { $dtp2 ->Assign( $tagid ,lib_channel_son( $ctag , $row [ 'id' ], $dsql3 )); } } } $likeType .= $dtp2 ->GetResult(); } if ( $col >1) $likeType .= "</dd>\r\n" ; } //Loop Col if ( $col >1) { $i += $col - 1; $likeType .= " </dl>\r\n" ; } } //Loop for $i reset( $dsql3 ); $dsql2 ->FreeResult(); return $likeType ; } ?> |
在模板调用实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
{dede:channel type= 'son' typeid= '3' } [field:typename/] <ul> [field:sonchannel0] <li><a href= "[field:typelink/]" >[field:typename/]</a></li> [field:sonchannel1] <li><a href= "[field:typelink/]" >---[field:typename/]</a></li> [field:sonchannel2] <li><a href= "[field:typelink/]" >===[field:typename/]</a></li> [field:sonchannel3] <li><a href= "[field:typelink/]" >===[field:typename/]</a></li> [/field:sonchannel3] [/field:sonchannel2] [/field:sonchannel1] [/field:sonchannel0] </ul> {/dede:channel} |
dede 调用四级导航的更多相关文章
- dede调用多级导航的方法
<div id="navWrapper"> <div class="content"> <ul class="nav m ...
- dede:channel二级导航currentstyle属性失效问题
dede:channel默认只作用在一级导航中,在调用下级导航(type='son')时,发现不起作用. 修改方法:修改 include/taglib/channel.lib.php 第133行.if ...
- dede调用指定的多个栏目导航
{dede:channelartlist row=' typeid='1,2这里输入多个指定的栏目ID' } <li><a href='{dede:field name='typeu ...
- dede调用二级下拉菜单方法
<div id="menu"> <ul> {dede:channelartlist typeid='top' row='6' orderby='s ...
- dede 调用原图的路径
步骤:1修改include/extend.func.php 添加如下代码: //取原图地址function bigimg($str_pic){$str_houzhi=substr($str_pic,- ...
- dede调用img图片
1.默认的index.htm调用: {dede:arclist row='3' titlelen='30' typeid='1'} <div class="swiper-slide&q ...
- iOS开发----调用地图导航
注意:本文章下的代码有个别变量未知,所以是不能直接跑通的,我也是转别人的 在IOS6.0系统后,兼容iOS5.0与iOS6.0地图导航,需要分两个步骤 #define SYSTEM_VERSION_L ...
- iOS 调用地图导航
在IOS6.0系统后,兼容iOS5.0与iOS6.0地图导航,需要分两个步骤 #define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevic ...
- DEDE调用频道封面{dede:field:content/}内容方法
DEDE怎样在首页调用频道封面页{dede:field:content/}内容的方法,当我们用 织梦DEDECMS 做网站的时候,首页往往会加上关于我们或者企业简介之类的文字,在栏目里 当我们用织梦D ...
随机推荐
- C#数组的排序(正序逆序)
C#数组的排序(正序逆序) 这种排序 超级简单的 ! using System; using System.Collections.Generic; using System.Linq; using ...
- 在Struts2中配置Action
在Struts2中配置Action <package>: 1.定义Action使用<package>标签下的<action>标签完成,一个<package&g ...
- DataGridView的自定义列排序
1,将需要进行排序的列做属性的设置 this.colUserName.SortMode = DataGridViewColumnSortMode.Programmatic; 2,添加列的事件 //点击 ...
- Linux下mysql备份 恢复
转载自http://blog.chinaunix.net/uid-20577907-id-161611.html 比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldum ...
- 图片格式转换之ImageMagick
项目中需要实现一些图片文件到TIFF文件的转换,去网上下载了一些第三方软件. 好的软件需要收费,免费的存在各种问题. 自己动手,丰衣足食! 众里寻他千百度,蓦然回首,那人就是ImageMagick. ...
- MyBatis 多表联合查询及优化 以及自定义返回结果集
下面就来说一下 mybatis 是通过什么来实现多表联合查询的.首先看一下表关系,如图: 这 里,我已经搭好了开发的环境,用到的是 SpringMVC + Spring + MyBatis,当然,为了 ...
- [HDOJ5289]Assignment(RMQ,二分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5289 题意:求满足区间内最大值和最小值差为k的区间个数. 预处理出区间的最值,枚举左端点,根据最值的单 ...
- albert1017 Linux下压缩某个文件夹(文件夹打包)
albert1017 Linux下压缩某个文件夹(文件夹打包) tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全路径 要打包的目录例子:把 ...
- 【VB6笔记-01】 读取Excel绑定到DataGrid
Private Sub cmdOpen_Click() CommonDialog1.Filter = "Excel???t(*.xlsx)|*.xlsx" CommonDialog ...
- hdu 4828 Grids 卡特兰数+逆元
Grids Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Problem D ...