Drupal映射分类术语到每个节点的一个特定角色

时间:2014-10-20 15:23:02

标签: drupal drupal-7 drupal-modules drupal-taxonomy drupal-nodes

我需要实现的结构:

  1. 节点引用类型为person的多个分类术语。
  2. 每个节点扮演一个特定角色。
  3. 此角色与其他节点上的分类术语角色不同。
  4. 分类术语不必指定角色,因此角色也可以为空。
  5. 更好地描述所需行为的示例:

    1. 电影包含分类术语作为演员。
    2. 演员在节点A上扮演'Magneto'角色,在节点B上扮演角色'Gandalf'。
    3. 我现在可以想到的可能的实现方式:

      1. 使用以下字段将自定义表nid_tid_role_mapping添加到drupal数据库:nid,tid,role_name
      2. 挂钩到node_presave并获取所有演员分类术语。
      3. 只获取以下格式的“演员姓名(角色)”(f.e。“Ian McKellen(Magneto)”)
      4. 将nid,tid和role添加到表nid_tid_role_mapping
      5. 添加角色,nid和tid后,将分类术语重命名为“Actor Name”。
      6. 在节点编辑表单中添加一个特殊表,其中列出了此节点的术语名称/角色映射。
      7. 我的方法对我来说似乎有点矫枉过正。有没有一个模块可以帮助我这个?我找不到任何东西......

1 个答案:

答案 0 :(得分:0)

如何创建两个词汇表,一个“演员”和一个“字符”词汇表。 “电影”类型的节点引用“字符”(可能是“演员”),词汇“字符”引用“演员”词汇。

或者另一种方法是创建节点类型而不是分类术语,并使用“entityreference”模块在它们之间创建关系。如果你想避免获得几个“James bond”术语(每个演员一个),这可能是一个更好的解决方案。

在过去,我已经尝试了“关系”模块,但它是为了我的需求而复杂,而不是像“entityreferences”那样受欢迎