最近用织梦做了两个网站,发现生成栏目树的需求很多,而网上的解决方案都用cattree,但是这个玩意不好用,所以自己写了一个,给大家做参考:
一、在织梦数据里增加一个自定函数:
CREATE DEFINER=`root`@`localhost` FUNCTION `getChildLst2table`(rootId varchar(50)) RETURNS varchar(1000) CHARSET latin1
BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempChd VARCHAR(1000);
SET sTemp = '$';
SET sTempChd =rootId;
WHILE sTempChd is not null DO
SET sTemp = concat(sTemp,',',sTempChd);
SELECT group_concat(id) INTO sTempChd FROM dede_arctype where reid<>id and FIND_IN_SET(reid,sTempChd)>0;
END WHILE;
set sTemp=replace(sTemp,concat('$,',rootId,','),'');
set sTemp=concat('|',replace(sTemp,',','|,|'),'|');
set sTemp=replace(sTemp,concat('|$|,|',rootId,'|'),'');
RETURN sTemp;
END
二、使用如下查询查询某点下的所有子节点:
select id,reid,topid,sortrank,typename,typedir,concat('/plus/list.php?tid=',id)as url,defaultname,char_length(typedir)-char_length(replace(typedir,'/','')) as layer
from dede_arctype where instr(getChildLst2table('3'),trim(concat('|',id,'|')))>0 order by sortrank;
注意:
一定在要织梦后台对你的栏目按层次设好排序和存储目录,这里通过存储目录中的/个数来确定层级,用排序号来确定归属。
三、在/plus/增加一个PHP程序来调用这个查询:如下:
<?php
require_once("wangsirDAO.php");
header("Content-type: text/html; charset=gb2312");
$rootid=$_REQUEST["rootid"];
if (!isset($rootid))
{
echo "没有父节点";
return;
}
$dao=new wangsirDAO();
$sql="select id,reid,topid,sortrank,typename,typedir,concat('/plus/list.php?tid=',id)as url,defaultname,char_length(typedir)-char_length(replace(typedir,'/','')) as layer "." from dede_arctype where instr(getChildLst2table('$rootid'),trim(concat('|',id,'|')))>0 order by sortrank;";
$res=$dao->query($sql);
echo "<ul class='treecotainer'>";
$left=0;
foreach($res as $v)
{
$tname=$v["typename"];
$tid=$v["reid"];
$cid=$v["id"];
$layer=$v["layer"];
$s="";
for($i=0;$i<$layer;$i++)
{
$s=$s." ";
}
echo "<li class='submenuitem'><h4>".
$s."<img src='./images/box_icon1.png' border=0><a href='/plus/list.php?tid=".$tid."' style='color:#000;font-weight:bold'>".$tname."</a></h4>";
echo "</li>";
}
echo "</ul>";
?>
四、在页面模板中通过ajax来调用这个PHP页面来生成层次显示在该显示的地方。
相关推荐
和中国站长网一模一样,程序测试完整,不过里面的栏目和广告位太多了,非常适合老手使用 1. 上传所有文件到服务器,并设置根目录有写入权限, 2. 打开IE 输入http://你的网址/install/ 4. 下一步,,直接点继续,,, 5...
“自动更新”则是指插件能够根据预设规则,定期自动检查并更新网站的某些部分,如文章、栏目或者模板等。这有助于网站保持与外界信息同步,尤其对于需要频繁更新数据的网站,能极大地减轻管理员的工作负担。 插件中...
3. **生成Sitemap**:插件会自动扫描并生成XML格式的网站地图,包括首页、栏目页、内容页等所有重要页面。 4. **提交至百度**:生成的SitemapXML文件需要上传到网站根目录,并在百度搜索引擎的Webmaster工具中提交...
运行环境: PHP、MYsql [织梦5.7] 诸子百家安装: 1.解压上传所有文件到服务器“根目录”。 2.在install目录删除install_lock.txt和index.html;重命名index.php.bak为index.php!(部分源码已操作,跳过此步...
"修复了一些细节问题"可能指的是开发者或社区对DEDE CMS 5.7GBK版本进行的改进,解决了一些常见的性能瓶颈和冲突问题,比如生成静态页面的速度提升,可能涉及到缓存策略的优化、数据库查询的优化或者模板编译效率的...
该源码系统采用了织梦5.7网站系统来实现的,是一款诸子百家网站源码完整版 v5.7源码,适用范围: 小说网,文学网。使用说明:1.解压上传所有文件到服务器“根目录”。2.在install目录删除install_lock.txt和index.html...
主要包含页面:首页、素描图片、素描教程、素描入门等栏目 模板适合做素描、手绘、美术、书法、石器、玉石、艺术品、图片、qq、培训等网站内容。... 本源码基于织梦v5.7开发,模版已直接集成: 本套模板由52素描
自动生成首页,自动生成列表页,自动生成内容页,就相当于人工在每天更新,对于网站来说,排名上得相当的快,百度会认为你的网站每天都在更新 该插件本人于2020/3/1修改好,有5.7(gbk/utf两个版本),各位站长可以...
此外,织梦CMS还提供了dede标签生成工具,这是一大便利,用户可以根据实际需求自动生成相应的标签代码,极大地提高了开发效率。通过熟练运用这些标签,用户不仅可以创建出功能丰富的网站,还能在SEO优化上取得优势,...
1、本模板基于DEDECms 5.7 设计,5.5以上的版本都能使用。模板作者介绍:DedeCms特邀设计师,织梦官方论坛版主,多年从事网页设计,网站开发工作. 二、菜单功能 模板安装方法 1、将web文件夹里的文件覆盖到网站根...