账号通
    

账号  

密码  

19251

查看

23

回复
主题:[分享][分享]V5.5x 科汛sql标签实现树型三级,四级等导航 [收藏主题] 转到:  
科汛官方 当前离线

47268

主题

145

广播

405

粉丝
添加关注
级别:管理员

用户积分:101604 分
登录次数:7935 次
注册时间:2006/12/7
最后登录:2023/12/14
科汛官方 发表于:2009/4/15 11:05:00   | 显示全部帖子 查看该作者主题 楼主 
科汛在线商城系统(NET)

在商业服务区有用户这样需求,考虑到这方面应用较广泛就此发布出来共享



原理还是利用强大的sql标签功能,参考了http://bbs.kesion.com/dispbbs.asp?boardid=41&Id=68939的方法.但由于他的三级是调用文章,而有时我们需要调用的三级仍然是栏目.



先说说三级的实现



建三个标签,我取名为三级栏目,二级栏目,一级栏目





1、下载文件夹dtree到网站根目录下images文件夹里:



 下载信息  [文件大小:8.82 KB ]
 点击查看原图 点击下载文件:dtree





2、在需要调用树型菜单的模板页<head></head>之间调用:

  1. <link href="images/dtree/dtree.css" type=text/css rel=StyleSheet>

  2. <script type="text/javascript" src="images/dtree/dtree.js"></script>





接下来为我建的标签:分别如下



标签名称:三级栏目

  1. sql语句:SELECT TOP 15 ID,FolderName,TN FROM KS_Class Where TN='{$Param(0)}' ORDER BY FolderOrder

循环体:

  1. [loop=15]
  2. d.add({$Field(ID,GetInfoUrl,100,2)},{$Param(0)},'{$Field(FolderName,Text,0,...,0,)}','{$Field(ID,GetInfoUrl,100,1)}');
  3. [/loop]



标签名称:二级栏目

sql语句:

  1. SELECT TOP 15 ID,FolderName,TN FROM KS_Class Where TN='{$Param(0)}' ORDER BY FolderOrder



循环体:

  1. [loop=15]
  2. d.add({$Field(ID,Text,0,...,0,)},{$Param(0)},'{$Field(FolderName,Text,0,...,0,)}','{$Field(ID,GetInfoUrl,100,1)}');

  3. {SQL_三级栏目({$Field(ID,GetInfoUrl,100,2)})}

  4. [/loop]



标答名称:一级栏目

sql语句:

  1. SELECT TOP 15 ID,FolderName,TS,TN FROM KS_Class Where  tj=1 ORDER BY FolderOrder


循环体:

  1. <script type="text/javascript">  
  2.        <!--   
  3.        d = new dTree('d');   
  4.        d.add(0,-1,'全站导航');
  5. [loop=15]
  6.        d.add({$Field(ID,Text,0,...,0,)},0,'{$Field(FolderName,Text,0,...,0,)}','{$Field(ID,GetInfoUrl,100,1)}');
  7. {SQL_二级栏目({$Field(ID,Text,0,...,0,)})}
  8. [/loop]
  9.        document.write(d);
  10.        //-->  
  11. </script>






调用时:{SQL_一级栏目()}

 
  支持(1) | 反对(0) 回到顶部顶端 回到底部底部
科汛官方 当前离线

47268

主题

145

广播

405

粉丝
添加关注
级别:管理员

用户积分:101604 分
登录次数:7935 次
注册时间:2006/12/7
最后登录:2023/12/14
科汛官方 发表于:2009/4/15 11:08:00   | 显示全部帖子 查看该作者主题 沙发 

再说说四级的实现.我们只需改下上面标签的三级栏目标签循环体及增加一个四级栏目标签即可.


 


步骤一,二同上所示


 


 


接下来就是建标签


 


标签名称: 四级栏目


sql语句:SELECT TOP 15 ID,FolderName,TN FROM KS_Class Where ChannelID=1 and TN='{$Param(0)}' ORDER BY FolderOrder


循环体:


[loop=15]
d.add({$Field(ID,GetInfoUrl,100,2)},{$Param(0)},'{$Field(FolderName,Text,0,...,0,)}','{$Field(ID,GetInfoUrl,100,1)}');
[/loop]


 


标签名称:三级栏目


sql语句:SELECT TOP 15 ID,FolderName,TN FROM KS_Class Where ChannelID=1 and TN='{$Param(0)}' ORDER BY FolderOrder


循环体:


[loop=15]
d.add({$Field(ID,Text,0,...,0,)},{$Param(0)},'{$Field(FolderName,Text,0,...,0,)}','{$Field(ID,GetInfoUrl,100,1)}');


{SQL_四级栏目({$Field(ID,GetInfoUrl,100,2)})}
[/loop]


 


 


标签名称:二级栏目


sql语句:SELECT TOP 15 ID,FolderName,TN FROM KS_Class Where ChannelID=1 and TN='{$Param(0)}' ORDER BY FolderOrder


循环体:


[loop=15]
d.add({$Field(ID,Text,0,...,0,)},{$Param(0)},'{$Field(FolderName,Text,0,...,0,)}','{$Field(ID,GetInfoUrl,100,1)}');


{SQL_三级栏目({$Field(ID,GetInfoUrl,100,2)})}
[/loop]


 


 


标签名称:一级栏目


sql语句:SELECT TOP 15 ID,FolderName,TS,TN FROM KS_Class Where ChannelID=1 and TN='0' ORDER BY FolderOrder


循环体:<script type="text/javascript"> 
       <!--  
       d = new dTree('d');  
       d.add(0,-1,'栏目导航');
[loop=15]
       d.add({$Field(ID,Text,0,...,0,)},0,'{$Field(FolderName,Text,0,...,0,)}','{$Field(ID,GetInfoUrl,100,1)}');
{SQL_二级栏目({$Field(ID,Text,0,...,0,)})}
[/loop]
       document.write(d);
       //--> 
</script>


 


在需要调用的模板里调用{SQL_一级栏目()}即可


 


 


 


 


 


特别说明:


1.所有的sql标签都要选择非ajax方式输出


2.更多级栏目导航原理都是一样的.但建议一般栏目不要设置得太深,一方面对搜索引擎不友好,另一方面栏目太深可能运行效率也会有所下降,一般以二级,三级为佳


 


 


 


 


 

 
  支持(1) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.07813秒 powered by KesionCMS 9.0