Функции Drupal включают Тему

Действительно ли возможно включать тему в Функцию Drupal? раз так, как?

7
задан Linda 11 June 2010 в 16:19
поделиться

2 ответа

К сожалению, сейчас нет. Функции в основном состоят из вещей, которые можно чисто экспортировать и импортировать в Drupal с помощью различных обработчиков событий. Темы - совсем другое животное.

Теоретически, если вы хотите переопределить некоторую разметку в своей функции (например, пользовательские файлы tpl.php для вашего собственного типа контента), вы можете включить пользовательский файл tpl.php и использовать связанные с темой хуки в файле модуля функции. чтобы сообщить Drupal, что шаблоны находятся в каталоге вашего модуля.

5
ответ дан 7 December 2019 в 09:56
поделиться

В дополнение к ответу Итона. Если вам нужно переопределить существующий шаблон (файл .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'");
}
1
ответ дан 7 December 2019 в 09:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: