Drupal6: встраивание региона в файл представления .tpl.php - PullRequest
2 голосов
/ 05 октября 2009

У кого-нибудь есть идеи, как мне встроить регион в файл .tpl.php?

Я достаточно легко выполняю это в узле .tpl.php, добавив что-то вроде этого в theme_preproces_node():

$vars['promos'] = theme('blocks', 'promos');

Нет проблем вообще. Однако, очевидно, что функции theme_preprocess_view() нет, и я получаю ошибки памяти, когда пытаюсь добавить тот же фрагмент к theme_preprocess().

Неустранимая ошибка: допустимый размер памяти 104857600 байт исчерпан (попытка выделить 523800 байт) в /Users/cpharmston/Sites/Projects/Threespot/neh01/includes/database.mysqli.inc строке 42

Я в тупике. Есть идеи?

Спасибо!

1 Ответ

2 голосов
/ 05 октября 2009

Быстрый и грязный способ: Вы можете просто поместить вызов theme('blocks', [region_name]) непосредственно в файл views .tpl.php.

Хотя функции предварительной обработки направлены на лучшее разделение логики «бизнес» и логики «отображения», они никоим образом не требуются, поэтому вы все равно можете помещать пользовательский код в файл .tpl.php любым удобным вам способом .

'Правильный' способ: * функций предварительной обработки для представлений, всего несколько. Взгляните на файл theme.inc модуля views. Там вы найдете различные функции предварительной обработки для различных шаблонов, которые, возможно, используются представлением (например, «неформатированный» или «таблица», «список» и т. Д.). Вам просто нужно найти тот, который соответствует шаблону представления, в который вы хотите вставить новую переменную.

...