博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

欣然随风的blog

蹲在墙角看蚂蚁...
  xrsf.cublog.cn

关于作者
姓名:欣然随风
职业:PHPer
年龄:26
位置:成都
个性介绍:未婚
|| << >> ||
我的分类


(Adodb)无级分类(无递归)+无级JS联动+树状显示+导航输出+批量移动

<?php
/**
 * 程序:无级分类(无递归) + 无级JS联动 + 树状显示 + 导航输出 + 批量移动
 * 作者:欣然随风(QQ:276624915)xrsf.cublog.cn
 * 时间:2008-6-17 16:39
 *
 * [支持] http://blog.chinaunix.net/u/12228/showart_86263.html
 *
 * [更新]
 * 本代码早于06年编写,因近期项目需要,对其进行了大量优化和完善,调用更加简单方便,
 * 利用本代码,可轻松实现如taobao、阿里巴巴等分类的展现。
 *
 * [功能]
 * 1.无限分类,分类输出无递归,以order by排序,PHP排序时间复杂度为零
 * 2.无限JS联动,支持下拉、列表菜单展示;可设置:默认项、是否必选
 * 3.分类输出,可设置输出起点、是否输出后继子类、自定义树状输出样式
 * 4.同级分类输出
 * 5.目录导航,(形如:首页 -> 分类一 -> 分类二 -> 分类三 ……)
 * 6.分类批量添加、批量移动、关联资源同步更新
 *
 * [重要]
 * 1.分类建好后,在添加资源(如文章内容)时,应一并保存奴属分类的关系树
 * 作用:输出资源列表时可用“关系树字段 LIKE '关系树%”取得后继子类中的内容
 * 当分类移动后也将通过此字段批量移动资源内容
 * 2.执行分类移动操作前,务必设置好sort_move函数的post_table参数,否则分类与内容将失去关联
 * 3.位宽。因字段宽度限制,"无级分类"仅指程序上的无级算法,实际应用时需指定分类标识所占字段宽度
 * 若宽度为2,取值从10~99,即每个分类可建90个子类,
 * 若宽度为3,取值从100~999,即每个分类可建900个子类,以此类推。
 * 位宽一但设置不可更改,否则将打乱分类关联!一般系统值设为2就足够了。
 *
 * [应用前]
 * 1.载入ADODB数据库操作类,实例对象名:$_conn;
 * 2.定义表名常量:TABLE_SORT
 * 3.定义位宽常量:WIDTH_MAX
 * 4.PHP版本:5.x
 *
 * [表结构参考]
 * sort_id 自增ID
 * sort_tree 关系树(资源内容指向此作为奴属,格式如:10:11:12:……,字段宽度:位宽*分类级数+分类级数-1)
 * sort_base 根分类(字段宽度:取位宽)
 * sort_son 子分类(字段宽度:取位宽)
 * sort_tier 分类级数(字段宽度:1,若分类有10级以上设2,100级以上设3,… 以此类推,取级数宽度)
 * sort_name 分类名称
 */

 

添加分类效果图:

 

编辑分类效果图:

 
文件: sort.rar
大小: 7KB
下载: 下载

包含:
类文件1个
DEMO文件2个
JS文件2个
SQL文件1个

发表于: 2006-03-16,修改于: 2008-08-26 09:56,已浏览3200次,有评论20条 推荐 投诉


网友评论
网友: 国际村的... 时间:2006-03-21 09:17:31 IP地址:210.82.103.★
不错.谢谢.

网友: hlgao 时间:2006-03-22 14:38:21 IP地址:218.28.35.★
看你的介绍了,感觉很不错,下来研究研究!

网友: webbus.cn 时间:2006-03-29 19:29:18 IP地址:222.64.87.★
先顶一下,一定是好东东,还没有看,呵呵

网友: 时间:2006-03-29 20:20:43 IP地址:61.149.114.★
不错,顶你

网友: 本站网友 时间:2006-05-11 15:54:27 IP地址:218.81.105.★
Fatal error: Call to a member function GetArray() on a non-object in D:\web\test\class_sort.php on line 353

第一次测试时出现这种错误,是数据库没有数据的原故还是别的原故.请楼主提点一下.

网友: 欣然随风 时间:2006-05-11 16:57:13 IP地址:211.137.96.★
常见问题:很多网友遇到同上的问题。是由于adodb未开启字符串作下标。
在加载adodb后跟上下边这句:
$ADODB_FETCH_MODE= ADODB_FETCH_ASSOC;

网友: 布鞋 时间:2006-05-17 13:23:07 IP地址:218.59.137.★
能否提供一个不使用模版,只使用adodb的版本,我想这样适用的范围会更广泛。我的邮箱:ego_xu@126.com。

网友: 欣然随风 时间:2006-05-17 16:13:37 IP地址:211.137.96.★
自己抠吧,又没多少东西。

网友: 文明猪 时间:2006-05-23 01:03:47 IP地址:202.180.140.★
我在firefox下运行没出问题,但在ie下有问题,就是不能出现下拉菜单,我没有用smarty

网友: 文明猪 时间:2006-06-12 09:15:37 IP地址:202.180.141.★
我将此程序用到了我正在编写的cms中,为了感谢作者的劳动,也为了给其他朋友做点贡献,我将它与xtree整合,用于树状菜单。
方法:
①下载xtree: http://webfx.eae.net/dhtml/xtree/
②在要添加菜单的地方包含进put_class.js文件(分类的js文件)
③将xtree的tree.js改成:
if (document.getElementById) {
    var tree = new WebFXTree('Root');
    var dic=eval(arrType),objValue="";
    var intDepth,strTitle,strValue,j;
    var olditem;
    var objarr = new Array();
    tree.setBehavior('classic');
    for(var i=0;i<dic.length;i++){
        intDepth=dic[i][0];strTitle=dic[i][1];strValue=dic[i][2];
        var kitema = new WebFXTreeItem(strTitle,'?id='+strValue);
        objarr[strValue]= kitema;
        if(strValue.length>3){
            var pname = strValue.substring(0,strValue.length-3);
            kitem = objarr[pname];
        }else{
            var kitem= tree;
        }
        kitem.add(kitema);
    }
    document.write(tree);
}
成功!
有问题可以和我交流:wenmingpig@msn.com(邮件,msn不常开)

网友: doudoukiki 时间:2006-08-29 06:27:44 IP地址:210.21.43.★
怎么看不到文章内容的?

网友: shaojiang 时间:2006-09-12 16:40:55 IP地址:59.58.173.★
站长不知能否改为PHP4.4的

网友: 菜鸟 时间:2006-11-21 20:08:31 IP地址:220.189.211.★
好东西啊
俺菜鸟学习了

网友: douchuanlei 时间:2007-06-06 13:43:55 IP地址:125.37.187.★
这是什么东西

网友: lonestone 时间:2007-07-09 20:54:23 IP地址:58.49.210.★
下载研究,楼主精神值得学习。
准备用到实际中,谢谢楼主!

网友: 本站网友 时间:2008-08-10 00:06:37 IP地址:120.66.65.★
您好,谢谢楼主。  我这里下拉框无法显示,提示'arrType' 未定义,请问这是为什么?

网友: 本站网友 时间:2009-01-18 00:25:01 IP地址:115.193.166.★
随风大哥,按照<SCRIPT language=JavaScript>drawSelect(null,"arrType",0,"tree","","");</SCRIPT>调用了,如果表单提交怎么获取参数的值呢?谢谢

网友: 本站网友 时间:2009-05-09 16:39:30 IP地址:124.93.243.★
超级顶,帮老大忙了

网友: JXU 时间:2009-05-25 16:26:07 IP地址:221.9.16.★
帅~!
无限顶~!
随风大哥,谢了

网友: 本站网友 时间:2009-06-06 17:04:26 IP地址:218.25.20.★
感谢分享,研究研究!!

 发表评论