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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вывод данных с группировкой во views drupal

Ноябрь 15, 2019 г.

Типичная проблема при использовании модуля views - как вывести результат группировки, т.е. столбец вроде COUNT(*). Это можно сделать штатными средствами ...

Читать

Программное создание параграфов (ParagraphsItemEntity) в Drupal

Май 24, 2019 г.

Пример кода, как программно реализовать создание параграфа (речь идет о модуле - paragraphs). Обычно параграфы создаются редакторами через админку, но иногда требуется создать новый параграф с помощью кода, например, при импорте данных, структурных ...

Читать

Создать пользователя сразу на всех сайтах мультисайтинга в Drupal

Июнь 6, 2019 г.

С помощью drush и такой то матери (bash) обойдем все сайты и создадим одного и того же юзера на каждом из сайтов. Долго тянуть не стану - вот текст скрипта: [crayon-69d17235a22b3357360915/] В начале вы задаёте нужные переменные (задайте свои ...

Читать

Получить имя поля ключа entity в Drupal 7

Апрель 6, 2021 г.

У меня эта задача возникла при работе с формами, где формы содержат поля '#entity' и '#entity_type'. Нужно было найти универсальный способ прочитать ID объекта, т.к. для каждого объекта имя этого поля может отличаться (для node - nid, для file - fid и ...

Читать
 

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

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



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