Joomla 1.5 Как научить joomla воспринимать файлы с русским названием при загрузке?

Тема в разделе "Программирование", создана пользователем sectus, 07.12.2009.

  1. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Наверное, много кто пытался загрузить файлы в Joomla на русском языке. Вот и я озадачился проблемой.

    Подойдут оба варианта:
    1. файл загружается на сервер и название файла сохраняется на русском
    2. файл загружается на сервер и название файла меняется на транслитированный эквивалент.

    И пути решения тоже любые подойдут:
    1. на уровне расширения
    2. на уровне ядра Joomla
     
  2.  
  3. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Ну вот по-быстрому
    libraries/joomla/filesystem/file.php

    Добавляем к классы функцию:
    Код (PHP):
    1. function translit($text) {
    2.                 $trans = array(
    3.                                         "а" => "a",
    4.                                         "б" => "b",
    5.                                         "в" => "v",
    6.                                         "г" => "g",
    7.                                         "д" => "d",
    8.                                         "е" => "e",
    9.                                         "ё" => "e",
    10.                                         "ж" => "zh",
    11.                                         "з" => "z",
    12.                                         "и" => "i",
    13.                                         "й" => "y",
    14.                                         "к" => "k",
    15.                                         "л" => "l",
    16.                                         "м" => "m",
    17.                                         "н" => "n",
    18.                                         "о" => "o",
    19.                                         "п" => "p",
    20.                                         "р" => "r",
    21.                                         "с" => "s",
    22.                                         "т" => "t",
    23.                                         "у" => "u",
    24.                                         "ф" => "f",
    25.                                         "х" => "kh",
    26.                                         "ц" => "ts",
    27.                                         "ч" => "ch",
    28.                                         "ш" => "sh",
    29.                                         "щ" => "shch",
    30.                                         "ы" => "y",
    31.                                         "э" => "e",
    32.                                         "ю" => "yu",
    33.                                         "я" => "ya",
    34.                                         "А" => "A",
    35.                                         "Б" => "B",
    36.                                         "В" => "V",
    37.                                         "Г" => "G",
    38.                                         "Д" => "D",
    39.                                         "Е" => "E",
    40.                                         "Ё" => "E",
    41.                                         "Ж" => "Zh",
    42.                                         "З" => "Z",
    43.                                         "И" => "I",
    44.                                         "Й" => "Y",
    45.                                         "К" => "K",
    46.                                         "Л" => "L",
    47.                                         "М" => "M",
    48.                                         "Н" => "N",
    49.                                         "О" => "O",
    50.                                         "П" => "P",
    51.                                         "Р" => "R",
    52.                                         "С" => "S",
    53.                                         "Т" => "T",
    54.                                         "У" => "U",
    55.                                         "Ф" => "F",
    56.                                         "Х" => "Kh",
    57.                                         "Ц" => "Ts",
    58.                                         "Ч" => "Ch",
    59.                                         "Ш" => "Sh",
    60.                                         "Щ" => "Shch",
    61.                                         "Ы" => "Y",
    62.                                         "Э" => "E",
    63.                                         "Ю" => "Yu",
    64.                                         "Я" => "Ya",
    65.                                         "ь" => "",
    66.                                         "Ь" => "",
    67.                                         "ъ" => "",
    68.                                         "Ъ" => ""
    69.                                 );
    70.                 if(preg_match("/[а-яА-Я]/", $text)) {
    71.                         return strtr($text, $trans);
    72.                 }
    73.                 else {
    74.                         return $text;
    75.                 }
    76.  
    77.         }

    И в начале функции makeSafe добавляем строчку:
    Код (PHP):
    1. $file = JFile::translit($file);


    Это для того, чтобы com_media закачивал файлы с русским названием и транслитерировал их.
     
  4. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    ну вот такой вариант... все в принципе сводится к применению массива с подстановками )))
     

    Вложения:

Поделиться этой страницей

Загрузка...