Страница нуждается в переработке. За точной информацией обращайтесь к английской версии страницы.
Вы можете менять дизайн «Докувики» по своему усмотрению, создав новый шаблон, который представляет собой несколько PHP- и CSS-файлов, сохранённых в каталоге и помещённых в <dokuwiki>/lib/tpl/
(в действительности, шаблон написан на HTML, а PHP используется только для вставки контента).
Проще всего создать новый шаблон, взяв в качестве отправной точки уже существующий. Лучше всего подойдет шаблон «default», так как он содержит все необходимые части шаблона и следует стандартам составления шаблонов «Докувики». Название шаблона (каталога) следует писать в нижнем регистре без символов точки и подчеркивания.
lib/tpl/default
в каталог, где будет хранится ваш шаблон, например lib/tpl/mytemplate
;tpl_getConf(<setting>)
для получения параметров шаблона.
Шаблоны должны иметь следующую структуру директорий (все пути указаны относительно каталога шаблона). Файлы CSS определены в style.ini
, но вам следует предоставить как минимум два файла: один основной, другой для вывода на печать.
<dokuwiki>/lib/tpl/<template>/
<filename>.css
detail.php
(англ.) — страница подробного описания изображенияmediamanager.php
(англ.) — медиаменеджерimages/
— все используемые в шаблоне изображенияconf/
lang/
— языковые файлы<код языка>/lang.php
— локализованные строки, используемые в шаблоне<код языка>/settings.php
— локализованные строки, используемые на странице настроек «Докувики»style.ini
— см. style.iniСписок доступных функций вы можете найти здесь: API documentation. Самые важные приведены ниже.
Эта функция выводит тело страницы, другими словами, всё содержимое страницы, включая содержание (TOC). Вы можете отключить вывод содержания вызовом функции с параметром false
:
tpl_content(false);
Такой приём может использоваться для размещения содержания в другой части экрана. См. функцию tpl_toc()
.
По умолчанию, функция tpl_content()
сама позаботится о выводе содержания, приводя его в актуальное состояние. Если ваш шаблон использует боковую колонку или более сложную компоновку, у вас может появится желание разместить содержание независимо от содержимого страницы. Это можно сделать функцией tpl_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>
Функция используется для доступа к конфигурационным параметрам из шаблона.
Полный список глобальных переменных и констант вы можете найти на странице «Окружение».
Почти в самом конце страницы main.php
стандартного шаблона вы можете увидеть вызов функции tpl_indexerWebBug()
. Данная функция генерирует HTML-тег <img>
, который является результатом запроса к скрипту lib/exe/indexer.php
. Эта необходимая составляющая часть «Докувики» выполняет важные служебные функции, обеспечивающие правильную работу системы. Все шаблоны должны включать в себя эту функцию, без неё работа вики может быть нарушена (к примеру, поисковые индексы перестанут создаваться)
Следует добавить класс dokuwiki
к некоторым «окружающим контент» элементам (либо вокруг всего текста, либо по крайней мере, вокруг tpl_content()
) в каждом из шаблонов main.php
, detail.php
и mediamanager.php
. Это необходимо для того, чтобы быть уверенным в том, что стили «Докувики» не пересекаются с другими стилями при интеграции с существующим сайтом, содержащим потенциально конфликтующие CSS.
Включаемые блоки — простой путь добавления различного статического контента в вашу «Докувики» без создания собственного шаблона. Вы можете использовать их для добавления стандартного заголовка или логотипа компании на каждую страницу, либо же для размещения информации об отказе от ответственности внизу страницы.
Стандартный шаблон «Докувики» ищет файлы со специальными именами в каталоге lib/tpl/default/
и просто включает их в определённые места при отображении страницы. Вы вольны добавить любой HTML-код в эти файлы. Конечно, работать это будет лишь при использовании стандартного шаблона.
Совет для PHP-разработчиков: вам, вероятно, будет приятно узнать, что в этих файлах можно использовать и PHP-скрипты.
Все файлы размещаются в каталоге lib/tpl/default/
Имя файла | Позиция включения |
---|---|
meta.html | Внутри HTML-тега <head>, используйте для подключения дополнительных таблиц стилей или метазаголовков |
topheader.html | В самом верху страницы, сразу после тега <body> |
header.html | Выше верхней синей панели, ниже названия страницы и заголовка вики |
pageheader.html | Ниже полоски посещенных страниц, выше основного содержания страницы |
pagefooter.html | Выше нижней голубой панели, ниже отметки о последнем изменении |
footer.html | В самом низу страницы, перед тегом </body> |
«Докувики» поставляется с образцом файла footer.html
, содержащим кнопки лицензии «Creative Commons RDF».