Drupal 6
Я использую <?php print $node->content['image_attach']['#value']?>
В node.tpl.php
шаблона node.tpl.php
чтобы получить изображение и связать изображение с его узлом.
Как я могу получить только путь к изображению?
EDIT: Не существует соответствующего поля CCK. Это модуль прикрепления изображения. См. Http://imgur.com/YzyUGZU
Если я правильно понимаю ваши комментарии, вы присоединяете изображение к узлу через подмодуль Image Attach модуля Drupal 6 Image.
Как работает этот подмодуль, когда вы прикрепляете изображение к своему узлу, он сначала создает новый узел для этого изображения и присоединяет этот новый узел к вашему исходному узлу. Аналогично тому, как "современные" сущности ссылаются на 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']
Будет ссылаться на его миниатюру (если имеется).
Как вы знаете, подмодуль Image Attach позволяет вам добавлять несколько изображений на ваш узел. В моем примере я слепо взял первое изображение, используя [0]
. Если у вас есть несколько изображений, вы должны, конечно, перебирать различные записи, присутствующие в вашем массиве image_attach
.
Если вы хотите получить еще больше информации о каждом узле изображения, прикрепленном к исходному узлу, вы также можете загрузить фактический узел и работать с ним:
$nid = $node->image_attach[0]->nid;
$image_node = node_load($nid);
Здесь вы полностью загружаете ссылочный узел и имеете всю доступную информацию.
Последний случай, однако, вызовет ненужные накладные расходы, поскольку при полной загрузке узла нет дополнительной информации. Полная ссылка уже предоставляется подмодулем Image Attach внутри исходного объекта node
. Просто знайте, что Image Attach фактически создает дополнительные узлы изображения под водой, которые вы можете рассматривать как таковые.
regex
для анализа пути. Хотя само regex
кажется магией, это магия темной стороны. Часто говорят: «У программиста, который использует regex
для решения своей проблемы, теперь есть две проблемы». , В вашем случае, например, вы не сможете захватывать разные версии изображения. Или, если базовый API изменяется, ваше regex
может больше не соответствовать. Если есть четкое решение (в данном случае через API), всегда предпочитайте это использованию regex
(они должны быть последним, отчаянным средством).
image_attach
? Это полеfile upload
илиimage field
? Вы нормально, внутри шаблона, должны быть в состоянии загрузить путь поля изображения через имя машины месторождения (field_with_image
в этом воображаемом случае):$field_with_image[0]['filepath']
.