Существует ряд существующих advertisement extensions for MediaWiki, которые могут удовлетворить ваши потребности или, по крайней мере, служить примером того, как это можно сделать.
Есть несколько различных способов вставки рекламных баннеров в кожу MediaWiki:
Редактировать шаблон кожи сам по себе (например skins/Vector.php
для вектора кожи) и добавить код баннера в подходящем месте. Это довольно быстрое и простое решение, но оно страдает от проблемы, которую вам нужно будет переделать при каждом обновлении MediaWiki (или обновлении вашего скина, если вы используете нестандартный).
Найти подходящий hook, чтобы ввести код баннера в кожу. Если вы просто делаете это для своей собственной вики, вы можете просто написать код крюка непосредственно в свой LocalSettings.php
(или в отдельный файл PHP, который вы включаете оттуда, если хотите), но вы также можете превратить его в полный Расширение MediaWiki (которое в основном просто означает, как минимум, поместить его в отдельный файл и добавить немного кода шаблона).
Увы, найти правильный крючок для работы не всегда может быть тривиальным. Для инъекции рекламы на боковой панели может быть удобно крючок SkinBuildSidebar; SkinAfterContent может работать для нижнего колонтитула, а для верхней рекламы вы можете (ab) использовать крюк SiteNoticeAfter.
Создайте parser tag extension, который позволяет добавлять на свои страницы пользовательский тег, например <adshere/>
, чтобы ввести код рекламного баннера в этом месте. Прямо, но вам нужно помещать тег на любую страницу, на которую вы хотите размещать рекламу (или в interface message, если вы можете найти подходящую подсказку: совет: добавьте параметр uselang=qqx
в URL-адреса, чтобы увидеть, какие сообщения используются там).
Найдите сообщение с соответствующим расположением, которое обрабатывается как необработанный HTML, и разместите свой рекламный код там напрямую. Увы, таких сообщений не так много, и тенденция заключается в том, чтобы избавиться от немногих, которые остались.
Для объявлений, которые могут быть введены только с помощью JavaScript, вы можете просто поместить код в MediaWiki:Common.js
(или на соответствующую страницу JS для конкретного сайта).
Есть целый ряд существующих [расширения рекламы для MediaWiki] (http://www.mediawiki.org/wiki/Category:Advertising_extensions), которые могут удовлетворить ваши потребности, или, по крайней мере, служить в качестве примеров того, как это может быть сделано. –
@Ilmari Почему вы не отправляете этот комментарий в качестве ответа, поэтому у плаката есть возможность выбрать его как правильный. Старые неотвеченные вопросы, на которые фактически отвечают в комментариях, очень расстраивают процесс сортировки. – Christian
@Christian: Это было не так много, как было, но я пошел и расширил его чуть более полным ниже. –