Первый реальный вызов PHP — это :&13: ''[[wiki:xref:dokuwiki:inc:template.php|tpl_metaheaders()]]'', который включает в себя CSS и JavaScript, **необходимые ** и предоставляемые DokuWiki, а также все, что собрано из ''style.ini''.
Далее идет ''[[wiki:xref:dokuwiki:inc:template.php|tpl_pagetitle()]]'', который использует идентификатор страницы (или, опционально, первый заголовок) в качестве заголовка страницы рядом с заголовком вашей вики ((Это и есть причина ''$conf'' в данном случае.)). Имеет смысл объявить набор символов непосредственно перед этим:
-
Чтобы добавить favicon, вы можете использовать ''[[wiki:xref:dokuwiki:inc:template.php|tpl_favicon()]]'' который по умолчанию будет использовать который по умолчанию будет использовать ''favicon.ico'' в каталоге шаблона ''images''. Но это можно перезаписать, загрузив этот файл в пространство имен wiki ''wiki'' или root через медиа-менеджер.
Когда вы будете готовы к отображению, вам нужно будет добавить ''[[wiki:xref:dokuwiki:inc:template.php|tpl_classes()]]'' (который также включает ''dokuwiki'' класс) где-то вверху, чтобы ваша страница работала правильно с плагинами, использующими таблицы стилей. Идентификатор ''%%dokuwiki__top%%'' необходим для утилиты «Вернуться наверх».
Ваш шаблон должен иметь некий последовательный заголовок, отображающий название и слоган вики:
Вам понадобятся все служебные кнопки/ссылки с [[wiki:xref:dokuwiki:inc:template.php|tpl_action()]] чтобы сделать ваш wiki действительно функциональным. Вот все кнопки, предоставляемые шаблоном по умолчанию.
Теперь представьте себя в области контента вашей страницы. Сначала вам понадобится вызов функции отображения ошибок, ''[[wiki:xref:dokuwiki:inc:html.php|html_msgarea()]]''. Это то, что позволяет вам видеть, например, ошибки конфигурации в DokuWiki, когда они у вас есть, или ошибки рендеринга плагина, или позволяет вам видеть результаты, ''do=check'' когда вы добавляете это в конец URL на вашем сайте.
Некоторые мелочи — это «хлебные крошки» и ссылки «вы здесь». Вы можете добавить их в любом месте области контента, в любом порядке с помощью ''[[wiki:xref:dokuwiki:inc:template.php|tpl_breadcrumbs()]]'' и ''[[wiki:xref:dokuwiki:inc:template.php|tpl_youarehere()]]'', и они совершенно необязательны и остаются на ваше усмотрение. Если вы разрабатываете шаблон для общего использования, вам нужно будет поддерживать оба варианта, чтобы ваши конечные пользователи могли выбирать.
Кульминацией всего процесса является отображение содержимого страницы; это всего лишь один вызов ''[[wiki:xref:dokuwiki:inc:template.php|tpl_content()]]'', и он используется для всех действий — просмотра, редактирования, навигации по индексу, поиска и любой страницы с формой.
Ближе к концу раздела контента вы можете добавить информацию о том, когда страница была последний раз изменена, кто это сделал, под каким именем вы в данный момент вошли в систему и какова лицензия вики:
Многие шаблоны отображают [[wiki:faq:sidebar|боковую панель]], если установлена [[wiki:config:sidebar|опция конфигурации боковой панели]]. Это отобразит содержимое страницы под названием «боковая панель»:
И наконец, эта функция вам **нужна** для того, чтобы убедиться, что поиск работает правильно и находит ваши страницы:
=== В целом теперь... ===
У нас есть небольшой образец, который можно использовать ''main.php'' в качестве шаблона, и он выглядит так:
-
Теперь у вас есть все кнопки, а также поле поиска, и это все, что вам нужно для разработки шаблона.
==== Посмотрите и почувствуйте ====
FIXME
Объяснение стилей для:
* Обычный просмотр
* Редактирование
* Навигация по индексу (или то, что обычно называют навигацией по «карте сайта»)
* Идет поиск
* Страницы типа формы, такие как регистрация, профиль, администрирование, конфигурация и т. д.
Следует разместить здесь, так как все они требуют информацию о таблицах стилей.
===== Источник =====
Исходный код ''main.php'' шаблона 'dokuwiki' можно найти по адресу [[wiki:xref:dokuwiki:lib:tpl:dokuwiki:main.php|lib/tpl/dokuwiki/main.php]]. Файл [[https://github.com/selfthinker/dokuwiki_template_starter/blob/master/main.php|main.php шаблона Starter]] даже содержит некоторые полезные комментарии.
=====Смотрите также=====
* [[wiki:devel:templates|Разработка шаблона DokuWiki]]
* [[wiki:devel:templates:mediamanager.php|mediamanager.php]] – файл шаблона всплывающего окна выбора медиа
* [[wiki:devel:templates:detail.php|detail.php]] – файл шаблона страницы сведений об изображении
* [[https://www.dokuwiki.org/devel:templates:main.php|оригинал статьи]]