silverstripe module search
3.0.0
โมดูลการค้นหา SilverStripe ที่ใช้ 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 ก่อนที่ส่วนขยายที่เพิ่มวิธีการ มิฉะนั้นวิธีการจะส่งคืนค่าเริ่มต้น: เท็จ
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 ภายนอก เราขอแนะนำให้ติดตั้งทั้งสองเพื่อประสบการณ์ที่ดีที่สุด: