Это проблема Views 6.x-2.x: на сайте с множеством разных представлений (многие из которых являются блоками, включенными в панели, которые передают аргументы блокам) я хотел бы фильтровать представления по термину таксономии в зависимости от домена, в котором сайт посещается через. Эта фильтрация должна быть добавлена к первому аргументу (термину таксономии).
Сайт настроен для работы с разными доменами, скажем example1.com и example2.com. Я хочу «связать» эти домены с терминами таксономии 45 и 115.
Так например:
example1.com/my_view/1 Должны отображать все узлы, у которых есть термин 1 и термин 45.
example2.com/my_view/1 Должны отображать все узлы, у которых есть термин 1 и термин 115.
Мой подход заключался в добавлении второго аргумента (первый - аргумент идентификатора термина таксономии по умолчанию). В качестве аргумента по умолчанию я использую следующий фрагмент кода обработки аргумента:
<?php
// Get domain.
$host = preg_match('/[^.]+\.[^.]+$/', $_SERVER['HTTP_HOST'], $hit);
$host = $hit[0];
// Select taxonomy term.
if ($host == 'example1.com'){
$taxonomy = '45';
} elseif ($host == 'example2.com'){
$taxonomy = '115';
}
return $taxonomy;
?>
Это работает, когда я использую отображение страницы с путем my_view /% (делая только первый аргумент обязательным). Но когда я использую его в панели, я просто получаю пустое представление (если выбрано «без контекста») или второй аргумент не имеет никакого эффекта (если выбран «идентификатор термина первого / всего термина»).
Есть идеи, что может быть не так? Я действительно очень много пробовал.