Шаблон: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» він поверне:
Технічні деталі
Це шаблон визначає підсторінки навіть якщо він використовується на сторінках в просторі імен, для яких заборонено створення підсторінок. Таким чином, він однаково працює у всіх просторах імен.