Виджет поиска только по заданному типу контента. Возможно? 2.X

 
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
Сейчас поиск ищет по всем типам контента, которые заданы в админке. Возможно ли ограничить у виджета поиск по заданному типу контента? Т.е на сайте два виджета. Один ищет по всем типам, который разрешены в админке, а второй только по одному.
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 498
на сайте
https://instantcms.ru/blogs/dopolnenija-ot-instantcms2-ru/vidzhet-poisk-iz-bsh.html без бутстрап не работает, быстрый поиск https://instantcms.ru/blogs/dopolnenija-ot-instantcms2-ru/instantcms-2-vidzhet-bystryi-poisk-ajax-poisk.html#c110433 . Оптимальнее быстрый поиск + перечень типов контента для выбора, по идее будет меньше обращений к базе данных, что уменьшит нагрузку и тд.
Здравствуйте. @noname будет дуть, дуть будет @noname.
Реклама
cms
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
Аякс это хорошо, но актуально именно, чтобы искал в одном типе контента, а не во всех. Для всех есть стандартный виджет поиска.

Может есть еще решение?
Посетитель
small user social cms
Медаль
Сообщений: 577
Def, есть способ через подключение
яндекс.поиск
с указанием категории

или гугл.поиск

в любом случае - эти поисковики лучше ищут по сайту, чем встроенный поиск
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
@iKrym:

Def, есть способ через подключение
яндекс.поиск
с указанием категории

или гугл.поиск

в любом случае - эти поисковики лучше ищут по сайту, чем встроенный поиск

это не лучший вариант. Внутренний поиск очень хорошо сейчас ищет, даже производные от искомого слова. Не хватает в коробке у виджета выбора типов контента и категорий в них.
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 189
Это очень просто сделать.

1. Дублируем файл /system/controllers/search/actions/index.php в ту же директорию и называем, например, onetype.php, открываем его и меняем название класса на actionSearchOnetype, т.е. слово Index меняем на Onetype (как название самого файла, но только с большой буквы). Далее ищем вот этот кусок
Код PHP:
  1. // выключено?
  2. if (!empty($this->options['types']) &&
  3. !in_array($sources_name, $this->options['types'])) {
  4. continue;
  5. }
  6.  
и меняем его на это
Код PHP:
  1. if ($sources_name!='news') continue; //вместо 'news' ваш тип контента
Т.е. старый кусок пропускал выключенные типы контента, а мы сделали, чтобы пропускались все, кроме нашего.

2. Дублируем файл шаблона /templates/default/controllers/search/widgets/search/search.tpl.php и назовем его search2.tpl.php, открываем файл и
Код PHP:
  1. href_to('search');
меняем на
Код PHP:
  1. href_to('search/onetype');
3. Д вашем втором виджете выбираете созданный шаблон и он будет искать по вашему только типу контента
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
islyaeFF:

Это очень просто сделать.

1. Дублируем файл /system/controllers/search/actions/index.php в ту же директорию и называем, например, onetype.php, открываем его и меняем название класса на actionSearchOnetype, т.е. слово Index меняем на Onetype (как название самого файла, но только с большой буквы). Далее ищем вот этот кусок
Код PHP:
  1. // выключено?
  2. if (!empty($this->options['types']) &&
  3. !in_array($sources_name, $this->options['types'])) {
  4. continue;
  5. }
  6.  
и меняем его на это
Код PHP:
  1. if ($sources_name!='news') continue; //вместо 'news' ваш тип контента
Т.е. старый кусок пропускал выключенные типы контента, а мы сделали, чтобы пропускались все, кроме нашего.

2. Дублируем файл шаблона /templates/default/controllers/search/widgets/search/search.tpl.php и назовем его search2.tpl.php, открываем файл и
Код PHP:
  1. href_to('search');
меняем на
Код PHP:
  1. href_to('search/onetype');
3. Д вашем втором виджете выбираете созданный шаблон и он будет искать по вашему только типу контента

Вот за эту подсказку Огромнейшая благодарность! v
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 498
на сайте
Для коробки отличное решение, много правок вредно для психики ...
Здравствуйте. @noname будет дуть, дуть будет @noname.
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 189
@noname:

много правок вредно для психики ...

Один раз сделали и забыли. Это не затрагивает файлы движка и при обновлениях ничего не слетит
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.