Как переопределить функцию темизации в своём модуле
Есть два способа переопределения функций темизаций в модуле. Первый, это реализация хука hook_theme:
/**
* Реализация hook_theme()
* Переопределение функции theme_breadcrumb()
*/
function mymodule_theme() {
return array(
'breadcrumb' => array(
'function' => 'mymodule_breadcrumb',
'arguments' => array('breadcrumb' => NULL),
),
);
}
/**
* Функция темизации хлебных крошек
*/
function mymodule_breadcrumb($breadcrumb) {
if (!empty($breadcrumb)) {
return '<div class="breadcrumb">' . implode(' → ', $breadcrumb) . '</div>';
}
}
этот код будет работать только если функция theme_breadcrumb не переопределена в template.php или в модуле с бОльшим весом.
Следующий код будет работать даже если функция переопределена в template.php
/**
* Реализация hook_theme_registry_alter()
* Переопределение функции theme_breadcrumb()
*/
function mymodule_theme_registry_alter(&$theme_registry) {
$theme_registry['breadcrumb']['function'] = 'mymodule_breadcrumb';
}
/**
* Функция темизации хлебных крошек
*/
function mymodule_breadcrumb($breadcrumb) {
if (!empty($breadcrumb)) {
return '<div class="breadcrumb">' . implode(' → ', $breadcrumb) . '</div>';
}
}
Написанное актуально для
Drupal 6.x
Комментарии:
Нету комментариев для вывода...