Вывод подписи (title, alt) под каждой картинкой в поле типа ImageField Drupal 7

Главные вкладки

Аватар пользователя G.A.S. G.A.S. 4 октября 2011 в 2:52

Приветствую!

Нашел решения своей проблемы для D6(http://www.drupal.ru/node/36242). А вот с D7 - беда.

Скопировал в мою тему в /templates и назвал field--field_NAME.tpl.php

<?php
<div class="<?php print $classes; ?> clearfix"<?php print $attributes?>>
  <?php if (!$label_hidden) : ?>
    <div class="field-label"<?php print $title_attributes?>><?php print $label ?>:&nbsp;</div>
  <?php endif; ?>
  <div class="field-items"<?php print $content_attributes?>>
    <?php foreach ($items as $delta => $item) : ?>
      <div class="field-item <?php print $delta 'odd' 'even'?>"<?php print $item_attributes[$delta]; ?>><?php print render($item); ?></div>
        <?php endforeach; ?>
    </div>
</div>
?>

А дальше:

ПРОБЛЕМА: Нужно вывести Title поля изображения подписью внизу к каждой картинке.

Комментарии

Аватар пользователя Jean Jack Jean Jack 4 октября 2011 в 7:08

А среди стандартного функционала (или модуль какой-нибудь) не появилась такая возможность?
Надо уточнить, мне негде попробовать, но кажется, что здесь $item_attributes[$delta] храняться значения [title].

Аватар пользователя G.A.S. G.A.S. 27 ноября 2011 в 6:04

"Sywooch" wrote:

Попробуйте вот так:
<?php print $item['#item']['alt']; ?>
<?php print $item['#item']['title']; ?>

Спасибо, но уже вывел через вьюс. (там оно очень просто).

Аватар пользователя Arturus Arturus 11 апреля 2014 в 9:54

В модуле field в папке theme лежит файл field.tpl.php. Копируете его себе в тему. Далее копируете его ещё раз туда же, переименовав в field--имя-поля.tpl.tpl. Таким образом в корне темы лежат и field.tpl.php и field--имя-поля.tpl.php.

Для того, чтобы вывести, например, атрибут alt, содержимое field--имя_поля.tpl.php должно быть таким:

<div class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
  <?php if (!$label_hidden) : ?>
    <div class="field-label"<?php print $title_attributes; ?>><?php print $label ?>:&nbsp;</div>
  <?php endif; ?>
  <div class="field-items"<?php print $content_attributes; ?>>
    <?php foreach ($items as $delta => $item) : ?>
      <div class="field-item <?php print $delta % 2 ? 'odd' : 'even'; ?>"<?php print $item_attributes[$delta]; ?>><?php print render($item); ?></div>
      <div class = "field-alt"><?php print $item['#item']['alt']; ?></div>
    <?php endforeach; ?>
  </div>
</div>