Токен не получает данные в массиве $data

Главные вкладки

Аватар пользователя postgres postgres 23 ноября 2015 в 13:28

Имеется свой кастомный токен

function location_token_info() {
  $subscriber['nearest'] = array(
    'name' => t('Corresponding fukcen shit from counter module'),
    'description' => t('Corresponding fukcen shit from counter module.'),
    'type' => 'user',  
     
  );
 
  return array(
    'tokens' => array(
      //'current-user' => $subscriber,
      'current-user' => $subscriber,
      ),
  );
}

function location_tokens($type, $tokens, array $data = array(), array $options = array()) {
  $replacements = array();
   if ($type == 'current-user') {
        foreach ($tokens as $name => $original) {
            switch($name){
                case 'nearest':
                    $user = user_load($data['user']->uid);
                    $replacements[$original] = $user->field_warehouse['und']['0']['tid'];
                    break;
            }
        }
   }
  return $replacements;
}

В хуке токенс проверяю $type == 'current-user' - именно такой тип токенов есть в распоряжении модуля simplenews и именно там я собираюсь использовать свой токен.
В итоге я захожу в switch case 'nearest': но ожидаемых данных в массиве $data нет. нет ни $data['user'] ни $data['current-user'], есть только $data['node'] и $data['category']
Спрашивается зачем тогда указывать 'type' => 'user', в location_token_info()? Ядро не отслеживает типы данных, которые нужны токену?
Или что то другое надо указывать в type?

Комментарии