dedecms织梦调用三级四级无限级栏目教程
2018-12-30 12:01
dede调用三级四级无限级栏目效果图如下:
第一种自定义函数递归法
适用于前端简单样式用户,在 include/extend.func.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
|
/**
* 取出所有分类
* @param int $channel 频道ID
* @return string www.dede58.com织梦模板下载
* 调用{dede:global.getalltype function='getalltype()'/}
*/
function getalltype($channel=0,$line=10)
{
$line = empty($line) ? 10 : $line;
global $dsql,$result;
$dsql->SetQuery("SELECT id,typename,typenamedir,typelitpic,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
FROM `dede_arctype` WHERE reid='$channel' And ishidden<>1 order by sortrank asc limit 0, $line ");
$dsql->Execute($channel);
if($dsql->GetTotalRow($channel)>0)
{
$result .= "<ul>\r\n";
while($row = $dsql->GetArray($channel))
{
$id = $row['id'];
$typename = $row['typename'];
$typelink = GetOneTypeUrlA($row);
$result .= " <li>\r\n";
$result .= " <a href='{$typelink}' target='_blank'>{$typename}</a>\r\n";
getalltype($id,$line);
$result .= " </li>\r\n";
}
$result .= "</ul>\r\n";
}
return $result;
}
|
前台模板调用标签
{dede:global.getalltype function='getalltype()'/}
第二种标签嵌套法
适用于只调用出一级、二级、三级、四级的用户,直接在模板里写
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
|
<ul>
{dede:channelartlist row=7 typeid=top}
<!-- 顶级 -->
<li>
<a href="{dede:field.typeurl/}" >{dede:field name='typename'/}</a>
<ul>
{dede:channel type=son noself=yes}
<!-- 二级 -->
<li>
<a href="[field:typeurl/]" title="[field:typename/]">[field:typename/]</a>
<ul>
<!-- 三级 -->
[field:id runphp=yes]
global $dsql;
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype`
WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10";
$dsql->SetQuery($sql);
$dsql->Execute('t');
$result = '';
while($row = $dsql->GetArray('t'))
{
$typename = $row['typename'];
$typeurl = GetOneTypeUrlA($row);
$result .= <<< TPL
<li><a href="{$typeurl}">{$typename}</a></li>
TPL;
}
@me = $result;
[/field:id]
</ul>
</li>
{/dede:channel}
</ul>
</li>
{/dede:channelartlist}
</ul>
|
上面的是输出到三级栏目,如果需要四级栏目可以这样写
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
|
<!-- 三级/四级 -->
[field:id runphp=yes]
global $dsql;
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype`
WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10";
$dsql->SetQuery($sql);
$dsql->Execute('t');
$result = '';
while($row = $dsql->GetArray('t'))
{
$row['typeurl'] = GetOneTypeUrlA($row);
$result .= "<a href='{$row[typeurl]}'>{$row[typename]}</a>";
//四级
$nsql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
FROM `dede_arctype` WHERE reid=$row[id] And ishidden<>1 order by sortrank asc limit 0,10";
$dsql->SetQuery($nsql);
$dsql->Execute('n');
while($nrow = $dsql->GetArray('n'))
{
$nrow['typeurl'] = GetOneTypeUrlA($nrow);
$result .= "<a href='{$nrow[typeurl]}'>{$nrow[typename]}</a>";
}
}
@me = $result;
[/field:id]
|
【责任编辑:小戴工程师】
上一篇:ecshop怎么接入支付宝 接入设置方法 下一篇:dede个人中心调用会员其他字段和自定义字段调用最新文章
2018-12-30 12:01
相关文章
2018-12-30 12:01
- dede 电脑端和手机端首页同步生成方法,
- dede完美上下篇 英文版替换标签 dede:prenext 中英
- dede中英文网站栏目条调用方法
- dede双语站 面包导航{dede:field name='position'}
- dede企业网站常见左侧固定大小类二级菜单调用代码
- 栏目页dede:channelartlist调用下级子类并dede:arcl
- dede:channelartlis 判断是否有子类栏目
- dede:channelartlist 指定顶级栏目调用二级和三级栏
- 解决阿里云空间 织梦dede出现 Warning: Cannot modi
- dedecms分类信息模型 实现自定义联动字段和普通字段