Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Хаки Привью картинка при поиске похожих новостей через админку

Привью картинка при поиске похожих новостей через админку


     29.10.2013    Хаки    1531

вопрос
Доброго времени. При добавлении новостей через админку в dle предусмотрена функция поиска похожих новостей на сайте (дублей), которая осуществляется по заголовку статей.

Вопрос: Подскажите пожалуйста, как сделать так, чтобы при поиске похожих новостей высвечивались не только заголовки, но и картинка из краткой новости?

Ответил: vitnet


engine/ajax/find_relates.php
найти
$db->query( "SELECT id, title, date, category, alt_name, MATCH (title, short_story, full_story, xfields) AGAINST ('$title') as score FROM " . PREFIX . "_post WHERE MATCH (title, short_story, full_story, xfields) AGAINST ('$title') AND approve='1'" . $where . " ORDER BY score DESC, date DESC LIMIT 5" );

заменить на (или дописать в запрос short_story,)
$db->query( "SELECT id, title, short_story, date, category, alt_name, MATCH (title, short_story, full_story, xfields) AGAINST ('$title') as score FROM " . PREFIX . "_post WHERE MATCH (title, short_story, full_story, xfields) AGAINST ('$title') AND approve='1'" . $where . " ORDER BY score DESC, date DESC LIMIT 5" ); // 5 это количество новостей

найти
$news_date = date( 'd-m-Y', $related['date'] );

ниже добавить
    $related['short_story'] = stripslashes($related['short_story']);

    $images = array();
    preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $related['short_story'], $media);
    $data = preg_replace('/(img|src)("|\'|="|=\')(.*)/i', "$3", $media[0]);
    
    foreach($data as $url) {
        $info = pathinfo($url);
        if (isset($info['extension'])) {
            $info['extension'] = strtolower($info['extension']);
            if (($info['extension'] == 'jpg') || ($info['extension'] == 'jpeg') || ($info['extension'] == 'gif') || ($info['extension'] == 'png')) array_push($images, $url);
        }
    }
    
    if ( count($images) ) {
        $i_count=0;
        foreach($images as $url) {
            $i_count++;
            $image = $url;
        }
    } else {
        $image = $config['http_home_url'] . "templates/" . $config['skin'] . "/dleimages/no_image.jpg";
    }

найти
$buffer .= "<div style=\"padding:2px;\">{$d_link}{$news_date} - <a href=\"" . $full_link . "\" target=\"_blank\">" . stripslashes( $related['title'] ) . "</a></div>";

заменить на
$buffer .= "<div style=\"padding:2px;\">{$d_link}{$news_date} - <a href=\"{$image}\" onclick=\"return hs.expand(this)\"><img src=\"{$image}\" width=\"20\" height=\"13\" alt=\"\" title=\"" . stripslashes( $related['title'] ) . "\"></a> <a href=\"" . $full_link . "\" target=\"_blank\">" . stripslashes( $related['title'] ) . "</a></div>";

Готово!
PS: width=\"20\" height=\"13\" - высота и ширина картинки

Комментарии пользователей (3)

DanRacer
24 | 14

DanRacer - 29 октября 2013 20:48 - Юзер

Забыл указать, версия DLE 9.7

dj-avtosh
39

1479 | 390

dj-avtosh - 30 октября 2013 11:26 - шашлычник

а если картинок нет в новости, то будет писать и писать в лог сервера ворнинги.

skype: elhan.isaev

rambess1984
38 | 1

rambess1984 - 11 ноября 2013 16:41 - Юзер

а как этужу функционал заставить работать через доп, поле

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы