Это старая версия документа!
Содержание
Разработка шаблонов DokuWiki
Вы можете менять дизайн DokuWiki по своему усмотрению, создав новый шаблон, который представляет собой несколько PHP и CSS файлов, сохраненных в каталоге и помещенных в <dokuwiki>/lib/tpl/
(в действительности, шаблон написан на HTML, а PHP используется только для вставки контента).
Начало работы
Проще всего создать новый шаблон, взяв в качестве отправной точки уже существующий. Лучше всего подойдет шаблон default, так как он содержит все необходимые части шаблона и следует стандартам составления шаблонов DokuWiki. Название шаблона (каталога) следует писать в нижнем регистре без символов точки и подчеркивания.
- Скопируйте стандартный шаблон lib/tpl/default в каталог, где будет хранится Ваш шаблон, например lib/tpl/mytemplate
- Выберите новый шаблон на странице «Управление»
- Ознакомьтесь с файлами шаблона (см. Структура каталогов)
- Посмотрите как DokuWiki обрабатывает CSS с помощью диспетчера CSS
- Обработка конфигурационных параметров аналогична плагинам. Используйте
tpl_getConf(<setting>)
для получения параметров шаблона.
Структура каталогов
Шаблоны должны иметь следующую структуру директорий (все пути указаны относительно каталога шаблона). Файлы CSS определены в style.ini
, но вам следует предоставить как минимум два файла: один основной, другой для вывода на печать.
<dokuwiki>/lib/tpl/<template>/
<filename>.css
main.php
– главный файл разметки шаблона DokuWikidetail.php
– страница подробного описания изображенияmediamanager.php
– мультимедия загрузчикimages/
– все используемые в шаблоне изображенияconf/
lang/
– языковые файлы<код языка>/lang.php
– локализованные строки, используемые в шаблоне<код языка>/settings.php
– локализованные строки, используемые на странице настроек DokuWiki
style.ini
– см. Style.ini
Функции
Список доступных функций вы можете найти здесь: API documentation. Самые важные приведены ниже.
tpl_content()
Эта функция выводит тело страницы, другими словами, все содержимое страницы, включая Содержание (TOC). Вы можете отключить вывод TOC вызовом функции с параметром false
:
tpl_content(false);
Такой прием может использоваться для размещения TOC в другой части экрана. См. функцию tpl_toc()
.
tpl_toc()
По умолчанию, функция tpl_content()
сама позаботится о выводе Содержания, приводя его в актуальное состояние. Если ваш шаблон использует боковую колонку или более сложную компоновку, у вас может появится желание разместить TOC независимо от содержимого страницы. Это можно сделать функцией tpl_toc()
. При её использовании важно запретить автоматическое размещение TOC вызовом функции tpl_content()
с аргументом false
.
Пример:
<div id="content"> <?php tpl_content(false)?> </div> <div id="sidebar"> <?php tpl_toc()?> </div>
Функция tpl_toc()
формирует содержание на основе трех различных источников: глобальной переменной $TOC, метаданных страницы или метода административных плагинов getTOC()
. В случае, когда нет доступных метаданных старых ревизий или предварительных просмотров, tpl_toc()
может использовать только глобальную переменную $TOC. Если же $TOC перезаписана формирователем страницы, то tpl_toc()
будет работать только при условии её вызова после tpl_content()
. Если подобное невозможно разметке вашего шаблона, вы можете использовать буферизацию вывода для обхода этой проблемы.
Пример:
<?php // помещает содержимое страницы в буфер для последующего использования ob_start(); tpl_content(false); $buffer = ob_get_clean(); ?> <div id="sidebar"> <?php tpl_toc()?> </div> <div id="content"> <?php echo $buffer?> </div>
tpl_getConf()
Функция используется для доступа к конфигурационным параметрам из шаблона.
Глобальные переменные и константы
Полный список глобальных переменных и констант вы можете найти на странице Окружение.
Автоматизация служебных операций
Почти в самом конце страницы main.php стандартного шаблона вы можете увидеть вызов функции tpl_indexerWebBug()
. Данная функция генерирует HTML-тег <img>
, который является результатом запроса к скрипту lib/exe/indexer.php. Эта необходимая составляющая часть DokuWiki выполняет важные служебные функции, обеспечивающие правильную работу системы. Все шаблоны должны включать в себя эту функцию, без неё работа вики может быть нарушена (к примеру, поисковые индексы перестанут создаваться)
Включаемые блоки
Включаемые блоки – простой путь добавления различного статического контента в вашу DokuWiki без создания собственного шаблона. Вы можете использовать их для добавления стандартного заголовка или логотипа компании на каждую страницу, либо же для размещения информации об отказе от ответственности в низу страницы.
Стандартный шаблон DokuWiki ищет файлы со специальными именами в каталоге lib/tpl/default/
и просто включает их в определенные места при отображении страницы. Вы вольны добавить любой НTML-код в эти файлы. Конечно, работать это будет лишь при использовании стандартного шаблона.
Совет для PHP-разработчиков: вам, вероятно, будет приятно узнать, что в этих файлах можно использовать и PHP-скрипты.
Доступные блоки
Все файлы размещаются в каталоге lib/tpl/default/
Имя файла | Позиция включения |
---|---|
meta.html | Внутри HTML-тега <head>, используйте для подключения дополнительных таблиц стилей или meta-заголовков |
topheader.html | В самом верху страницы, сразу после тега <body> |
header.html | Выше верхней синей панели, ниже названия страницы и заголовка вики |
pageheader.html | Ниже полоски посещенных страниц, выше основного содержания страницы |
pagefooter.html | Выше нижней голубой панели, ниже отметки о последнем изменении |
footer.html | В самом низу страницы, перед тегом </body> |
DokuWiki поставляется с образцом файла footer.html
, содержащим кнопки лицензии Creative Commons RDF.