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

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

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

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

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

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

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

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

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

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

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

Реализация контроллера для списка autocomplete формы

Май 11, 2023 г.

См. основной материал для введения. Контроллер должен вернуть Json набор пар значений value - label. Ранее в модуле мы уже объявили связь для маршрутизации с нашим контроллером в файле custom_blocks.routing.yml. Теперь реализуем код. /src/Controller/ProductSearchAutoCompleteController.php ...

Читать

Загрузить данные параграфов для связанного с ними entity

Июль 8, 2023 г.

Пример кода для загрузки параграфов. В данном примере будем загружать параграфы, связанные с entity commerce_product_variation (это сущность модуля Commerce). Я привязал информацию по остаткам складов к вариациям в виде параграфов (тип - stocks). ...

Читать

 

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

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



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