5 * Token module integration.
9 * Implements hook_token_info().
11 function cas_token_info() {
12 $types['cas'] = array(
13 'name' => t('CAS user'),
14 'description' => t('Tokens related to a CAS user.'),
15 'needs-data' => 'cas',
20 'description' => t('The CAS username.'),
25 'tokens' => array('cas' => $cas),
30 * Implements hook_token_info_alter().
32 function cas_token_info_alter(&$data) {
33 $data['tokens']['user']['cas'] = array(
35 'description' => t("The account's primary CAS username."),
41 * Implements hook_tokens().
43 function cas_tokens($type, $tokens, array $data = array(), array $options = array()) {
44 $sanitize = !empty($options['sanitize']);
45 $replacements = array();
47 if ($type == 'cas' && !empty($data['cas'])) {
49 foreach ($tokens as $name => $original) {
52 $replacements[$original] = $sanitize ? check_plain($cas) : $cas;
58 if ($type == 'user' && !empty($data['user'])) {
59 $account = $data['user'];
60 foreach ($tokens as $name => $original) {
63 // Provide [user:cas] token.
64 if (!empty($account->cas_name)) {
65 $replacements[$original] = $sanitize ? check_plain($account->cas_name) : $account->cas_name;
71 // Provide [user:cas:?] dynamic tokens.
72 if ($cas_tokens = token_find_with_prefix($tokens, 'cas')) {
73 $replacements += token_generate('cas', $cas_tokens, array('cas' => $account->cas_name), $options);