Drupal 6
我正在使用node.tpl.php
模板文件中的<?php print $node->content['image_attach']['#value'] ?>
来检索图像并使图像链接到其节点。
如何仅获取图像路径?
编辑:没有相关的CCK字段。它是图像附加模块。请参阅 https://i.stack.imgur.com/1jYji.jpg
如果我从您的评论中理解正确,您可以通过 Drupal 6 的图像模块的图像附加子模块将图像附加到节点。
此子模块的工作方式是,当您将映像附加到节点时,它首先为该映像创建一个新节点,然后将该新节点附加到原始节点。其方式类似于"现代"实体引用在 Drupal 7 和 8 中的工作方式。
您可以通过转到admin/content/node
概述并看到列表中显示image
类型的新节点来确认附加映像会创建新节点。
检索该节点信息的最简单方法是从当前node
对象上的信息中获取它:
$paths = $node->image_attach[0]->images
这将检索映像的各种版本的一组文件路径。例如:
$original_path = $node->image_attach[0]->images['_original']
将链接到您的原始、未更改的图像,而:
$thumbnail_path = $node->image_attach[0]->images['thumbnail']
将链接到其缩略图版本(如果存在)。
您可能知道,映像附加子模块允许您向节点添加多个映像。在我的示例中,我通过使用[0]
盲目地拍摄了存在的第一个图像。如果你有多个图像,当然,你应该遍历image_attach
数组上存在的各种条目。
如果您希望检索有关附加到原始节点的每个映像节点的更多信息,您还可以加载实际节点本身并使用它:
$nid = $node->image_attach[0]->nid;
$image_node = node_load($nid);
在这里,您可以完全加载引用的节点并使其所有信息可用。
但是,后一种情况会导致不必要的开销,因为在完全加载节点时不存在额外的信息。原始 node
对象内的"图像附加"子模块已提供了完整的参考。只要知道图像附加实际上在水下创建额外的图像节点,您可以这样对待。