Модуль поиска серебряного стекла, который использует TNTSearch для индекса содержимого.
composer require werkbot/werkbot-search
Добавить следующие расширения на страницу
Page:: add_extension (SearchableExtension::class);
PageController:: add_extension (SearchControllerExtension::class); Вам нужно будет запустить dev/build
Page::class для определения функции getIndexQuery . Вот пример для страницы:
/**
* getIndexQuery
* This query is used when building the index
*
* @return string|boolean - FALSE if not set
*/
public function getIndexQuery ()
{
return " SELECT
concat( " Page_ " , SiteTree.ID) AS ID,
SiteTree.ClassName,
SiteTree.Title,
SiteTree.Content
FROM
Page
LEFT JOIN
SiteTree
ON
SiteTree.ID = Page.ID
WHERE
SiteTree.ShowInSearch = '1' "
AND
SiteTree.Content IS NOT NULL;
}Это простой запрос, который используется индексером для индексации вашего контента.
Эта функция может быть настроена, как вам нравится, а также может быть добавлена в DataObjects.
Обратите внимание, что если метод getIndexQuery определяется в DataExtension, SearchableExtension должен быть добавлен перед расширением, которое добавляет метод. В противном случае метод вернет по умолчанию: false.
SearchableDataObject:: add_extension (SearchableExtension::class); // MUST BE APPLIED FIRST for getIndexQuery to return SQL Query string.
SearchableDataObject:: add_extension (SearchableDataObjectExtension::class); // Defines getIndexQuery SQL Query string. По умолчанию используемые здесь шаблоны используют классы, предоставленные внешними библиотеками CSS. Мы предлагаем установить оба для лучшего опыта: