我的建議是創建一個新的portlet,並且由於以下原因不掛鉤現有的搜索portlet:
- Liferay搜索portlet的力量是使用Apache Lucene搜索引擎來搜索和索引門戶內容,e實體...因爲你不想從門戶網站搜索結果,它將無用的鉤住它。
- 搜索portlet jsp的編碼時使用了某種渲染邏輯,可能會與您的邏輯有所不同(特別是json結果),所以我認爲您必須對這些jsp進行大的修改,這將是一項開銷。
- 您的需求相對簡單(使用搜索詞參數調用Web服務獲取結果並渲染它們)。
所以我認爲一個簡單的Liferay MVC portlet將會是您更好的選擇。
與你定製搜索portlet更換主題默認搜索
不,你並不需要一個鉤子。 您可以通過編輯您的portal_normal文件如下更換主題搜索字段:
更換
$theme.journalContentSearch()
通過
## Set the portlet preferences if you need ##
#set ($VOID = $velocityPortletPreferences.setValue('display-style', '1'))
#set ($VOID = $velocityPortletPreferences.setValue('portlet-setup-show-borders', 'false'))
#set ($instanceId = 'A2R4')
#set ($portletId = 'YOUR_CUSTOM_SEARCH_PORTLET_ID')
#set ($myPortlet = "${portletId}_INSTANCE_${instanceId}")
$theme.runtime($myPortlet, '', $velocityPortletPreferences.toString())
#set ($VOID = $velocityPortletPreferences.reset())
請指定您正在使用的Liferay版本,並且您想要使用您的自定義版本完全替換Liferay的搜索功能,或者您想同時擁有這兩個版本(部分網站將其中一個和另一個部分分開)? –
@MilenDyankov我正在使用'Liferay6.2GA6版本' –
@MilenDyankov我想用我自定義的一個完全替代Liferay的搜索功能 –