2015-08-20 3 views
0

Je dois utiliser une ancienne extension Mediawiki sur notre site, qui n'est plus maintenue. Lorsque j'active l'extension, j'obtiens l'erreur suivante: 'Appel à une méthode non définie SpecialPage :: addPage()' Pour autant que je l'ai découvert, c'est dû au fait que dans Mediawiki depuis la version 1.25 ils ont changé la façon dont Les nouvelles pages spéciales sont créées et enregistrées. Je n'ai pas pu trouver d'exemples montrant comment corriger le code d'une ancienne extension afin qu'elle fonctionne dans la version actuelle de MW.Mediawiki Appel à une méthode non définie SpecialPage :: addPage()

Voici le code de l'extension où la page spéciale est créée et enregistrée.

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

... (Le reste du code semble fonctionner correctement)

Peut-être que quelqu'un sait comment résoudre ce problème?

Répondre

0

Juste $wgSpecialPages devrait être suffisant:

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

je serais la méfiance d'une extension qui utilise une fonction qui a été dépréciée dans MediaWiki 1.7, cependant.