2014-02-07 54 views
2

剛升級的Mediawiki 1.19.6到最新的1.22.2。 使用update.php,它工作得很好。首頁加載,就像其中一些文章一樣,如果你輸入他們的確切URL。然而,在任何一個環節的生產:MediaWiki upgrade(1.19.6 to 1.22.2)breaks - fetchContent()error

Catchable fatal error: Argument 1 passed to ContentHandler::getContentText() must implement interface Content, boolean given, called in <wiki path>/includes/Article.php on line 389 and defined in <wiki path>/includes/content/ContentHandler.php on line 95.

我擡頭調用getContentText()在Article.php,它是在一個叫fetchContent()函數,用它爲這些混沌評論注意內部的ContentHandler方法已被棄用。

我無法弄清楚如何解決出了什麼問題,而網絡搜索只會啓動標記爲固定的錯誤報告......任何想法?非常感謝。

回答

0

我們有同樣的問題。我們的ICT人員通過調整位於mediawiki的includes目錄中的Article.php文件來處理它。只修改了1個函數(377行函數function fetchContent())。我不知道確切的工作原理,但MediaWiki恢復正常。

而且我相信你需要訪問運行MediaWiki的更新程序: 'HostAdress'/鏈接到MediaWiki/MW-配置/

原有功能Article.php:

function fetchContent() { #BC cruft! 
    ContentHandler::deprecated(__METHOD__, '1.21'); 

    if ($this->mContentLoaded && $this->mContent) { 
     return $this->mContent; 
    } 

    wfProfileIn(__METHOD__); 

    $content = $this->fetchContentObject(); 

    // @todo Get rid of mContent everywhere! 
    $this->mContent = ContentHandler::getContentText($content); 
    ContentHandler::runLegacyHooks('ArticleAfterFetchContent', array(&$this, &$this->mContent)); 

    wfProfileOut(__METHOD__); 

    return $this->mContent; 
} 

新功能Article.php:

function fetchContent() { #BC cruft! 
    ContentHandler::deprecated(__METHOD__, '1.21'); 

    if ($this->mContentLoaded && $this->mContent) { 
     return $this->mContent; 
    } 

    wfProfileIn(__METHOD__); 

    $content = $this->fetchContentObject(); 

    if (!$content) { 
    wfProfileOut(__METHOD__); 
    return false; 
    } 

    // @todo Get rid of mContent everywhere! 
    $this->mContent = ContentHandler::getContentText($content); 
    ContentHandler::runLegacyHooks('ArticleAfterFetchContent', array(&$this, &$this->mContent)); 

    wfProfileOut(__METHOD__); 

    return $this->mContent; 
} 
+0

這工作完美。謝謝你,謝謝你的IT人! – Epimetreus