刚刚将Mediawiki 1.19.6升级到最新版本1.22.2。 使用update.php,工作得很好。首页加载,如果您输入其确切的URL,则会加载一些文章。但是,跟随任何链接产生:
可捕获的致命错误:参数1传递给 ContentHandler :: getContentText()必须实现接口内容, 布尔给定,在第389行的< wiki path> /includes/Article.php中调用 并在< wiki path> /includes/content/ContentHandler.php中定义 95。
我在Article.php中查找了对getContentText()的调用,并且它位于一个名为fetchContent()的函数中,其中有一个关于它的注释,并注意到其中的ContentHandler方法已被弃用。
我无法弄清楚如何解决出错的问题,网络搜索只会出现标记为已修复的错误报告......任何想法?非常感谢。
答案 0 :(得分:2)
getContentText()已弃用。
使用WikiPage :: getContent()
答案 1 :(得分:0)
我们遇到了同样的问题。我们的ICT人员通过调整mediawiki的includes目录中的Article.php文件来处理它。仅调整了1个函数(第377行函数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;
}