2010-01-08 72 views
0

问候所有帮手!Drupal自动词汇表特定术语

我一直在阅读和测试Drupal功能最近,我觉得这个CMS非常可扩展和有趣。我开始处理主题,视图,内容类型等等,但是我正在寻找一些我在互联网上找不到的东西。

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

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

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

每次一个能力在内容中遇到,它链接到它的描述。

如果你能指导我完成这个问题,我会非常高兴!

谢谢你,威尔

回答

0

我发现一个模块似乎做类似的东西:Glossify(http://drupal.org/project/glossify)。我从来没有用过它,但值得一试。如果Glossify不适合您,请考虑帮助改进模块,或者自己编写自定义模块。

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

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

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

+0

谢谢,我会看看Glossify模块,不知道它存在。如果它不起作用,我自己也会做一个模块,但这意味着更长的开发时间。我会告诉你。 – wiooz 2010-01-08 23:37:20

+0

不客气。我想阅读关于您使用Glossify的经历,所以请提前致谢。如上所述,如果它不完全符合您的要求,请考虑在进行自定义路线之前对模块做出贡献。这样,你不仅解决了自己的问题,还回馈社区。 – marcvangend 2010-01-09 11:08:47

+0

感谢您的评论,我终于放下了Drupal,并且我以自己的方式编写了该网站。 Drupal是一个良好的可扩展性和相对较好的CMS,但有时候,定制和自制是遵循的路径! :) – wiooz 2010-02-03 00:25:02