Шаблон:If pagename/doc
Этот мета-шаблон предназначен для использования внутри других шаблонов.
Он помогает другим шаблонам определить на какой странице они исполняются. Шаблон проверяет на совпадение имя страницы по заданному образцу.
Использование[править код]
Шаблон может обрабатывать более одного параметра. Большинство параметров не имеют определённого имени, так как их имена используются для задания образца поиска. Например:
{{if pagename | /doc = Текст для страницы документации | other = Текст для остальных страниц }}
Если шаблон включён на странице «Шаблон: Пример/doc» код выше вернёт:
- Текст для страницы документации
Если шаблон включён на другой странице, имя которой не содержит /doc, то код вернёт:
- Текст для остальных страниц
Далее приводится перечень всех вариантов проверки страниц по образцу:
{{if pagename <!-- Проверка на совпадение с полным именем страницы --> | Участник:Пример/test = Текст для "Участник:Пример/test". | Участник:Пример= Текст для "Участник:Пример". | Обсуждение участника:Пример= Текст для "Обсуждение участника:Пример". <!-- Проверка на совпадение с полным именем базовой страницы, для базовых страниц или их подстраниц --> | Участник:Пример/+ = Сработает на страницах "Участник:Пример" и "Участник:Пример/test". <!-- Проверка на совпадение с именем страницы, для базовых страниц --> | Пример = Сработает на страницах "Участник:Пример", "Обсуждение участника:Пример", "Шаблон:Пример" и т.п., но не на "Участник:Пример/чтонибудь". <!-- Проверка на совпадение с полным именем базовой страницы, только для подстраниц --> | Участник:Пример/* = Сработает на странице "Участник:Пример/чтонибудь", но не на "Участник:Пример". | Обсуждение участника:Пример/* = Matches "Обсуждение участника:Пример/чтонибудь". <!-- Совпадение с именем базовой страницы, только для подстраниц --> | Пример/* = Сработает на страницах "Участник:Пример/чтонибудь" и "Обсуждение участника:Пример/чтонибудь". <!-- Совпадение с именем подстраницы --> | /чтонибудь = Любая страница заканчивающаяся на "/чтонибудь". | /doc = Любая страница заканчивающаяся на "/doc". <!-- Совпадение с частью имени подстраницы (без различения прописных и строчных буквв) --> | /чтон* = Любая страница имя которой начинается с "/чтон" или "/Чтон". | /архи* = Сработает на странице "Обсуждение участника:Пример/Архив 1". <!-- Запасные варианты по умолчанию --> | basepage = Тест для любой базовой страницы. | subpage = Текст для любой продстраницы. | other = Текст для любой страницы. }}
Сравнение производится сверху вниз и возвращается тот вариант, в котором произошло совпадение. Под словами «с верху вниз» имеется ввиду порядок вариантов выше, а не порядок параметров которые передаются в шаблон.
В шаблоне нет ограничений на количество параметров, которые можно передать, кроме ограничений накладываемых сервером и движком MediaWiki.
Большинство проверок не зависят от регистра букв. Однако образец «/test
» совпадёт с «Участник: Пример/test» но не с «Участник: Пример/Test».
Проверка на совпадение с частью имени подстраницы, такой как «/чтон*
» имеет некоторые ограничения. См. специально посвященный этому раздел ниже.
Разрешается задавать пустое значение в параметре сравнения, при совпадении с образцом дальнейшее сравнение прекращается и шаблон возвращает пустую строку. Это может использоваться для следующих целей:
{{if pagename | /doc = | /sandbox = Текст для страницы песочницы | other = Текст для остальных страниц }}
Код выше ничего не отобразит, если шаблон вызовется на странице /doc, но на странице /sandbox он вернёт:
- Текст для страницы песочницы
А на остальных страницах отобразится:
- Текст для остальных страниц
Частичные имена подстраниц[править код]
Также этот шаблон может сравнивать часть имени подстраницы. Например:
{{if pagename | /архи* = Текст для страницы архива | other = Текст для остальных страниц }}
На странице «Участник: Пример/Архив 1» код выше вернёт:
- Текст для страницы архива
Название параметра образца сравнения «/чтон*
» не должно содержать заглавных букв, но совпадение будет на подстраницах содержащий как большие, так и маленькие буквы, таких как «Участник: Пример/ЧтоНибудь» и «Участник: Пример/чтонибудь».
Сравниваемая часть имени страницы в образце может содержать 4, 6 и 8 символов. Сравнение с «/чтон*
», «/чтониб*
» и «/чтонибуд*
» сработает, но с «/что*
» или «/чтони*
» — нет.
Сначала сравниваются длинные образцы, например если заданы оба образца «/чтонибуд*
» и «/чтон*
», и текущая станица называется «Участник: Пример/Чтонибудь», то шаблон вернёт то, что задано в параметре «/чтонибуд*
».
Параметр «page»[править код]
Для проверки и демонстрации работы шаблон обрабатывает параметр page. Например:
{{if pagename | /test = Текст для страницы теста | other = Текст для другой страницы | page = Шаблон:Пример/test }}
И не важно на какой странице код выше будет вызван, он всегда вернёт:
- Текст для страницы теста
Параметр page заставляет шаблон вести себя в точности так, как если бы он был вызван на указанной в нём странице.
Если параметр page пустой или не задан, результат определяется в зависимости от названия текущей страницы.
Вы можете добавить параметр page в вызывающий шаблон, чтобы показать на его странице документации как он будет выглядеть на разных страницах. Например:
{{if pagename | /test = Текст для страницы теста | other = Текст для другой страницы | page = {{{page|}}} }}
Сравнение имени пространства[править код]
Этот шаблон не сравнивает имена пространств. Если вам нужно это, то объединяйте это шаблон с одним из шаблонов проверки имён пространств, таких как {{template other}}. Например:
{{template other | {{if pagename | /doc = Текст на странице документации шаблона. }} | <!-- Ничего не показывать на других страницах --> }}
Так на странице «Участник: Пример/doc» код ничего не вернёт, но на странице «Шаблон: Пример/doc» он вернёт:
- Текст на странице документации шаблона.
Технические детали[править код]
Это шаблон определяет подстраницы даже если он используется на страницах в пространстве имён, для которых запрещено создание подстраниц. Таким образом, он одинаково работает во всех пространствах имён.