Ребят, второй день голову ломаю. Шаблон bootstrap, не срабатывает preporcess_node... Переменные видит, но подменять содержимое перед выводом отказывается напрочь...
Вызов в template.php:
function bootstrap_preprocess_node(&$variables)
Что может быть, никто не сталкивался?
UPD не срабатывает даже в стандартном, голом Bartik
Комментарии
Писать bartik_preprocess_node пробовали?
Естественно! ))) А вот preprocess_page прекрасно срабатывает - переменные подменяются... Непонятно (
Иногда, такое случается из-за порядка обработки хуков. Скорее всего какой-то модуль переопределяет ваши переопределения, после Вас. Вот здесь описано решение, я им часто пользуюсь в таких случаях.
Но все же, покажите что и как переопределяете. Вдруг ошибка непосредственно в коде?
Пытаюсь спрятать поле в зависимости от другого... Вот так выглядит функция
function bootstrap_preprocess_node(&$variables){
if ($variables['view_mode'] == 'teaser' && isset($variables['content']['field_video'])){
hide($variables['content']['field_photos']);
}
}
Здесь идёт проверка отображения, и существование поля field-video... Само условие срабатывает, т.к. в него прописывал print 'test'; - отображает, то есть функция отрабатывает своё, но вот записать в массив ничего не получается...
Да, всё таки это какой-то из модулей.. Похоже Display Suite. И видимо нужно использовать hook_ds_pre_render_alter ()
DS использует свои шаблоны для вывода и переопределяет весь вывод контента.
Попробуйте
<?php
unset($variables['content']['field_photos']);
?>
или непосредственно в шаблоне:
<?php
hide($content['field_photos']);
?>
hide не удаляет переменную.
Сейчас кое-что проверю, и отпишусь.. Кажись всё решилось
unset пробовал, не помогает
Тут всё дело в DS (Display suite) - он перехватывает препроцессы )
Ничего не понимаю... через hook_ds_pre_render_alter () тоже ничерта не удаётся изменить...
А в hook_ds_pre_render_alter как переопределяете? Покажите.
А в hook_ds_pre_render_alter как переопределяете? Покажите.
Всё, получилось ))) Отключает, добавляет, перезаписывает.. Теперь ищу где подцепиться понадёжнее Вызов вот так выглядит
function bootstrap_ds_pre_render_alter(&$layout_render_array, $context, &$vars)