DokuWiki

It's better when it's simple

Користувальницькі налаштування

Налаштування сайту


uk:devel:templates

Розробка Шаблону DokuWiki

Ви можете налаштувати дизайн DokuWiki створивши новий шаблон. Шаблон визначається переважно деякими PHP і CSS файлами, збереженими в каталозі поза <dokuwiki>/lib/tpl/.

Початок Роботи

Найлегший спосіб створення нового шаблону - це взяти вже існуючий як вихідну точку. Це добра ідея використовувати стартовий шаблон, оскільки він чистий і відповідає стандартам шаблонів DokuWiki.

  1. Встановіть шаблон starter (опціонально, його гілка “minimal” є чистою вихідною точкою)
  2. Перейменуйте каталог lib/tpl/starter на lib/tpl/yourname
  3. Виберіть новий шаблон у менеджері конфігурації
  4. Потім змініть свій шаблон на ваш смак; щоб зрозуміти, як створюються шаблони DokuWiki, подивіться на файли шаблону та як DokuWiki обробляє CSS
  5. Коли ваш шаблон буде готовий, розгляньте можливість опублікувати його на сторінці шаблони DokuWiki.

Конвенції назв шаблонів

Дійсна назва шаблону (каталогу):

  • Має містити лише символи a-z та 0-9.
  • Крапка '.', дефіс '-' та підкреслення '_' не дозволяються через:
    • Інфраструктура DokuWiki не підтримує їх ніде.
    • Використання підкреслення також призведе до рейтингу популярності нуль.
  • Пропуски ' ' також не дозволяються в основному імені шаблону, визначеному в template.info.txt і назві папки, включаючи назву сторінки, використану у переліку шаблонів наприклад, template:myfirsttemplate.
  • Якщо два різних шаблони використовують одну й ту ж назву
    • вони взаємно виключаються та несумісні за своєю природою,
    • більше того, лише один з них може мати домашню сторінку шаблону на dokuwiki.org.

Важливо мати унікальне базове значення поля (тобто назву шаблону) в template.info.txt, оскільки інакше може бути перезаписаний вже існуючий шаблон з такою назвою.

Структура директорії

Шаблони повинні дотримуватися такої структури директорій (всі шляхи відносяться до директорії шаблону).

Файли CSS вказуються в файлі style.ini. Використовуйте стільки файлів, скільки потрібно, але ви маєте як мінімум надати один CSS-файл для відображення на екрані і один для друку.

  • <dokuwiki>/lib/tpl/<template>/
    • <filename>.cssстилі шаблону (якщо надано більше ніж кілька, має сенс групувати їх у підкаталог css/)
    • script.js – опціонально, якщо вашому шаблону потрібен JavaScript
    • main.php – загальна структура DokuWiki
    • detail.php – сторінка детальної інформації про зображення
    • mediamanager.php – вибір медіа-файлів
    • images/ – всі зображення, використані у шаблоні (якщо є)
    • conf/ – файли конфігурації (опціонально, якщо використовується конфігурація)
    • lang/ – файли мови
      • <lang code>/lang.phpлокалізаційні рядки, використані у шаблоні (опціонально, використовуйте, коли потрібно)
      • <lang code>/settings.php – локалізаційні рядки, використані у Менеджері конфігурації (якщо використовується конфігурація)
    • style.ini – див. style.ini
    • favicon.ico – фавікон (може бути змінений, завантаживши інший в корінь або простір імен wiki, коли використовується tpl_favicon())
    • template.info.txt – Текстовий файл з інформацією про шаблон обов'язково!

Обробка налаштувань конфігурації аналогічна плагінам. Використовуйте tpl_getConf(<setting>) для отримання власних налаштувань шаблону. Збережені місцеві налаштування зберігаються у глобальному файлі conf/local.php DokuWiki.

Принцип роботи пояснено

Функції

Список доступних функцій можна знайти у документації API. Деякі особливості перераховані тут.

  • tpl_content() \ Ця функція виводить тіло сторінки, або, іншими словами, зміст вашої вікі-сторінки, включаючи зміст. Ви можете запобігти виведенню TOC, передаючи параметр false при виклику:
    tpl_content(false);

    Це можна використовувати для розділення TOC від вмісту і розміщення його в іншому місці на екрані. Для додаткових відомостей дивіться нижче tpl_toc().

  • tpl_toc() \ За замовчуванням, функція tpl_content() самостійно відображає Зміст, додаючи його до фактичного вмісту сторінки. Якщо ваш шаблон використовує бічну панель або іншу складну компоновку, ви, можливо, захочете розмістити TOC незалежно від вмісту сторінки. Це можна зробити за допомогою функції tpl_toc(). При використанні важливо відключити автоматичне розміщення TOC, передавши аргумент false функції tpl_content().



Приклад:

<div id="content">
    <?php tpl_content(false)?>
</div>
 
<div id="sidebar">
    <?php tpl_toc()?>
</div>

Функція tpl_toc() відображає зміст з трьох різних джерел: глобальної змінної $TOC, метаданих сторінки або методу getTOC() admin plugins. Оскільки для старих ревізій або попереднього перегляду немає доступних метаданих, tpl_toc() може використовувати лише глобальну змінну $TOC для цих випадків. Оскільки змінна $TOC заповнюється відтворювачем сторінки, це буде працювати лише тоді, коли tpl_toc() викликається після tpl_content(). Якщо це неможливо в макеті вашого шаблону, ви можете використовувати буферизацію виведення для обходу цієї проблеми.

Приклад:

<?php
    // render the content into buffer for later use
    ob_start();
    tpl_content(false);
    $buffer = ob_get_clean();
?>
 
<div id="sidebar">
    <?php tpl_toc()?>
</div>
 
<div id="content">
    <?php echo $buffer?>
</div>
  • Крім того, доступно багато інших корисних функцій шаблону. Будь ласка, перегляньте документацію API.

Глобальні змінні та константи

Для повного списку корисних глобальних змінних та констант дивіться сторінку environment.

Автоматизоване прибирання

Майже внизу файлу main.php шаблону за замовчуванням ви побачите виклик функції tpl_indexerWebBug(). Ця функція генерує тег HTML <img>, що призводить до запиту до lib/exe/taskrunner.php. Ця важлива частина DokuWiki виконує важливу роботу щодо підтримки порядку, щоб вікі працювала безперебійно. Усі шаблони повинні включати цю функцію, без неї вікі може працювати некоректно (наприклад, індекс пошук може не будуватися).

Клас 'dokuwiki'

Для кожного шаблону в main.php, detail.php та mediamanager.php слід додати клас з назвою dokuwiki до деякого елемента, що оточує вміст (або навколо всього або принаймні навколо tpl_content()). Це необхідно для того, щоб стилі DokuWiki не впливали на інші стилі, якщо вона буде інтегрована у існуючий сайт з потенційно конфліктним CSS.

Включальні Гаки (Hooks)

Включальні Гаки (Hooks) - це простий спосіб додати який-небудь статичний вміст до вашої DokuWiki інсталяції, не писати свій власний Template. Ви можете використовувати їх для додавання стандартного заголовка вгорі або відомостей про відмову внизу кожної сторінки.

Шаблон за замовчуванням DokuWiki шукає файли зі спеціальними назвами в каталозі шаблону і просто додає їх на відповідні місця при відображенні сторінки. Ви можете додавати будь-який HTML або навіть PHP в ці файли. Звичайно, це працює тільки в разі використання шаблону dokuwiki або шаблону, що підтримує ті самі включальні гаки (наприклад, стартовий шаблон).

Конвертація існуючих шаблонів

Якщо вам не вистачає навичок дизайну, ви також можете конвертувати існуючі шаблони. Існує багато безкоштовних варіантів. Якщо ви хочете опублікувати один з них, будь ласка, переконайтеся, що він сумісний з GPL2.

Уникання проблем

Ось деякі проблеми, з якими стикаються розробники шаблонів, та як їх уникнути:

Не розміщуйте команди JavaScript у тегу <body> сторінки

Це включає onLoad та інші. Хоча порушення цього правила не впливає на FireFox зовсім, Internet Explorer (навіть IE 7) матиме помилки JavaScript через необхідний для редагування сторінки JavaScript, і це може призвести до сторінок, які відображатимуться неправильно, а також ви можете помітити, що панель редагування буде відсутня, коли вам це знадобиться.

Вимкніть "Компактні CSS- та JavaScript-файли" під час розробки шаблону

Деякі розробники шаблонів стикаються з проблемами кешування CSS- та JS-файлів DokuWiki через цю опцію, хоча її важко виявити. Щоб бути в безпеці, тимчасово вимкніть це.

Використовуйте "примусове оновлення" після внесення змін до файлів CSS

Ви можете це зробити, натиснувши Ctrl+F5 або утримуючи натиснутими клавіші Shift-Control-Alt і натисканням кнопки оновлення у вашому браузері.

Це не пов'язано з тим, як працює DokuWiki, а з тим, як сучасні браузери кешують файли. Браузери кешують таблиці стилів навіть тоді, коли доступні нові версії, тому вам потрібно це зробити.

Публікація шаблону на dokuwiki.org

Якщо ви створили шаблон, будь ласка, поділіться ним зі спільнотою. Просто створіть сторінку, названу за вашим шаблоном у просторі імен template. Наприклад, якщо ваша тека шаблону називається sample, створіть сторінку template:sample тут, у вікі.

Сторінка повинна містити всю необхідну документацію про те, як встановити та використовувати шаблон. Додавання знімків екрану також може бути гарною ідеєю.

У верхній частині сторінки шаблону необхідно заповнити кілька метаданих полів. Опис кожного поля можна знайти на сторінці Плагін репозиторію.

Починаючи з версії Ponder Stibbons, можливий автоматизований сигнал про оновлення. Для коректної роботи процесу оновлення необхідно, щоб дата “Останнє оновлення” на сторінці шаблону у вікі відповідало даті у файлі template.info.txt у вихідному tarball/zip файлі. Якщо цього не відбувається, оновлення не відбудеться або сигнал “Оновлення” залишиться.

Завантаження на dokuwiki.org заборонене, тому вам потрібно розмістити ваші файли шаблону десь інде. Ми рекомендуємо керувати вашим вихідним кодом за допомогою системи керування версіями, такої як git. Якщо ви використовуєте git, найлегше використовувати публічний хост репозиторіїв, такий як GitHub, який також пропонує трекер помилок для вашого репозиторію.

uk/devel/templates.txt · Востаннє змінено: 2024-05-18 12:10 повз uaKalwin

Якщо не вказано інше, вміст цієї Вікі підпадає під дію такої ліцензії: 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