Хак [хак] thumbs в topnews by Glam

Тема в разделе "DLE", создана пользователем Хортица, 23 сен 2008.

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

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

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

    Хортица Прохожие

    Идея: Хортица
    Реализация: Glam
    Дата: 23.09.2008
    Версия DLE: 7.x
    Пример: _http://sport.twelvenews.ru/

    Открываем engine/modules/topnews.php

    находим

    Код:
    if(!defined('DATALIFEENGINE'))
    {
      die("Hacking attempt!");
    }
    ниже добавляем

    Код:
    // Хак by Glam start
    function get_img_basic($text){
    preg_match('|<img(.*) src="([^"]*)"[^>]*>|is', $text, $out); 
    return $out[2];
    }
    
    $w = 64; // Ширина Картинки
    $h = 64; // Высота Картинки
    // Хак by Glam end
    находим

    Код:
    SELECT id, title,
    заменяем на

    Код:
    SELECT id, short_story, title,
    находим

    Код:
    $go_page = ($config['ajax']) ? "onclick=\"DlePage('newsid=".$row['id']."'); return false;\" " : "";
    ВЫШЕ добавляем

    Код:
    // Хак by Glam start
    
    $not_resized_image = get_img_basic($row['short_story']);
    $resized_image = ROOT_DIR.'/uploads/topnews/'.basename($not_resized_image);
    if (!file_exists( $resized_image )) { cropImage($w, $h, $not_resized_image, $resized_image);}
    $img_t= str_replace('thumbs/','',$not_resized_image);
    
    $images = '<img src="'.$config['http_home_url'].'uploads/topnews/'.basename($not_resized_image).'" border="0" alt="'.$title.'">';
    
    // Хак by Glam end
    находим

    Код:
    $link = "<a {$go_page}href=\"".$full_link."\">".stripslashes($title)."</a>";
    
    заменяем на

    Для того чтобы ссылка была над картинкой:
    Код:
    $link = "<a {$go_page}href=\"".$full_link."\">".stripslashes($title)."</a><br /><br />".$images;
    Для того чтобы ссылка была справа от картинки:
    Код:
    $link = "<table><tr><td width=\"70\">".$images."</td><td><a {$go_page}href=\"".$full_link."\">".stripslashes($title)."</a></td></tr></table>";
    находим

    Код:
    $topnews .= "&raquo; ".$link."<br />";
    заменяем на

    Код:
    $topnews .= $link."<br /><br />";
    находим

    Код:
    ?>
    ВЫШЕ добавляем

    Код:
    function cropImage($nw, $nh, $source, $dest) 
    {
    $size = getimagesize($source);
    $w = $size[0];
    $h = $size[1];
    
    $stypeArr = explode( '.', $source );
    $stype = strtolower( end($stypeArr) );
    
    switch($stype) 
    {
    case 'gif':
    $simg = imagecreatefromgif($source);
    break;
    case 'jpeg':
    $simg = imagecreatefromjpeg($source);
    break;
    case 'jpg':
    $simg = imagecreatefromjpeg($source);
    break;
    case 'png':
    $simg = imagecreatefrompng($source);
    break;
    }
    
    $dimg = imagecreatetruecolor($nw, $nh);
    
    $wm = $w/$nw;
    $hm = $h/$nh;
    
    $h_height = $nh/2;
    $w_height = $nw/2;
    
    if($w> $h)
    {
    $adjusted_width = $w / $hm;
    $half_width = $adjusted_width / 2;
    $int_width = $half_width - $w_height;
    
    imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
    }
    elseif( ($w <$h) || ($w == $h) )
    {
    $adjusted_height = $h / $wm;
    $half_height = $adjusted_height / 2;
    $int_height = $half_height - $h_height;
    
    imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
    }
    else
    {
    imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
    }
    
    imagejpeg($dimg,$dest,85);
    }
    создаём на сервере папку uploads/topnews/ и ставим на нее права 777
    в папке uploads/topnews/ создаем файл .htaccess со следующим содержанием:
    Код:
    RewriteEngine Off
    
    <FilesMatch ".*">
    Order allow,deny
    Deny from all
    </FilesMatch>
    
    <FilesMatch "\.(gif|jpg|png|jpeg|bmp)$|^$">
    Order deny,allow
    Allow from all
    </FilesMatch>
    
    ErrorDocument 403 http://sport.twelvenews.ru/uploads/topnews/blank.gif
    ErrorDocument 404 http://sport.twelvenews.ru/uploads/topnews/blank.gif
    
    Ну и соответсвенно создаем blank.gif под свои требования - эта картинка нужна на тот случай, если самой картинки в новости нет.
     
  2. dm_mb

    dm_mb

    Регистр.:
    6 июн 2006
    Сообщения:
    610
    Симпатии:
    122
    он берет тумбы из новости или делает свои нужного размера?
     
  3. Kentbrn

    Kentbrn Постоялец

    Регистр.:
    11 мар 2007
    Сообщения:
    134
    Симпатии:
    14
    Судя по демосайту , скриптик делает свои тумбы !
     
  4. Хортица

    Хортица Прохожие

    Берется из короткой новости и обрезает + кладет в нужную папку.
     
  5. glam

    glam

    Регистр.:
    12 апр 2007
    Сообщения:
    734
    Симпатии:
    217
    И мне спасибки! :ah:
    С предложениями и пожеланиями по новым хакам, модулям в личку или аську. ;)

    Добавлено через 1 минуту
    ЗЫ Еще хотел бы добавить что картинка именно ОБРЕЗАЕТСЯ а не уменьшается.
     
    defnur, dos03 и jred нравится это.
  6. Хортица

    Хортица Прохожие

    Вот сволочи:
    _http://4dle.ru/hacks/1147156245-thumbs-v-topnews.html
    Кто признается, тому ничего не будет.
    Иначе полетят головы :)
     
Статус темы:
Закрыта.