Новости Joomla

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

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Пока готового решение нет!


Все изменения и исправления производятся в самом движке Joomla

/libraries/joomla/filesystem/file.php

Находим ст. 50-60:
Код
	/**
* Makes file name safe to use
*
* @param string $file The name of the file [not full path]
* @return string The sanitised string
* @since 1.5
*/
function makeSafe($file) {
$regex = array('#(\.){2,}#', '#[^A-Za-z0-9\.\_\- ]#', '#^\.#');
return preg_replace($regex, '', $file);
}

Здесь для J1.5 от ChaosHead - код не доделан
Код
	function makeSafe($file) {

// $regex = array('#(\.){2,}#', '#[^A-Za-z0-9\.\_\- ]#', '#^\.#');
// return preg_replace($regex, '', $file);

$gost299 = array(
                   "Рђ"=>"A","Р‘"=>"B","Р’"=>"V","Р“"=>"G","Р”"=>"D",
                   "Р•"=>"E","РЃ"=>"JO","Р–"=>"ZH",
                   "Р—"=>"Z","Р˜"=>"I","Р™"=>"J","Рљ"=>"K","Р›"=>"L",
                   "Рњ"=>"M","Рќ"=>"N","Рћ"=>"O","Рџ"=>"P","Р "=>"R",
                   "РЎ"=>"S","Рў"=>"T","РЈ"=>"U","Р¤"=>"F","РҐ"=>"H",
                   "Р¦"=>"C","Р§"=>"CH","РЁ"=>"SH","Р©"=>"SHH","РЄ"=>"",
                   "Р«"=>"Y","Р¬"=>"","Р­"=>"JE","Р®"=>"YU","РЇ"=>"YA",
                   "Р°"=>"a","Р±"=>"b","РІ"=>"v","Рі"=>"g","Рґ"=>"d",
                   "Рµ"=>"e","С‘"=>"jo","Р¶"=>"zh",
                   "Р·"=>"z","Рё"=>"i","Р№"=>"j","Рє"=>"k","Р»"=>"l",
                   "Рј"=>"m","РЅ"=>"n","Рѕ"=>"o","Рї"=>"p","СЂ"=>"r",
                   "СЃ"=>"s","С‚"=>"t","Сѓ"=>"u","С„"=>"f","С…"=>"h",
                   "С†"=>"c","С‡"=>"ch","С?"=>"sh","С‰"=>"shh","СЉ"=>"",
                   "С‹"=>"y","СЊ"=>"","СЌ"=>"je","СЋ"=>"yu","СЏ"=>"ya"," "=>"-"
                );

                $res = trim($file);
                $res = strtr($res, $gost299);
                $res = preg_replace(array('/\s+/','/[\$\&\+\,\/\:\;\=\?\@\'\"\<\>\#\%\{\}\|\\\^\~\[\]\`\.]/'), array('-',''), $res);
                $res = str_replace ('-', ' ', $res);
                $res = trim (strtolower ($res));
                $res = preg_replace(array('/\s+/','/[^A-Za-z0-9\-]/'), array('-','-'), $res);

return $res;
}
Цитировать
       Не удалось загрузить 'tam-gdejpg' файл: Вы должны использовать разрешённые расширения файлов (для изображения: jpg, jpeg, gif, png и другие файлы: txt, rtf, pdf, zip, tar.gz, tgz, tar.bz2).
        Не удалось загрузить 'fajlzip' файл: Вы должны использовать разрешённые расширения файлов (для изображения: jpg, jpeg, gif, png и другие файлы: txt, rtf, pdf, zip, tar.gz, tgz, tar.bz2).


Для  J1.7 от AlexSmok - вроде работает
Цитировать
public static function makeSafe($file)
{
//$regex = array('#(.){2,}#', '#[^A-Za-z0-9._- ]#', '#^.#');
//return preg_replace($regex, '', $file);

$gost = array(
"╨Р"=>"A","╨С"=>"B","╨Т"=>"V","╨У"=>"G","╨Ф"=>"D",
"╨Х"=>"E","╨Б"=>"JO","╨Ц"=>"ZH",
"╨Ч"=>"Z","╨Ш"=>"I","╨Щ"=>"J","╨Ъ"=>"K","╨Ы"=>"L",
"╨Ь"=>"M","╨Э"=>"N","╨Ю"=>"O","╨Я"=>"P","╨а"=>"R",
"╨б"=>"S","╨в"=>"T","╨г"=>"U","╨д"=>"F","╨е"=>"H",
"╨ж"=>"C","╨з"=>"CH","╨и"=>"SH","╨й"=>"SHH","╨к"=>"",
"╨л"=>"Y","╨м"=>"","╨н"=>"JE","╨о"=>"YU","╨п"=>"YA",
"╨░"=>"a","╨▒"=>"b","╨▓"=>"v","╨│"=>"g","╨┤"=>"d",
"╨╡"=>"e","╤С"=>"jo","╨╢"=>"zh",
"╨╖"=>"z","╨╕"=>"i","╨╣"=>"j","╨║"=>"k","╨╗"=>"l",
"╨╝"=>"m","╨╜"=>"n","╨╛"=>"o","╨┐"=>"p","╤А"=>"r",
"╤Б"=>"s","╤В"=>"t","╤Г"=>"u","╤Д"=>"f","╤Е"=>"h",
"╤Ж"=>"c","╤З"=>"ch","╤И"=>"sh","╤Й"=>"shh","╤К"=>"",
"╤Л"=>"y","╤М"=>"","╤Н"=>"je","╤О"=>"yu","╤П"=>"ya"," "=>"-"
);

$res = trim($file);
$res = strtr($res, $gost);
$res = preg_replace(array('/s+/','/[$&+,/:;=?@'"<>#%{}|\^~[]`]/'), array('-',''), $res);
$res = str_replace ('-', ' ', $res);
$res = trim (strtolower ($res));
$res = preg_replace('#(.){2,}#','.', $res);
return $res;
}

Есть ещё вариант от pawa - этот вариант точно не работает)))
Код
function makeSafe($file) {
- $regex = array('#(\.){2,}#', '#[^A-Za-z0-9\.\_\- ]#', '#^\.#');
- return preg_replace($regex, '', $file);
+ $res = preg_replace('#(\.){2,}#','.', $file);
+ $res = preg_replace('#^\.#','', $res);
+ $res = preg_replace('#[^A-Za-z0-9\.\_\- ]#','-', $res);
+ return $res;
 }


Мой вариант, но есть проблемы,  все буквы не делает строчными, то есть оставляет заглавные буквы не переводит их в строчные.
Код
	function makeSafe($file) {
                $gost = array(
                   "Рђ"=>"A","Р‘"=>"B","Р’"=>"V","Р“"=>"G","Р”"=>"D",
                   "Р•"=>"E","РЃ"=>"JO","Р–"=>"ZH",
                   "Р—"=>"Z","Р˜"=>"I","Р™"=>"J","Рљ"=>"K","Р›"=>"L",
                   "Рњ"=>"M","Рќ"=>"N","Рћ"=>"O","Рџ"=>"P","Р "=>"R",
                   "РЎ"=>"S","Рў"=>"T","РЈ"=>"U","Р¤"=>"F","РҐ"=>"H",
                   "Р¦"=>"C","Р§"=>"CH","РЁ"=>"SH","Р©"=>"SHH","РЄ"=>"",
                   "Р«"=>"Y","Р¬"=>"","Р­"=>"JE","Р®"=>"YU","РЇ"=>"YA",
                   "Р°"=>"a","Р±"=>"b","РІ"=>"v","Рі"=>"g","Рґ"=>"d",
                   "Рµ"=>"e","С‘"=>"jo","Р¶"=>"zh",
                   "Р·"=>"z","Рё"=>"i","Р№"=>"j","Рє"=>"k","Р»"=>"l",
                   "Рј"=>"m","РЅ"=>"n","Рѕ"=>"o","Рї"=>"p","СЂ"=>"r",
                   "СЃ"=>"s","С‚"=>"t","Сѓ"=>"u","С„"=>"f","С…"=>"h",
                   "С†"=>"c","С‡"=>"ch","С?"=>"sh","С‰"=>"shh","СЉ"=>"",
                   "С‹"=>"y","СЊ"=>"","СЌ"=>"je","СЋ"=>"yu","СЏ"=>"ya"," "=>"-"
                );
$regex = array('#(\.){2,}#', '#[^A-Za-z0-9\.\_\- ]#', '#^\.#');
        $res = trim($file);
        $res = strtr($res, $gost);
return preg_replace($regex, '', $res);
}
Пример:  

- У нас есть два файла:

Там где.jpg
файл.zip

Код переведёт их:

fajl.zip
Tam-gde.jpg


 *DRINK*

« Последнее редактирование: 25.01.2012, 15:25:21 от ChaosHead »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не подхватывается файл локализации компонента Kunena v6.0.3

Автор Александр Кардаш

Ответов: 1
Просмотров: 3377
Последний ответ 02.04.2023, 18:12:09
от Александр Кардаш
Нужна помощь в переносе форума с Kunena на wordpress и любой плагин форума

Автор Zoltar22

Ответов: 0
Просмотров: 3084
Последний ответ 19.10.2022, 04:32:49
от Zoltar22
Форум Kunena. нет поля для ввода текста

Автор sarvasvova

Ответов: 2
Просмотров: 3602
Последний ответ 02.08.2022, 09:32:31
от crimeafrend
Kunena при создании новой темы не выводит поле для ввода текста

Автор sarvasvova

Ответов: 0
Просмотров: 6054
Последний ответ 18.11.2021, 00:31:10
от sarvasvova
Русификация Kunena

Автор pavel82

Ответов: 5
Просмотров: 30716
Последний ответ 04.06.2021, 14:44:49
от Elya