Данный менеджер файлов и изображений есть в исполнении Free. Но ни в Premium ни в Free нет функции переименования изображений с русских символов на транскрипцию в латинице.
Ниже мы с Вами рассмотрим как данный функционал реализовать в данном модуле.
После установки модуля. Находим файл ~/admin/controller/common/filemanager.php
//В самом верху вставляем надpublic function index() {
function translit ($text) { $rus = array("а","А","б","Б","в","В","г","Г","д","Д","е","Е","ё","Ё","ж", "Ж", "з","З","и","И","й","Й","к","К","л","Л","м","М","н","Н","о","О","п","П","р","Р", "с","С","т","Т","у","У","ф","Ф","х","Х","ц","Ц","ч", "Ч", "ш", "Ш", "щ", "Щ", "ъ","Ъ", "ы","Ы","ь","Ь","э","Э","ю", "Ю", "я","Я",'/',' '); $eng =array("a","A","b","B","v","V","g","G","d","D","e","E","e","E", "zh","ZH","z","Z","i","I","j","J","k","K","l","L","m","M","n","N","o","O", "p","P","r","R","s","S","t","T","u","U","f","F","h","H","c","C","ch","CH", "sh","SH","sch","SCH","", "", "i","I","","","e","E","yu","YU","ya","YA",'',''); $text = str_replace($rus,$eng,$text); return $text; }
public function index() {
Дальше в этом же файле в районе 336 строки: Конфигурация переименования файлов при загрузке.
//За комментируйте последующую строчку после "// Sanitize the filename" и добавить $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->translit($this->request->files['file']['name'][$i]), ENT_QUOTES, 'UTF-8'))); for ($i = 0; $i < $count; $i++) { if (!empty($this->request->files['file']['name'][$i]) && is_file($this->request->files['file']['tmp_name'][$i])) {\ // Sanitize the filename //$filename = basename(html_entity_decode($this->request->files['file']['name'][$i], ENT_QUOTES, 'UTF-8')); $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->translit($this->request->files['file']['name'][$i]), ENT_QUOTES, 'UTF-8'))); // Validate the filename length
Ниже по коду строка 491:
//Заменить код по аналогии. if (!$json) { // Sanitize the folder name //$folder = str_replace(array('../', '..\\', '..'), '', basename(html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8'))); $folder = str_replace(array('../', '..\\', '..'), '', basename(html_entity_decode($this->translit($this->request->post['name']), ENT_QUOTES, 'UTF-8'))); // Validate the filename length
Вот и все, обновляем модификатор. И пробуем добавить картинку с названием на русском.