Modul pencarian Silverstripe yang memanfaatkan TNTSearch untuk mengindeks konten.
composer require werkbot/werkbot-search
Tambahkan ekstensi berikut ke halaman
Page:: add_extension (SearchableExtension::class);
PageController:: add_extension (SearchControllerExtension::class); Anda perlu menjalankan dev/build
Page::class harus memiliki fungsi yang didefinisikan oleh getIndexQuery . Berikut adalah contoh untuk halaman:
/**
* 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;
}Ini adalah kueri sederhana yang digunakan oleh pengindeks untuk mengindeks konten Anda.
Fungsi ini dapat disesuaikan sesuka Anda dan juga dapat ditambahkan ke DataObjects.
Perhatikan bahwa jika metode getIndexQuery didefinisikan dalam dataExtension, SearchableExtension harus ditambahkan sebelum ekstensi yang menambahkan metode. Kalau tidak, metode akan mengembalikan default: 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. Secara default, templat yang digunakan di sini menggunakan kelas yang disediakan oleh perpustakaan CSS eksternal. Kami sarankan menginstal keduanya untuk pengalaman terbaik: