Плагин для транслитерации русских имен файлов загружаемых в ModX Revolution

Опубликовано: 13 Июн 2016

Нашла на просторах Интернета, думаю многим пригодится. Перепечатываю без изменения.

В процессе работы с ModX Revolution возникла необходимость сделать плагин для транслитерации имен файлов загружаемых пользователем на хостинг через встроенный менеджер файлов. Использованную функцию UrlTranslit нарыл где то здесь.

Как использовать:
Создаем новый плагин с именем TransliterateFileNames
копируем в плагин код с Github
назначаем на событие OnFileManagerUpload.
Источник: community.modx-cms.ru/blog/2478.html

Здесь добавлю уже от себя. Лично я пользуюсь этой версией плагина:

<?php
switch ($modx->event->name) {
    case 'OnFileManagerUpload':
        $generator = $modx->newObject('modResource');
        $bases = $source->getBases($directory);
        $fullPath = $bases['pathAbsolute'].ltrim($directory,'/');
        $directory = $source->fileHandler->make($fullPath);
        foreach ($files as $file) {
            $ext = @pathinfo($file['name'],PATHINFO_EXTENSION);
            rename($directory->getPath().$file['name'], $directory->getPath() .
            str_replace($ext, '.'.$ext, $generator->cleanAlias($file['name'])));
        }
        break;
    default: break;
}
return true;

Дело в том, что в MODX уже заложены основы для реализации автоматических транслитераций или переводов для псевдонимов страниц. Например, можно установить плагин Translit, который будет автоматически транслитерировать адреса страниц. Или плагин yTranslit, который будет переводить адреса на английский с помощью сервиса Яндекс-переводов.

Так вот эта версия плагина позволяет использовать принятую на сайте систему транслитерации/перевода и загружаемые файлы будут легко вписываться в общую картину сайта.

Комментарии (0)


Оставить комментарий




Разрешённые теги: <b><i><br>Добавить новый комментарий: