Сегодня покажу, как добавить произвольный HTML код в контент скина Vector у MediaWiki.
Берем файл skins/Vector/includes/SkinVector.php и находим функцию public function getTemplateData(). Сразу перед return создаем две переменные (или одну, если нужно выводить только в одном месте).
В эти переменные записываем нужный код. Это может быть реклама из РСЯ, Sape или любой другой код.
$printFooter = Html::rawElement(
'div',
[ 'class' => 'printfooter' ],
$this->printSource()
);
$adsBeforeHTML = '<div>КОД ПЕРЕД СТАТЬЕЙ</div>';
$adsAfterHTML = '<div>КОД ПОСЛЕ СТАТЬЕЙ</div>';
return [
// Data objects:
'array-indicators' => $indicators,
// HTML strings:
'html-printtail' => WrappedString::join( "\n", [
MWDebug::getHTMLDebugLog(),
MWDebug::getDebugHTML( $this->getContext() ),
$this->bottomScripts(),
wfReportTime( $out->getCSP()->getNonce() )
] ) . '</body></html>',
'html-site-notice' => $this->getSiteNotice(),
'html-userlangattributes' => $this->prepareUserLanguageAttributes(),
'html-subtitle' => $this->prepareSubtitle(),
// Always returns string, cast to null if empty.
'html-undelete-link' => $this->prepareUndeleteLink() ?: null,
// Result of OutputPage::addHTML calls
'html-body-content' => $adsBeforeHTML . $this->wrapHTML( $title, $out->mBodytext ) . $adsAfterHTML
. $printFooter,
'html-after-content' => $this->afterContentHook(),
];В строке 128 добавляем эти переменные. Обратите внимание на кавычки при объявлении переменных, а также не пропустите точки при добавлении переменных.
В принципе и всё. Обновляем страницы и видим наш код:








