Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Как использовать в быстром поиске туг {image-1} ?

Как использовать в быстром поиске туг {image-1} ?


     24.07.2014    Общие вопросы по PHP    1325

вопрос
Всем привет. Нашел хак который выводит изображение в быстром поиске по сайту но проблема в том чтобы вывести картинку в поиске нужно вбивать изображение в доп. поле
$buffer .= "<span><img width=\"50px\" height=\"50px\" src=\"".$xfieldsdata['НАЗВАНИЕ ВАШЕГО ДОПОЛНИТЕЛЬНОГО ПОЛЯ']."\" class=\"poster\" style=\"float:left; margin:5px;\">".$description."</span></a>";

И стоит вопрос как в /engine/ajx/search.php использовать тег {image-1} чтобы вставлять первую картинку из новости а не изображение и доп. поля, или может можно как-то обойтись стандартными средствами DLE ?

Ответил: BAHO


Ищим
        $row['category'] = intval( $row['category'] );

Ниже вставляем
 $short_story = stripslashes($row['short_story']);
    $images = array();
    preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $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) ) {
        $image = $url;
    } else {
        $image = $config['http_home_url'] . "templates/" . $config['skin'] . "/dleimages/no_image.jpg";
    }

Ищим
        $buffer .= "<span>".$description."</span></a>";

Меняем на
$buffer .= "<span><img width=\"50px\" height=\"50px\" src=\"" . $image . "\" class=\"poster\" style=\"float:left; margin:5px;\">".$description."</span></a>";

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

Julius123
61 | 6

Julius123 - 24 июля 2014 23:15 - Юзер

Извиняюсь за опечатку в названии, прошу исправить

Julius123
61 | 6

Julius123 - 24 июля 2014 23:35 - Юзер

P.S Может быть можно как-то автоматически вставлять первое изображение в доп поле?

BAHO
48

171 | 54

BAHO - 25 июля 2014 00:01 - Юзер

Чем вас не устраивает такой метод?
Отличный способ у меня на сайте реализован.
Берется картинка из краткой новости.

Julius123
61 | 6

Julius123 - 25 июля 2014 00:06 - Юзер

BAHO,
В том, что там выводится криво, а тут нормально

BAHO
48

171 | 54

BAHO - 25 июля 2014 00:17 - Юзер

У меня нормально

правда я там немного подправил, вот мой код
 $short_story = stripslashes($row['short_story']);
    $images = array();
    preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $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) ) {
        $image = $url;
    } else {
        $image = $config['http_home_url'] . "templates/" . $config['skin'] . "/dleimages/no_image.jpg";
    }


Замените только
Это
$buffer .= "<img src=\"" . $image . "\" alt=\"\" style=\"float: left; width: 50px; max-height: 50px; overflow: hidden; margin-top: 3px; padding: 2px;\" title=\"" . stripslashes( $row['title'] ) . "\">

на это
$buffer .= "<span><img width=\"50px\" height=\"50px\" src=\"".$xfieldsdata['НАЗВАНИЕ ВАШЕГО ДОПОЛНИТЕЛЬНОГО ПОЛЯ']."\" class=\"poster\" style=\"float:left; margin:5px;\">".$description."</span></a>";

Julius123
61 | 6

Julius123 - 25 июля 2014 00:33 - Юзер

BAHO,
У меня при поиске выдает синтаксическую ошибку, не пойму какой код за чем вставлять, разъясните пожалуйста

BAHO
48

171 | 54

BAHO - 25 июля 2014 00:37 - Юзер

Ищим
        $row['category'] = intval( $row['category'] );

Ниже вставляем
 $short_story = stripslashes($row['short_story']);
    $images = array();
    preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $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) ) {
        $image = $url;
    } else {
        $image = $config['http_home_url'] . "templates/" . $config['skin'] . "/dleimages/no_image.jpg";
    }

Ищим
        $buffer .= "<span>".$description."</span></a>";

Меняем на
$buffer .= "<span><img width=\"50px\" height=\"50px\" src=\"" . $image . "\" class=\"poster\" style=\"float:left; margin:5px;\">".$description."</span></a>";

Julius123
61 | 6

Julius123 - 25 июля 2014 00:40 - Юзер

BAHO,
Спасибо большое, работает

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

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