silverstripe module search
3.0.0
使用TNTSearch索引内容的SilverStripe搜索模块。
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;
}这是一个简单的查询,索引器用于索引您的内容。
可以根据您喜欢自定义此功能,并且也可以添加到DataObject中。
请注意,如果在dataExtension中定义了getIndexQuery方法,则必须在添加该方法的扩展名之前添加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库提供的类。我们建议安装两者以获得最佳体验: