Ищу Хак смены имени добавляемых файлов на сервер

Тема в разделе "DLE", создана пользователем Tadasi, 22 фев 2010.

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

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

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

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    При заливки файлов с удаленного адреса или с компьютера адрес загруженной картинки выглядит, например, следующим образом: http://site.ru/uploads/posts/2010-02/thumbs/1266808840_deconstructing-harry.jpg
    где в 1266808840_deconstructing-harry.jpg:
    префикс "1266808840" - это случайно сгенерированный код
    "deconstructing-harry.jpg" - имя исходного файла.
    Так вот для сео очень неприемлемо получать на выходе те же самые имена как и у исходного файла!

    Может кто-нибудь видел хак, который бы изменял имя загружаемых файлов следующим образом "случайный код"_"имя новости" и не важно какой файл мы загружаем!
     
  2. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    Подскажите хотя бы какие файлы отвечают за загрузку и что нужно будет заменять. А так же где искать код, который преобразует имя новости в alt_title на латиницу?
     
  3. yavasilek

    yavasilek vasilek_gorbunok

    Регистр.:
    5 окт 2008
    Сообщения:
    1.175
    Симпатии:
    423
    1)Вот тебе хак для удаления префикса...соответственно изменение имени где-то рядом) просто нет времени капать...
    Ставится данный хак очень просто, для этого потребуется отредактировать следующие файлы:
    ./engine/ajax/upload.php
    ./engine/inc/files.php
    Открываем файл ./engine/ajax/upload.php,
    Ищем код (в оригинальном файле 145 и 146 строка:(
    $file_prefix = time() + rand( 1, 100 );
    $file_prefix .= "_";
    и удаляем его!
    Далее ищем (в оригинальном файле 158 строка:(
    $image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type;
    И заменяем на:
    $image_name = totranslit( implode( ".", $img_name_arr ) );
    $file_prefix = '';
    $number = '';
    while ( file_exists( $config_path_image_upload . $image_name . $number . '.' . $type ) ) {
    $number = $number+1;
    }
    $image_name = $image_name . $number . '.' . $type;
    Далее ищем (уже только в файле ./engine/inc/files.php:(
    if( $serverfile == '' ) {
    И перед этим кодом вставляем:
    $img_name_arr = explode( ".", $image_name );
    $type = end( $img_name_arr );
    $curr_key = key( $img_name_arr );
    unset( $img_name_arr[$curr_key] );
    $image_name = implode( ".", $img_name_arr );
    $file_prefix = '';
    $number = '';
    while ( file_exists( ROOT_DIR . "/uploads/files/" . $image_name . $number . '.' . $type ) ) {
    $number = $number+1;
    }
    $image_name = $image_name . $number . '.' . $type;
     
    Tadasi нравится это.
  4. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    Хак работает, добавляет мой префикс, но название новости не добавляет. думаю это не так-то просто, так как во время добавления/заливки файлов на сервер открывается отдельное ajax окно, которое никого отношения к title добавляемой новости не имеет. Думаю нужен какой-то хак, который бы изменял загруженные файлы добавляемой новости именно в момент постинга новости.
    Есть идеи?
     
  5. Budrin

    Budrin Читатель

    Заблокирован
    Регистр.:
    1 фев 2008
    Сообщения:
    299
    Симпатии:
    45
    в принципе можно название файла записать в отдельную ячейку поля бд и оттуда дёргать название, мысли уже были на эту тему ;)
     
  6. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    Ну неужеле никто дальше чем "думал" не заходил. Вполне актуальная тема, особенно когда к тебе льют картинки, в именнах которых заложен урл на сторонний сайт.

    Хак должен непосредственно в момент добавления новости смотреть на все ссылки на картинки, определять загруженные на хост и переименовывать их согласно названию новости (alt_title) как в тексте, так и непосредственно сами имена картинок соответственно.

    Буду очень благодарен за решение. с меня не заржавеет ;)
     
  7. Sysfaray

    Sysfaray Постоялец

    Регистр.:
    7 окт 2007
    Сообщения:
    149
    Симпатии:
    77
    Установка:
    1. Открываем engine/inc/options.php
    Находим:
    Код:
    showRow( $lang['opt_sys_dim'], $lang['opt_sys_dimd'], "<input class=edit type=text style="text-align: center;"  name='save_con[max_image_days]' value="{$config['max_image_days']}" size=10>" );  
    Вставляем ниже:
    Код:
    showRow( $lang['opt_sys_imgpr'], $lang['opt_sys_imgprc'], "<input class=edit type=text style="text-align: center;"  name='save_con[image_prefix]' value="{$config['image_prefix']}" size=10>" );  
    2. Открываем language/Russian/adminpanel.lng
    находим:
    Код:
    'wysiwyg_language'        =>  "ru",  
    Вставляем НИЖЕ:
    Код:
    'opt_sys_imgpr'        =>    "Префикс названия изображений",
    'opt_sys_imgprc'        =>    "Введите префикс для названия изображения, которые заливаются на ваш фтп сервер, <i>пример: yourdomain.com</i>", 
    3. Открываем engine/inc/files.php
    Находим:
    Код:
    $file_prefix = time() + rand( 1, 100 );  
    Заменить на:
    Код:
    $file_prefix = $config['image_prefix'];  

    4. Для изменения префикса при массовой загрузки выполняем 4 пункт, но в файле engine/ajax/upload.php
    5. Идем Админка -> Настройка системы -> Настройка работы с изображениями


    Источник: _4dle.ru/hacks/1147158175-prekfiks-k-izobrazhenijam.html


    Помогите переделать под DLE 9.4
     
Статус темы:
Закрыта.