Транслитерация имени файла при создании медиа entity программно в Drupal

При импорте изображений возникает задача транслитерации. Картинки, например, могут содержать буквы национальной кодировки (кириллицы) и/или иметь несовместимые с файловой системой сервера символы.

Drupal (начиная с 8.2) объявляет специальный интерфейс, который формализует эту задачу:
сore/lib/Drupal/Component/Transliteration/TransliterationInterface.php.

Но нужных нам реализаций в ядре нет, их можно найти в сторонних модулях.

Установим модуль transliterate_filenames.

Он предоставляет имплементацию интерфейса в виде сервиса, а также добавляет свою функцию — sanitizeFilename(). Если требуется выполнить транслитерацию имени файла, то реализуется это так:

Теперь можно создавать файл:

И, наконец, создадим медиа объект на основе сохраненного файла.

В разных версиях друпала может отличаться имя медиа-поля, куда сохраняется file ID. В 10ке — это field_media_image, в более ранних версиях может быть просто field_image.

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

Как получить код языка по умолчанию в Drupal

Июль 4, 2025 г.

В Drupal (начиная с версии 8 и выше, включая 10 и 11), чтобы получить код языка по умолчанию сайта (например, en, ru, fr), используйте следующий способ: [crayon-69ea134fdd562098981081/] Подробности запроса: \Drupal::languageManager() — обращение ...

Читать

Редактируем атрибуты ссылки в twig шаблоне

Июль 14, 2023 г.

Как без хуков preprocess в Drupal добавить, например, атрибут target для ссылки в шаблоне? Например, возьмем штатный шаблон file-link.html.twig: [crayon-69ea134fdd65d055301597/] Используем фильтр merge, добавляя нужные атрибуты: [crayon-69ea134fdd664977673712/]

Читать

Получить код оригинального языка сущности в Drupal

Октябрь 18, 2023 г.

Сущность возвращает язык в контексте выбранного языка, но иногда нужно получить оригинальный язык node или другой entity. Вот так выглядит запрос в контексте: [crayon-69ea134fdd71a250462314/] А так можно получить код языка оригинальной версии ...

Читать

Убираем пустые категории из фильтра во views

Сентябрь 13, 2023 г.

Весьма распространённый случай, когда в качестве exposed filter используется поле, связанное с таксономией. Так вы получаете набор опций в фильтре для своего представления, которое доступно пользователю. Также весьма часто некоторые дополнительные ...

Читать
 

Комментарии к «Транслитерация имени файла при создании медиа entity программно в Drupal»

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



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