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

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

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

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

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

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

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

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

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

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

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

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

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

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

Изменить текст no-results во views программно

Февраль 5, 2020 г.

Drupal views позволяют сконфигурировать сообщение на случай если результат запроса пуст и нельзя срендерить какой либо контент для данного представления. Данная опция находится во вкладке 'advanced' вашего представления. Но в данной статье я покажу ...

Читать

Программно устанавливаем значения настроек на страницах, созданных Config Pages

Ноябрь 22, 2018 г.

Модуль Config Pages позволяет создавать страницы конфигурации для вашего модуля, всего сайта, или может быть просто одного из разделов сайта. Потом эти значения можно читать из программы и использовать так, как вам требуется. Но API Config Pages не содержит ...

Читать

Возможные проблемы Invalid form POST data

Октябрь 24, 2019 г.

Браузер сообщает об ошибке всплывающим окном вроде того, что на скриншоте. Сообщается, что AJAX завершен неправильно. Но основной симптом - что не работают ...

Читать

Error: Class 'Aws\S3\StreamWrapper' not found (Drupal 7)

Август 29, 2022 г.

При обновлении модуля s3fs с ветки 7.x-2.x -> 7.x->3.x друпалу не удаётся найти указанный класс. Все необходимые шаги по апгрейду сделаны, как описано в readme.txt модуля. Это проблема инициализации библиотеки awssdk в s3fs_libraries_info(). Drupal ...

Читать
 

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

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



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