Mediawiki Вызов неопределенного метода SpecialPage::addPage()
Мне нужно использовать более старое расширение Mediawiki на нашем сайте, которое больше не поддерживается. Когда я активирую расширение, я получаю следующую ошибку: "Вызов неопределенного метода SpecialPage::addPage()". Насколько я узнал, это связано с тем, что в Mediawiki начиная с версии 1.25 они изменили способ, которым новый Special страницы созданы и зарегистрированы. Я не смог найти примеров, показывающих, как исправить код из более старого расширения, чтобы он мог работать в реальной версии 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 ответ
Просто $wgSpecialPages
должно быть достаточно:
$wgSpecialPages['Events'] = 'EventsExtn';
Я бы не доверял расширению, которое использует функцию, которая устарела в MediaWiki 1.7.