1

Topic: Подсветка ключевых слов в результатах поиска PunBB

однажды гдето на форуме, или сайте, не помню точно. видел такую штуку:

- вводишь в форму поиска слова, и искомые слова подсвечиваются в результатах поиска. интересно, можно ли сделать подсветку ключевых слов на punbb?

вобщем то сам принцип подсветки слов я понимаю, можно 2 способами как минимум. Php функциями обработать добавляя класс CSS, либо JS скриптами автозаменой искомых слов на лету на слова с подсветкой.

Далее шаблона search.php прыгнуть не могу. Кто что скажет об этом?

Если вас никто не критикует – значит успеха вы еще не добились.

2

Re: Подсветка ключевых слов в результатах поиска PunBB

YT007 wrote:

Далее шаблона search.php прыгнуть не могу.

а дальше и не получиться. Ключевые слова обрабатываются функцией

create_search_cache($keywords, $author, $search_in, $forum, $show_as, $sort_by, $sort_dir);

а без слов никак.
Затем пользователь отправляется на УРЛ айди поиска с результатами.
переменная $keywords  теряется и нигде ее не найти и никак не вытащить.

3

Re: Подсветка ключевых слов в результатах поиска PunBB

да, действительно, обрабатывает параметры функцией, а потом в конце функции переадресует на ID поиска

  // Redirect the user to the cached result page
  header('Location: '.str_replace('&', '&', forum_link($forum_url['search_results'], $search_id)));
  exit;

по ходу ключевые здесь и остаются. да и привязать их не к чему  PunBB_INFO_ICQ/sad

Если вас никто не критикует – значит успеха вы еще не добились.

4

Re: Подсветка ключевых слов в результатах поиска PunBB

YT007 wrote:

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

К сессии привяжите

$_SESSION['test']='как сюда занести ключевые слова, думаю обьяснять не нужно!';

5

Re: Подсветка ключевых слов в результатах поиска PunBB

Xakker wrote:
YT007 wrote:

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

К сессии привяжите

$_SESSION['test']='как сюда занести ключевые слова, думаю обьяснять не нужно!';

сбрасывать сессии только не забывать нужно

6

Re: Подсветка ключевых слов в результатах поиска PunBB

Xakker, как поймать ключи?

Если вас никто не критикует – значит успеха вы еще не добились.

7

Re: Подсветка ключевых слов в результатах поиска PunBB

YT007 wrote:

Xakker, как поймать ключи?

за хуком
($hook = get_hook('se_start')) ? eval($hook) : null;
вставьте

  if (isset($_GET['keywords']) )
  {
    $_SESSION['search_keywords'] = forum_trim($_GET['keywords']);
  }
print_r($_SESSION['search_keywords']);

и посмотрите что выведет

8

Re: Подсветка ключевых слов в результатах поиска PunBB

О, супер! правда вначале показало ошибку, что не определена переменная search_keywords, а после поиска появились слова и ошибка исчезла  PunBB_INFO_ICQ/smile

Если вас никто не критикует – значит успеха вы еще не добились.

9

Re: Подсветка ключевых слов в результатах поиска PunBB

YT007 wrote:

правда вначале показало ошибку

ну правильно, ведь до поиска слов еще ж не была объявлена...

10

Re: Подсветка ключевых слов в результатах поиска PunBB

Xakker wrote:

YT007 пишет:
правда вначале показало ошибку
ну правильно, ведь до поиска слов еще ж не была объявлена...

Вот, я нашел в файле где уже выводится текст каждого найденного сообщения по ключам

        <div class="entry-content">
          <?php echo $forum_page['message'] ?>
        </div>
<?php ($hook = get_hook('se_results_posts_row_new_post_entry_data')) ? eval($hook) : null; ?>

остается обработать текст и добавить цвет найденных ключей.
Пытался обработать с помощью str_replace(), но когда несколько слов вводишь, то выделяет только одно  Default/bu
Что не так?

Если вас никто не критикует – значит успеха вы еще не добились.

11

Re: Подсветка ключевых слов в результатах поиска PunBB

YT007 wrote:

Пытался обработать с помощью str_replace(), но когда несколько слов вводишь, то выделяет только одно  
Что не так?

А как делаете?

12

Re: Подсветка ключевых слов в результатах поиска PunBB

вот так вот

      ($hook = get_hook('se_results_posts_row_pre_display')) ? eval($hook) : null;

//мой код - начало
  $forum_page['message'] = str_replace($_SESSION['search_keywords'], '<b>'.$_SESSION['search_keywords'].'</b>', $forum_page['message']);
//мой код - конец

?>
  <div class="<?php echo implode(' ', $forum_page['item_status']) ?> resultpost">
    <div class="posthead">
      <h3 class="hn post-ident"><?php echo implode(' ', $forum_page['post_ident']) ?></h3>
      <h4 class="hn post-title"><span><?php echo $forum_page['item_subject'] ?></span></h4>
    </div>
    <div class="postbody">
      <div class="post-entry">
        <div class="entry-content">
          <?php echo $forum_page['message'] ?>
        </div>
<?php ($hook = get_hook('se_results_posts_row_new_post_entry_data')) ? eval($hook) : null; ?>
      </div>
    </div>

выделяет только одно слово. а почему?

Если вас никто не критикует – значит успеха вы еще не добились.

13

Re: Подсветка ключевых слов в результатах поиска PunBB

YT007 wrote:

выделяет только одно слово. а почему?

Наверное через цикл пропускать лучше

  if(isset($_SESSION['search_keywords']) )
  {
    $search_keywords = $_SESSION['search_keywords'];
    $search_keywords = explode(' ', $search_keywords);
    
    foreach($search_keywords as $s_key => $s_word){
      $forum_page['message'] = str_replace($s_word, '<b>'.$s_word.'</b>', $forum_page['message']);
    }
  }

и проверять сессию на существование прежде чем с ней что то производить

14

Re: Подсветка ключевых слов в результатах поиска PunBB

Мне кажется, что было бы лучше выделять не жирным шрифтом, а подсвечивать цветом каким нибудь.

Примерно так

$forum_page['message'] = str_replace($s_word, '<span style="background-color: #FFFA51">'.$s_word.'</span>', $forum_page['message']);

style="background-color: #FFFA51" - можно выбрать на свой вкус

15

Re: Подсветка ключевых слов в результатах поиска PunBB

Спасибо ребята! все настроил.  Default/ay

Если вас никто не критикует – значит успеха вы еще не добились.

16

Re: Подсветка ключевых слов в результатах поиска PunBB

Данные функции были добавлены в расширение Search Word Marker выделение цветом ключевых слова в результатах поска