Jump to content


Photo
- - - - -

Элемент download только у меня имеет проблему с загрузкой русских символов?


Best Answer fiction13 , 12 December 2014 - 20:09

Файл /administrator/components/com_zoo/classes/validator.php, функция clean(), строка 512.

$value['name'] = JFile::makeSafe($value['name']);

Думаю, что смысл понятен, вызывается встроенная функция Joomla - makeSafe() и обрезает все стремные символы, в том числе и кириллицу.

Go to the full post


  • This topic is locked This topic is locked
21 replies to this topic

#11 hasanchemerzaev

hasanchemerzaev
  • JBZoo User (rus)
  • User rate: 5.8
  • posts: 282
  • topics: 74

Posted 12 December 2014 - 14:22

В общем ​Ёшкин Кот делай что посчитаешь нужным


  • 0

#12 Ёшкин Кот

Ёшкин Кот
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 77.7
  • posts: 757
  • topics: 134

Posted 12 December 2014 - 18:35

Помогите пожалуйста, что сделать, чтобы при загрузке файла на сервер не отдавался обратно обрубок по имени??

 

протокол_испытаний_brugman.pdf например при скачивании отдается как:

 

__brugman.pdf .

 

Соответственно все что с русскими символами и brugman выдается почти одинаковым. __brugman.pdf, _brugman.pdf, __brugman-2.pdf... и так далее. если скачать все в одну папку - потом не поймешь что ты скачивал.

 

Хотя бы покажите ГДЕ обрабатывается имя, чтобы я мог добавить перед этим моментом транслитерацию. Это все решит. я см уже второй день копаю. Не справляюсь сам.


Edited by Ёшкин Кот, 12 December 2014 - 18:54.

  • 0

#13 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 12 December 2014 - 19:11

Ёшкин Кот,готового решения нет. Я же вам написал что список выводится через метод files, который в свою очередь вызывает метод ls который так же находится в этом файле. Разбирайте метод ls - как он работает, так как именно он циклически выводит списки файлов / папок


  • 0
Изображение
 

#14 Ёшкин Кот

Ёшкин Кот
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 77.7
  • posts: 757
  • topics: 134

Posted 12 December 2014 - 19:16

я просто не на столько знаю это php, чтобы так легко найти место, в котором перед сохранением файла происходит кастрация символов. Еслине сложно, я вчера весь вечер копал этот файл.. но так и не понял. В нем имя везде уже ходит обрубленное, а в самом элементе его еще раз можно поменять (например добавив к нему дату.. там где происходит проверка перед сохранением на наличие такого файла на сервере и добавление к имени счетчика).. но вот когда именно из протокол_испытаний_brugman.pdf оно превращается в __brugman.pdf хоть тресните не могу найти. чтобы перехватить этот момент.


Edited by Ёшкин Кот, 12 December 2014 - 19:17.

  • 0

#15 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 12 December 2014 - 19:22

в котором перед сохранением файла происходит кастрация символов.
 

Ёшкин Кот, этот метод только выводит файлы а не сохраняет. 


  • 0
Изображение
 

#16 Ёшкин Кот

Ёшкин Кот
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 77.7
  • posts: 757
  • topics: 134

Posted 12 December 2014 - 19:24

Мне надо выловить, где происходит кастрация неугодных символов перед сохранением файла, Я хочу добавить там скрипт транслитерации. Я же говорю вчера там проколупался весь вечер - не нашел..  не удивительно.


  • 0

#17 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 12 December 2014 - 19:30

Если вы эти манипуляци хотите сделать для фронта, тогда смотрите сам элемент

сайт\media\zoo\elements\download\download.php

Перед сохранением в подаче, можете дописать метод submissionBeforeSave - где сделаете транслит. Но опятьже своими силами.


я просто не на столько знаю это php

Если вы не справляетесь своими силами, попробуйте обратиться в коммерческий  раздел.


  • 0
Изображение
 

#18 Ёшкин Кот

Ёшкин Кот
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 77.7
  • posts: 757
  • topics: 134

Posted 12 December 2014 - 19:30

я пытаюсь именно его и колупать.. но что то пока без результата. Изначально его смотрел.


  • 0

#19 fiction13

fiction13
  • JBZoo User (rus)
  • User rate: 272.5
  • posts: 604
  • topics: 23

Posted 12 December 2014 - 20:09   Best Answer

Файл /administrator/components/com_zoo/classes/validator.php, функция clean(), строка 512.

$value['name'] = JFile::makeSafe($value['name']);

Думаю, что смысл понятен, вызывается встроенная функция Joomla - makeSafe() и обрезает все стремные символы, в том числе и кириллицу.


  • 0

#20 hasanchemerzaev

hasanchemerzaev
  • JBZoo User (rus)
  • User rate: 5.8
  • posts: 282
  • topics: 74

Posted 12 December 2014 - 20:19

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

Мой элемент, просто сделает транслитерацию русского названия например протокол_испытаний_brugman.pdf приводится вот к такому виду protokol_ispytanij_brugman.pdf

 

 

А вот насчет того что с фронта каких то функций не хватает по подробнее, есть ли возможность дать доступ к сайту?


Edited by hasanchemerzaev, 12 December 2014 - 20:20.

  • 0




Click to return to top of page in style!