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

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

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

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

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

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

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

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

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

Написать комментарий

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

Подключение внешних файлов библиотек в Drupal *.libraries.yml

Апрель 7, 2024 г.

При объявлении библиотек вы можете подключать не только локальные, но и внешние файлы. Для этого нужно указать тип библиотеки - external. Например: [crayon-66275bdec941f806655528/] О полном списке допустимых атрибутах читайте в документации.

Читать

Модификация тела письма перед отправкой в Drupal

Июнь 9, 2023 г.

Рассмотрим два варианта, как зацепиться к отправляемым письмам и внести туда свои изменения. Первый вариант заключается в прямом изменении тела письма перед отправкой. Для этого мы реализуем hook_mail_alter(&message). MAIL ALTER хук Переменная ...

Читать

 

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

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



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