Сегодня покажу, как добавить произвольный 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 добавляем эти переменные. Обратите внимание на кавычки при объявлении переменных, а также не пропустите точки при добавлении переменных.
В принципе и всё. Обновляем страницы и видим наш код: