一、修改文件:\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}

转载于:https://www.cnblogs.com/275147378abc/p/5062932.html

dede 调用四级导航相关推荐

  1. dede调用sql语句的方法

    这篇文章给大家分享的是有关dede调用sql语句的方法的内容.小编觉得挺实用的,因此分享给大家做个参考.一起跟随小编过来看看吧.  dede的sql语句怎么调用?  sql语句调用,在一些特殊情况下还 ...

  2. dede调用当前顶级栏目名称、ID、url方法

    使用dede时,经常会碰到需要调用当前顶级栏目名称,而织梦默认{dede:field name='typename' /} 只可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称. 在inc ...

  3. phpcms教程:搜索页调用网站导航

    {pc:content action="category" catid="0" num="12" siteid="$siteid& ...

  4. dede调用dz论坛数据-html方式调用

    ​ 方法一:dede调用dz论坛数据-html方式调用 1.dede标签:{dede:php} if ($fh = fopen("http://bbs.yingyuw.cn/api.php? ...

  5. dede调用css,织梦dede常用的调用标签(个人总结)

    想必很多人对后台不熟悉,并且觉得很难.其实不难,只是你们没有找到合适的方法学习而已!只有找到一个合适的学习方法,不管做什么事情,我想都很容易.学习讲究的是效率,而效率又是由思路决定的.就拿网页制作来说 ...

  6. iOS 调用地图导航

    在IOS6.0系统后,兼容iOS5.0与iOS6.0地图导航,需要分两个步骤 #define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevic ...

  7. DeDe调用指定栏目ID下的文章

    *注: row: 调用条数 titlelen: 字数 typeid: 调用的栏目ID orderby: 按照升序对记录进行排序 idlist: 提取特定文档为空 infolen='40' 内容简介长度 ...

  8. DEDE调用指定文章ID

    {dede:arclist row=1 idlist='6'}<li><a href="[field:arcurl/]">[field:descriptio ...

  9. Android 调用地图导航

    启动高德地图 /*** 启动高德App进行导航** @param sourceApplication 必填 第三方调用应用名称.如 amap* @param dname 非必填 目的地名称* @par ...

  10. 调用高德导航,百度导航,腾讯地图

    private void gotoBaidu(LatLng location){ log(location.latitude+"   "+location.longitude); ...

最新文章

  1. openMP的一点使用经验 四
  2. Mysql (二)Mysql 数据库表增删改查
  3. python类定义全局变量_python之全局变量
  4. 玩转NumPy——NumPy数组的切片和索引
  5. STL中算法锦集(一)
  6. Android设计模式之——观察者模式
  7. 射命丸文 (Standard IO)
  8. nvme固态硬盘开机慢_为何我使用了固态硬盘开机速度还是需要20-30秒
  9. java游戏贪吃蛇_Java实现贪吃蛇游戏
  10. 农村新兴致富行业,小家电玩具换旧手机,最多月入几十万
  11. CRC32/CRC16算法C#中的实现
  12. Qt音视频开发41-人脸识别嵌入式
  13. java生成图表_【JAVA】POI生成EXCEL图表(柱状图、折线等)
  14. 吴恩达机器学习 编程作业 python 版提交方法以及代码-week2
  15. rsync命令排除文件和文件夹(exclude-from)
  16. mybatis一级缓存,二级缓存的开启、关闭、清除及使用说明
  17. C 标准库 limits
  18. java imageio 内存问题_java中的内存泄漏ImageIO.read()
  19. 按出生年月日对身份证号进行排序
  20. php上传pdf文件错误,php上传pdf文件,一些特殊字符丢失

热门文章

  1. 2个Python入门级的实战项目
  2. 【提前批】22届的同学看过来,百度提前批开始啦~
  3. 一个专为推荐系统定制的BERT!
  4. 小白跟学系列之手把手搭建NLP经典模型-2(含代码)
  5. 每日算法系列【LeetCode 287】寻找重复数
  6. 基于DEAP库的python进化算法-5.遗传算法求解TSP问题的改进
  7. 深度学习2.0-9.tensorflow的高阶操作之填充与复制
  8. 初识爬虫的那天,我选择了Java!
  9. 性能优化是数据库应用的核心问题
  10. Ext JS+Android+SSH整合开发Web与移动SNS