Simplesearch modx revo параметры. Жмем кнопку "Загрузить дополнения"

Здравствуйте, дорогие друзья и коллеги! Хочу познакомить вас с отличным пакетом для организации поиска на сайте под системой Modx Revolution - SimpleSearch . Я пошагово объясню вам, как установить этот пакет на сайт и организовать поиск на сайте. Итак, приступим:

1. Для начала заходим в "Система" - "Управление пакетами"

2. Жмем кнопку "Загрузить дополнения"

3. Вбиваем в строку поиска - SimpleSearch, нажимаем "Enter" и нажимаем на кнопку "Загрузить"

4. Пойдет загрузка пакета

5. Нажимаем "Управление пакетами"

6. И жмем кнопку "установить" возле скаченного нами SimpleSearch

Жмем "Продолжить", а потом "ОК"

7. Создаем новый ресурс в корне дерева

Заголовок: Результаты поиска, ставим галочку "Не показывать в меню". Нажимаем на вкладку "Настройки" и убираем галочки с "Доступен для поиска", "Использовать HTML-редактор". Незабываем сохранить ресурс.

8. Далее заходим в новосозданный ресурс и в поле "Содержимое ресурса" вписываем [[!SimpleSearch]] 9. Запоминаем id этого ресурса, это страница вывода результатов поиска

В шаблон где находится сама форма поиска вставляем следующий код:

[[!SimpleSearchForm? &landing=`1` &tpl=`search`]]

где landing - это ID страницы вывода результатов поиска, а чанк search отвечает за саму форму поиска, который мы сейчас создадим

10. Затем копируем следующий код

это содержимое файла core/components/simplesearch/elements/chunks/searchform.chunk.tpl:

[[%sisea.search? &namespace=`sisea` &topic=`default`]]

в новый чанк с названием search и создаем тот шаблон отображения окна поиска, который нам необходим.

11. Далее решаем проблемы с кодировкой

Находим файл core/components/simplesearch/model/simplesearch/simplesearch.class.php в нем заменяем строку

$text = trim(preg_replace("/\s+/", " ", $this->sanitize($text)));

$text = trim(preg_replace("/\s+/u", " ", $this->sanitize($text)));

12. Затем заменяем строку $string = preg_replace("/" . $quoteValue . "/i", "$0", $string);

$string = preg_replace("/" . $quoteValue . "/iu", "$0", $string);

13. А так же заменяем строку $text = preg_replace("/(\[\[\+.*?\]\])/i", "", $text);

$text = preg_replace("/(\[\[\+.*?\]\])/iu", "", $text);

14. И последнее, надо закомментировать строчку if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str)); Основные чанки SimpleSearch

Поиск на сайте под управлением Modx Revolution готов. Он работает, можете убедиться в этом сами, но есть еще несколько моментов, которые пригодятся в работе с этим сниппетом. А именно редактирование чанков результатов поиска, его обертки, пагинации и так далее. Для начала Вам нужно понимать, что все чанки в формате.tpl находятся вот по этому пути: core/components/simplesearch/elements/chunks/. Ну а для того, чтобы с ними было легче работать выведем основные чанки в админку Modx. Вот их параметры

  • containerTpl
  • pageTpl
  • currentPageTpl

Ну а называть сами чанки мы уже будем как хотим.

Параметр tpl - чанк SimpleSearchResult

Параметр tpl отвечает за вывод каждого отдельного пункта результата поиска. Давайте создадим чанк и назовем его SimpleSearchResult . Скопируем в него код из файла core/components/simplesearch/elements/chunks/searchresult.chunk.tpl :

[[+idx]].

заменяем на

$text = preg_replace("/(\[\[\+.*?\]\])/iu", "", $text);

строку 311:

$text = trim(preg_replace("/\s+/", " ", $this->sanitize($text)));

заменяем на

$text = trim(preg_replace("/\s+/u", " ", $this->sanitize($text)));

строку 413:

$string = preg_replace("/" . $quoteValue . "/i", "$0", $string);

заменяем на

$string = preg_replace("/" . $quoteValue . "/iu", "$0", $string);

закоментируем строку 179:

If (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));

т.е. должно получиться вот так

/*if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str)); */

3. Делаем копии всех стандартных чанков которые лежат в директории core/components/simplesearch/elements/chunks/

Создаем новые чанки с теми же именами и префиксом -new, и тем же содержимым (только они уже не на основе файлов, а обычные), для чего все это поймете дальше.

Например, берем первый чанк currentpagelink.chunk.tpl и создаем новый чанк currentpagelink-new (элементы — создать новый чанк) ну и переносим в него код.

[[+text]]

Отвечает за управления кнопкой в пагинации для активной страницы.

И таким же образом создаем остальные чанки:

— pagelink-new — отвечает за вывод отдельной кнопки пагинации.

[[+text]]

  • [[+link]] - ссылка надокумент
  • [[+text]] - номер документа

— searchform-new — форма поиска

[[%sisea.search? &namespace=`sisea` &topic=`default`]]

— searchnoresults можно не переносить — там нет не какого оформления;

— searchresult-new — вывод каждого пункта результата.

[[+idx]]. [[+pagetitle]]

[[+extract]]

  • [[+idx]] - номер результата поиска в списке
  • [[+link:is=``:then=`[[~[[+id]]]]`:else=`[[+link]]`]]
  • [[+longtitle]] - расширенный заголовок
  • [[+pagetitle]] - заголовок
  • [[+extract]] - текст, по которому был найден этот документ

— searchresultli — по сути тоже можно не переносить.

— searchresults-new — обертка всех результатов

[[+resultInfo]]

[[+paging]] [[+results]] [[%sisea.result_pages? &namespace=`sisea` &topic=`default`]][[+paging]]

  • [[+resultInfo]] - инф-я о кол-ве найденных документов и по какому словосочетанию.
  • [[+sisea.result_pages? &namespace=`sisea` &topic=`default`]]

    Вывод фразы «Страницы с результатами поиска:»

  • [[+paging]] - пагинация
  • [[+results]] - результаты поиска

После всего проделанного у вас должно получиться 5 новых чанков.

4. Создаем новый документ на который будут выводиться результаты поиска

Заголовок: Результаты поиска, ставим галку «Не показывать в меню». В «Настройки» и убираем галки с «Доступен для поиска», «Использовать HTML-редактор». Сохраняем. Обновляем страницу и прописываем в содержимое

[[!SimpleSearch? &tpl=`searchresult-new` &containerTpl=`searchresults-new` &pageTpl=`pagelink-new` ¤tPageTpl=`currentpagelink-new`]]

чанки оформлении которые создали на 3 шаге (внешний вид).

Если хотите чтобы в результах поиска были картинки, то дописываем в конце этого вывода

&includeTVs=`1` &processTVs=`1`

В чанке searchresult картинку можно вызывать так: [[+img]].

5. Выводим форму поиска

На месте где нужно вывести форму поиска, пишем

[[!SimpleSearchForm? &landing=`11` &tpl=`searchform-new`]]

Здесь landing — id страницы с результатами поиска, в tpl — чанки оформления формы, который создали на 3 шаге.

Делали 4 и 5 шаг мы для того, чтобы можно было редактировать на свое усмотрение внешнее оформление: самой формы, результатов поиска и т.д. не влезая в исходники. А стандартное оформление достаточно печальное, вот так к примеру выглядит стандартная форма поиска.

6. Меняем оформление.

Описывать как оформить все чанки не вижу смысла, для примера приведу новое оформление для чанка searchform-new

Это обычная стандартная разметка формы от бутстрап 3, на сайте выглядит так:

Официальная документация здесь: docs.modx.com/extras/revo/simplesearch

Если есть вопросы, пишите задавайте их в комментариях.