DEDECMS中怎么获取无限栏目子分类
DEDECMS中怎么获取无限栏目子分类?
做企业网站大部分是使用DEDECMS,今天在给客户设计网站时,把DEDE自动内链和URL全拼格式搞定后,又遇到了个小问题,因为产品分类最多有四级,客户要求在左侧有个弹出式菜单调用各级子分类出来,而DEDECMS默认只能调用一级分类。经过努力,百度 GOOGLE 自己脑袋,终于搞定了这个东西,不敢独享,发出来给有需要的朋友分享。
推荐学习:织梦cms
首先要把/include/taglib/channerl.lib.php 文件的代码修改成以下的:
代码如下:
<?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(); 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 ying_arctype where id=’$typeid’ “); if(is_array($dbrow)) $reid = $dbrow['reid']; } $likeType = ”; if($type==’top’) { $sql = “Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From ying_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 ying_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 ‘ying_arctype’ where reid=’$reid’ And ishidden<>1 order by sortrank asc limit 0,$row”; } //And id<>’$typeid’ $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace(“field”,”[","]“); $dtp2->LoadSource($innertext); $dsql2 = clone $dsql; $dsql->SetQuery($sql); $dsql->Execute(); $line = $row; $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()) { if($type==’self’ && $row['id']==$typeid) //处理同级栏目中,当前栏目的样式 { if($currentstyle!=”) { $linkOkstr = $currentstyle; $row['typelink'] = GetOneTypeUrlA($row); $linkOkstr = str_replace(“~typelink~”,$row['typelink'],$linkOkstr); $linkOkstr = str_replace(“~typename~”,$row['typename'],$linkOkstr); $likeType .= $linkOkstr; } }else { $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); if(is_array($dtp2->CTags)) { foreach($dtp2->CTags as $tagid=>$ctag){ if(isset($row[$ctag->GetName()])) { $dtp2->Assign($tagid,$row[$ctag->GetName()]); } elseif (preg_match(‘/^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 ying_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(is_array($dtp2->CTags)) { foreach($dtp2->CTags as $tagid=>$ctag){ if(isset($row[$ctag->GetName()])) { $dtp2->Assign($tagid,$row[$ctag->GetName()]); } elseif (preg_match(‘/^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; } ?>
在模板里面用 [field:sonchannel0] [/field:sonchannel0] 调用,这个是用来取子栏目用得(使用【sonchannel 数字】作为标签名是为了防止嵌套的时候无法正确解析标签),这个的作用就是当你的栏目有很多子栏目无限分级的时候方便你取子栏目的。实例一下:
代码如下:
<ul id="left_nav"> {dede:channel type='son' typeid='16'} <li><a href="[field:typelink/]“>[field:typename/]</a> <ul> [field:sonchannel0] <li><a href="[field:typelink/]“>[field:typename/]</a> <ul> [field:sonchannel1] <li><a href="[field:typelink/]“>[field:typename/]</a> <ul> [field:sonchannel2] <li><a href="[field:typelink/]“>[field:typename/]</a> <ul> [field:sonchannel3] <li><a href="[field:typelink/]“>[field:typename/]</a></li> [/field:sonchannel3] </ul> </li> [/field:sonchannel2] </ul> </li> [/field:sonchannel1] </ul> </li> [/field:sonchannel0] </ul> </li> {/dede:channel} </ul>
以上typeid中的数字改成你的大分类的ID即可,因为在DEDE官方论坛没找到,所以这里发上来,希望能方便有用者。
注意:未免出错修改文件前请做好备份,以上代码可能有些引号又被自动转成全角的了,请修改成半角的,或者可以找萧涵索取此修改后的文件。
以上是DEDECMS中怎么获取无限栏目子分类的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

帝国CMS模板下载位置:官方模板下载:https://www.phome.net/template/第三方模板网站:https://www.dedecms.com/diy/https://www.0978.com.cn/https://www.jiaocheng.com/安装方式:下载模板解压模板上传模板选择模板

在 Dedecms 中实现模板替换可以通过以下步骤:修改 global.cfg 文件,设置所需的语言包。修改 taglib.inc.php 钩子文件,添加对语言后缀模板文件的支持。创建带有语言后缀的新模板文件,修改所需内容。清除 Dedecms 缓存。

如何使用 Dedecms 上传本地视频?准备视频文件,确保格式符合 Dedecms 支持的格式。登录 Dedecms 管理后台,创建新的视频分类。在视频管理页面上传视频文件,填写相关信息并选择视频分类。在编辑文章时嵌入视频,输入上传视频的文件名并调整尺寸。

Dedecms是一款开源CMS,可用于创建各种类型的网站,包括:新闻网站博客网站电商网站论坛和社区网站教育网站门户网站其他类型的网站(例如企业网站、个人网站、相册网站、视频共享网站)

Dedecms 是一款开源中文 CMS 系统,提供内容管理、模板系统和安全保护等功能。具体使用方法包含以下步骤:1. 安装 Dedecms。2. 配置数据库。3. 登录管理界面。4. 创建内容。5. 设置模板。6. 管理用户。7. 维护系统。

DedeCMS是一个开源的内容管理系统,会存在一些潜在的漏洞和安全风险:1、SQL注入漏洞,攻击者可以通过构造恶意的SQL查询语句来执行未经授权的操作或获取敏感数据;2、文件上传漏洞,攻击者可以上传包含恶意代码的文件到服务器上,从而执行任意代码或获取服务器权限;3、敏感信息泄露;4、未经身份验证的漏洞利用。

精准可靠的dedecms转换工具评测报告随着互联网时代的快速发展,网站建设已经成为许多企业和个人必备的工具之一。在网站建设中,使用内容管理系统(CMS)可以更加便捷高效地管理网站内容和功能。其中,dedecms作为一款知名的CMS系统,被广泛应用于各种网站建设项目中。然而,有时候我们会面临着需要将dedecms网站转换为其他格式的需求,这时就需要用到转换工具

学习dedecms编码转换功能并不复杂,通过简单的代码示例,可以帮助您快速掌握这一技能。在dedecms中,编码转换功能通常用于处理中文乱码、特殊字符等问题,确保系统的正常运行和数据的准确性。下面将详细介绍如何使用dedecms的编码转换功能,让您轻松应对各种编码相关的需求。1.UTF-8转GBK在dedecms中,如果需要将UTF-8编码的字符串转换为G
