Перейти к содержанию
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
  • Объявления

    • Maxim

      Регистрация на форуме!   05/03/17

      На форуме работает автоматическая регистрация пользователя. Вам не пройти её на форуме, поэтому сделайте это на главном сайте. После чего вы сможете авторизоваться используя логин и пароль на сайте. Не пытайтесь провести её на форуме, капча настроена так, что вы не подберёте правильных ответов.
Авторизация  
Maxim

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

Recommended Posts

1473704748_2016-09-12_20-24-37.png

Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.

Предлагаю 2 варианта реализации сего хака: через дополнительное поле и из короткой новости.

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

ищем

$db->query("SELECT id, short_story, title, date,

далее добавляем 

xfields,

у нас получается

$db->query("SELECT id, short_story, title, date, xfields, alt_name, category

ищем

$description = preg_replace( "'\[attachment=(.*?)\]'si", "", $description );

ниже ставим

$xf = xfieldsdataload( $row['xfields'] );

ищем

$buffer .= "<a href=\"" . $full_link . "\">

добавляем после

<img src=\"".$xf['poster']."\" style=\"float:left; max-width:50px; margin-right:5px;\">

у нас получится

$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
ищем

        $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";
        }

 

$config['http_home_url'] . templates/" . $config['skin'] . "/dleimages/no_image.jpg

тут, либо ты кидаем в папку dleimages своего шаблона заглушку no_image.jpg, либо заменяем на свою

ищем

$buffer .= "<a href=\"" . $full_link . "\">

меняем на

$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.х

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Похожий контент

    • От Maxim
      Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.
      Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.
    • От Maxim
      Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку.
      Открываем engine/ajax/search.php
      Ищем:
      $db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5"); меняем на:
      //$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5"); $db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (title LIKE '%{$query}%') ORDER by date DESC LIMIT 5"); тем самым, мы говорим быстрому поиску, что нужно искать в заголовках.
      Итак, что я сделал? я из поискового запроса удалил 
      short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR он отвечал за поиск по краткой и полной новости и по доп. полям.

      Теперь оптимизируем простой поиск.
      Открываем engine/modules/search.php
      ищем:
      if( isset( $_REQUEST['titleonly'] ) ) $titleonly = intval( $_REQUEST['titleonly'] ); else $titleonly = 0; и меняем на:
      if( isset( $_REQUEST['titleonly'] ) ) $titleonly = intval( $_REQUEST['titleonly'] ); else $titleonly = 3; тоесть, теперь, когда мы в поисковой строке нажимаем на "искать", то искать будет по заголовку
      вместо 3 можно прописать 1 или 2
      Вот за что отвечают цифры:
      0 => Искать только в статьях (учитываются и описания, и заголовки, и доп. поля)
      1 => Искать только в комментариях
      2 => Искать только в статических страницах
      3 => Искать только в заголовках статей

      Удачи!
    • От Maxim
      Пожалуйста войдите или зарегистрируйтесь чтобы увидеть ссылку. Вопросы по установке
×