февраля 18, 2010

Создание индивидуального MediaWiki шаблона

В предыдущей статье мы установили и настроили Wiki, теперь займёмся приданием ей индивидуального дизайна. Многие только меняют логотип в левом верхнем углу, думаю как это сделать – объяснять не нужно, мы пойдём немного дальше и переделаем шаблон под себя полностью…

1. В каталоге skins создаём 2 файла:
– Snejok.php — основной файл, определяющий вывод элементов на страницу,
– Snejok.deps.php — обход ошибки в кэше APC opcode в PHP 5.

2. Создаём папку с именем скина, в ней 2 файла
– main.css – основная таблица стилей скина Snejok
– IE60Fixes.css – стилевые хаки для определённых браузеров.

3. Начинаем с создания основного php файла.
Мне не нужно изменять функционал, нужно просто изменить расположение некоторых элементов, поэтому не будем изобретать велосипед, берём MonoBook.php и копируем его в Snejok.php
Редактируем вновь созданный Snejok.php

3.1. Первыми строками идут мета данные о скине, его автор, версия и т.д – меняем их

/**
* Snejok Skin
*
*
* @version 1.0
* @author Snejok
*
*/

3.2. Определяем наш шаблон как расширение уже существующего класса SkinTemplate

class SkinSnejok extends SkinTemplate {
function initPage($out) {
SkinTemplate::initPage($out);
$this-> skinname  = 'snejok';
$this-> stylename = 'snejok';
$this-> template  = 'SnejokTemplate';
}
}
class SnejokTemplate extends QuickTemplate {

Далее содержимое можно особо не менять…

4. В LocalSettings.php меняем значение переменной, присваивая ей название нашего шаблона

$ wgDefaultSkin = 'snejok'

На данном этапе если вы воспользуетесь пердпросмотром, должны выводится основные блоки, ссылки быть полностью кликабельными, контент должен выводится корректно.

Переходим к позиционированию элементов – расположение и параметры блоков необходимо задать в основной таблице стилей main.css. Здесь вам потребуется знание html/css, если с этим всё в порядке проблем не возникнет.


Комментарии

  • shy

    Вы случаем не знаете, как можно установить на главной странице вывод 10 новых статей и список самых активных авторов?