just photo

Drupal 6. Вывод списков в тексте, через запятую

Julia 06/10/2009

Простая задача - выводить непосредственно в тексте какие-либо списки (созданные с помощью views), сформированные автоматически по содержанию сайта.

Ну например - сайт компании, есть страница с описанием услуг компании и в тексте нужно упомянуть партнеров этой компании, есть описание каждого партнера на отдельной странице, список должен формироваться автоматически.

Модуль Insert View

Для вставки списков непосредственно в текст используем модуль Insert View.

После установки модуля добавляем новый формат ввода (input format) для страниц, на которых предполагается возможность добавления списков.
Зачем отдельный формат - просто потому что Insert View отключает кеширование тех форматов, в которых включен этот фильтр

Далее добавляем фильтр 'insert view filter' на странице настройки нового формата ввода /admin/settings/filters/list.

Теперь можно вставлять списки с помощью тегов:
[view:name of view]
[view:name of view=name of display]
[view:name of view=name of display=arg1,arg2,arg3]
[view:name of view==arg1]

Документация по модулю Insert view

Запятые

или как добиться того, чтобы списки выводились через запятую, а не с новой строки.

Создаем отдельный view (называем его, например, inline),
тип ввода должен быть unformatted (т.е. не список и не таблица).
В теме добавляем форматирование для этого view:
views-view--inline.tpl.php

<span class="view view-id-<?php print $name; ?> view-display-id-<?php print $display_id; ?>">
  <?php if ($rows): ?>
    <span class="view-content">
      <?php print $rows; ?>
    </span>
  <?php elseif ($empty): ?>
    <span class="view-empty">
      <?php print $empty; ?>
    </span>
  <?php endif; ?>
  <?php if ($more): ?>
    <?php print $more; ?>
  <?php endif; ?>
</span> <?php /* class view */ ?>

views-view-unformatted--inline.tpl.php:

<?php print implode(', ', $rows); ?>

Теперь если необходимо добавить еще подобный список -
добавляем его в этот view как новый вывод (display)
все элементы таких списков будут выводиться со span тегами вместо div
(поле, кстати, может быть не одно -
может быть например название нода и в скобках его дата)

тэги:

Спасибо. Очень мощная штука.

Добрый день, вставила по Вашему описанию views типа default в ноду . Возникла такая проблема: views не обновляется. Не подскажете в чем может быть дело?

Отправить новый комментарий

Содержимое этого поля хранится скрыто и не будет показываться публично.
  • Адреса страниц и электронной почты автоматически преобразовываются в ссылки.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Автоматический перевод строки.
  • Вы можете публиковать код, размещая его в <code>...</code> (generic) или в <?php ... ?> (раскрашенный PHP).

Дополнительная информация о настройках форматирования