Корявое отображение блока или неправильная работа views?

Аватар пользователя AI AI 10 сентября 2012 в 15:46

Собссно проблема первый раз... Прошу пинать сильно, но все же по делу.
Создал вьюху, вывод в блок. Автоматический предпросмотр во вьюхе выдает удовлетворяющий меня результат. Задействованы контекстные фильтры и отношения.
Тест №1: изменяя аргументы в автоматическом предпросмотре вьюхи получаю то, что надо. Никаких претензий. Блок на страницах за пределами вьюхи не появляется.
Тест №2: Изменяю настройки контекстных фильтров во вьюхе так, что вьюха ничего не показывает в автоматическом предпросмотре. Тем не менее удается получить отображение вывода блока на нужных страницах сайта (уточнение: выдает всю информацию, нужную и ненужную, т.к. контекстные фильтры не работают). Отображение блока так же есть, если контекстные фильтры просто удалить.
Вопрос: почему блок в штатных ситуациях и с нужными настройками не отображается на страницах? Видимость блока не играет роли - тут все в порядке. Сайт в тестовом режиме. Работаю под админом.

Комментарии

Аватар пользователя AI AI 11 сентября 2012 в 6:47

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

Аватар пользователя AI AI 11 сентября 2012 в 7:38

Решено. Методом научного тыка после попытки анализа поведения фильтров. Нормальных описаний работы фильтров не нашел, поэтому данность такова:

В контекстных фильтрах есть настройка (далее названия в русском переводе с английского языка)
Когда значение фильтра НЕ доступно
Как правило, очень хочется выставить переключатель в Скрыть представление.
Тем не менее, удалось получить нужное поведение блока только в положении переключателя
Задать значение по умолчанию, где установил Тип получаемого аргумента как ID материала из URL.

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

Аватар пользователя AI AI 11 сентября 2012 в 7:50

В дополнение к работе контекстных фильтров:
Т.к. требуется проверка второго аргумента (например, адрес node/2), необходимо в контекстных фильтрах указывать два критерия проверки:
1. Глобальный: Ноль. Настройки его полностью аналогичны тем, что в комментарии выше. Этот фильтр проверяет первый аргумент. Но суть "глобального ноля" в том, что полученное значение аргумента игнорируется: в контексте моей задачи этого достаточно.
2. Содержимое: Nid. Этот фильтр идет вторым и проверяет следующий, второй аргумент, получая номер ноды. Имея номер ноды, начинают корректно работать отношения, подтягивая (в моем случае) таксономию, из терминов которой я забираю нужные мне данные.

Аватар пользователя iNFerNo iNFerNo 11 сентября 2012 в 8:36

Ну вроде так и должно все работать аргумет нид добавляешь и блок показывается с нужным выводом для конкретной ноды. как же еще можно цеплятся к нодам то?

Аватар пользователя AI AI 11 сентября 2012 в 12:45

"iNFerNo" wrote:
как же еще можно цеплятся к нодам то?

Дык пока на своих шишках не научишься, чужие мануалы трудно осознавать. И написано вроде англицким языком, и все равно осознание только с практикой приходит. Еще понимание ключевых моментов здесь критично. Зачастую некоторые из таких моментов вскользь описаны - как само собой разумеющееся. Конечно, думать я обязан, поскольку за меня это никто делать не должен.