В друпале 6 для каждого шаблона .tpl.php можно было написать препроцесс, и он бы обязательно вызвался.
В друпале 7 это изменилось, теперь вызов препроцесса для шаблона не является обязательным.
Следующая проблема встречается практически в каждом проекте:
Нельзя написать preprocess/process функцию для специфического шаблона вьюхи. Срабатывают только общие препроцессы:
Нельзя написать preprocess/process функцию для специфического шаблона вьюхи. Срабатывают только общие препроцессы:
- mytheme_preprocess_views_view(&$vars) - общий для всех views
- mytheme_preprocess_views_view_list(&$vars) - общий для всех views с list style
- mytheme_preprocess_views_view_fields(&$vars) - общий для всех полей
- И другие. Остальные препроцессы смотрите в файле views/theme/theme.inc
Пока это не исправили, можно использовать сниппет, которого достаточно для большинства случаев. Если нужен еще 1 кейс, можно использовать этот пример.
/**
* Process variables for views-view.tpl.php.
*
* @see views-view.tpl.php
*/
function mytheme_preprocess_views_view(&$vars) {
if (isset($vars['theme_hook_suggestion'])) {
$function = 'mytheme_preprocess_' . $vars['theme_hook_suggestion'];
if (function_exists($function)) {
$function($vars);
}
}
}
/**
* Process variables for views-view-fields.tpl.php.
*
* @see views-view-fields.tpl.php
*/
function mytheme_preprocess_views_view_fields(&$vars) {
if (isset($vars['theme_hook_suggestion'])) {
$function = 'mytheme_preprocess_' . $vars['theme_hook_suggestion'];
if (function_exists($function)) {
$function($vars);
}
}
}
/**
* Process variables for views-view-table.tpl.php.
*
* @see views-view-table.tpl.php
*/
function mytheme_preprocess_views_view_table(&$vars) {
if (isset($vars['theme_hook_suggestion'])) {
$function = 'mytheme_preprocess_' . $vars['theme_hook_suggestion'];
if (function_exists($function)) {
$function($vars);
}
}
}
/**
* Process variables for views-view-unformatted.tpl.php.
*
* @see views-view-unformatted.tpl.php
*/
function mytheme_preprocess_views_view_unformatted(&$vars) {
if (isset($vars['theme_hook_suggestion'])) {
$function = 'mytheme_preprocess_' . $vars['theme_hook_suggestion'];
if (function_exists($function)) {
$function($vars);
}
}
}
Комментариев нет:
Отправить комментарий