Частенько виникає завдання додати функцію в Smarty в якості обробника.
Наприклад так, щоб в шаблоні можна було обробити якісь дані. Такий функцією напевно користувався розробник сайту Вебекс. для того, щоб організувати якісний висновок даних.
Для цього в Smarty є спеціальна фішка: реєстрація функцій.
В принципі все дуже просто.
Додати функцію в Smarty
У PHP файлі, в якому створюється об'єкт класу Smarty додається рядок коду (додати функцію в Smarty):
Де, function_name_to_call_in_smarty - назва функції, яке ви будете викликати в Smarty, а your_function_name - реальне назва функції на PHP, яке буде викликатися.
Звичайно, назви функцій в Smarty і PHP можуть бути однаковими.
Потім десь в області видимості Smarty (поруч з рядком реєстрації функції, або в окремому файлі php, який інклюд) потрібно задекларувати і описати фукнции your_function_name.
Все, функція готова, і додана в Smarty.
Тепер подивимося, як викликати цю функцію в Smarty:
Результатом цього рядка коду в шаблоні Smarty буде:
Hello HTMLER.ru! Nice to meet you!
Як бачите додати функцію в Smarty не складно. А викликати її ще простіше. Потрібно просто прописати назву функції, яку ви попередньо зареєстрували, і набір параметрів, які потрібно передати. Таких параметрів може бути скільки завгодно.
Крім того, якщо додати функцію в Smarty, то в неї можна передавати не тільки рядки (як в прикладі раніше), а й змінні, які виводяться в шаблоні, наприклад:
Де, $ elem_name - це проассігненая змінна в шаблоні Smarty (яку можна вивести конструкцією), але замість цього її передали в функцію.