DevCraft - Разработка приложений

Приветствую!

Это новый и обновлённый сайт maxim-harder.de! Если вы были зарегистрированы на старом сайте, то восстановите свой пароль на сайте!

Создай свой аккаунт!

Хак Постер в быстром поиске через доп. поле и короткую новость

Maxim

Интересующийся
Команда форума

Maxim

Интересующийся
Команда форума
Реакции
100% 0% 0%
Версия DLE
10.х
1499632676_1473704748_2016-09-12_20-24-371.png
Наверное многие замечали на сайтах, что когда задаёшь поисковой запрос в строчке, то результат поиска будет содержать в себе не только название искомого, но и изображение, постер, к этой статье.
Предлагаю 2 варианта реализации сего хака: через дополнительное поле и из короткой новости.

Начнём с доп. поля.
Открываем файл engine/ajax/search.php

ищем
PHP:
$db->query("SELECT id, short_story, title, date,
далее добавляем
xfields,
у нас получается
PHP:
$db->query("SELECT id, short_story, title, date, xfields, alt_name, category
ищем
PHP:
$description = preg_replace( "'\[attachment=(.*?)\]'si", "", $description );
ниже ставим
PHP:
$xf = xfieldsdataload( $row['xfields'] );
ищем
PHP:
$buffer .= "<a href=\"" . $full_link . "\">
добавляем после
PHP:
<img src=\"".$xf['poster']."\" style=\"float:left; max-width:50px; margin-right:5px;\">
у нас получится
PHP:
$buffer .= "<a href=\"" . $full_link . "\"><img src=\"".$xf['poster']."\" style=\"float:left; max-width:50px; margin-right:5px;\">
$xf['poster'] - тут poster меняем на своё значение поля

для вывода из краткой новости
Открываем файл engine/ajax/search.php
ищем
PHP:
        $row['category'] = intval( $row['category'] );
ниже ставим
PHP:
        $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";

        }
$config['http_home_url'] . templates/" . $config['skin'] . "/dleimages/no_image.jpg
тут, либо ты кидаем в папку dleimages своего шаблона заглушку no_image.jpg, либо заменяем на свою
ищем
PHP:
$buffer .= "<a href=\"" . $full_link . "\">
меняем на
PHP:
$buffer .= "<a href=\"" . $full_link . "\"><img src=\"" . $image . "\" alt=\"" . stripslashes( $title ) . "\" title=\"" . stripslashes( $title ) . "\" style=\"float: left;width: 70px;height: auto;margin: 0px 3px 3px 0px;\">
Радуемся ))) Метод не новый, будет работать на версиях 9.х -11.х
 

Верх