让Radioactivity模块帮你对内容智能排序

当我们为一个有大量内容的网站做架构设计的时候,开发者经常会面临这样的问题:我们要怎样实现一个灵活的内容排列顺序,或者说怎样使有趣的文章不会被新发布的内容淹没。

这里我们将和大家分享我们在遇到这类问题时找到的解决方案。

假设我们有一个有许多有趣文章的博客。用户阅读了之后留下了评论和评分(评分通过Fivestar模块实现)。这时就有了对文章列表排序的特殊需求,我们不希望在新文章排在顶部的同时,之前的热门文章渐渐的从推荐列表的底部消失。针对这个需求,Radioactivity模块是一个完美的解决方案。Radioactivity模块有一个抽象的概念叫做能量值(Energy),在这个概念的帮助下决定了内容的显示顺序。模块允许配置当内容被查看或没有人查看时能量值如何增加或减少。感谢对Rules模块的内置支持,我们可以扩展能量值的变化规则。

模块安装以后,可以在admin/structure/radioactivity配置。

Radioactivity后台

当添加一个Radioactivity类型的字段到任何内容类型时,我们可以为其进行个性化的配置,因为显然对不同的用户或内容类型,能量值的增减规则也应该是有所不同的。

让我们看看如何创建一个新的个性化的Radioactivity字段配置。首先,点击添加按钮。

Radioactivity添加后台

我们可以看到一个页面,能配置名字,指定如果内容没有变化,多长时间能量值会减半,以及能量值针对事件变化的频率,指定能量值级别(低于指定的能量值级别,能量值将不再继续衰减)。

有三种类型的设置模式:

  • 简单的(Simple) - 模块将仅仅增加或者减少能量值的数量。

  • 基本的(Basic) - 这种类型让你可以设置衰减周期,我们可以选择6小时,1天,2天,1周,1个月等等。

  • 高级(Advanced) - 在这个模式下,我们配置衰减周期可以精确到秒,还可以设置衰减到一定程度之后就不再继续衰减。

然后,这些设置还不够,为了获得完整的功能,我们还需要进一步配置:

  1. 为某个内容类型创建一个Radioactivity类型的字段,选择设置模式,设置能量值衰减规则。
  2. 为内容展示创建一个新的视图(view)或者使用现有的,将能量值字段添加到排序规则当中,然后添加几个其他的字段用于显示(例如: nid, title, radioactive energy等等),设置内容按照能量值倒序进行排序。

Alt text

特别需要注意的是Views里能量值字段的输出配置。模块提供了几个选项,其中最常用的是数字和百分比两个选项

在这些简单的配置下,现在能量值将在内容被查看时增加,并在指定的时间周期衰减为原来的一半。

对Rules模块的整合,可以让我们获得根据需要增加或减少能量值的能力,例如,配合Fivestar模块,我们可以基于以下公式创建一个增加能量值的规则:

Energy = Energy' * 内容评分数
(Energy' - 是之前的能量值)

并且,这仅仅是Radioactivity模块提供的多种可能性中的一种。

更多信息请查看模块文档,访问模块官网首页,或者去看看一个视频教程(需翻墙,你懂的)

请找一个环境来实际看看Radioactivity模块的效果,另外为了这个目的,推荐你用一个非常流行的发行版Drupal Commons,这个发行版也用到了这个模块。

译者:理查