0 Пользователей и 1 Гость просматривают эту тему.
  • 50 Ответов
  • 35320 Просмотров
*

danko

  • Осваиваюсь на форуме
  • 23
  • 1 / 1
вы тут какашки месите, а люди реальные дела делают
вот

http://rukodelie-ds.ru/forum/viewtopic.php?f=12&t=616

ищите файл
/libraries/joomla/filesystem/file.php

и заменяете в нем на вот это

public static function makeSafe($file)/** чтобы понимались русские буквы! источник http://rukodelie-ds.ru/forum/viewtopic.php?f=12&t=616 */
   {
     $regex = array('#(\.){2,}#', '#[^A-Za-z0-9а-яА-ЯёЁ\.\_\- ]#u', '#^\.#');
     return preg_replace($regex, '', $file);
   }

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

danko

  • Осваиваюсь на форуме
  • 23
  • 1 / 1
а ну и файл сохранить в кодировке утф-8 без ром, я сделал это в нотепеаде++
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
danko, а что же вы умолчали, что это хак, и что жив он будет до первого обновления, и что таки эта функция относится к фильтрации входящих данных? Или хватило ума только прийти, обозвать всех и показать, что вы умеете пользоваться ПС? ))
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

danko

  • Осваиваюсь на форуме
  • 23
  • 1 / 1
а че обозвать. я смотрю тут вы не церемонитесь между собой. я просто добавил, не более того.
мне что по другому общаться? я кстати никого не обзывал, а просто констатировал факт, что вы друг друга поливаете грязью вместо того чтобы нормально разговаривать.

до какого обновления, до обновления первного Joomla? а начерта ее обновлять то, не отвечайте.
*

danko

  • Осваиваюсь на форуме
  • 23
  • 1 / 1
вы чего это меня отчитываете, что я что то умолчал. я ничего не умалчивают, не оскорбляйте. за собой пожалуйста следите.
я просто дал ссылку, не нравится, не делайте. автор темы вас уже просил не мешать
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
А кто потом ответит на пост "После обновления все стало криво АААА ПАМАГИТЕ" ... ?

Хаки для Joomla - плохо, попив чайку еще раз - загуглите по этому поводу.

Тут кроме вас все говорят, что нет кириллицы в сети, потому что знают это. Если вы считаете, что присутствие русских букв в интернете - есть полная его поддержка - то ошибаетесь. Купив какой-нибудь девайс из зарубежья, не сделанного для России - вы это поймете. Поддержки кириллических символов там может просто не быть, а может быть, но не включено по-умолчанию.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
а че обозвать. я смотрю тут вы не церемонитесь между собой. я просто добавил, не более того.
Мы не церемонимся, потому что большинство знакомо лично (как минимум неформальное общение скайп/аська/форум, как максимум совместный отдых). Извините, с вами мы коньяк не пили и работу не работали.

до какого обновления, до обновления первного Joomla? а начерта ее обновлять то, не отвечайте.
Да, до первого обновления J!, открою для вас секрет - при автоматическом обновлении будут перезаписаны все файлы ядра, в которые были внесены изменения.

автор темы вас уже просил не мешать
Автору темы уже давно всё объяснили.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Как бы встроить транслитерацию на лету в менеджере загрузок JCE для русских имен файлов? Дело в том, что файлов много и переименовывать иногда бывает трудно.
*

Dynamiteman

  • Новичок
  • 4
  • 0 / 0
Проверка показала что все работает. Не знаю, надолго ли, буду думать как добавить 2800 названий файлов если переводить в т ранслит.
*

EXBBXAK

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Подниму тему из некрополиса, написал небольшой костыль
открываем файл
\administrator\components\com_phocadownload\libraries\phocadownload\file\fileupload.php

после 16 строки

Код
class PhocaDownloadFileUpload
{
вставляем функцию
Код
	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;
}
и заменить 58 и 375 строку (после вставки функции это будут 67 и 384 строки)
Код
$file['name']	= JFile::makeSafe($file['name']);
на
Код
$file['name']	= JFile::makeSafe(PhocaDownloadFileUpload::realCyrillicTranslit($file['name']));

таким образом файлы будут на латинице и понятно название для нас, и в то же время норм для скачивания всеми... протестировал вроде на всех сайтах работает..., правда после обновления компонента придется по новой делать эту операцию, пока Ян не добавит это сам в ядро, ну и вы все это юзаете на свой страх и риск=)

вот видео, что это работает
мб кому пригодится!

написал еще и у них на форуме!
https://www.phoca.cz/forum/viewtopic.php?f=1&t=21358&p=150530#p150530
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не надо никаких realCyrillicTranslit, у Joomla есть нативная функция транслитерации
Код
$file['name']	= JFile::makeSafe(JApplicationHelper::stringURLSafe($file['name']));
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

EXBBXAK

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
да, только она заменяет точки и ломает расширение файла, в итоге на выходе вы получите из этого "Свидетельство о государственной аккредитации с приложением.pdf" это "svidetelstvo-o-gosudarstvennoj-akkreditatsii-s-prilozheniem-pdf"
т.е файл не загрузится. опять же, можно модифицировать функцию realCyrillicTranslit, отделив расширение файла, потом пропустить имя через JApplicationHelper::stringURLSafe и опять склеить расширение..., это максимум что можно сделать для более гибкой работы костыля...
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а так
Код
$path_info = pathinfo($file['name']);
$file['name'] = JFile::makeSafe(JApplicationHelper::stringURLSafe($path_info['filename']). '.' . $path_info['extension']);
?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

EXBBXAK

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
хех я реализовал задумку более топорно...,
Код
public static function  realCyrillicTranslit($s) {
$ext = pathinfo($s, PATHINFO_EXTENSION); //get file ext
$s = JApplicationHelper::stringURLSafe(preg_replace('/.[^.]*$/', '', $s)); //translate filename to eng. without file ext
$s = $s.".".$ext; //merge filename and file extension
return $s;
}

ваш вариант красивее и лучше, в итоге получаем

Код
public static function  realCyrillicTranslit($s) {

$path_info = pathinfo($s);
$s = JFile::makeSafe(JApplicationHelper::stringURLSafe($path_info['filename']). '.' . $path_info['extension']);
return $s;
}

почему все же в функцию? потому что в PhocaGallery куча мест где нужна замена, а работает и там и там решение, поэтому выгоднее функцией...=)
dmitry_stas Спасибо за улучшение костыля =)
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
еще надо наверное для универсально проверить а есть ли расширение
Код
JFile::makeSafe(JApplicationHelper::stringURLSafe($path_info['filename']) . ($path_info['extension'] ? '.' . $path_info['extension'] : ''));
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

EXBBXAK

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
как вариант да, но в данном случае не важно, так как до этого файл в phoca проверяется и если нет расширения получим:

Ошибка
Тип файла запрещен - Файл не может быть загружен
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ага, понятно, т.е. проверка уже есть. ну тогда да, можно обойтись без этого.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kaleksey

  • Новичок
  • 1
  • 0 / 0
Подниму тему из некрополиса, написал небольшой костыль
открываем файл
\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']));

таким образом файлы будут на латинице. Хочу заметить, что саму функцию от товарища, я не переделывал, отлично проходит транслитерация файлов без замен точки расширения на тире и т.п.

Возможно, кому-то это пригодится.
*

Blackspace

  • Новичок
  • 1
  • 0 / 0
kaleksey, EXBBXAK - спасибо большое мне очень пригодилось. ^-^
Решение очень просто применить и всё чётко прописано что где сделать нужно.
Делал каталог статей на сайте с помощью jbzoo и столкнулся с проблемой загрузки файлов с кириллическими символами в именах файлов.
Позже набрёл на эту тему и Ваше решение очень помогло.

Поставьте им плюс в карму, у меня пока нету такой возможности, к сожалению.
« Последнее редактирование: 19.06.2018, 12:26:31 от Blackspace »
*

koyot777

  • Захожу иногда
  • 135
  • 1 / 2
  • Не щекочи койота..
$file['name']     = JFile::makeSafe($file['name']);

Дж 2.5.28,   опенсервер на винде

Не могу найти в файле /administrator/components/com_media/controllers/file.php

Может не там ищу? Пытаюсь подружить Ignite Gallery 2.3.8 с кириллицей, подскажите как это реализовать? (пробовал добавлять "а-яА-ЯёЁ" во все файлы галереи, где содержится preg_replace, начал выводить название на рус. но файлы не видет, они конвертируются в кракозабры (загрузчик plupload))
« Последнее редактирование: 17.12.2019, 15:43:06 от koyot777 »
*

verytolik

  • Новичок
  • 1
  • 0 / 0
Phoca обновился до 3.2.2 и опять перестало работать.
Поиском попробовал найти все места, где используется makesafe, и вставить там транслитерацию.
Не помогает (
Может кто уже разобрался?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Настройка отображения файлов

Автор KingSnake

Ответов: 1
Просмотров: 2265
Последний ответ 19.03.2018, 14:42:06
от KingSnake
Убрать сортировку файлов

Автор KingSnake

Ответов: 3
Просмотров: 2249
Последний ответ 21.09.2017, 13:28:15
от vipiusss
PhocaDownload и имена файлов

Автор VendigoLR

Ответов: 5
Просмотров: 7940
Последний ответ 17.12.2014, 15:01:53
от Restorator
Нужна загрузка из материала Joomla 3.2

Автор Teng

Ответов: 1
Просмотров: 2321
Последний ответ 24.03.2014, 20:24:54
от ANATOLIY_80
Ошибка в директории файлов

Автор Dynamiteman

Ответов: 0
Просмотров: 1775
Последний ответ 03.06.2013, 16:01:12
от Dynamiteman