Jump to main content Jump to doc navigation

Что такое AdvSearch?

AdvSearch это расширение расширенного поиска для MODX Revolution. Поддерживает поиск через MySQL, опциональную индексацию Zend Lucene для динамического контента, фасетный поиск и поиск в пользовательских пакетах.

Требования

  • MODX Revolution 2.0.8 или новее (в документации пакета также указано 2.1+)
  • PHP с включённой поддержкой многобайтовых строк (use_multibyte / mbstring)
  • Кодировка UTF-8
  • jQuery (поставляется с AdvSearch, в текущих деревьях пакета используется более новая сборка, чем в старой заметке про 1.5.1)
  • Только для &engine= zend или all: библиотека ZendSearch Lucene (см. ниже)

Поиск только через MySQL (&engine= mysql, значение по умолчанию) не требует ZendSearch.

История

AdvSearch написал Coroico, первый релиз вышел 14 августа 2011 года. Основано на AjaxSearch для MODX Evolution от KyleJ/Coroico с опциональной индексацией Lucene через ZendSearch.

Загрузка

Установите через Менеджер в Управлении пакетами или скачайте из репозитория Extras: https://modx.com/extras/package/advsearch

Если планируете использовать движок Zend Lucene, установите ZendSearch до индексации или поиска с этим движком (см. ниже).

Разработка и отчёты об ошибках

Исходный код и issues на GitHub: https://github.com/coroico/AdvSearch

Установка ZendSearch (движок Lucene)

Zend Framework стал Laminas Project. Laminas не принял компонент Lucene search. Официальной замены laminas-search для AdvSearch нет.

Текущий AdvSearch (см. advsearch.zend.controller.class.php на ветке Development) подключает автозагрузчик Composer по пути:

{libraryPath}ZendSearch/vendor/autoload.php

По умолчанию libraryPath указывает на core/components/advsearch/libraries/ (переопределите свойством AdvSearch &libraryPath, если храните библиотеки в другом месте). После установки нужен файл:

core/components/advsearch/libraries/ZendSearch/vendor/autoload.php

AdvSearch использует PHP API \ZendSearch\Lucene\.

Установка через Composer (рекомендуется)

На сервере из корня MODX (подставьте свой путь, если Extra установлен иначе):

mkdir -p core/components/advsearch/libraries/ZendSearch
cd core/components/advsearch/libraries/ZendSearch
composer require handcraftedinthealps/zendsearch

handcraftedinthealps/zendsearch это поддерживаемый форк заброшенного пакета zendframework/zendsearch. Сохраняет пространство имён \ZendSearch\, которое ожидает AdvSearch, и рассчитан на современный PHP.

Можно использовать composer require zendframework/zendsearch, если вас устраивает заброшенный upstream и более старые ограничения зависимостей.

Убедитесь, что autoload существует, затем задайте &engine= zend или all в вызовах AdvSearch и постройте индекс Lucene инструментами индексации AdvSearch.

Почему не полный Laminas?

Laminas заменил большинство компонентов Zend Framework. ZendSearch Lucene уже был без сопровождения и не мигрировал. Подстановка типового релиза Laminas в assets/libraries/Zend (старый путь из документации) не удовлетворит текущий загрузчик AdvSearch.

Использование

В AdvSearch в основном два сниппета: один выводит форму («AdvSearchForm»), другой показывает результаты поиска («AdvSearch»). Третий сниппет («AdvSearchHelp») показывает окно справки по синтаксису запросов.

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

Примеры

Форма поиска и под ней результаты:

[[!AdvSearchForm]]

<h2>Results</h2>
[[!AdvSearch]]

Форма, которая отправляет на страницу результатов, ресурс 82 (там вызывается AdvSearch):

[[!AdvSearchForm? &landing=`82`]]

См. также

  1. AdvSearch.AdvSearch
    1. AdvSearch.AdvSearch.containerTpl
    2. Advsearch.AdvSearch.extractTpl
    3. AdvSearch.Advsearch.paging1Tpl
    4. AdvSearch.AdvSearch.paging0Tpl
    5. AdvSearch.AdvSearch.tpl
  2. AdvSearch.AdvSearchForm
    1. Advsearch.AdvSearchForm.tpl
  3. AdvSearch.AdvSearchHelp
    1. AdvSearch.AdvSearchHelp.helplinkTpl

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • deJaya
  • JT Skaggs
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$204 per month—let's make that $500!

Learn more