Содержание

файл шаблона main.php

main.php включает в себя большинство страниц, которые вы увидите при просмотре установки «ДокуВики»; сюда входят все «действия DokuWiki», перечисленные в менеджере конфигурации.

Многие из описанных здесь функций также применимы для :&13: файл шаблона detail.php и :&13: файл шаблона mediamanager.php, т.е. все, что находится до первого div плюс html_msgarea() должно быть общим для всех файлов шаблонов.

Минимум...

Здесь представлены минимальные требования для правильного отображения и взаимодействия страницы с вашим шаблоном.

Функциональность

Обычно рекомендуется начинать страницы шаблона с doctype и тега <html> который сообщает браузеру, какой язык и направление текста используются на вики-страницах.

<!DOCTYPE html>
<html
  xmlns="http://www.w3.org/1999/xhtml"
  xml:lang="<?php echo $conf['lang']?>"
  lang="<?php echo $conf['lang']?>"
  dir="<?php echo $lang['direction']?>">

Первый реальный вызов PHP — это :&13: tpl_metaheaders(), который включает в себя CSS и JavaScript, необходимые и предоставляемые DokuWiki, а также все, что собрано из style.ini.

  <head>
    <?php tpl_metaheaders()?>

Далее идет tpl_pagetitle(), который использует идентификатор страницы (или, опционально, первый заголовок) в качестве заголовка страницы рядом с заголовком вашей вики 1). Имеет смысл объявить набор символов непосредственно перед этим:

    <meta charset="UTF-8" />
    <title><?php tpl_pagetitle()?> - <?php echo hsc($conf['title'])?></title>

Чтобы добавить favicon, вы можете использовать tpl_favicon() который по умолчанию будет использовать который по умолчанию будет использовать favicon.ico в каталоге шаблона images. Но это можно перезаписать, загрузив этот файл в пространство имен wiki wiki или root через медиа-менеджер.

    <?php echo tpl_favicon(array('favicon')) ?>
  </head>

Когда вы будете готовы к отображению, вам нужно будет добавить tpl_classes() (который также включает dokuwiki класс) где-то вверху, чтобы ваша страница работала правильно с плагинами, использующими таблицы стилей. Идентификатор dokuwiki__top необходим для утилиты «Вернуться наверх».

  <body>
    <div class="<?php echo tpl_classes() ?>" id="dokuwiki__top">

Ваш шаблон должен иметь некий последовательный заголовок, отображающий название и слоган вики:

      <h1><?php tpl_link(wl(),$conf['title'],'accesskey="h" title="[H]"') ?></h1>
      <?php if ($conf['tagline']): ?>
        <p><?php echo $conf['tagline'] ?></p>
      <?php endif ?>

Вам понадобятся все служебные кнопки/ссылки с tpl_action() чтобы сделать ваш wiki действительно функциональным. Вот все кнопки, предоставляемые шаблоном по умолчанию.

      <div class="actions">
        <?php tpl_searchform()?>
        <?php tpl_action('admin')?>
        <?php tpl_action('profile')?>
        <?php tpl_action('register')?>
        <?php tpl_action('login')?>
        <?php tpl_action('edit')?>
        <?php tpl_action('revisions')?>
        <?php tpl_action('backlink')?>
        <?php tpl_action('subscribe')?>
        <?php tpl_action('revert')?>
        <?php tpl_action('recent')?>
        <?php tpl_action('media')?>
        <?php tpl_action('index')?>
        <?php tpl_action('top')?>
      </div>

Теперь представьте себя в области контента вашей страницы. Сначала вам понадобится вызов функции отображения ошибок, html_msgarea(). Это то, что позволяет вам видеть, например, ошибки конфигурации в DokuWiki, когда они у вас есть, или ошибки рендеринга плагина, или позволяет вам видеть результаты, do=check когда вы добавляете это в конец URL на вашем сайте.

      <?php html_msgarea()?>

Некоторые мелочи — это «хлебные крошки» и ссылки «вы здесь». Вы можете добавить их в любом месте области контента, в любом порядке с помощью tpl_breadcrumbs() и tpl_youarehere(), и они совершенно необязательны и остаются на ваше усмотрение. Если вы разрабатываете шаблон для общего использования, вам нужно будет поддерживать оба варианта, чтобы ваши конечные пользователи могли выбирать.

      <?php if ($conf['breadcrumbs']): ?>
        <p><?php tpl_breadcrumbs() ?></p>
      <?php endif ?>
      <?php if ($conf['youarehere']): ?>
        <p><?php tpl_youarehere() ?></p>
      <?php endif ?>

Кульминацией всего процесса является отображение содержимого страницы; это всего лишь один вызов tpl_content(), и он используется для всех действий — просмотра, редактирования, навигации по индексу, поиска и любой страницы с формой.

      <?php tpl_content(); ?>

Ближе к концу раздела контента вы можете добавить информацию о том, когда страница была последний раз изменена, кто это сделал, под каким именем вы в данный момент вошли в систему и какова лицензия вики:

      <p>
        <?php tpl_pageinfo()?><br />
        <?php tpl_userinfo()?><br />
        <?php tpl_license()?>
      </p>

Многие шаблоны отображают боковую панель, если установлена опция конфигурации боковой панели. Это отобразит содержимое страницы под названием «боковая панель»:

      <?php tpl_include_page($conf['sidebar'], 1, 1) ?>

И наконец, эта функция вам нужна для того, чтобы убедиться, что поиск работает правильно и находит ваши страницы:

      <?php tpl_indexerWebBug(); ?>
    </div>
  </body>
</html>

В целом теперь...

У нас есть небольшой образец, который можно использовать main.php в качестве шаблона, и он выглядит так:

<!DOCTYPE html>
<html
  xmlns="http://www.w3.org/1999/xhtml"
  xml:lang="<?php echo $conf['lang']?>"
  lang="<?php echo $conf['lang']?>"
  dir="<?php echo $lang['direction']?>">
  <head>
    <?php tpl_metaheaders()?>
    <title><?php tpl_pagetitle()?> - <?php echo hsc($conf['title'])?></title>
    <?php echo tpl_favicon(array('favicon')) ?>
  </head>
  <body>
    <div class="<?php echo tpl_classes(); ?>" id="dokuwiki__top">
      <h1><?php tpl_link(wl(),$conf['title'],'accesskey="h" title="[H]"') ?></h1>
      <?php if ($conf['tagline']): ?>
        <p><?php echo $conf['tagline'] ?></p>
      <?php endif ?>
      <div class="actions">
        <?php tpl_searchform()?>
        <?php tpl_action('admin')?>
        <?php tpl_action('profile')?>
        <?php tpl_action('register')?>
        <?php tpl_action('login')?>
        <?php tpl_action('edit')?>
        <?php tpl_action('revisions')?>
        <?php tpl_action('backlink')?>
        <?php tpl_action('subscribe')?>
        <?php tpl_action('revert')?>
        <?php tpl_action('recent')?>
        <?php tpl_action('media')?>
        <?php tpl_action('index')?>
        <?php tpl_action('top')?>
      </div>
      <?php html_msgarea()?>
      <?php if ($conf['breadcrumbs']): ?>
        <p><?php tpl_breadcrumbs() ?></p>
      <?php endif ?>
      <?php if ($conf['youarehere']): ?>
        <p><?php tpl_youarehere() ?></p>
      <?php endif ?>
      <?php tpl_content(); ?>
      <p>
        <?php tpl_pageinfo()?><br />
        <?php tpl_userinfo()?><br />
        <?php tpl_license()?>
      </p>
      <?php tpl_include_page($conf['sidebar'], 1, 1) ?>
      <?php tpl_indexerWebBug(); ?>
    </div>
  </body>
</html>

Теперь у вас есть все кнопки, а также поле поиска, и это все, что вам нужно для разработки шаблона.

Посмотрите и почувствуйте

FIXME Объяснение стилей для:

Следует разместить здесь, так как все они требуют информацию о таблицах стилей.

Источник

Исходный код main.php шаблона 'dokuwiki' можно найти по адресу lib/tpl/dokuwiki/main.php. Файл main.php шаблона Starter даже содержит некоторые полезные комментарии.

Смотрите также

1)
Это и есть причина $conf в данном случае.