Подниму тему из некрополиса, написал небольшой костыль
открываем файл
\administrator\components\com_phocadownload\libraries\phocadownload\file\fileupload.php
Пожалуй и я подниму ветку.. Спасибо данному товарищу за решение данной проблемы, несмотря на то, что данного компонента в версии
3.8.6 уже нет, но есть волшебная папка:
/administrator/components/com_media/controllersи там живет файл
file.php,
так вот, для тех кто ищет сейчас решение данной проблемы делаем следующее:
после строки 21
class MediaControllerFile extends JControllerLegacy
{
вставляем функцию
public static function realCyrillicTranslit($s) {
$s = (string) $s; // преобразуем в строковое значение/ all to string
$s = preg_replace("/\s+/", ' ', $s); // удаляем повторяющие пробелы/remove repeat space
$s = mb_strtolower($s, 'UTF-8'); // переводим в нижний регистр/ translate to lower case
$s = strtr($s, array('а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d','е'=>'e','ё'=>'e','ж'=>'j','з'=>'z','и'=>'i','й'=>'y','к'=>'k','л'=>'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'h','ц'=>'c','ч'=>'ch','ш'=>'sh','щ'=>'shch','ы'=>'y','э'=>'e','ю'=>'yu','я'=>'ya','ъ'=>'','ь'=>''));
$s = str_replace(" ", "-", $s); // заменяем пробелы знаком минус/replace space to "-"
return $s;
}
и заменить только 120 строку (это уже после вставки функции, примерно будет +/- пару строк)
$file['name'] = JFile::makeSafe($file['name']);
на
$file['name'] = JFile::makeSafe(MediaControllerFile::realCyrillicTranslit($file['name']));
таким образом файлы будут на латинице. Хочу заметить, что саму функцию от товарища, я не переделывал, отлично проходит транслитерация файлов без замен точки расширения на тире и т.п.
Возможно, кому-то это пригодится.