Drupal 7:为每个节点创建一个分类术语,并使用节点标题作为术语名称

时间:2011-03-09 15:37:57

标签: drupal drupal-7 drupal-taxonomy

是否通过使用规则或某些自定义代码执行此操作? 我确实尝试使用规则,但我找不到添加新术语的方法并将名称设置为节点标题,因为[node:title]标记不可用。

我知道这可以使用NAT模块,但是这个模块改变分类术语层次结构的方式如果你添加一个术语参考字段,使用相同的分类词汇表,这会破坏我想要的整个目的做。

3 个答案:

答案 0 :(得分:2)

使用hook_node_insert(),您可以在保存节点时添加一些操作。

只要您在此步骤中拥有所有节点信息,就不会同时创建分类术语。

请注意,还有一个hook_node_update()功能。

答案 1 :(得分:2)

乍一看,我有两个建议:

  • 在Drupal 7中,您可以为每个词汇创建字段,因此,每次创建“one term with fields”而不是创建“one node with fields + one term”会更有趣吗?

  • 否则,无论实体需要通过匹配的分类术语引用您的节点,都可以直接引用该节点(使用“Node Reference”字段),这样您就不需要保持分离与您的节点列表并行的词汇表。

但是如果你仍想为每个节点创建一个术语,那么你应该使用Haza提到的钩子。

答案 2 :(得分:1)

这并不像以上帖子那么简单你会相信。如果您想要保持术语名称和节点标题同步的功能,请尝试使用NAT模块。虽然我必须编写自己的模块来执行操作系统所要求的操作。

如果您使用分类法构建所有内容的图形结构(类似于RDF),那么使用节点字段构建一个术语是行不通的。当然,您可以为所需的每种内容类型创建一个新的词汇表包,但功能类似于

taxonomy_get_parents_all()
taxonomy_get_tree() 

是用单个词汇表编写的,并且使用不同的指向系统(引用与任何关系字段在术语中调用 - 设置父级)

由于核心分类法功能与词汇间关系有限,它仍然比og或引用具有更好的效果。关系模块是理想的,但到目前为止,社区支持的方式几乎无关紧要。关系应该进入核心imo。