Робота з токенами

Трохи про токенах

Тут буде описано кілька варіантів роботи з токенами. Токени надає третій за популярністю модуль Token. Токени - це спеціальні слова обрамлені квадратними дужками ( "[", "]"), які в деяких випадках можуть замінюватися на смислові значення. Наприклад, якщо встановити четвертий за популярністю модуль pathauto. то в адмінки "Home» Administration »Configuration» Search and metadata »URL aliases" (admin / config / search / path / patterns) можна буде використовувати маркери для генерації человекочітабельних шляхів (алиасов) до сторінок:

Робота з токенами

Щоб отримати список токенов достатньо клікнути на посилання Browse available tokens (Показати список доступних токенов), після чого відкриється спливаюче вікно.

Робота з токенами

Для того, щоб використовувати в якості шляху заголовок сторінки досить вставити токен [node: title] в поле відповідне шляху шаблоном шляху для вашого типу матеріалу.

Створення своїх токенов

Припустимо існуючі маркери, за будь-якої причини, не підходять і потрібно створити свій токен. Для цього необхідно створити свій модуль і реалізувати два хука:

  • hook_token_info - описує список доступних токенов
  • hook_tokens - замінює токен на дані в момент використання

Щоб програмно знайти і замінити токени на дані в тексті, досить використовувати функцію token_replace ($ text). де $ text - це будь-який текст в якому можуть бути токени (так само доступні більш складні варіанти використання цієї функції. Див. в документації).

Отже, у нас вже є модуль example. тепер потрібно реалізувати хукі. Щоб було зрозуміло, що до чого відноситься, придумаємо легенду. Припустимо:

У нас є сайт, який продає будь-якої функціонал зі свого сайту, а в якості продуктів використовує ролі. Якщо користувач купив продукт, то йому призначається роль. На сайті є сторінка, з картками продуктів, де користувачі повинні бачити посилання на покупку продукту, якщо у нього немає ролі пов'язаної з цим продуктом. Інакше, він повинен бачити слово "Придбано", яке означає, що цей продукт вже куплений.

Реалізація hook_token_info

Цей хук "повідомляє" Друпалу, про новий токені, який він може використовувати. Ми назвемо його check-product. Додаємо код в файл example.module:

Схожі статті