DokuWiki

It's better when it's simple

Инструменты пользователя

Инструменты сайта


ru:devel:templates

Это старая версия документа!


Разработка шаблонов DokuWiki

Вы можете менять дизайн DokuWiki по своему усмотрению, создав новый шаблон, который представляет собой несколько PHP и CSS файлов, сохраненных в каталоге и помещенных в <dokuwiki>/lib/tpl/ (в действительности, шаблон написан на HTML, а PHP используется только для вставки контента).

Начало работы

Проще всего создать новый шаблон, взяв в качестве отправной точки уже существующий. Лучше всего подойдет шаблон default, так как он содержит все необходимые части шаблона и следует стандартам составления шаблонов DokuWiki. Имена шаблонов (директорой) следует писать в нижнем регистре без символов точки и подчеркивания.

  1. Скопируйте стандартный шаблон lib/tpl/default в директорию, где будет хранится Ваш шаблон, например lib/tpl/mytemplate
  2. Выберите новый шаблон на странице «Управление»
  3. Ознакомьтесь с файлами шаблона (см. Структура каталогов)
  4. Посмотрите как DokuWiki обрабатывает CSS с помощью диспетчера CSS
  5. Обработка конфигурационных параметров аналогична плагинам. Используйте tpl_getConf(<setting>) для получения параметров шаблона.

Структура каталогов

Шаблоны должны иметь следующую структуру директорий (все пути указаны относительно каталога шаблона). Файлы CSS определены в style.ini, но вам следует предоставить как минимум два файла: один основной, другой для вывода на печать.

  • <dokuwiki>/lib/tpl/<template>/
    • <filename>.css
    • main.php – главный файл разметки шаблона DokuWiki
    • detail.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()

Функция используется для доступа к конфигурационным параметрам из шаблона.

Глобальные переменные и константы

ru/devel/templates.1249650553.txt.gz · Последнее изменение: 2009-08-07 15:09 — 195.78.91.218

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki