В принципе вопрос является практически продолжением 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 что то никак не могу сообразить. Может кто -нибудь подскажет? Или я совсем не тем путем иду и это делается как то проще? Заранее Спасибо за ответы!
Комментарии
В Domain Access есть интеграция с views. Почему Вы не используете его для мультисайтинга?
Domain Access показался мне весьма тяжеловесным для данного проекта, и было принято решение сделать все самостоятельно под непосредственную задачу. Похоже, что views будет следующим, от чего откажусь. По крайней мере данную задачу решил собственным запросом к базе и последующей темизацией вывода.
1. Однако еще раз внимательно посмотрел Domain Access и там возможности решения задачи тоже не нашел.
2. В данном вопросе мультисайтинговость была приведена для примера, хочется понять вообще с помошью views реально передав параметр использовать его в сложных логических условиях?
1. Для этого существуют параметры, фильтры, в крайнем случае можно самому написать интеграцию к вьюс со своим фильтром. Это у gracker хорошо описано.