OpencartСайты CMS

Менеджер изображений(PH File Manager – Premium) Opencart 2.3

Данный менеджер файлов и изображений есть в исполнении 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

Вот и все, обновляем модификатор. И пробуем добавить картинку с названием на русском.

0

Автор публикации

не в сети 3 месяца

Илья Коковин

Аватар 0
Комментарии: 0Публикации: 34Регистрация: 30-05-2019

Добавить комментарий

Ваш адрес email не будет опубликован.

Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
Генерация пароля