Перейти до вмісту

Шаблон:When pagename is

Матеріал з Вікіцитат
(Перенаправлено з Шаблон:If pagename)
{{i}} Документація шаблону[перегляд] [редагувати] [історія] [очистити кеш]

Цей мета-шаблон призначений для використання всередині інших шаблонів.

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


Використання

[ред.]

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

{{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» він поверне:

Технічні деталі

[ред.]

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