Создание своего Token`а

Опубликовано 2014.08.01

Расширить стандартный набор токенов очень просто. Это необходимо, если вам нужно как-то необычно формировать алиас материала. Для начала создайте модуль. Для начала в нём необходимо объявить hook_token_info. Он будет возвращать названия токенов, их описания и машинное имя токена.
  1. function my_module_token_info() {
  2. $info['tokens']['node']['my_new_token'] = array(
  3. 'name' => t('My node token'),
  4. 'description' => t('New custome node token'),
  5. );
  6. return $info;
  7. }
Я объявил новый токен, с машинным именем my_new_token. Он будет находиться в разделе ноды и ему будет доступен объект ноды. Далее воспользуйтесь хуком hook_tokens, для того чтобы токен с именем my_new_token превратился в алиас материала.
  1. function my_module_tokens($type, $tokens, array $data = array(), array $options = array()) {
  2. $replacements = array();
  3. if ($type == 'node') {
  4. $node = $data['node'];
  5. foreach ($tokens as $name => $original) {
  6. if ($name == 'my_new_token') {
  7. // Тут можно брать любые данные из объекта ноды.
  8. // Или вообще подгружать данные откуда угодно.
  9. $replacements[$original] = 'замена токена на алиас';
  10. }
  11. }
  12. }
  13. return $replacements;
  14. }
После этого в настройках автоматических адресов будет доступен ваш новый токен.