2015-08-20 3 views
0

Мне нужно использовать более раннее расширение Mediawiki на нашем сайте, которое больше не поддерживается. Когда я активирую расширение, я получаю следующее сообщение об ошибке: «Вызов метода undefined SpecialPage :: addPage()» Насколько я узнал, это связано с тем, что в Mediawiki с версии 1.25 они изменили способ новые специальные страницы создаются и регистрируются. Я не мог найти примеры, которые показали, как исправить код из более старого расширения, чтобы он мог работать в реальной версии MW.Mediawiki Call to undefined method SpecialPage :: addPage()

Вот соответствующий код расширения, в котором создана и зарегистрирована специальная страница.

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); 
    } 

... (Остальная часть кода, кажется, работает нормально)

Может быть, кто-то знал, как это исправить?

ответ

0

Просто $wgSpecialPages должен быть достаточно:

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

Я бы недоверие расширения, которое использует функцию, которая была устаревшее в MediaWiki 1.7, хотя.

Смежные вопросы