针对特定术语的Drupal自动词汇表

时间:2010-01-08 20:04:39

标签: drupal module views glossary

问候所有帮助者!

我最近一直在阅读和测试Drupal功能,我发现这个CMS非常具有可扩展性和趣味性。我开始使用主题,观点,内容类型等...但我正在寻找在互联网上找不到的东西。

背景信息:我正在为一个非营利组织创建一个新网站,以庆祝其成立10周年。主要是,这个网站是为了一个在其规则中具有不同能力的游戏。我想为不同的能力创建一个词汇表。这不是一个很大的挑战。

这就是我要归档的内容: 有了这个词汇表,我希望每次在内容中遇到能力描述。

能力词汇表(列表): http://conflitseternels.net/index.php?id=habiletes

每次在内容中遇到一种能力时,它都会链接到它的描述。

如果你可以指导我完成这个问题,我将非常高兴!

谢谢你,Will

1 个答案:

答案 0 :(得分:0)

我找到了一个似乎做类似的模块:Glossify(http://drupal.org/project/glossify)。我自己从未使用过,但值得一试。如果Glossify不适合您,请考虑帮助改进模块,或自己编写自定义模块。

从理论上讲,有两种方法可以将单词转换为链接:保存节点或显示节点时。在这两种情况下,您将检查节点中的每个单词,看它是否与其中一个单位匹配。两种解决方案都有优点和缺点。在选择解决方案时,您必须密切关注性能,因为搜索和替换操作会占用大量系统资源,尤其是当您拥有许多用户,长文本和大量功能时。

保存节点时更改内容可以通过实现hook_nodeapi($ op = presave)在Drupal中完成。在将内容写入数据库之前,您的nodeapi函数就是它的魔力。优点:每个节点只执行一次搜索和替换。缺点:添加新功能时,现有节点中不会添加新链接(除非您重新保存节点)。

在查看节点时更改内容可以通过实现hook_nodeapi($ op = view)或hook_filter来完成。链接不会保存在数据库中,而是在每次用户查看节点时即时添加。优势:新功能也将在之前保存的节点中链接。缺点:性能,搜索和替换必须在每个节点视图上运行(尽管缓存可能会部分地解决这个问题)。