AdvSearch
Последнее обновление not available | История страницы | Улучшить эту страницу | Сообщить о проблеме
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
Budget
$204 per month—let's make that $500!
Learn moreЧто такое 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`]]
См. также¶
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
Budget
$204 per month—let's make that $500!
Learn more










