views - очередной вопрос.

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

Аватар пользователя Alex_R Alex_R 6 сентября 2010 в 18:47

В принципе вопрос является практически продолжением http://www.drupal.ru/node/49041, но объясню на конкретном примере.
Имеем мультисайтинг. Есть общий тип документа (допустим, "новость"), в нем есть поля ССК:

1. Поле, в котором хранится $base_url сайта на котором данный документ создан.
2. Поле, в котором указывается включать данную новость в общую ленту новостей или нет (0 или 1).

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

Создать свой дисплей представления для каждого отдельного сайта получилось используя views_or в фильтрах, сравнивая первое поле с константой, содержащей $base_url конкретного:

Views Or: Begin alternatives =
Содержание: site = http://mysite1.ru
Views Or: Next alternative =
Содержание: В ленту = 1
Содержание: site != http://mysite1.ru
Views Or: End alternatives =

Однако, хочется добиться чтобы один дисплей работал для всех сайтов. Появилась идея передавать $base_url в представление несуществующим аргументом, и если аргумент не существует то подставить $base_url конкретного сайта . Для простого варианта (показать все новости данного сайта) - работает отлично, а как это совместить с views_or что то никак не могу сообразить. Может кто -нибудь подскажет? Или я совсем не тем путем иду и это делается как то проще? Заранее Спасибо за ответы!

Комментарии

Аватар пользователя Alex_R Alex_R 6 сентября 2010 в 20:56

<a href="mailto:annya@drupal.org">annya@drupal.org</a> wrote:
В Domain Access есть интеграция с views. Почему Вы не используете его для мультисайтинга?

Domain Access показался мне весьма тяжеловесным для данного проекта, и было принято решение сделать все самостоятельно под непосредственную задачу. Похоже, что views будет следующим, от чего откажусь. По крайней мере данную задачу решил собственным запросом к базе и последующей темизацией вывода. Sad

Аватар пользователя Alex_R Alex_R 7 сентября 2010 в 14:41

1. Однако еще раз внимательно посмотрел Domain Access и там возможности решения задачи тоже не нашел.
2. В данном вопросе мультисайтинговость была приведена для примера, хочется понять вообще с помошью views реально передав параметр использовать его в сложных логических условиях?

Аватар пользователя annya@drupal.org annya@drupal.org 7 сентября 2010 в 16:56

1. Для этого существуют параметры, фильтры, в крайнем случае можно самому написать интеграцию к вьюс со своим фильтром. Это у gracker хорошо описано.