куда то в 6-м друпале делась _phptemplate_variables, а как теперь назначать глобальные переменные?
Прислано: kiev1
чт, 08/01/2009 - 18:29
вот было у меня в template.php так
function _phptemplate_variables($hook, $vars) { $vars['termv'] = $termv; $vars['tid'] = $termv->tid; $vars['bg_term'] = $bg_term; return $vars; }
а теперь говорят есть template_preprocess - но как ее использовать что бы добавить переменные которые будут доступны в блоках и шаблонах?
- kiev1's blog
- Для комментирования войдите или зарегистрируйтесь
откройте гарланд, там должна быть функция phptemplate_preprocess_page(), по ходу разберетесь. С блоками название phptemplate_preprocess_block. Делают они то же самое что _phptemplate_variables
- Для комментирования войдите или зарегистрируйтесь
В Гарланде нашёл в template.php
/** * Override or insert PHPTemplate variables into the templates. */ function phptemplate_preprocess_page(&$vars) { $vars['tabs2'] = menu_secondary_local_tasks(); // Hook into color.module if (module_exists('color')) { _color_page_alter($vars); } }
И всё -(
- Для комментирования войдите или зарегистрируйтесь
не не работает
написал в template.php
function phptemplate_preprocess_block(&$vars) { $vars['termv'] = 111; }
а в шаблоне блока переменная termv не появляется никак (((
и вообще функция phptemplate_preprocess_block не вызывается ни разу (((
однако функция phptemplate_preprocess_page вызывается...
- Для комментирования войдите или зарегистрируйтесь
кеш
- Для комментирования войдите или зарегистрируйтесь
странно - что бы заработало в блоках пришлось зайти в установки темы и нажать "сохранить" еще раз... неужели так все странно он работает...
ведь кеш то отключен был!
спасибо
- Для комментирования войдите или зарегистрируйтесь
Вы сбросили кеш реестра темизации нажатием кнопки ;) Не надо путать кеш страниц и внутренний кеш меню, реестра темизации и т.д.
- Для комментирования войдите или зарегистрируйтесь
Присоединяюсь к neochief. Кэш реестра тем не одно и то же, что кэш страниц. В описаниях по разработке своих тем и темизаций люди явно оговариваются: «Отметьте: при включении в тему новых шаблонов (файлов с расширением .tpl.php), вам нужно будет посетить страницу Administer → Site building → Themes для того, чтобы Drupal обновил реестр тем (кеш)». Это же справедливо и для изменения кода внутри .tpl.php и .php
По поводу нажатия кнопки "сохранить" - можно не делать. Сам убедился - посещения страницы тем достаточно. Хотя не запрещается ;-)
- Для комментирования войдите или зарегистрируйтесь
Самый универсальный способ — Страница "Производительность" и кнопка "Сбросить кеш" там.
- Для комментирования войдите или зарегистрируйтесь


Комментарии