Чем заменить drupal_get_path() в Drupal 9/10

Функция считается устаревшей, начиная с версии ядра 9.3, в 10-й версии функция удалена из кода.

В новом API нужно воспользоваться одним из сервисов ядра, которые реализуют нужную функцию.

Сервис extension.list.module — реализует функции, связанные с модулями.
Сервис extension.list.theme — реализует функции, связанные с темами.
Сервис extension.list.profile — реализует функции, связанные с профилями.

Примеры использования:

Есть и универсальный сервис, который заменяет три предыдущих — extension.path.resolver. Вот как он реализует нужную функцию:

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

Получить список типов товаров в Drupal Commerce

Июль 23, 2023 г.

В терминологии Drupal, типы товаров это - бандлы (bundle) сущности commerce_product. Получить их список можно вот так: [crayon-691cc05aa8d26248966955/] Как результат, в $product_types вы получите массив типов товаров, где ключом является ...

Читать

Как полностью удалить поле в Drupal, если оно «зависло» в хранилище полей

Сентябрь 5, 2025 г.

Иногда в Drupal возникает ситуация: вы удаляете поле с типов сущностей (bundle), но оно не исчезает полностью из системы. UI говорит, что поле «используется», хотя на самом деле ни одна сущность его не использует. В этом случае поле остаётся в конфигурации ...

Читать

Проверить роль пользователя в twig

Август 16, 2023 г.

Многие стандартные шаблоны в Drupal содержат вывод переменной пользователя (user), что делает возможным реализацию различной логики, в том числе и проверку роли пользователя. Например, вы желаете показывать какой-то элемент шаблона, только для ...

Читать

Корзина не пуста - изменим стиль пункта меню

Август 2, 2023 г.

Использую Drupal Commerce, и в меню у меня есть пункт "Корзина", со ссылкой на корзину пользователя. Хочется, чтобы стиль пункта меню менялся, если корзина не пуста. Я буду использовать hook_preprocess_menu темы, чтобы изменить нужный пункт меню ...

Читать
 

Комментарии к «Чем заменить drupal_get_path() в Drupal 9/10»

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



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