Mediawiki调用未定义的方法SpecialPage :: addPage()

时间:2015-08-20 10:26:26

标签: mediawiki-extensions

我需要在我们的网站上使用较旧的Mediawiki扩展程序,不再维护。当我激活扩展时,我得到以下错误: '调用未定义的方法SpecialPage :: addPage()' 据我所知,这是因为自从版本1.25以来Mediawiki中他们改变了创建和注册新特殊页面的方式。我找不到示例,说明如何修复旧版扩展中的代码,以便它可以在MW的实际版本中工作。

以下是创建和注册SpecialPage的扩展的相关代码。

  require_once( './includes/specialpage/SpecialPage.php' );
  $wgSpecialPages['Events'] = new SpecialPage ( 'Events' );

  $wgExtensionFunctions[] = 'efEventsExtn';
  $wgExtensionCredits['specialpage'][] = array( 
  'name' => 'Events', 
  'author' => 'Barrylb',
  'description' => 'Adds [[Special:Events|a special page]] for viewing events',
  'url' => 'http://www.mediawiki.org/wiki/Extension:Calendar_%28Barrylb%29'
  );


  function efEventsExtn() {
    $wgamMessages = array();
    SpecialPage::addPage( new EventsExtn() );
    $wgamMessages = array( 'events' => 'Events' , 'events-header' => '');
  }

  class EventsExtn extends IncludableSpecialPage {

    function EventsExtn() {
      SpecialPage::SpecialPage( 'Events', '', true, false, 'default', true );
    }

...(其余代码似乎正常工作)

也许有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

只需$wgSpecialPages即可:

$wgSpecialPages['Events'] = 'EventsExtn';

我不信任使用MediaWiki 1.7中弃用的功能的扩展程序。