Мне нужно использовать более раннее расширение 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);
}
... (Остальная часть кода, кажется, работает нормально)
Может быть, кто-то знал, как это исправить?