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庫提供的類。我們建議安裝兩者以獲得最佳體驗: