"Сломалась" транслитерация файлов в Drupal 8

Аватар пользователя sashken sashken 19 марта 2019 в 14:03

Для транслитерации фалов пользуюсь модулем https://www.drupal.org/project/transliterate_filenames
После обновления Друпала до версии 8.6.11 транслитерация стала работать не так, как работала до этого.

Раньше при загрузке файла "Всемирная неделя иммунизации.jpg" его имя в админке Друпала оставалось таким же, а имя файла на диске транслитерировалось в "vsemirnaya_nedelya_immunizacii.jpg"

Сейчас файл транслитерируется полностью, т.е. в админке он отображается также: "vsemirnaya_nedelya_immunizacii.jpg"

Как вернуть "обычную" транслитерацию?
Чтоб было в админке так:
"Всемирная неделя иммунизации.jpg"
а на диске так:
"vsemirnaya_nedelya_immunizacii.jpg"

На скриншоте видно разницу в именовании файлов в админке до 14 марта и после.

Лучший ответ

Аватар пользователя ivnish ivnish 19 марта 2019 в 17:13
1

Проверил только что на одном из сайтов, да всё так.

По мнению мейнтейнеров ядра, привычное нам поведение было багом. Баг исправили Smile

https://www.drupal.org/node/3032376

Комментарии

Аватар пользователя sashken sashken 19 марта 2019 в 19:32

Спасибо за ответ! Действительно именно тот патч отвечает за это.
В нем добавлена всего одна строка:

// Update the filename with any changes as a result of security or renaming
// due to an existing file.
$file->setFilename(\Drupal::service('file_system')->basename($file->destination));

Закомментировал её, всё стало работать как раньше. Не совсем понял зачем они её добавили.

Аватар пользователя ivnish ivnish 19 марта 2019 в 19:55
1

Я очень не рекомендую вам править файлы ядра. Да ещё и убирать код, который добавили для безопасности.

Аватар пользователя marassa marassa 20 марта 2019 в 7:51

itcrowd72 wrote:
Я очень не рекомендую вам править файлы ядра.

А что еще делать, если в ядре ошибка или недоработка, которая большинству пользователей не мешает, а тебе мешает? У меня два патча в ядре, которые я вынужден тащить и переприменять после каждого апдейта ядра уже больше года, патчи выложены на org, но мейнтейнерами ядра игнорируются.
itcrowd72 wrote:
Да ещё и убирать код, который добавили для безопасности.

В этой строчке кода нет ничего для безопасности, обычный зуд что-то "улучшить", не исследовав как следует все возможные юз-кейсы и последствия.

Аватар пользователя marassa marassa 20 марта 2019 в 10:04

Обязательно когда-нибудь освою композер, давно себе обещаю Wink
PS Иногда патченые файлы еще и меняются от версии к версии, тогда все равно приходится разбираться и править вручную...

Аватар пользователя gun_dose gun_dose 20 марта 2019 в 11:36

Всё равно с композером удобнее - один раз поправил патч (или нашёл нужный) и потом эти изменения просто добавлять в другие проекты перед обновлением.

Аватар пользователя marassa marassa 20 марта 2019 в 13:06

Да я верю - просто надо время на это выделить, это ж не новый проект, а уже существующий, и важно ничего не сломать. А всё время занято решением более насущных проблем типа как не платить гуглу денег за карты Wink

Аватар пользователя ivnish ivnish 20 марта 2019 в 13:46
2

Никлан подробно рассказывал как перенести текущий проект на composer и обратно. Там делов на 30 минут.

Аватар пользователя vlucas vlucas 20 марта 2019 в 23:53

А как вы обновляетесь?
Постоянно правите кусочки в ядре/контрибе вручную?
Это не технологично, не автоматизировано, не безопасно.

Аватар пользователя marassa marassa 20 марта 2019 в 13:50

Да читал я, помнится всё равно вопросы оставались, и насчет 30 минут не уверен я.
Но это уже полный оффтопик пошёл, давайте я буду сообщество терзать вопросами по композеру в отдельной теме когда соберусь с духом Wink