Вопросы по заголовку Views с контекстным фильтром

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

Аватар пользователя gun_dose gun_dose 27 января 2016 в 10:54

Всем издавна известно, что заголовок представления с контекстным фильтром можно легко поменять, присвоив значение переменной $handler->validated_title . Я даже сам так делал когда-то. Но вчера столкнулся с проблемой, что данная операция имеет абсолютно нулевой эффект. Причём если в коде проверки написать drupal_set_message($handler->validated_title), то на странице представления выводится сообщение с текстом переопределённого заголовка, а сам заголовок не меняется. С чем бы это могло быть связано? Может ли это быть из-за того, что у меня в представлении два контекстных фильтра, довольно мудрёных с получением числовых аргументов из длиннющего текстового урла с кучей слэшей?

Вся эта ситуация натолкнула меня на множество вопросов:
1. Какие ещё есть способы менять заголовок вьюса в зависимости от аргументов? Модули писать умею, но хотелось бы получить наводку, какой хук использовать и как именно достучаться до переменных заголовка и аргументов.
2. Почему всё-таки $handler->validated_title не работает? Вообще заметил, что из поля пхп кода в контекстном фильтре много что работает не так. Например, в одном из своих модулей я использую конструкцию вроде $node->field_type[0]['taxonomy_term']->name, но будучи вставленной в условие проверки фильтра эта штука генерирует ошибку "Undefined offset 'taxonomy_term'". В то же время $node->title вызванный из контекстного фильтра выдаёт правильный результат. Есть ли там какие-то ограничения по видимости переменных и применимости функций?

Комментарии