Шаблон:When pagename is
Цей мета-шаблон призначений для використання всередині інших шаблонів.
Він допомагає іншим шаблонам визначити на якій сторінці вони виконуються. Шаблон перевіряє на збіг ім'я сторінки за заданим зразком.
Використання
[ред.]Шаблон може обробляти більше одного параметра. більшість параметрів не мають певного імені, оскільки їх імена використовуються для завдання зразка пошуку. Наприклад:
{{when pagename is |/doc = Текст для сторінки документації |other = Текст для решти сторінок }}
Якщо шаблон включений на сторінці «Шаблон: Приклад/doc» код вище поверне:
- Текст для сторінки документації
Якщо шаблон включений на інший сторінці, ім'я якої не містить /doc, то код поверне:
- Текст для решти сторінок
Далі наводиться перелік всіх варіантів перевірки сторінок за зразком:
{{when pagename is <!--Перевірка на збіг з повним ім'ям сторінки--> |Учасник: Приклад/test = Текст для " Учасник: Приклад/test". |Учасник: Приклад = Текст для" Учасник: Приклад ". |Обговорення користувача: Приклад = Текст для" Обговорення користувача: приклад ". <!--Перевірка на збіг з повним ім'ям базової сторінки, для базових сторінок або їх підсторінок--> |Учасник: Приклад/+ = Спрацює на сторінках " Учасник: Приклад " та "Учасник: Приклад/test". <!--Перевірка на збіг з ім'ям сторінки, для базових сторінок--> |Приклад = Спрацює на сторінках " Учасник: Приклад", " Обговорення користувача: Приклад", " Шаблон: Приклад" та т.п., але не на " Учасник: Приклад /-небудь ". <!--Перевірка на збіг з повним ім'ям базової сторінки, тільки для підсторінок--> |Учасник: Приклад/* = Спрацює на сторінці " Учасник: Приклад /-небудь ", але не на " Учасник: Приклад ". |Обговорення користувача: Приклад/* = Matches "Обговорення користувача: Приклад /-небудь ". <!--Збіг з ім'ям базової сторінки, тільки для підсторінок--> |Приклад/* = Спрацює на сторінках " Учасник: Приклад /-небудь " та " Обговорення користувача: Приклад /-небудь ". <!--Збіг з ім'ям підсторінки--> |/-небудь = Будь сторінка закінчується на " /-небудь ". |/doc = Будь сторінка закінчується на "/doc". <!--Збіг до частини імені підсторінки (без розрізнення великих та малих буквв) --> |/ чтона* = Будь сторінка ім'я якої починається з "/ чтона " або "/ чтона ". |/ архі* = Спрацює на сторінці " Обговорення користувача: Приклад/Архів 1". <!--Запасні варіанти за замовчуванням--> |basepage = Тест для будь-якої базової сторінки. |subpage = Текст для будь продстраніци. |other = Текст для будь-якої сторінки. }}
Порівняння проводиться зверху вниз та повертається той варіант, в якому відбулося збіг. Під словами «з верху вниз» мається на увазі порядок варіантів вище, а не порядок параметрів які передаються в шаблон.
У шаблоні немає обмежень на кількість параметрів, які можна передати, крім обмежень накладених сервером та движком MediaWiki.
Більшість перевірок не залежать від регістру букв. Однак зразок «/test
» співпаде з «Учасник: Приклад/test» але не з "Користувач: Приклад/Test».
Перевірка на збіг з частиною імені підсторінки, такий як «/чтона*
» має деякі обмеження. Див спеціально присвячений цьому розділ нижче.
Дозволяється задавати пусте значення в параметрі порівняння, при збігу із зразком подальше порівняння припиняється і шаблон повертає порожній рядок. Це може використовуватися для наступних цілей:
{{when pagename is |/doc = |/sandbox = Текст для сторінки пісочниці |other = Текст для решти сторінок }}
Код вище нічого не відобразить, якщо шаблон викличеться на сторінці /doc, але на сторінці /sandbox він поверне:
- Текст для сторінки пісочниці
А на інших сторінках відобразиться:
- Текст для решти сторінок
Часткові імена підсторінок
[ред.]Також цей шаблон може порівнювати частину імені підсторінки. Наприклад:
{{when pagename is |/ архі* = Текст для сторінки архіву |other = Текст для решти сторінок }}
На сторінці «Користувач: Приклад/Архів 1» код вище поверне:
- Текст для решти сторінок
Назва параметра зразка порівняння «/чтона*
» не повинно містити заголовних букв, але збіг буде на підсторінка містить як великі, так і маленькі букви, таких як «Учасник: Приклад /-небудь» та «Учасник: Приклад /-небудь».
порівнювана частина імені сторінки в зразку може містити 4, 6 та 8 символів. Порівняння з «/чтона*
», «/чтоніб*
» та «/-небудь*
» Спрацює, але з«/що*
» або «/чтона*
» — немає.
Спочатку порівнюються довгі зразки, наприклад якщо задані обидва зразки «/-небудь*
» та «/чтона*
», і поточна станиця називається «Учасник: Приклад /-небудь», то шаблон поверне те, що задано в параметрі «/-небудь*
».
Параметр «page»
[ред.]Для перевірки та демонстрації роботи шаблон обробляє параметр page. Наприклад:
{{when pagename is |/test = Текст для сторінки тесту |other = Текст для іншої сторінки |page = Шаблон: Приклад/test }}
І не важливо на якій сторінці код вищою буде викликаний, він завжди поверне:
- Текст для сторінки тесту
Параметрpageзмушує шаблон вести себе в точності так, як якщо б він був викликаний на зазначеній в ньому сторінці.
Якщо параметрpageпорожній або не заданий, результат визначається в залежності від назви поточної сторінки.
Ви можете додати параметрpage в викликає шаблон, щоб показати на його сторінці документації як він буде виглядати на різних сторінках. Наприклад:
{{when pagename is |/test = Текст для сторінки тесту |other = Текст для іншої сторінки |page = {{{page|}}} }}
Порівняння імені простору
[ред.]Цей шаблон не порівнює імена просторів. Якщо вам потрібно це, то поєднуйте це шаблон з одним з шаблонів перевірки імен просторів, таких як {{template other}}. Наприклад:
{{template other |{{when pagename is |/doc = Текст на сторінці документації шаблону. }} |<!--Нічого не показувати на інших сторінках--> }}
Так на сторінці «Користувач: Приклад/doc» код нічого не поверне, але на сторінці «Шаблон: Приклад/doc» він поверне:
Технічні деталі
[ред.]Це шаблон визначає підсторінки навіть якщо він використовується на сторінках в просторі імен, для яких заборонено створення підсторінок. Таким чином, він однаково працює у всіх просторах імен.
Документація вище включена з Шаблон:When pagename is/документація. (ред. | історія) Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього шаблону. Будь ласка, додавайте категорії до підсторінки /документація. Підсторінки цього шаблону. |