在Drupal中,如何在另一个节点中包含一个节点?

时间:2010-12-16 03:54:46

标签: drupal

假设我有两种内容类型,Proposals和Actions。 Proposal将包含多个Actions,但Actions也应该独立可见。每个都包含几个文本字段和链接。

提案和操作都应该是节点吗?我该怎么做呢?

4 个答案:

答案 0 :(得分:3)

本身在drupal中没有父/子关系。您可以使用CCK的节点参考和一些创意视图来构建此类内容。

答案 1 :(得分:2)

有很多方法可以做到这一点,就像Drupal中的大多数事情一样,但如果是我,我会这样做:

  1. 在CCK中构建节点关系
  2. 在模板文件
  3. 中加载“child”,即与node_load()相关的节点
  4. 从新加载的节点中拉出所需的位,然后在“父”节点中将其打印出来
  5. 编辑:是的,他们都应该是节点。

    如果您使用此方法,那么一旦设置完毕,您将需要进入提案并选择您希望“包含”(即链接到)的操作。

    然后打印出来,你会想要一些类似于

    的代码
    <?php
    $actions = $node->field_name_of_your_actions_link_field;
    
    foreach($actions as $action){
      $anAction = node_load($action[nid]);
      $output .= $anAction->the_bit_you_need_to_get[0][content];
    }
    ?>
    

    当然变量名称会有所不同,但希望这会指向正确的方向

答案 2 :(得分:0)

尝试使用视图块显示。您需要为视图创建一个块显示,以显示所有(或您需要多少)与相应Proposal节点关联的Actions节点(您需要将视图参数设置为类似:Nid - 提供默认参数 - 节点ID来自URL)。然后将此块附加到代表您的提案页面的页面。

答案 3 :(得分:0)

您是否查看了模块视图?它非常强大,几乎可以显示任何内容。

如果您确实使用了视图,那么您将执行与此类似的操作:两种内容类型,以及将操作与提案绑定的分类词汇表(因此,将术语引用字段放在操作内容类型上)。

然后,您将创建一个页面视图,该视图将按内容类型提议进行过滤。您可以添加提案中的所有字段,并对它们进行排序并执行css以使其显示您想要的效果。

然后,您将拥有另一个视图,这次是一个块,这将列出您的Actions,以便您按该内容类型进行过滤。然后,您将添加上下文过滤器以获取已加载的节点的分类。在提案页面上显示此块后,它应显示其操作的链接。

我认为这基本上涵盖了它,如果你遇到任何让我知道的事情,实际上这样做有点难以解释。

观点很棒。这有点令人生畏,但一旦你掌握它很容易使用。如果您已经知道这一点我很抱歉,我错过了您的要求。