[MediaWiki] Добавляем блок в Vector

Mediawiki

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

В принципе и всё. Обновляем страницы и видим наш код:

Оцените статью
( Пока оценок нет )
Блог Ичи

Добавить комментарий