Страница 1 из 2

Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 08 апр 2015, 18:25
vbnm
Дело в том, что когда в Composer добавляешь файлы, то он напроч отказывается загружать те, что набраны не латинским.
Куда копать?

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 09 апр 2015, 10:57
cmsservice
В смысле в компзер, имеется ввиду в атрибут типа файл или куда?

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 10 апр 2015, 06:47
vbnm
Куда именно я пока не в курсе.
Попробуй добавить в сообщение фаил мп3 когда он содержит в названии кирилицу.
у меня такие просто не грузятся.

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 10 апр 2015, 10:34
cmsservice
Гипотеза: Думаю это связано с тем, что у них там в регулярных выражениях во всяких функциях, которые обрабатывают имя файла (текст хелпер и вроде файл хелпер) не поддерживается юникод. Его поддержка добавляется простым добавлением символа 'u' после регулярки. У нас кастомная версия C5 и мои бойцы эту штуку сразу правят после скачивания и укладывания дистрибутива на внутренний сервер. Вы тоже можете это сделать, там на минуту делов-то.

Вообще было предложение вынести все регулярки в файлы локализации, но как-то прошло незамечено. Это бы решило подобные проблемы, уверен что они не только у нас наблюдаются, но и у Японцев :(

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 10 апр 2015, 11:50
Count_Raven
cmsservice писал(а):Гипотеза: Думаю это связано с тем, что у них там в регулярных выражениях во всяких функциях, которые обрабатывают имя файла (текст хелпер и вроде файл хелпер) не поддерживается юникод. Его поддержка добавляется простым добавлением символа 'u' после регулярки. У нас кастомная версия C5 и мои бойцы эту штуку сразу правят после скачивания и укладывания дистрибутива на внутренний сервер. Вы тоже можете это сделать, там на минуту делов-то.

Вообще было предложение вынести все регулярки в файлы локализации, но как-то прошло незамечено. Это бы решило подобные проблемы, уверен что они не только у нас наблюдаются, но и у Японцев :(

Да. Насколько я помню это происходит в FileImporter. Там идёт обеззараживание названия файла и из него удаляются любые символы, кроме латинских, цифр и некоторых знаков. Соответственно, все символы кириллицы (да и японские или, к примеру, индийские какие-нибудь) выкидываются совсем и, так как файл остаётся без имени, то он игнорируется.

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 10 апр 2015, 12:20
cmsservice
Count_Raven писал(а):Соответственно, все символы кириллицы (да и японские или, к примеру, индийские какие-нибудь) выкидываются совсем и, так как файл остаётся без имени, то он игнорируется.

Во, значит там надо поставить транслитерацию (она есть уже в системе) еще перед очисткой имени.

UPD: Это в файле /concrete/src/File/Service/File.php в методе sanitize()

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 11 апр 2015, 09:48
vbnm
cmsservice писал(а):
Count_Raven писал(а):Соответственно, все символы кириллицы (да и японские или, к примеру, индийские какие-нибудь) выкидываются совсем и, так как файл остаётся без имени, то он игнорируется.

Во, значит там надо поставить транслитерацию (она есть уже в системе) еще перед очисткой имени.

UPD: Это в файле /concrete/src/File/Service/File.php в методе sanitize()

найти-то его нашел, что дальше делать?
попробовал
Набор из букв и цифр (латиница + кириллица):
Код: Выделить всё
^[а-яА-ЯёЁa-zA-Z0-9]+$

не срабатывает
где-то еще идет проверка

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 11 апр 2015, 10:02
cmsservice
Не не, там первых две строчки проверкой занимаются. Для нормальной реализации нужно их заменить отрезанием расширения от имени файла, потом фильтрации имени с помощью метода filter класса URLify и к полученному присоединить расширение. Тогда все шикарно работает.

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 11 апр 2015, 11:41
vbnm
Трабла не в расширении файла, он спокойно грузит МП3 и остальное.
Трабла в том, что он не понимает кирилицу.
Или я не понимаю, то о чем говоришь.
Там сейчас идет проверка чисто по латинице, все остальное в игнор, вот я и попробовал топорно указать ему еще и кирилицу.
Если есть у вас в компани уже есть этот фаил с редакцией, то просто выложи.

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 11 апр 2015, 11:54
cmsservice
Именно, что не понимаешь, если в отладчике посмотришь процесс, то поймешь о чем я.

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 11 апр 2015, 14:53
vbnm
ок. придется ждать начит)

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 11 апр 2015, 15:44
cmsservice
Чего ждать-то?

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 12 апр 2015, 14:20
cmsservice
Мы тебя ввели в заблуждение. На самом деле, блок conversations обламывает загрузку кирилических имен и происходит это в JS где-то, т.е. до PHP еще даже дело не доходит. Т.ч. если есть желание, то можешь копаться в /concrete/js/dropzone.js

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 13 апр 2015, 12:52
vbnm
ок

Re: Composer - как научить его видеть кирилицу?

СообщениеДобавлено: 13 апр 2015, 18:16
vbnm
dropzone.js
фунгкция:

Код: Выделить всё
function (b) {
            return p.emit('uploadprogress', a, Math.max(0, Math.min(100, b.loaded / b.total * 100)))
          },
        j.setRequestHeader
        ('Accept', 'application/json'),
        j.setRequestHeader
        ('Cache-Control', 'no-cache'),
        j.setRequestHeader
        ('X-Requested-With', 'XMLHttpRequest'),
        j.setRequestHeader
     ('X-File-Name', a.name),
        b = new FormData, this.options.params) {
            n = this.options.params;
            for (g in n) i = n[g],
            b.append(g, i)
          }


строка с a.name
пока в ней все дело
меняешь её значение, фаил с кирилицей грузится но выводит абракадабру на латинском в названии
пример, если из нее сделать типо:
Код: Выделить всё
  ('X-File-Name', a.name =('a.name')),