2012-10-22 63 views
1

我想通過添加一些方法來擴展MediaWiki的用戶類,如$user->getNameOfPet()。例如。擴展Article_Class_Extended擴展使用鉤默認文章類:MediaWiki:如何擴展用戶類?

$wgExtensionFunctions[] = "wfArticleExSetup"; 

    function wfArticleExSetup() 
    { 
      global $wgHooks; 
      $wgHooks['ArticleFromTitle'][] = 'wfArticleExInit';  
    } 

    function wfArticleExInit(&$title, &$article) 
    { 
      // What really counts is what is returned in $article. 
      $GLOBALS['wgArticle'] = new ArticleExClass($title, $article, true); 
      return true;  
    } 

是否有類似的方式擴大用戶類的方法嗎? 我正在使用MediaWiki 1.16.5。

+0

1.16相當古老。保持最新狀態。 – GolezTrol

+0

1.16實際上不再維護。 – poke

+0

@GolezTrol和poke:我知道這是一個相當老的MediaWiki版本,但目前無法更新它。 – dnl

回答

1

我想從您的設置文件,你可以調用

RequestContext::getMain()->setUser(new User()); 

我用這個給力的「空」(沒有登錄)用戶。如果這個調用允許你設置一個用戶對象,那麼你也應該可以爲它提供一個用戶對象。這一行類似於Setup.php中設置$ wgUser global的行。

+0

這對於MW 1.18或更高版本可以正常工作,但對於1.16.5不適用,因爲沒有RequestContext。 – dnl

+1

啊。對此我很抱歉。在那種情況下,我不知道。 : - /但我敦促你升級。舊版本可能已知泄漏,但最重要的是隨着時間升級變得更難,因爲更多的更改意味着更多的文件和數據庫更改。如果您製作了Wiki的副本,則可以在測試環境中嘗試升級過程,以便知道升級所需的具體步驟。 – GolezTrol

+0

但是,您的答案很有幫助,所以我會接受它(稍後將幫助我以MW 1.20)。每天都有數百人與該wiki一起工作。所以讓這些東西起作用是最重要的,儘管這個wiki可能已經過時了。之後將有時間嘗試更新。這些擴展會有一些問題。 – dnl