Wiki source code of SearchCode
Last modified by ztx lyghters on 2025/01/31 15:59
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{velocity output="false"}} | ||
| 2 | #set ($searchConfigDoc = $xwiki.getDocument('XWiki.SearchConfig')) | ||
| 3 | #set ($searchConfigClass = $xwiki.getDocument('XWiki.SearchConfigClass').xWikiClass) | ||
| 4 | |||
| 5 | ## Get or create the configuration object | ||
| 6 | #set ($searchConfigObj = $searchConfigDoc.getObject($searchConfigClass.name, true)) | ||
| 7 | #set ($searchEngine = "$!{searchConfigObj.getProperty('engine').value}") | ||
| 8 | |||
| 9 | ## Default search engine to use in case the configured one is not found: | ||
| 10 | ## - 'solr' is the preferred default | ||
| 11 | ## - 'database' is the fall-back default | ||
| 12 | #set ($searchExtensions = $services.uix.getExtensions('org.xwiki.platform.search', {'sortByCustomOrder' : "${searchEngine}, solr, database"})) | ||
| 13 | #if (!$searchExtensions.isEmpty()) | ||
| 14 | #set ($searchExtension = $searchExtensions[0]) | ||
| 15 | |||
| 16 | ## Update the configuration if it is out of synch with the reality (installed extensions). | ||
| 17 | #set ($needsUpdate = $searchEngine != $searchExtension.id) | ||
| 18 | #set ($searchEngine = $searchExtension.id) | ||
| 19 | #if ($needsUpdate && $searchConfigDoc.hasAccessLevel('edit')) | ||
| 20 | #if ($searchConfigDoc.parent == '') | ||
| 21 | $searchConfigDoc.setParent('XWiki.SearchAdmin') | ||
| 22 | #end | ||
| 23 | ## Save the updated configuration. Make sure to set it hidden as it's a technical document. | ||
| 24 | $searchConfigObj.set('engine', $searchEngine) | ||
| 25 | $searchConfigDoc.setHidden(true) | ||
| 26 | $searchConfigDoc.save() | ||
| 27 | #end | ||
| 28 | |||
| 29 | #set ($searchPage = $searchExtension.parameters.search) | ||
| 30 | #set ($searchAdminPage = $searchExtension.parameters.admin) | ||
| 31 | #else | ||
| 32 | ## No Search UI Extension was found! | ||
| 33 | #set ($searchPage = '') | ||
| 34 | #set ($searchAdminPage = '') | ||
| 35 | #end | ||
| 36 | {{/velocity}} |