Нужно было организовать галерею.
Для этого создал тип данных, и прикрутил к нему colorbox. Каждый отдельный материал - это своего рода альбом. Но вывод этих материалов сейчас только в новостной ленте. А надо бы галерею выводить ещё в двух местах:
1. В отдельном блоке на каждой странице - последние 5-10 фотографий из всех альбомов (материалов).
2. Каждый отдельный альбом (материал) где-нибудь посреди страницы (в смысле посреди материала типа Basic Page).
И если первый пункт я думаю можно решить при помощи views, то как быть со вторым я ума не знаю, так как новичок в drupal. Как это сделать?
Комментарии
c помощью модуля EVA (Entity Views Attachment) можно присобачить вьюс к сущности (ноде) в качестве филда (это по 2 пункту)
Как я понял, EVA отображается как поле. То биш оно будет либо выше текста Basic Page, либо ниже.
А мне надо чтобы галерею можно было вставить в любое, произвольно место в тексте Basic Page.
В таком случае вам понадобится формат ввода PHP-код. Программно выводите вьюс в любом месте в теле статьи
Хорошо, спасибо.
Сейчас попробовал:
Прямо в окне редактирования материала переключился на правку исходного кода, и ввёл следующий код:
<?php
$block = module_invoke('views', 'block', 'view', 'side_galery');
print $block['content'];
?>
Но при просмотре материала вышло следующее:
$block = module_invoke('views', 'block', 'view', 'side_galery');
print $block['content'];
?>
То есть друпал воспринял этот код как текст.
В чем дело?
Именно так. Вам нужно включить модуль PHP filter, а при создании/редактировании материала выбрать формат ввода PHP
Все. Разобрался, вывел. Спасибо большое.
Как вывести конкретную views в материале понял. А как сделать views для каждой галереи? В фильтрах я не смог найти такую фильтрацию, чтобы выдавать в каждой views отдельный, конкретный альбом (материал).
Если я правильно понял, нужно вывести галерею в зависимости от того какой материал мы просматриваем. Если так, то во вьюс нужно добавить контекстный фильтр id содержимого (из URL).
Да, то что нужно. Теперь вопрос закрыт.