Получить имя текущей темы по дефолту в Drupal

Theme API к сожалению не даёт прямого метода, чтобы прочитать это значение. Как его получить?

Иногда программно нужно установить, что именно видит пользователь на фронт-енд (какую тему использует движок).

Необходимость возникает из-за того, что drupal, исходя из контекста, может активировать различные темы оформления, доступные сайту.

Страницы админки могут быть показаны в одной теме, страницы сайта — в другой. Разные темы могут быть задействованы также в зависимости от настроек в профиле пользователя. Все ситуации сложно перечислить, рассмотрим хотя бы некоторую часть.

Значение выбранной по умолчанию темы сохраняется в переменной theme_default. Ее не сложно прочитать:

Это значение может быть переопределено в файле конфигурации, поэтому лучше читать его из глобальной переменной $conf:

Следующая возможная зацепка — это тема, установленная в профиле пользователя:

Есть в API специальная зацепка hook_custom_theme, позволяющая программно установить значение текущей темы:

Тогда следует проверить глобальную переменную custom_theme:

Ну и наконец проверка значения глобальной переменной theme:

Как видите, сложно не запутаться в том, какая должна быть последовательность проверки. Потому сведем весь получивший код в один блок.

Что учитывать в вашем проекте — выбирать вам.

Мало букафф? Читайте есчо !

Выполнение действий после сохранения ноды – обход стандартных ограничений

Май 22, 2026 г.

Поговорим о ситуациях, когда hook_node_insert, hook_node_update гибки не на столько хорошо, и нужны альтернативные способы выполнения кода после полного завершения транзакций или даже после отправки ответа браузеру. Проблема Стандартные хуки ...

Читать

Удалить список публикаций со страницы термина таксономии в Drupal

Апрель 10, 2021 г.

Стандартный шаблон страницы термина таксономии taxonomy-term.tpl.php не позволяет управлять выводом публикаций, он лишь служит как обертка для полей термина. Единственная настройка CMS, которая влияет на вывод списка - это переменная default_nodes_main, ...

Читать

Программное удаление полей и групп из сущности Config Pages

Февраль 12, 2019 г.

Я уже рассказывал ранее как программно можно обновить данные в сущности config_pages. А здесь покажу как программно можно выполнить удаление полей и групп (созданных модулем field_group). Config Pages использует Field API, поэтому удаление полей ...

Читать

Хак с Form API в Drupal 7: создаём HTML5‑поля (number, email, tel) без лишних модулей

Март 15, 2026 г.

Drupal 7 предлагает мощный Form API для построения форм. Однако при работе с HTML5‑атрибутами можно столкнуться с неожиданным ограничением: если вы попытаетесь задать тип поля number, email или tel стандартным способом, Drupal проигнорирует ваше значение ...

Читать
 

Комментарии к «Получить имя текущей темы по дефолту в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: