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

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

  • Показать исходный текст
  • История страницы
  • Ссылки сюда
  • Оставить на чай
  • Экспорт в PDF
  • Наверх

  • wiki:devel:templates:main.php

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


    файл шаблона 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 в данном случае.
    Только авторизованные участники могут оставлять комментарии.
    wiki/devel/templates/main.php.1724626467.txt.gz · Последнее изменение: 2024/08/26 01:54 — 127.0.0.1