Help:Templates/uk

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

Створення шаблону
Шаблони - це звичайні вікі-сторінки, вміст яких призначено для включення (вбудовування) в інші сторінки. Назві шаблону передує слово " ", яке відносить шаблон до простору імен. Знаючи це, ви можете створити шаблон так само, як і звичайну сторінку.

Найпростіший приклад застосування шаблону. Якщо створити сторінку "Template:Welcome", на якій записано:

Привіт! Ласкаво просимо до вікі.

то ця сторінка буде шаблоном. Тепер її включення за допомогою такого коду:

до будь-якої іншої сторінки приведе до того, що при перегляді цієї сторінки на місці коду  з'явиться текст "Привіт! Ласкаво просимо до вікі." Так вміст шаблону включається (інтегрується) до іншої сторінки.

Тепер ви можете вписати  в будь-якому місці кожної сторінки, де ви вважаєте доречним появу такого привітання. Нехай ви записали такий код на 100 сторінках. Якщо тепер ви зміните текст шаблону на такий:

Наші вітання! Ласкаво просимо до цієї чудової вікі.

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

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

Використання
Інші сторінки можуть використовувати сторінки шаблонів в такий спосіб:

- таке посилання буде раз і назавжди замінено поточним на момент збереження сторінки вмістом шаблону Template:Назва. Тобто, це посилання в вікі-тексті сторінки буде замінено вмістом шаблону. Внесений в такий спосіб текст не відрізняється від того, що ви набираєте звичайним способом, і його можна редагувати на сторінці вже незалежно від шаблону. Звичайно, тепер змінення шаблону не приведе до змінення цього тексту.
 * - як описано вище, таке посилання буде замінено поточним вмістом сторінки Template:Назва при кожному перегляді сторінки. Рушій MediaWiki залишає це посилання в вікі-тексті сторінки незмінним.
 * - ця конструкція поводить себе точно так, як і, різниця виникає лише коли вона зустрічається всередині іншого шаблону і цей шаблон або вставляють (за першою схемою), або прямо переглядають.
 * включає шаблон у формі без вікі-форматування (так само, як це робить ) при перегляді сторінки.

Насправді будь-яка сторінка вікі може бути використана як шаблон, для цього слід явно вказати простір імен, в якому вона знаходиться:


 * включає сторінку
 * включає сторінку
 * включає сторінку
 * заміщується вмістом

Якщо такого простору імен не існує, назву буде доповнено простором імен    :


 * включає сторінку

Параметри
Для збагачення механізму підставлення MediaWiki дозволяє передавати параметри шаблону. Ці параметри дозволяють одному й тому самому шаблону продукувати різні результати чи по-різному поводитися.

Нехай ви вставляєте коротку подяку на сторінку обговорення іншого користувача, приміром:

Ця подяка містить причину (в наведеному прикладі - за вашу працю) та підпис (Я). Зробити те ж за допомогою вашого шаблону Thankyou зможе будь-який користувач.

Подяка, висловлена за допомогою цього шаблону Template:Thankyou, матиме однаковий вигляд, але міститиме різні фрагменти тексту - ті самі, що при кожному використанні було передано шаблону як параметри. Знехтувавши кодом форматування рамки та зображення, звернемо увагу на змістовний в даному контексті фрагмент шаблону:

Спасибі... за. жму руку,

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

Використовуючи цей шаблон на деякій сторінці, ви вказуєте значення параметрів, розділяючи їх символом вертикальної риски (|). MediaWiki дозволяє передавати параметри шаблону трьома способами: анонімні, нумеровані, названі.

Анонімні параметри
Анонімні (за програмістською термінологією, позиційні) параметри просто перелічують послідовно один за одним:

В цьому випадку шаблон  отримує для заміщення   та   і дає в результаті:

Послідовність, в якій перелічено параметри, критична для правильного функціонування. Якщо при включенні шаблону змінити порядок параметрів таким чином:

дістанемо такий результат:

Note: звернення всередині шаблону до його аргументів за порядковим номером ( і т.ін.) дозволено лише для анонімних (позиційних) та нумерованих параметрів.

Нумеровані параметри
Для того щоб передати параметри в нумерованому стилі, просто позначте кожен його номером:

Цього разу код шаблону  отримає параметри   та , незалежно від порядку їх запису при використанні шаблону, і дасть такий результат:

Названі параметри
Третій спосіб передавати параметри шаблону - це надати їм якісь особливі імена замість номерів. Для цього слід змінити сторінку шаблону так:

Спасибі... за. жму руку,

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

В цьому разі код шаблону  отримає параметри   and , в результаті побачимо:

Перевагою такого способу передачі параметрів, крім гнучкості у порядку, в якому їх можна вказувати, є те, що код шаблону стає більш зрозумілим, в ньому суттєво легше розібратися у випадку більшої кількості параметрів. Необхідність пам'ятати назви параметрів при використанні шаблону можна віднести як до переваг, так і до вад цього способу.

Значення за замовчуванням
Якщо при включенні шаблону, який має параметри, їх не вказати, тобто записати:

то результат (для перших двох способів передачі параметрів) вийде схожим на

Не знайшовши вказаних параметрів, шаблон підставив внутрішні назви цих параметрів замість відповідних значень. Для того, щоб подібне використання шаблону зробити ефективним, слід задати значення параметрів по замовчуванню, тобто ті, які буде виведено у випадку, коли відповідні значенні параметрів шаблону не передано. Так, якщо змінити сторінку шаблону таким чином:

Спасибі... за. жму руку,

де код  встановлює, що значення   буде використано, якщо параметр   не вказаний; так само, код   встановлює, що значення   буде використано, якщо параметр   не вказаний. Тепер включення цього шаблону без передачі йому параметрів завжди даватиме:

Управління включенням тексту шаблону до сторінок
За звичайного стану справ текст шаблону цілком відображується як при прямому перегляді, так і на сторінці, яка включає шаблон. Але є можливість обирати, які частини сторінки шаблону буде відображено чи включено, за допомогою теґів  та.

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


 * Посилання категорій, до яких віднесений сам шаблон
 * Міжмовні посилання на той самий шаблон іншими мовами
 * Пояснювальний текст про використання шаблону

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


 * Категоризації сторінок, які включають шаблон. Примітка: якщо в такий спосіб змінити категорії, до яких віднесено шаблон, на відображення цієї зміни на сторінках, що включають цей шаблон, необхідний певний час: це зумовлено . Щоб примусити рушій MediaWiki терміново переглянути категорії певної сторінки, відкрийте її для редагування та збережіть без жодної зміни.
 * Гарантування того, що код шаблону не виконуватиметься при перегляді сторінки шаблону. Зазвичай це роблять, коли шаблон очікує параметри, а без параметрів дасть безглуздий результат.

Будь-який текст поза межами теґів  та   обробляється та відображується за звичайними правилами, тобто як при перегляді сторінки шаблону, так і при включенні шаблону до іншої сторінки.

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

Знайти сторінки шаблонів користувач може так:
 * 1) Натиснути ' > '
 * 2) У переліку ' обрати Template та натиснути '.

Для надання інформації про використання шаблону слід вмістити на його сторінці приклад, подібний до такого:

Використання
Подякувати користувачу:

Тоді дописувач може скопіювати цей приклад і вставити його на сторінку, а потім вписати актуальні параметри.

Копіювання з одного вікі-проекту до іншого
Шаблони зазвичай спираються на CSS чи на інші шаблони, тому користувачі часто стикаються із проблемами при переносі шаблону з одного проекту до іншого. Кроки, перелічені нижче, мають допомогти у більшості ситуацій.

Код MediaWiki
If you have import rights (Specifically importupload) on the new wiki:
 * 1) Go to Special:Export on the original wiki, and download an .xml file with the complete history of all necessary templates, as follows:
 * 2) * Enter the name of the template in the big text box, e.g. "Template:Welcome". Pay special attention to capitalization and special characters — if the template name isn't exactly correct, the export may still occur but the .xml file will not have the expected data.
 * 3) * Check the box "".
 * 4) * Uncheck the box "".
 * 5) * Click "".
 * 6) Go to Special:Import on the new wiki and upload the .xml file.

If you don't have import rights on the new wiki:


 * 1) Go to the template you want to copy from the original wiki. Go to the edit page, and copy all the wikitext
 * 2) On the new wiki, go to the page with the same name as the template you copied. Hit create/edit and paste the wikitext you copied. In the edit summary of each template, link to the original page for attribution.
 * 3) Back in the original wiki at the edit window, below the edit box, look at the list of "Templates used on this page". For each template listed follow these instructions. Also do that for any template used by any of these templates, and so on.

This will copy the entire code necessary, and will suffice for some templates. If it doesn't work also check for red links listed under "Pages transcluded onto the current version of this page:", below the edit box. If there are any repeat the above steps for these as well.

After sucessfully importing the template and all its linked templates from the other wiki, edit it to change customisations to suit your wiki. For example to change a logo, remove redundant categories or red links.

Extensions
An extension often used in templates is ParserFunctions. Visit page and check if any of the functions listed there are used in the templates you've copied. If so, you have to install the. To install it, you'll need system admin access to the server of your MediaWiki installation.

Another dependency that may be used in templates, especially those on Wikipedia, is Lua. Having  in template code is a good sign for it. In case it's used, you need to install the and system admin access is required too. See that page for more instructions about installing and using the extension.

CSS and JavaScript code
Besides MediaWiki code, many templates make use of CSS and some rely on JavaScript to work fully. If the copied templates are not behaving as expected, this may be the cause. To copy the required CSS and JavaScript to your wiki you'll normally need to have admin privileges, because you'll be editing system messages in the "MediaWiki:" namespace.


 * 1) Look for the use of CSS classes (text like  ) in the template text. If those classes appear in "MediaWiki:Common.css" or "MediaWiki:Monobook.css" on the original wiki, copy those classes to "MediaWiki:Common.css" on the new wiki and check if the template is now fine.
 * 2) If the copied template is still not working as expected, check if there is code in "MediaWiki:Common.js" or "MediaWiki:Monobook.js" on the original wiki. If so, you can try copying it to "MediaWiki:Common.js" on the new wiki. Normally, it is a good idea to only copy code from trusted sources, and first browsing the code to identify and select the parts that are relevant. You may find comments that can serve as clues to identify the functionality of each part.