Как вывести в анонсе один рисунок?

Ошарашенный заказчик ломится в ICQ, мол, почему загрузил 20 изображений и все они полотном вышли на главной странице. Ну, первой реакцией было дать совет - "не нужно загружать больше одного рисунка" ;) Но это слишком просто. Методом проб и ошибок нашлось довольно интересное решение и без использования заезженного views.

Например, тип приколов именуется 'joke'; в тип записи node-joke.tpl.php вписано 6 строк каких-то каракуль.
<?php if ($page == 0): ?>
<?php print $node->название_поля_картинок[0]['view']; ?>
<?php endif; ?>
<?php if ($page == 1): ?>
<?php print $content?>
<?php endif; ?>

  • Если главная страница, то показываем первый загруженный элемент;
  • field_ххх - название CCK-поля у типа записи joke; выводим тот самый первый рисунок из множества загруженных;
  • Если внутренняя область ноды, то показываем всё полотно картинок;

Вот и всё. Все довольны, все свободны.

Версия Drupal: 

Комментарии

Код будет обрезать весь content. Если например, есть видео и тексты, тогда добавим:
<?php print $node->название_поля_видео[0]['view']; ?>
<?php print $vars['content'] = rtrim(strip_tags($node->teaser)); ?>

Ляпнуть

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • E-Mail адрес скрыт с использованием reCAPTCHA Mailhide.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <div> <img>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Incorrect please try again
Enter the words above: Enter the numbers you hear: