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 ...
随机推荐
- An error occurred while filtering resources-----maven项目报错
解决办法 需要在pom中设定jdk的版本 <plugins> <!-- compiler插件, 设定JDK版本 --> <plugin> <groupId&g ...
- Intent官方教程(1)简介和作用
Intents An Intent is a messaging object you can use to request an action from another app component. ...
- 你不知道的This和Class
Oh no....我的This又丢失了??? 为什么我用Class'实例化'出来的对象会相互影响??? ####这些问题都是因为JS的运行机制造成的.在JS中所有的一切都是对象,而this是对象的一个 ...
- Statement和PreparedStatement批量更新
优势:1.节省传递时间. 2.并发处理. PreparedStatement: 1) addBatch()将一组参数添加到PreparedStatement对象内部. 2) executeBatch( ...
- 【leetcode❤python】Binary Watch
#-*- coding: UTF-8 -*- from itertools import combinationsclass Solution(object): hourList=[8, ...
- MIME协议生成邮件
MIME协议生成一封复杂的邮件 MIME协议是对RFC822文档的升级和补充,用MIME协议能生成一封有文字.图片和附件的复杂邮件.首先要导入activation.jar和mail.jar.Mail. ...
- 对Spring <context:annotation-config/>的理解
在基于主机方式配置Spring的配置文件中,你可能会见到<context:annotation-config/>这样一条配置,他的作用是向 Spring 容器注册 AutowiredAnn ...
- 安装 SQLManagementStudio_x86_CHS(SQL Server Management Studio) 老提示重启的解决办法
安装 SQL Server Management Studio(SQLManagementStudio_x86_CHS)时,检测时不通过,提示重启电脑,我以为她安装了什么心软件没有重启:所以重启了电脑 ...
- tomcat源码导入eclipse步骤
1. 获取源代码 方式一:从官网http://tomcat.apache.org/download-70.cgi 直接下载,官网提供了Binary 和 Source Code两种下载方式,要研究tom ...
- ABAP RFC远程调用
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...