Урок 10 - Поиск по сайту. Поиск по сайту modx revo
[MODx] Поиск на сайте с пакетом SimpleSearch
Не зря пакет называется "SimpleSearch". Установить и использовать этот поиск действительно просто.
Установка в формате минимум:
- Создать страницу "Результаты поиска" и вставить туда сниппет [[!SimpleSearch]]
- Там, где хотите вызвать форму разместить сниппет [[!SimpleSearchForm? &landing=`123`]]. В атрибуте landing указать id ресурса "Результаты поиска".
Но по сути сниппет SimpleSearchForm генерирует фот такую форму, которую можно как угодно править. Конечно, можно и через чанк, но...зачем?)
Либо любым другим способом передать в GET query string такого вида — ?search=Петр&id=123
Вывод в результатов поиска SimpleSearch товаров из minishop2
Или можно иначе сформулировать — Настройка вывода результатов поиска
Чанк элемента результата поиска находится тут — core/components/simplesearch/elements/chunks/searchresult.chunk.tpl
В сниппете SimpleSearch нет параметра where, поэтому придумываем костыли.
Наиболее простая в релизации конструкция — обернуть чанк вывода в условие [[+template:is=`5`:then=``]]
Как альтрнатива — как-то поиграть с параметрами ids и idType...
Настройки SimpleSearch
searchIndex | search |
toPlaceholder | 0 |
noResultsTpl | SearchNoResults |
tpl | SearchResultcore/components/simplesearch/elements/chunks/searchresult.chunk.tpl |
containerTpl | SearchResultscore/components/simplesearch/elements/chunks/searchresults.chunk.tpl |
showExtract | 1 |
extractSource | content |
extractLength | 200 |
extractEllipsis | ... |
highlightResults | 1 |
highlightClass | sisea-highlight |
highlightTag | span |
perPage | 10 |
pagingSeparator | | |
placeholderPrefix | sisea. |
includeTVs | |
processTVs | |
tvPrefix | |
offsetIndex | sisea_offset |
postHooks | |
facet | 'default' |
facetLimit | 5 |
outputSeparator | \n |
addSearchToLink | 0 |
searchInLinkName | search |
Способ поблагодарить автора сайта:
webstool.ru
поиск по сайту с учетом морфологии и релевантности / Готовые дополнения для MODX / MODX.im
Потестировал и решил перенести условия выборки прямо в DocLister (так быстрее, чем промежуточная выборка id). В общем результаты тестов примерно следующие (тестил сразу на огромном по меркам MODx сайте с настройками, когда в AliasListing заносятся только папки).Итак исходные данные:
количество ресурсов — 329,974шт — 616.0 MiB ТВ — 659,886 шт — 336.1 MiB, в том числе anons (reachtext) — 329,931штук и почти весь объем, т.к. остальные строки или чекбоксы.
ыборка из категории 50 000 штук размером Постраничный вывод на 10 штук DocLister (без всяких условий) —
Проиндексировано 25,560 ресурсов вместе с ТВ анонс (есть у каждого ресурса) — медленное это дело, но это делается один раз, потом индексируется каждый документ отдельно при сохранении размер таблицы site_content практически не изменился, даже стал меньше (611.8 MiB, было 616.0 MiB) — хотя возможно это связано с однотипными записями
По запросу прямые накладные профили найдено всего 25560. Показано 10, c 1 по 10
<!-- Mem : 16 mb, MySQL: 1.8281 s, 35 request(s), PHP: 0.1562 s, total: 1.9844 s, document from database. -->По запросу о компании найдено всего 1. Показано 1, c 1 по 1
<!-- Mem : 16 mb, MySQL: 1.2344 s, 26 request(s), PHP: 0.1250 s, total: 1.3594 s, document from database. -->ЭТо все с экстрактором, без него скорость практически не изменилась (так что отключать его смысла нет, разве что по дизайну).
В общем для такого сайта результаты очень даже хорошие. Разговоры про то, что модх тянет только 5000 документов я думаю тоже можно прекращать :)))
modx.im
MODx Revolution — поиск на сайте
MODx Revolution — поиск на сайте
MODx Revolution по шагам — шаг седьмой
Какой сайт без окошка поиска?Поговорим о расширении SimpleSearch и о том, где брать образцы шаблонов вывода.
Тестовый (учебный) сайт располжен по адресу: http://test.grandikos.com
В предыдущей статье мы говорили о дополнительной навигации по сайту. Ещё одним важным сервисом для посетителей сайта является форма "Поиск на сайте". Окошко поиска на шаблоне-прототипе располагается в "шапке". Наша задача заставить это окно правильно функционировать, то есть, искать в документах сайта нужные слова. Для этих целей я буду использовать расширение MODx Revo — Simplesearch.
Короче, загружаем и устанавливаем это расширение...
Теперь, можно заняться им вплотную...
Пакет Simplesearch включает в себя три сниппета и плагин. Нас, прежде всего, интересуют — строки вызова определённого сниппета (плагин срабатывает сам) и шаблоны вывода как формы поиска, так и его результатов на страницы.
За окно поиска (то, которое мы будем "оживлять") отвечает сниппет SimpleSearchForm. За вывод результатов поиска — сниппет SimpleSearch. Вызываются эти сниппеты стандартными строками вызова с параметрами. Параметры можно найти либо в руководстве, либо открыв сам сниппет (окно "параметры").
Что касается шаблонов вывода, то их можно написать отталкиваясь от кода шаблона-прототипа, вставив в нужные места управляющие тэги MODx Revolution, а также, шаблонов вывода по умолчанию, которые можно найти на вкладке "файлы" в админке. Смотри картинку ниже...
(Картинки являются иллюстрациями. Их можно увеличить шелчком мышки)
Файлы шаблонов вывода по умолчанию редактировать не рекомендуется — при обновлении пакета, они, всё равно, перепишутся, так что будем использовать их только в качестве "референсов" при написании своих чанков.
Начнём с шаблона вывода окна поиска, взяв за основу, естественно, кусок кода шаблона-первоисточника, отвечающий за это самое окошко и вставив управляющие тэги MODx revo по аналогии с шаблонами вывода по умолчанию...
Теперь, создадим новый документ с названием "Результаты поиска" со стандартным вызовом и запомним ID этого документа...
... чтобы в шаблоне "HEADER" заменить участок кода, отвечающий за отображение окошка поиска, следующим:
Запустим сайт и посмотрим, что получилось...
кэшировать — Викисловарь
1.3.1 Значение; 1.3.2 Синонимы; 1.3.3 Антонимы; 1.3.4 Гиперонимы; 1.3.5 Гипонимы. 1.4 Родственные слова; 1.5 Этимология; 1.6 Фразеологизмы и ...https://ru.wiktionary.org/wiki/%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C
Всё в порядке. Окно поиска есть. Правда надо будет поработать с таблицей стилей, но это позже, а пока, проверим поиск "в работе". Для этого я введу любимое слово "кэширование" (я знаю, что оно, точно, присутствует в одном из тестовых документов )...
Ну что же, поиск работает. Страница с результатами присутствует. Что касается стилей, то, посмотрев на значение параметра "searchindex" по умолчанию (это "search", он заменил "s" в коде первоисточника), я осуществлю в файле таблицы стилей следующие изменения:
Теперь, окно поиска должно стать таким, как в оригинале.
Для того, чтобы "подсветить" найденное слово, воспользуемся классом Highlight таблицы стилей. Просто, вставим название класса как параметр строки вызова сниппета simpleSearch.
Вот, что получилось...
Безусловно, со стилями надо ещё поработать, добавив новые в таблицу, или создать свои чанки шаблонов вывода результатов, применив в них более подходящие из уже существующих в таблицах стилей классы, ну а пока...
Cмотри также в разделе "MODx Revolution":
Если Вам нравится сайт, а главное, статьи и обучающие материалы, на нём представленные... Вы можете стимулировать автора, бросив на его счёт любую "символическую" сумму, что, неизбежно, подвигнет его на дальнейшее проявление здорового альтруизма...Кстати, если Вы, к тому же, вместе с "пожертвованием" оставите и комментарий, содержащий ВАШИ пожелания на будущее, то автор непременно учтёт их при планировании своей работы...
Счет на "Яндекс деньги": 41001131476679
"Киви" кошелёк: 9050791354
Кошельки "WEB money":
Z148021440215 R515650544848
GRANDIKOSxn----7sbbhnalk3aocq1b4e.xn--p1ai
MODx поиск по сайту
Поиск по сайту это очень важный инструмент, которым не стоит прибегать. Во-первых, данный инструмент очень удобен для пользователя (а значит, улучшает юзабилити сайта), если он корректно работает. Во-вторых, он по статистики 70% пользователей, которые попадают на сайт и пользуются поиском, уходят не получив в результатах ответ. Наконец, пользователи очень часто пользуются поиском для того, чтобы найти уже прочитанный материал. Таким образом, поиск по сайту является в некотором роде инструментом интернет-маркетинга.
Поэтому очень важно уделить внимание грамотной работе поиска по сайту. К счастью в MODx уже все сделали за нас, и нам остается только настроить корректную работу поиска.
MODx поиск по сайту
Для реализации поиска по сайту в MODx используется сниппет AjaxSearch.
В нашем шаблоне строка поиска по сайту располагается в шапке сайта, поэтому откроем чанк «HEADER» на редактирование и вместо куска HTML кода отвечающего за вывод поле для ввода поиска и кнопки поиск пропишем следующее:
[ !AjaxSearch? &showIntro=`0` &ajaxSearch=`0` &showResults=`0` &landingPage=`0`]]
Это не что иное, как вызов сниппета AjaxSearch с параметрами.
Теперь давайте создадим новый ресурс с шаблоном, предназначенным для вывода статей, я у себя его назвал Article. И заполним поля ресурса как указано на изображениях:
Обратите внимание на галочки «Показывать в меню» и «Использовать HTML-редактор», флаги сняты. Это сделано для того, чтобы ресурс не отображался в нашем меню, а также, чтобы для редактирования содержимого ресурса не использовался визуальный редактор.
Теперь введите в содержимое ресурса следующее:
[ !AjaxSearch? &ajaxSearch=`0` &pagingType=`0` &showInputForm=`0` &grabMax=`7`]]
Сохраните ресурс и обратите внимание на его идентификатор в скобках от названия. Отроем опять чанк HEADER и изменим значение параметра &landingPage на идентификатор ресурса. Сохраните чанк. Этот параметр задает ресурс, на котором будут выводиться результаты поиска.
Теперь введите в строку поиска информацию и нажмите кнопку «Поиск», если вы все сделали правильно вас должно перекинуть на страницу с результатами поиска.
На этом урок закончен, а в следующем уроке мы познакомимся с тем, как сделать на своем сайте ленту новостей.
Скачать файлы урока.
modx-evo.ru