Ukr:Довідка:ParserFunctions

Розширення ParserFunctions додає ще більше функцій парсера до магічних слів, розпізнаваних рушієм вікі. Типовий синтаксис функцій парсера такий: }

#expr
Функція #expr (від англ. expression, тобто вираз) обчислює певний математичний вираз. Звернутися до неї можна так:. Вираз для обчислення задається відповідним параметром, результат обчислення підставляється замість цього виклика функції. Якщо обчислення неможливе математично, результатом буде повідомлення про помилку. Булеві функції розглядають нуль як хибу і будь-яке інше число як істину. Порожній вираз повертає порожню відповідь.

#if
Функція обчислює текстове поле і перевіряє, чи воно вийшло порожнім. Якщо це так, повертається одне значення; в іншому разі – інше значення. Ці значення теж задаються як аргументи. Пропуск вважається порожнім значенням. Текстові параметри розглядаються як звичайни текст. Повний синтаксис функції такий:

#ifeq
Ця функція (від англ. if equal) обчислює два текстові значення й перевіряє, чи вони однакові. Повний синтаксис її такий:

Не записуй теги HTML в текстові поля string, string2 (теги парсера заміняться і не збігатимуться один із одним). Числова відповідь і символьна відповідь розрізняються; числа порівнюються як числа (01 те ж саме, що 1), а текстові значення містяться в лапках, розрізняють великі й малі літери і порівнюються як текст, тож 01 і 1 будуть різними значеннями. Всі числа при порівняння перетворюютсяь на цілі, тому дозволений інтервал – не більше 9E18 за абсолютною величиною.

#iferror
Інші функції, зокрема й #expr, повертають повідомлення про помилку, якщо щось йде не так. Ця функція перевіряє, чи функція всередині її повернула повідомлення про помилку. Повний синтаксис такий:

Параметри її (після вертикальної риски) необов'язкові, їх можна не писати разом із рисками. Якщо залишити тільки один, він буде першим і відобразиться в разі помилки, а за її відсутності буде відображено результат обчислення виразу. Якщо не вказати жодного, замість повідомлення про помилку буде не відображено нічого.

#ifexpr
Ця функція (англ. if expression [істинне/хибне]) обчислює вираз і потім повретає один із двох параметрів. Повний синтаксис такий:

Вираз розбирається так само, як у #expr, і порожній текстовий результат або числовий результат 0 відповідають хибі. Все інше відповідає істині. Другий параметр можна не писати, тоді при обчисленні хиби не відобразиться нічого. Перший параметр 'якщо істинний' теж можна не писати, але вертикальна риска після 'вираз'у має бути присутня.

#ifexist
Ця витратна для обчислення функція розглядає параметр як назву сторінки вікі і повертає одне з двох значень в залежності від того, чи така сторінка існує. Повний синтаксис такий:

Є обмеження на виклик цієї функції у 100 викликів.

#rel2abs
Ця функція перетворює відносний шлях до файлу на абсолютний. Назва походить від англ. "relative to absolute". Перший параметр – це шлях, а другий – базовий шлях (необов'язковий; якщо не вказаний, буде використано повна назва поточної сторінки. Параметр шляху розпізнає такі особливі символи:


 * – поточний рівень
 * – на один рівень вище від поточного
 * – на 1 рівень глибше від поточного в директорії x

#switch
Ця функція виконує порівняння з кількома константами і виводить своє для кожного випадку текстове значення. Приміром, розглянемо приклад трьох різних варіантів у програмі Скретч: надати [порівнюване v] значення [привіт] надати [результат v] значення [] якщо <(порівнюване) = [привіт]> то //випадок1 надати [результат v] значення [вітаю!] інакше якщо <(порівнюване) = [бувай]> то //випадок2 надати [результат v] значення [до зустрічі!] інакше надати [результат v] значення [чудово!] //всі інші випадки end end В даному прикладі відповіддю буде "вітаю!".

#time
Ця функція відображує зазначену дату в указаному форматі.

В таблиці нижче наведено кілька найпоширеніших кодів формату. Уважно, там розрізняються великі й малі літери.

Всередину коду можна також вміщувати текстові фрагменти.

#timel
Це фактично те саме, що й #time, але використовує як поточний той час, що його визначено в налаштуванні рушія.

#titleparts
Ця функція розбиває назву сторінки на частини по косих рисках, на підсторінки. Вона здатна приймати три агрументи: назва сторінки, (можливо) кількість сегментів, (можливо) номер першого сегменту. При невказаній кількості сегментів (значення 0) повертаються усі. Номер першого сегменту за замовчуванням дорівнює 1.

Текстові функції
Ці функції змінюють текстові дані чи надають інформацію про них. Правильно працюють, зокрема, з кодуванням UTF-8.

#len
Повертає довжину тексту в символах.

#pos
Повертає позицію фрагменту в тексті. Позиції пронумеровано починаючи з 0.

В тексті "скирта", починаючи з позиції "початок", шукається "голка" і повертається позиція першої знайденої.

#rpos
Те саме, що й #pos, але повертає позицію останнього входження й не використовує зсув ("початок").

#sub
Повертає фрагмент тексту за вказаним інтервалом позицій.

#replace
Замінює один текстовий фрагмент іншим, якщо треба, кілька разів.

#explode
Розбиває текст на фрагменти і повертає один із фргаментів.

Вихідний "текст" розбивається на фрагменти, розділені "розділювач"ем; "позиція" обирає номер фрагменту (починаючи з 0).

#urldecode
Перетворює закодовані символи з URL на текст, придатний для прочитання.

Приклад: відобразиться як:

Дивись також

 * Help:StringFunctions
 * Довідка:Магічні слова