Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 3867 Просмотров
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Хорошо бы было искомое слово подсвечивать в результатах поиска:


Решение для AdsMeneger 2.5 (думаю для всех остальных тоже подойдёт):

1. находим строчки, похожие на нажеприведённые, они выводят заголовок и описание объявления:
файл - adsmanager.html.php, функция - show_list
Код: php
<div>
<h2>
<?php echo '<a href="'.$linkTarget.'">'.stripslashes(adsmanager_html::cutLongWord($row->ad_headline)).'</a>'; ?>
<span class="adsmanager_cat"><?php echo "(".$row->parent." / ".$row->cat.")"; ?></span>
</h2>
<?php
$row->ad_text = str_replace ('<br />'," ",stripslashes(adsmanager_html::cutLongWord($row->ad_text)));
$af_text = substr($row->ad_text, 0, 100)."...";
echo $af_text;
?>
</div>

2. Меняем их на:
Код
$row->ad_text = str_replace ('<br />'," ",stripslashes(adsmanager_html::cutLongWord($row->ad_text))); //чистим текст от экранирование символов, разбиваем на строки если длина слова превышет 40 символов
if ($text_search != '' & $text_search != 'Поиск...' )
{
$search = array (strtolower($text_search), ucfirst(strtolower($text_search)), strtoupper($text_search)); //ищет слова напис-ое прописными, с заглавной, заглавными
$ad_text = stristr($row->ad_text, $text_search); // возращает описание начиная с первого совпадения
if ($ad_text != false) { // еслу успешный поиск в поле описание
$ad_text = substr($ad_text, 0, 120);
$af_text = "...&nbsp;".str_replace($search, '<span class="search">'.$text_search. '</span>', $ad_text); // выделяет искомое слово в описании
}
else
{
$af_text = substr($row->ad_text, 0, 120);
}

$row->ad_headline = str_replace($search, '<span class="search">'.$text_search. '</span>', $row->ad_headline); // выделяет искомое слово в заголовке
}
else
{
$af_text = substr($row->ad_text, 0, 120); //если не используется поиск
}
echo '<a href="'.$linkTarget.'">'.stripslashes(adsmanager_html::cutLongWord($row->ad_headline)).'</a>';
echo '<span class="adsmanager_cat">('.$row->parent.' / '.$row->cat.')</span>';
echo '</h2>';
$count_text =strlen ($row->ad_text); //считаем кол-во символов в описании
if ($count_text > 120) $af_text .= "&nbsp;..."; //если текст больше указанного кол-ва символов добавляет троеточие
$af_text .= "</div>";
echo $af_text;

3. После этого останется добавить стиль span.search в adsmanager.css, например:
Код: css
span.search{
color:#000;
background-color:#a0b842;
padding:0;
margin:0;
}
« Последнее редактирование: 12.12.2011, 18:35:02 от smart »
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Re: Абгрейд поиска
« Ответ #1 : 06.02.2010, 18:49:43 »
Ммм.. отлично! Если не возражаете, добавлю в "Расширения Ads" на ads-support.ru?
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Re: Абгрейд поиска
« Ответ #2 : 06.02.2010, 19:03:40 »
никаких возражений )
*

Leech

  • Захожу иногда
  • 91
  • 21 / 0
  • НоворосМаркет
Re: Абгрейд поиска
« Ответ #3 : 06.02.2010, 19:47:04 »
актуально, спасибо!
*

Leech

  • Захожу иногда
  • 91
  • 21 / 0
  • НоворосМаркет
Re: Абгрейд поиска
« Ответ #4 : 13.02.2010, 15:25:55 »
Код
$af_text = "...&nbsp;".str_replace($search, '<span class="search">'.$text_search. '</span>', $ad_text); // выделяет искомое слово в описании

решил подкорректирвать один момент. Проблема в том, что, например, если искомое слово "АвТо" (переменная $text_search), то она же и подставляется в текст/заголовок и подсвечивается. Тобишь если оригинальный заголовок был "Продажа автомобилей", то он превращается в "Продажа АвТомобилей", что не есть хорошо на мой взгляд :)
предлагаю делать так:

Код
$tmp_txt_len = strlen(utf8_decode($text_search)); // определяем длину поискового слова
$tmp_txt = JString::substr($row->ad_text, mb_stripos($row->ad_text, $text_search), $tmp_txt_len); // вырезаем текст равный поисковому с оригинальными заглавными и прописными

далее вместо переменной $text_search используем вырезанный из оригинала текст ($tmp_txt):

Код
$af_text = "...&nbsp;".str_replace($search, '<span class="search">'.$tmp_txt. '</span>', $ad_text); // выделяет искомое слово в описании

так же поступаем и с заголовком.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

AdsManager вывод нужных полей по отдельности

Автор klekovkinandrey

Ответов: 2
Просмотров: 12623
Последний ответ 06.04.2024, 09:54:15
от Rinat abzyi
AdsManager загрузка файлов

Автор FlexNL

Ответов: 1
Просмотров: 1455
Последний ответ 21.10.2021, 17:20:09
от khan-alex
AdsManager 2.9.13 Есть ли возможность добавить функцию снять с публикации по мимо редактировать и уд

Автор murovoz

Ответов: 11
Просмотров: 11630
Последний ответ 27.03.2020, 22:39:23
от Pavel
Два компонента AdsManager в одном движке

Автор kaman62

Ответов: 12
Просмотров: 26791
Последний ответ 27.03.2020, 22:32:04
от Pavel
Onlinestatus CB в AdsManager

Автор Den JW

Ответов: 1
Просмотров: 9230
Последний ответ 17.02.2020, 23:37:52
от Den JW