Хак DLE Files SubFolder

Тема в разделе "DLE", создана пользователем MSW, 30 ноя 2012.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. MSW

    MSW

    Регистр.:
    27 авг 2007
    Сообщения:
    491
    Симпатии:
    408
    0-web.ru_dle-files-subfolder.png


    Автор: MSW
    Сайт поддержки: http://0-web.ru/
    Версия DLE: 8.*-9.*

    Хак раскидывает новые загружаемые файлы на сервер по подпапкам вида Год-Месяц, например /2012-11/.


    1. Файлы:
    - /engine/download.php
    - /engine/ajax/clean.php
    Удалить:
    Код:
    $row['onserver'] = totranslit( $row['onserver'], false );
    2. Файл: /engine/inc/files.php
    Удалить:
    Код:
    $row['onserver'] = totranslit( $row['onserver'], false );
    Найти:
    Код:
    if( $serverfile == '' ) {
    Добавить ниже:
    Код:
    #****** DLE Files SubFolder *** by MSW ******#
                    if( ! is_dir( ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX ) ) {
                        @mkdir( ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX, 0777 );
                        @chmod( ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX, 0777 );
                    }
                    $file_prefix = FOLDER_PREFIX.$file_prefix;
    #****** DLE Files SubFolder *** by MSW ******#


    2.1. Файл: /engine/classes/uploads/upload.class.php
    Найти:
    Код:
    $uploaded_filename = $this->file->saveFile(ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX, $filename);
    Добавить выше:
    Код:
    #****** DLE Files SubFolder *** by MSW ******#
                if( ! is_dir( ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX ) ) {
                    @mkdir( ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX, 0777 );
                    @chmod( ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX, 0777 );
                }
    #****** DLE Files SubFolder *** by MSW ******#
    Найти (первый ~435 строка:( (сразу ниже прошлой строки поиска)
    Код:
    if ( $uploaded_filename ) {
    Добавть ниже:
    Код:
    #****** DLE Files SubFolder *** by MSW ******#
                    $uploaded_filename = FOLDER_PREFIX.$uploaded_filename;
    #****** DLE Files SubFolder *** by MSW ******#
    2.2. Файл: /engine/ajax/upload.php
    Удалить:
    Код:
    $row['onserver'] = totranslit( $row['onserver'], false );
     
  2. AllForSmart

    AllForSmart Постоялец

    Регистр.:
    5 сен 2008
    Сообщения:
    75
    Симпатии:
    3
    На DLE 9.7 вместо
    PHP:
    $row['onserver'] = totranslit$row['onserver'], false );
    Необходимо удалять данную строку:
    PHP:
    $file['onserver'] = totranslit($file['onserver'], false); 
    ???
     
  3. MSW

    MSW

    Регистр.:
    27 авг 2007
    Сообщения:
    491
    Симпатии:
    408
    AllForSmart, да, всё верно.