其实分类就是说的关于无限分类这个老话题了
关于“无限分类”实现的方法其实蛮多的,我的理解无非是三种:递归,AJAX,亲缘关系。从效率上讲,后两种交第一种好些;从实现难度上讲,最后一种交优。
RUIBlog的分类使用的就是递归的思想来实现的。这个分类实际上就是对网站栏目的一个管理,只不过你可以在栏目下面无限添加子栏目罢了。ps:谁会没事儿给网站弄那么多栏目呢,我觉得只是叫法上好听罢了,显得高端。
代码贴的挺多,千万不要被这么多的代码给虎了,我在显示分类的时候用php拼接生成了前台所需的html,我觉得用php来控制前台需要展现什么样的html更为方便。在RUIBlog中分类的表需要和其他的一些表进行关联什么的,在字段上多了一些,其用递归实现无限分类只用到三个字段就可以了,如下:
id:主键
name:分类名称
parent:上级分类id
大致的实现原理如下:
根据条件调用出顶级分类,然后做循环,使用每个顶级分类的id去找子分类(即调用getSunList方法),在getSunList方法里面使用迭代,这样就可以很方便的找出每个子分类下面的子分类了。
ps:代码多了些,大家可以点击下面网址查看哦
http://www.appryan.com/2014/05/05/ruiblog-category/
或者下载附件
代码.zip ( 9.25 KB 下载:75 次 )
AD:真正免费,域名+虚机+企业邮箱=0元