如何在Drupal 7中使用nodeload打印引用的节点字段?

时间:2011-10-07 13:32:41

标签: drupal drupal-7

我在一个节点中,我使用“引用”模块创建了一个字段,以将一种内容类型与另一种内容类型相关联。现在...... 2内容类型是“PRACTICE”(具有标题的节点,描述ecc ...)和“技术”,只有徽标图像的节点。我想在node - practise.tpl.php中显示相关的徽标。我怎么能在DP7中做到这一点?

1 个答案:

答案 0 :(得分:0)

我不会直接在模板文件中执行此操作,而是最好在主题的template.php文件中实现hook_preprocess_node以将徽标作为变量传递。逻辑是相同的两种方式:

function mytheme_preprocess_node(&$vars) {
  $node = $vars['node'];

  if ($node->type == 'practise') {
    $related_node_nid = $node->field_related_field_name['und'][0]['nid'];
    $related_node = node_load($related_node_nid);

    $logos = '';
    foreach ($related_node->field_logo_field_name['und'] as $img) {
      $logos .= theme('image', array('path' => $img['uri'], 'alt' => 'Alt text'));
    }
    $vars['related_logos'] = $logos;
  }
}

然后在您的template.php文件中,您将拥有变量$logos,其中包含您在preprocess函数中构建的徽标列表。显然,您可以根据自己的需要设置HTML,并且需要为field_related_field_namefield_logo_field_name交换正确的字段名称。