Перейти к содержанию
Главное меню
Главное меню
переместить в боковую панель
скрыть
Навигация
Заглавная страница
Указатели
Свежие правки
Случайная страница
Справка по MediaWiki
Народные Сказки
Поиск
Найти
Создать учётную запись
Войти
Персональные инструменты
Создать учётную запись
Войти
Страницы для неавторизованных редакторов
узнать больше
Вклад
Обсуждение
Редактирование:
РуСказки:Функции парсера
(раздел)
О проекте
Обсуждение
русский
Читать
Править код
История
Инструменты
Инструменты
переместить в боковую панель
скрыть
Действия
Читать
Править код
История
Общие
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Функции == === #expr === {{См. также|mw:Help:Extension:ParserFunctions/ru##expr}} Функция <tt>#expr</tt> производит математические вычисления над числами или переменными/параметрами, приводимыми к числам. Синтаксис: <nowiki>{{</nowiki>#expr: ''выражение'' <nowiki>}}</nowiki> Поддерживаются следующие операторы (перечислены в порядке, примерно соответствующем их приоритету): {| cellpadding="6" class="standard" ! Оператор ! Действие ! Пример |- ! |align="center"| — ||<tt><nowiki>{{#expr: 123456789012345 }}</nowiki></tt> = {{#expr: 123456789012345 }}<br> <tt><nowiki>{{#expr: 0.000001 }}</nowiki></tt> = {{#expr: 0.000001 }} |- ! () | Операторы группирования | <tt><nowiki>{{#expr: (30 + 7) * 7 }}</nowiki></tt> = {{#expr: (30 + 7) * 7 }} |- ! + | Унарный знак '''+''' | <tt><nowiki>{{#expr: +30 * +7 }}</nowiki></tt> = {{#expr: +30 * +7 }} |- ! - | Унарный знак '''-''' (инвертирование знака) | <tt><nowiki>{{#expr: -30 * -7 }}</nowiki></tt> = {{#expr: -30 * -7 }} |- ! not | Унарное либо логическое НЕ | <tt><nowiki>{{#expr: not 0 * 7 }}</nowiki></tt> = {{#expr: not 0 * 7 }}<br><tt><nowiki>{{#expr: not 30+7 }}</nowiki></tt> = {{#expr: not 30+7 }} |- ! * | Умножение | <tt><nowiki>{{#expr: 30 * 7 }}</nowiki></tt> = {{#expr: 30 * 7 }} |- ! / | Деление, эквивалент '''div''' | <tt><nowiki>{{#expr: 30 / 7 }}</nowiki></tt> = {{#expr: 30 / 7 }} |- ! ^ | Возведение в степень | <tt><nowiki>{{#expr: 3 ^ 2 }}</nowiki></tt> = {{#expr: 3 ^ 2 }} |- ! div | Деление, эквивалент '''/''' ''(целочисленного деления нет)'' | <tt><nowiki>{{#expr: 30 div 7 }}</nowiki></tt> = {{#expr: 30 div 7 }}<br><tt><nowiki>{{#expr: 5 div 2 * 2 + 5 mod 2 }}</nowiki></tt> = {{#expr: 5 div 2 * 2 + 5 mod 2 }} |- ! mod | Остаток от деления, получается делением операндов, у которых отброшены дробные части<br>''(обратите внимание, что '''div''' и '''mod''' работают не как в обычных языках программирования)'' | <tt><nowiki>{{#expr: 30 mod 7 }}</nowiki></tt> = {{#expr: 30 mod 7 }}<br> <tt><nowiki>{{#expr: -8 mod -3 }}</nowiki></tt> = {{#expr: -8 mod -3 }}<br> <tt><nowiki>{{#expr: -8 mod +3 }}</nowiki></tt> = {{#expr: -8 mod +3 }}<br> <tt><nowiki>{{#expr: 8 mod 2.7 }}</nowiki></tt> = {{#expr: 8 mod 2.7 }}<br> <tt><nowiki>{{#expr: 8 mod 3.2 }}</nowiki></tt> = {{#expr: 8 mod 3.2 }}<br> <tt><nowiki>{{#expr: 8.9 mod 3 }}</nowiki></tt> = {{#expr: 8.9 mod 3 }}<br> |- ! <tt>+</tt> | Сложение | <tt><nowiki>{{#expr: 30 + 7 }}</nowiki></tt> = {{#expr: 30 + 7 }} |- ! <tt>-</tt> | Вычитание | <tt><nowiki>{{#expr: 30 - 7 }}</nowiki></tt> = {{#expr: 30 - 7 }} |- ! round | Округляет левый операнд до указанного числа цифр после запятой | <tt><nowiki>{{#expr: 30 / 7 round 3 }}</nowiki></tt> = {{#expr: 30 / 7 round 3 }}<br> <tt><nowiki>{{#expr: 30 / 7 round 0 }}</nowiki></tt> = {{#expr: 30 / 7 round 0 }}<br> <tt><nowiki>{{#expr: 3456 round -2 }}</nowiki></tt> = {{#expr: 3456 round -2 }}<br> |- ! = | Равенство (численное и булево сравнение) | <tt><nowiki>{{#expr: 30 = 7 }}</nowiki></tt> = {{#expr: 30 = 7 }} |- ! <> | Неравенство, эквивалент '''!=''' | <tt><nowiki>{{#expr: 30 <> 7 }}</nowiki></tt> = {{#expr: 30 <> 7 }} |- ! != | Неравенство, эквивалент '''<>''' и логического ''xor'' | <tt><nowiki>{{#expr: 1 != 0 }}</nowiki></tt> = {{#expr: 1 != 0 }} |- ! < | Меньше | <tt><nowiki>{{#expr: 30 < 7 }}</nowiki></tt> = {{#expr: 30 < 7 }} |- ! > | Больше | <tt><nowiki>{{#expr: 30 > 7 }}</nowiki></tt> = {{#expr: 30 > 7 }} |- ! <= | Меньше или равно | <tt><nowiki>{{#expr: 30 <= 7 }}</nowiki></tt> = {{#expr: 30 <= 7 }} |- ! >= | Больше или равно | <tt><nowiki>{{#expr: 30 >= 7 }}</nowiki></tt> = {{#expr: 30 >= 7 }} |- ! and | Логическое И | <tt><nowiki>{{#expr: 4 < 5 and 4 mod 2 }}</nowiki></tt> = {{#expr: 4 < 5 and 4 mod 2 }} |- ! or | Логическое ИЛИ | <tt><nowiki>{{#expr: 4 < 5 or 4 mod 2 }}</nowiki></tt> = {{#expr: 4 < 5 or 4 mod 2 }} |- ! sin | Синус | <tt><nowiki>{{#expr: sin(1.57) }}</nowiki></tt> = {{#expr: sin(1.57) }} |- ! cos | Косинус | <tt><nowiki>{{#expr: cos(1.57) }}</nowiki></tt> = {{#expr: cos(1.57) }} |- ! tan | Тангенс | <tt><nowiki>{{#expr: tan(0) }}</nowiki></tt> = {{#expr: tan(0) }} |} '''Это не все имеющиеся операторы.''' Более подробная документация по операторам функции — [[:m:Help:Calculation]]. Как всегда, лучше поставить лишние скобки, чем ломать голову с порядком вычисления. На выводе логических переменных 0 означает ложь, а 1 — истину. Например: <nowiki>{{#expr: (100 - 32) / 9 * 5 round 0 }}</nowiki> выдаёт: {{#expr: (100 - 32) / 9 * 5 round 0 }}. Произведено преобразование 100° по Фаренгейту в градусы по Цельсию с округлением до ближайшего целого числа. === #if === {{См. также|mw:Help:Extension:ParserFunctions/ru##if}} Функция <tt>#if</tt> («если») служит для создания конструкций вида if-then-else. Её синтаксис таков: <nowiki>{{</nowiki>#if: ''тестовая строка'' | ''текст, если непуста'' | ''текст, если пуста'' <nowiki>}}</nowiki> Если ''тестовая строка'' пуста или состоит только из пробелов, то возвращается ''«текст, если пуста»''; в обратном случае возвращается ''«текст, если непуста»''. Последний параметр может быть опущен — в этом случае при пустой строке будет возвращена пустая строка. Обратите внимание, что <tt>#if</tt> не поддерживает сравнение при помощи «=» и прочие математические операции. Так, <code><nowiki>{{#if: 1 = 2 | да | нет }}</nowiki></code> вернёт «{{#if: 1 = 2 | да | нет }}», так как строка <code>1 = 2</code> непуста. Для сравнения строк используйте <tt>#ifeq</tt>. Для сравнения чисел используйте <tt>#ifexpr</tt>. Содержимое после вертикальных черт воспринимается как написанное с начала строки, поэтому символы <code>*</code>, <code>#</code>, <code>:</code>, <code>;</code> и прочие на первой позиции преобразуются в соответствующие элементы вёрстки. Чтобы этого избежать, ставьте перед ними тег {{Tago|nowiki/}} или заменяйте на HTML-сущности {{amp|#42}}, {{amp|#35}}, {{amp|#58}} и {{amp|#59}} соответственно. === #ifeq === {{См. также|mw:Help:Extension:ParserFunctions/ru##ifeq}} Функция <tt>#ifeq</tt> («if equal», «если равны») сравнивает две строки, возвращая ещё одну строку в зависимости от результата сравнения. Её синтаксис таков: <nowiki>{{</nowiki>#ifeq: ''строка для сравнения 1'' | ''строка для сравнения 2'' | ''текст, если равны'' | ''текст, если не равны'' <nowiki>}}</nowiki> === #ifexist === {{См. также|mw:Help:Extension:ParserFunctions/ru##ifexist}} Функция <tt>#ifexist</tt> («if exist», «если существует») похожа по синтаксису на <tt>#if</tt>, только вместо условия проверяется существование статьи с указанным заголовком. Проверка выполняется с учётом регистра после приведения проверяемого заголовка к каноническому виду (если в начале стоит строчная буква, то она преобразуется в прописную). Например: : <tt><nowiki>{{#ifexist: User:Js | Участник есть | Участника нет }}</nowiki></tt> вернёт <tt>{{#ifexist: User:Js | Участник есть | Участника нет }}</tt>, поскольку страница [[User:Js]] существует. : <tt><nowiki>{{#ifexist: user:js | Участник есть | Участника нет }}</nowiki></tt> вернёт <tt>{{#ifexist: user:js | Участник есть | Участника нет }}</tt>, поскольку [[user:js]] при приведении к канонической форме даст [[User:Js]]. : <tt><nowiki>{{#ifexist: User:JS | Участник есть | Участника нет }}</nowiki></tt> вернёт <tt>{{#ifexist: User:JS | Участник есть | Участника нет }}</tt>, поскольку страница [[User:JS]] не существует. <nowiki>{{#ifexist}}</nowiki> не работает с относительными путями типа [[/подстраница]]. Для пространства имён «Файл» (оно же «File», «Изображение») проверяется наличие только локального файла, но не файла на [[Викисклад]]е. Для проверки наличия доступного файла также и на Викискладе, нужно использовать префикс <nowiki>«Media:»</nowiki>. Пример (файл [[:Файл:Example.png|Example.png]] загружен только на Викисклад): : <tt><nowiki>{{#ifexist: Файл:Example.png | есть | нет }}</nowiki></tt> вернёт <tt>{{#ifexist: Файл:Example.png | есть | нет }}</tt> : <tt><nowiki>{{#ifexist: Изображение:Example.png | есть | нет }}</nowiki></tt> вернёт <tt>{{#ifexist: Изображение:Example.png | есть | нет }}</tt> : <tt><nowiki>{{#ifexist: Media:Example.png | есть | нет }}</nowiki></tt> вернёт <tt>{{#ifexist: Media:Example.png | есть | нет }}</tt> Если была создана локальная страница описания файла с Викисклада, все 3 варианта вернут «есть». Также работает с параметрами шаблонов. Количество вызовов этой функции на одной странице ограничено. Если оно превышено, страница попадает в категорию {{Cl|РуСказки:Страницы со слишком большим количеством вызовов ресурсоёмких функций}}. Количество вызовов функции на странице необходимо снизить. === #ifexpr === {{См. также|mw:Help:Extension:ParserFunctions/ru##ifexpr}} <tt>#ifexpr</tt> вычисляет математическое выражение и возвращает одну из двух строк в зависимости от результата. <nowiki>{{</nowiki>#ifexpr: ''выражение'' | ''текст, если истина'' | ''текст в противном случае'' <nowiki>}}</nowiki> Математический синтаксис такой же, как у <tt>#expr</tt>. === #switch === {{См. также|mw:Help:Extension:ParserFunctions/ru##switch}} <tt>#switch</tt> сравнивает одно значение со многими, возвращая результат, если найдено совпадение. Если совпадение не найдено, то возвращается указанный в конце записи результат по умолчанию (он обязательно должен быть последним). Наличие этого результата необязательно, и в случае отсутствия его и совпадений ничего возвращено не будет. <nowiki>{{</nowiki>#switch: <span style="color: green;">''сравниваемая величина''</span> | ''значение<sub>1</sub>'' = ''результат<sub>1</sub>'' | ''значение<sub>2</sub>'' = ''результат<sub>2</sub>'' | ''...'' | ''значение<sub>n</sub>'' = ''результат<sub>n</sub>'' | <span style="color: blue;">''результат по умолчанию''</span> <nowiki>}}</nowiki> Если для нескольких значений должен быть одинаковый результат, то запись можно сократить: <nowiki>{{</nowiki>#switch: <span style="color: green;">''сравниваемая величина''</span> | ''значение<sub>1a</sub>'' | ''значение<sub>1b</sub>'' | ... | ''значение<sub>1x</sub>'' = ''результат<sub>1</sub>'' | ''значение<sub>2a</sub>'' | ''значение<sub>2b</sub>'' | ... | ''значение<sub>2y</sub>'' = ''результат<sub>2</sub>'' | ''...'' | ''значение<sub>Na</sub>'' | ''значение<sub>Nb</sub>'' | ... | ''значение<sub>Nz</sub>'' = ''результат<sub>N</sub>'' | <span style="color: blue;">''результат по умолчанию''</span> <nowiki>}}</nowiki> [[##switch|#switch]] может использоваться вместо одного или нескольких [[##ifeq|#ifeq]]: : <tt><nowiki>{{#switch: a | a = true | false }}</nowiki></tt> даёт {{#switch: a | a = true | false }} : <tt><nowiki>{{#ifeq: a | a | true | false }}</nowiki></tt> даёт {{#ifeq: a | a | true | false }} Если сравниваемая величина или значения содержит знак равенства (<tt>=</tt>), то <tt>#switch</tt> не сможет правильно сравнить её и значения. Для этого нужно обязательно в значениях (но необязательно в сравниваемой величине) использовать шаблон {{Tl|{{=}}}}, который содержит знак равенства, или код {{amp|#61}}: : <tt><nowiki>{{#switch: 1=2</nowiki></tt> : <tt><nowiki> | 1=2 = raw</nowiki></tt> : <tt><nowiki> | 1<nowiki>=</nowiki>2 = nowiki</nowiki></tt> : <tt><nowiki> | 1&#61;2 = html</nowiki></tt> : <tt><nowiki> | 1{{=}}2 = template</nowiki></tt> : <tt><nowiki> | default</nowiki></tt> : <tt><nowiki>}}</nowiki></tt> → '''{{#switch: 1=2 | 1=2 = raw | 1<nowiki>=</nowiki>2 = nowiki | 1=2 = html | 1{{=}}2 = template | default }}''' Если ''результат по умолчанию'' содержит знаки «=», перед ним можно написать <code>#default ={{Nbsp}}</code>. === #time === {{См. также|mw:Help:Extension:ParserFunctions/ru##time}} <tt>#time</tt> — функция, позволяющая выводить время и дату в заданном формате. Синтаксис: <nowiki>{{</nowiki>#time: ''формат'' <nowiki>}}</nowiki> <nowiki>{{</nowiki>#time: ''формат'' | ''время'' <nowiki>}}</nowiki> <nowiki>{{</nowiki>#time: ''формат'' | ''время'' | ''язык'' <nowiki>}}</nowiki> Параметр ''время'' принимает дату в формате <tt>гггг-мм-чч</tt>, где <tt>гггг</tt> — год, <tt>мм</tt> — номер месяца, <tt>чч</tt> — число месяца. Если параметр не задан, то используется текущее время и дата. Параметр ''язык'' принимает [[Коды языков|код языка]] по [[ISO 639]]-1. Если параметр не задан, то время и дата выводятся на русском языке. Из-за кэширования возможно различие между реальным временем и отображаемым. Для ручного обновления сохраните страницу, не делая никаких изменений, или перейдите по адресу <nowiki>http://ru.wikipedia.org/wiki/</nowiki>''Имя_страницы''?action=purge (подробнее см. [[Википедия:Кэш#Чистить/актуализировать кэш сервера]]). Параметр ''формат'' подобен используемому в [[PHP]]-функции [http://ru2.php.net/date date()]: {{очищать кэш}} {| cellpadding="6" class="standard" ! Символ ! Описание ! Пример ! Текущее значение |-------------- | d | День месяца с нулём | 04 | {{#time: d }} |-------------- | D | Краткое название дня недели | Пн | {{#time: D }} |-------------- | j | День месяца без нуля | 4 | {{#time: j }} |-------------- | l | Полное название дня недели | понедельник | {{#time: l }} |-------------- | N | Номер дня недели [[ISO 8601]] | 1 (понедельник) — 7 (воскресенье) | {{#time: N }} |-------------- | w | Номер дня недели | 0 (воскресенье) — 6 (суббота) | {{#time: w }} |-------------- | z | Номер дня года (начиная с 0) | 0—365 | {{#time: z }} |-------------- | W | Номер недели [[ISO 8601]] | | {{#time: W }} |-------------- | F | Полное название месяца в [[Именительный падеж|именительном падеже]] | январь | {{#time: F }} |-------------- | xg | Полное название месяца в [[Родительный падеж|родительном падеже]] | января | {{#time: xg }} |-------------- | m | Номер месяца с нулём | 01—12 | {{#time: m }} |-------------- | M | Краткое название месяца | сен | {{#time: M }} |-------------- | n | Номер месяца без нуля | 1—12 | {{#time: n }} |-------------- | t | Количество дней в месяце | 28—31 | {{#time: t }} |-------------- | L | Проверка, является ли год високосным | 1, если год високосный, иначе 0 | {{#time: L }} |-------------- | Y | Год с 4 цифрами | 2006 | {{#time: Y }} |-------------- | y | Год с 2 цифрами | 06 | {{#time: y }} |-------------- | a | am или pm | | {{#time: a }} |-------------- | A | AM или PM | | {{#time: A }} |-------------- | g | 12-часовой формат без 0 | 1—12 | {{#time: g }} |-------------- | G | 24-часовой формат без 0 | 0—23 | {{#time: G }} |-------------- | h | 12-часовой формат с 0 | 01—12 | {{#time: h }} |-------------- | H | 24-часовой формат c 0 | 00—23 | {{#time: H }} |-------------- | i | Минута с нулём | 00—59 | {{#time: i }} |-------------- | s | Секунда с нулём | 00—59 | {{#time: s }} |-------------- | c | [[ISO 8601]] | | {{#time: c }} |-------------- | r | [http://tools.ietf.org/html/2822 RFC 2822] | | {{#time: r }} |-------------- | U | [[UNIX-время]] | | {{#time: U }} |} Расширение PHP синтаксиса: {| cellpadding="6" class="standard" ! Символ ! Описание |-------------- | xn | Выводит следующий числовой код в ASCII число. Например, на языке [[хинди]] <tt><nowiki>{{#time: «H, xnH» }}</nowiki></tt> выведет «०६, 06». |-------------- | xr | Выводит следующий числовой код [[Римские цифры|римскими цифрами]] (только для чисел <3000). Например, <tt><nowiki>{{#time: «Y, xrY» }}</nowiki></tt> выведет {{#time: «Y, xrY» }}. |-------------- | xx | Буква «x» |} Все другие символы будут выведены без изменений. * Фраза, заключённая в двойные кавычки, будет выведена без изменений и кавычек. Незакрытые кавычки считаются символами. ** <tt><nowiki>{{#time: "Сегодня" l }}</nowiki></tt></tt> → {{#time: "Сегодня" l }} ** <tt><nowiki>{{#time: i's" }}</nowiki></tt> → {{#time: i's" }} * Наклонная черта влево работает так же, как и в PHP-функции [http://ru2.php.net/date date()]. <tt>\H</tt> выводит <tt>H</tt>, <tt>\<nowiki>"</nowiki></tt> выводит <tt><nowiki>"</nowiki></tt>{{прояснить}}. Формат параметра ''время'' идентичен используемому в PHP-функции [http://ru2.php.net/strtotime strtotime()]. Это могут быть абсолютные и относительные даты, например «December 11»<ref group=t>Русские даты типа «11 декабря» на данный момент не работают, если очень нужно их обработать, попробуйте шаблон {{Tl|Date Converter}}.</ref> и/или «+10 hours», что может использоваться для перевода временных зон. Если вам нужно перевести в дату метку времени UNIX, поставьте перед ней <tt>@</tt>. * <tt><nowiki>{{#time: j xg Y | -14 days }}</nowiki></tt> → {{#time: j xg Y | -14 days }} ''(14 дней назад)'' * <tt><nowiki>{{#time: H:i | +4 hours }}</nowiki></tt> → {{#time: H:i | +4 hours }} ''(UTC+4)'' * <tt><nowiki>{{#time: H:i | 8:15 +6 hours }}</nowiki></tt> → {{#time: H:i | 8:15 +6 hours }} * <tt><nowiki>{{#time: r | @1483057398 }}</nowiki></tt> → {{#time: r | @1483057398 }} Число римскими цифрами * <tt><nowiki>{{#time: xrU | 1970-1-1 + 61 second}}</nowiki></tt> → {{#time: xrU | 1970-1-1 + 61 second}} * <tt><nowiki>{{#time: xrU | @62}}</nowiki></tt> → {{#time: xrU | @62}} ==== Примечания ==== <div style="padding-left:1em;"><references group=t/></div> === #rel2abs === {{См. также|mw:Help:Extension:ParserFunctions/ru##rel2abs}} Функция <tt>#rel2abs</tt> преобразует относительный путь ссылки в абсолютный. <nowiki>{{</nowiki>#rel2abs: ''путь'' <nowiki>}}</nowiki> <nowiki>{{</nowiki>#rel2abs: ''путь'' | ''базовый путь'' <nowiki>}}</nowiki> Под относительным путём принимается такой, который начинается с символов <code>/</code>, <code>./</code> или <code>../</code>, а также пути <code>..</code> и <code>.</code> * <code>.</code> — текущий уровень * <code>..</code> — «перейти вверх на один уровень» * <code>/foo</code> — «перейти вниз на один уровень в поддиректорию „foo“» Если ''базовый путь'' не указан, будет использован текущий. * <code><nowiki>{{#rel2abs: ../baz | Обсуждение:Foo/bar }}</nowiki></code> → {{#rel2abs: ../baz | Обсуждение:Foo/bar }} * Если, находясь на странице «<nowiki>Обсуждение:Foo/bar</nowiki>», вызвать <code><nowiki>{{#rel2abs: ../baz }}</nowiki></code>, результат будет «{{#rel2abs: ../baz | Обсуждение:Foo/bar }}». * Если, находясь на странице «<nowiki>Обсуждение:Foo</nowiki>», вызвать <code><nowiki>{{#rel2abs: ../baz }}</nowiki></code>, результат будет «{{#rel2abs: ../baz | Обсуждение:Foo }}». * Если, находясь на странице «<nowiki>Обсуждение:Foo</nowiki>», вызвать <code><nowiki>{{#rel2abs: ../../baz }}</nowiki></code>, результат будет «{{#rel2abs: ../../baz | Обсуждение:Foo }}». Чтобы не проверять, существует ли искомый путь, можно использовать эту функцию в комбинации с <code>#ifexist</code>: : <code><nowiki>{{#ifexist: {{#rel2abs: .. }} | «..» существует | «..» не существует }}</nowiki></code> Если путь, передаваемый функции в качестве параметра, не идентифицирован как относительный путь, функция вернёт в качестве результата его. Например: : <code><nowiki>{{#rel2abs: Help:Help }}</nowiki></code> возвращает «{{#rel2abs: Help:Help }}». === #titleparts === {{См. также|mw:Help:Extension:ParserFunctions/ru##titleparts}} Функция <tt>#titleparts</tt> возвращает подстроку до нужного слэша. Основной целью является возможность получения страниц всех уровней, для которых данная является подстраницей. <nowiki>{{</nowiki>#titleparts: ''название страницы'' | ''количество сегментов'' | ''начиная с (по умолчанию 1)'' <nowiki>}}</nowiki> В случае, когда ''количество сегментов'' равно нулю, больше количества уровней статьи или его невозможно преобразовать в число, возвращается ''название страницы'' целиком (или с сегмента ''начиная с'' до конца, если он указан). '''Внимание:''' всегда, когда возвращается первый сегмент строки, он начинается с Заглавной буквы. : <code><nowiki>{{#titleparts:</nowiki> <span style="color: blue;">{{ns:1}}:Foo/bar/baz/quok</span> <nowiki>}}</nowiki></code> → '''{{#titleparts: {{ns:1}}:Foo/bar/baz/quok }}''' : <code><nowiki>{{#titleparts:</nowiki> <span style="color: blue;">{{ns:1}}:Foo</span>/bar/baz/quok <nowiki>| 1 }}</nowiki></code> → '''{{#titleparts: {{ns:1}}:Foo/bar/baz/quok | 1 }}''' {{Nbsp}}<small>См. также {{Mwmw|ROOTPAGENAME}}.</small> : <code><nowiki>{{#titleparts:</nowiki> <span style="color: blue;">{{ns:1}}:Foo/bar</span>/baz/quok <nowiki>| 2 }}</nowiki></code> → '''{{#titleparts: {{ns:1}}:Foo/bar/baz/quok | 2 }}''' : <code><nowiki>{{#titleparts:</nowiki> {{ns:1}}:Foo/<span style="color: blue;">bar/baz</span>/quok <nowiki>| 2 | 2 }}</nowiki></code> → '''{{#titleparts: {{ns:1}}:Foo/bar/baz/quok | 2 | 2 }}''' : <code><nowiki>{{#titleparts:</nowiki> {{ns:1}}:Foo/<span style="color: blue;">bar/baz/quok</span> <nowiki>| | 2 }}</nowiki></code> → '''{{#titleparts: {{ns:1}}:Foo/bar/baz/quok | | 2 }}''' Можно указывать отрицательные значения параметров: для ''количества сегментов'' это обозначает исключение из результата ''количества сегментов'' последних частей (всех, если больше их количества), для ''начиная с'' обозначает начало вывода с −''начиная с'' сегмента справа. : <code><nowiki>{{#titleparts:</nowiki> <span style="color: blue;">{{ns:1}}:Foo/bar/baz</span>/quok <nowiki>| -1 }}</nowiki></code> → '''{{#titleparts: {{ns:1}}:Foo/bar/baz/quok | -1 }}''' {{Nbsp}}<small>Опускает один сегмент с конца строки. См. также {{Mwmw|BASEPAGENAME}}.</small> : <code><nowiki>{{#titleparts:</nowiki> {{ns:1}}:Foo/bar/baz/quok <nowiki>| -4 }}</nowiki></code> → '''{{#titleparts: {{ns:1}}:Foo/bar/baz/quok | -4 }} ''' <small>Опускает все 4 сегмента с конца строки.</small> : <code><nowiki>{{#titleparts:</nowiki> {{ns:1}}:Foo/bar/baz/quok <nowiki>| -5 }}</nowiki></code> → '''{{#titleparts: {{ns:1}}:Foo/bar/baz/quok | -5 }} ''' <small>Опускает 5 сегментов с конца строки (больше, чем существует).</small> : <code><nowiki>{{#titleparts:</nowiki> {{ns:1}}:Foo/bar/baz/<span style="color: blue;">quok</span> <nowiki>| | -1 }}</nowiki></code> → ''' {{#titleparts: {{ns:1}}:Foo/bar/baz/quok | | -1 }}''' {{Nbsp}}<small>Возвращает последний сегмент. См. также {{Mwmw|SUBPAGENAME}}.</small> : <code><nowiki>{{#titleparts:</nowiki> {{ns:1}}:Foo/<span style="color: blue;">bar/baz</span>/quok <nowiki>| -1 | 2 }}</nowiki></code> → ''' {{#titleparts: {{ns:1}}:Foo/bar/baz/quok | -1 | 2 }}''' {{Nbsp}}<small>Опускает последний сегмент с конца строки и возвращает второй сегмент и следующий.</small> : <code><nowiki>{{#titleparts:</nowiki> {{ns:1}}:Foo/bar/<span style="color: blue;">baz</span>/quok <nowiki>| -1 | -2 }}</nowiki></code> → ''' {{#titleparts: {{ns:1}}:Foo/bar/baz/quok | -1 | -2 }}''' {{Nbsp}}<small>Начинает копирование с второго сегмента с конца строки и опускает один сегмент с конца строки.</small> ---- * Если, находясь на странице «Участник: Foo/bar», вызвать <code><nowiki>{{#titleparts: {{FULLPAGENAME}} | 1 }}</nowiki></code>, результат будет «{{#titleparts: {{FULLPAGENAME:Участник: Foo/bar}} | 1 }}». * Если, находясь на странице «Участник: Foo/bar», вызвать <code><nowiki>{{#titleparts: {{PAGENAME}} | 1 }}</nowiki></code>, результат будет «{{#titleparts: {{PAGENAME:Участник: Foo/bar}} | 1 }}». Строки более 255 символов всегда возвращаются как переданы. === #iferror === {{См. также|mw:Help:Extension:ParserFunctions/ru##iferror}} <nowiki>{{</nowiki>#iferror: ''выражение'' | ''ошибка'' | ''удачно'' <nowiki>}}</nowiki> Возвращает ''ошибку'', если ''выражение'' содержит строку <tt><nowiki><strong class="error"></nowiki></tt>, которая генерируется функциями <tt>#expr</tt>, <tt>#ifexpr</tt>, <tt>#time</tt>, <tt>#rel2abs</tt> и в некоторых других ситуациях в MediaWiki (такими как глубокая рекурсия). Это самый удобный способ отлавливать неправильный ввод, который должен быть передан некоторым другим функциям парсера. Например: * <tt><nowiki>{{#iferror: {{#expr: 1+1 }} | неверный ввод | правильное выражение }}</nowiki></tt> → <tt>{{#iferror: {{#expr: 1+1 }} | неверный ввод | правильное выражение }}</tt> * <tt><nowiki>{{#iferror: {{#expr: 1+Z }} | неверный ввод | правильное выражение }}</nowiki></tt> → <tt>{{#iferror: {{#expr: 1+Z }} | неверный ввод | правильное выражение }}</tt> Последние два параметра необязательны. Если параметр ''удачно'' опущен, тогда в случае удачи будет возвращено ''выражение''. Если параметр ''ошибка'' также опущен, тогда в случае ошибки не будет выведено ничего, а в случае удачного выполнения будет возвращено ''выражение''. * <tt><nowiki>{{#iferror: {{#expr: 1+1 }} | неверный ввод}}</nowiki></tt> → <tt>{{#iferror: {{#expr: 1+1 }} | неверный ввод }}</tt> * <tt><nowiki>{{#iferror: {{#expr: 1+Z }} | неверный ввод}}</nowiki></tt> → <tt>{{#iferror: {{#expr: 1+Z }} | неверный ввод }}</tt> * <tt><nowiki>{{#iferror: {{#expr: 1+1 }} }}</nowiki></tt> → <tt>{{#iferror: {{#expr: 1+1 }} }}</tt> * <tt><nowiki>{{#iferror: {{#expr: 1+Z }} }}</nowiki></tt> → <tt>{{#iferror: {{#expr: 1+Z }} }}</tt> Таким образом: * <tt><nowiki>{{#iferror:</nowiki> ''викитекст'' | ''альтернатива'' }}</tt> значит «вывести ''викитекст'', если он верный, иначе ''альтернативу''». * <tt><nowiki>{{#iferror:</nowiki> ''викитекст'' }}</tt> значит «вывести ''викитекст'', если он верный». : ''Примечание: эта функциональность замещает баг в старом препроцессоре, позволявший использовать #switch для отлова ошибок в выражениях.'' См. также: [[rev:29774|r29774]], [[rev:29775|r29775]], [[rev:29877|r29877]]. === #lst === {{Основная статья|:en:Help:Labeled section transclusion}} Если вы хотите включить часть страницы <tt>pagename</tt> в другую, то механизм включения отдельных секций позволяет более гибко включать содержимое одних страниц в другие, чем полное включение страниц при помощи <tt><nowiki>{{:pagename}}</nowiki></tt> и {{Xtag|noinclude}}. На странице, содержимое которой планируется включить в другую, начало секции помечается {{Xtag|section|single|params=begin=''label''}}, а конец секции помечается {{Xtag|section|single|params=end=''label''}}. На странице, куда включается секция ставится <tt><nowiki>{{#lst:pagename|label}}</nowiki></tt>. Данный механизм позволяет отметить на включаемой странице несколько секций, причём они могут перекрываться. <!--== Установка == Скачайте указанные ниже файлы и установите их в новую директорию ''ParserFunctions'' в [[m:Mediawiki extensions|директории расширений MediaWiki]]. * [http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ParserFunctions/Expr.php Expr.php] * [http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ParserFunctions/ParserFunctions.php ParserFunctions.php] * [http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ParserFunctions/ParserFunctions.i18n.php ParserFunctions.i18n.php] * [http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ParserFunctions/ParserFunctions.i18n.magic.php ParserFunctions.i18n.magic.php] * [http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ParserFunctions/SprintfDateCompat.php SprintfDateCompat.php] Если не установлен PHP5, то используйте следующие файлы: * [http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/ParserFunctions/Expr.php?revision=16633 Expr.php] * [http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/ParserFunctions/ParserFunctions.php?revision=16633 ParserFunctions.php] Затем добавьте в конец файла [[m:LocalSettings.php|LocalSettings.php]] строку require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" ); Если не работает или работает с ошибками, то исправьте на: require_once( 'extensions/ParserFunctions/ParserFunctions.php' );-->
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «Народные Сказки» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
РуСказки:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Отобразить/Скрыть ограниченную ширину содержимого