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

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

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

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

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

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

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

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

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

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

Ставим метрику на сайт с CMS Drupal

Май 16, 2023 г.

Вы получили код для вставки метрики, осталось дело за малым - разместить его на сайте. Сайт управляется Drupal 8/9/10. Я покажу как это сделать через изменение темы сайта. Первая опция - это вставить непосредственно в один из основных шаблонов ...

Читать

Получение и рендеринг списка дочерних терминов в Drupal

Апрель 27, 2023 г.

Небольшой примера кода для работы с таксономией в Drupal 10. Мы запросим дерево дочерних терминов и произведем их рендеринг. Для начала загрузим какой-либо термин [crayon-6a41b37167195931710326/] Следующий шаг - получение дочерних элементов ...

Читать

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

Август 16, 2023 г.

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

Читать

Чем заменить file_create_url в Drupal 9/10

Январь 9, 2024 г.

Функция file_create_url устаревает, начиная с версии 9.3, а в 10й версии она уже отсутствует. Документация предлагает воспользоваться реализацией интерфейса \Drupal\Core\File\FileUrlGeneratorInterface, чтобы заместить устаревающую функцию в вашем ...

Читать
 

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

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



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