Drupal 6 - 节点附加图像路径

Drupal 6 - node attached image path

Drupal 6

我在 node.tpl.php 模板文件中使用 <?php print $node->content['image_attach']['#value'] ?> 来检索图像并获取链接到其节点的图像。

如何只获取图片路径?

编辑:没有相关的 CCK 字段。它是图像附加模块。请参阅 http://imgur.com/YzyUGZU

如果我从您的评论中理解正确,您可以通过 Drupal 6 Image 模块的图像附加子模块将图像附加到节点。

此子模块的工作方式是,当您将图像附加到节点时,它会先为该图像创建一个新节点,然后将该新节点附加到您的原始节点。与 "modern" 实体引用在 Drupal 7 和 8 中的工作方式类似。

您可以通过转至 admin/content/node 概览并在列表中看到类型为 image 的新节点来确认附加图像会创建一个新节点。

检索该节点信息的最简单方法是从当前 node 对象的信息中获取它:

$paths = $node->image_attach[0]->images

这将检索到图像的各种版本的一组文件路径。例如:

$original_path = $node->image_attach[0]->images['_original']

将 link 到您未更改的原始图像,而:

$thumbnail_path = $node->image_attach[0]->images['thumbnail']

将 link 到其缩略图版本(如果存在)。

您可能知道,Image Attach 子模块允许您将多个图像添加到您的节点。在我的示例中,我使用 [0] 盲目拍摄了第一张图片。如果你有多个图像,你当然应该循环遍历 image_attach 数组中的各个条目。

如果您希望检索有关附加到原始节点的每个图像节点的更多信息,您还可以加载实际节点本身并使用它:

$nid = $node->image_attach[0]->nid;
$image_node = node_load($nid);

在这里您完全加载引用的节点并使其所有信息可用。

然而,后一种情况会导致不必要的开销,因为在完全加载节点时没有额外的信息存在。原始 node 对象中的图像附加子模块已经提供了完整的参考。只知道 Image Attach 实际上会在水下创建额外的图像节点,您可以这样处理。