OpenCms 中实现文章分类功能

 以前在 OpenCms 中实现文章分类的功能,一直都是在 VFS 中建立对应的目录来实现的.这样方便实现,也是很多人习惯使用的方法.这里就不在介绍了.

很早就听说 OpenCms7 中有了内容的分类功能, 也很早就看到 马宣的个人网站 使用这个功能做了自己基于 OpenCms 的 BLOG ,可惜一直没有时间好好研究一下.今天看看 OpenCms 自己在 TemplateTwo 中的实现,追踪了一下代码.大致明白了这个用法.

在 OpenCms7 中的 "/system/" 目录下增加了一个 "categories" 目录,这个目录就是存放整个站点的内容分类结构的.
可以建立类似这样的目录:

 

 

做为分类目录.

然后在写文章的时候,可以指定资源的 Assign Categories ,对资源进行分类.譬如:

 


 

 在这里,可以同时指定属于几个分类,就象我在 sohu 的 Blog 上写文章可以同时指定最多5个关键词一样.这样就可以以不同的关键词做为参数读取内容列表了.

在 OpenCms7 中也增加了这样一个 collector —— CmsCategoryResourceCollector,用它来实现按照分类得到资源列表.这个类的 List allKeyValuePairFiltered(CmsObject cms, String param) 方法就可以返回期望的列表.

具体在使用的时候还是比较容易的.只需要和以前一样使用 <cms:contentload> 标签就可以了.所不同的是,在这里需要指定的除了 collector的属性需要是 "allKeyValuePairFiltered" 之外,还需要按照指定的分类,就是在 param 中增加 categoryTypes=[category1,category2,...]来指明.当然,你还可以同时指明需要找的是那个目录下面的、是否包括子目录、列表排序方法是按照发布时间还是分类、排序是正序还是倒序、列表最大显示多少项目……

当然了,可能的话,可以象下面一样开发自己的配置文件,这样使用起来就更方便了。

 

 

=================================
个人觉得,这样做分类功能要比纯粹使用目录来分类好的多。不知道 maxuan 是不是这样实现的呢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值