我試圖寫一個基於所提供的搜索項外部SQL數據庫顯示兩者內部的mediawiki DB結果和結果的插件。Mediawiki的搜索外部數據庫 - PREPEND鉤
我寫的所有的搜索代碼,但我很努力居然顯示我的結果。我檢查了特別版:我的擴展名出現了。
我已經試過這個鉤子:
$wgHooks[ 'SpecialSearchResultsPrepend'][] = 'onSpecialSearchResultsPrepend';
在哪裏我的功能是
function onSpecialSearchResultsPrepend($t, $out, $term){
some routine
}
,但我無法正確顯示在這個鉤子什麼。此外,當我試圖寫入調試控制檯或打印原始調試文本時,我的擴展名中沒有輸出。
MediaWiki的文件規定,以便禁止通用搜索輸出返回false。我試過這個只是驗證我實際上是正確掛鉤的,並且從掛鉤返回false不會禁用搜索結果。因此,我相信我正在使用不正確的方法進行掛接。
什麼是掛接到這個功能的正確方法?我嘗試了單獨的文件,全局函數或在類中聲明。似乎沒有人糾正我的問題。現在,我試圖從主擴展文件返回false,即'externalsqlsearch.php'。
基本例如,如果把在LocalSettings.php中爲我的作品: $ wgHooks [「SpecialSearchResultsPrepend '] [] = function($ specialSearch,OutputPage $ out){ \t $ out-> addWikiText('MaxSem was here!'); \t return false; }; 你確定你正確地註冊它,你使用$ out作爲輸出而不是echo()嗎? – MaxSem
謝謝Max。這個簡單的例子工作。但是,我最終需要做的是將此鉤子調用移入擴展文件本身。出於某種原因,每當我這樣做,擴展名被加載,但掛鉤沒有註冊。我找到了$ wgSpecialVersionShowHooks並將其設置爲true,所以現在我至少可以看到我的掛鉤是否已註冊。 –
得到它的工作。你必須通過extensions.json註冊鉤子。看到我的答案。 –