Действительно ли возможно включать тему в Функцию Drupal? раз так, как?
К сожалению, сейчас нет. Функции в основном состоят из вещей, которые можно чисто экспортировать и импортировать в Drupal с помощью различных обработчиков событий. Темы - совсем другое животное.
Теоретически, если вы хотите переопределить некоторую разметку в своей функции (например, пользовательские файлы tpl.php для вашего собственного типа контента), вы можете включить пользовательский файл tpl.php и использовать связанные с темой хуки в файле модуля функции. чтобы сообщить Drupal, что шаблоны находятся в каталоге вашего модуля.
В дополнение к ответу Итона. Если вам нужно переопределить существующий шаблон (файл .tpl.php), предоставленный другим модулем, вы можете использовать hook_theme_registry_alter в YOUR_FEATURE.module:
function YOUR_FEATURE_registry_alter($theme_registry) {
$originalpath = array_shift($theme_registry['TEMPLATE']['theme paths']);
$featurepath = drupal_get_path('module', 'YOUR_FEATURE') .'/themes');
array_unshift($theme_registry['TEMPLATE']['theme paths'], $originalpath, $featurepath);
}
Чтобы это сработало, ваша функция должна иметь вес больше, чем вес модуля, предоставляющего переопределяемый шаблон. Таким образом, в файле YOUR_FEATURE.install у вас будет что-то вроде
function YOUR_FEATURE_install() {
db_query("UPDATE {system} SET weight = 10 WHERE name = 'YOUR_FEATURE'");
}