? stormproject_token_support.patch Index: stormproject/stormproject.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/storm/stormproject/stormproject.module,v retrieving revision 1.8.4.64 diff -u -p -r1.8.4.64 stormproject.module --- stormproject/stormproject.module 11 Oct 2010 15:40:14 -0000 1.8.4.64 +++ stormproject/stormproject.module 27 Dec 2010 13:50:42 -0000 @@ -810,3 +810,78 @@ function stormproject_storminvoice_auto_ return $invoice_nid; } + +/** +* Implementation of hook_token_list(). +*/ + +function stormproject_token_list($type='all') { + $tokens = array(); + if (($type == 'node') || ($type == 'all')) { + //Project + $tokens['node']['stormproject-projectstatus'] = t('Project Status for Storm Project Module.'); + //Project Manager + $tokens['node']['stormproject-manager-title'] = t('Project Manager Title for Storm Project Module.'); + $tokens['node']['stormproject-manager-uid'] = t('Project Manager User ID for Storm Project Module.'); + $tokens['node']['stormproject-manager-name'] = t('Project Manager Name for Storm Project Module.'); + $tokens['node']['stormproject-manager-fullname'] = t('Project Manager Full Name for Storm Project Module.'); + $tokens['node']['stormproject-manager-email'] = t('Project Manager E-mail for Storm Project Module.'); + //Assignee(s) + $tokens['node']['stormproject-assigned-to-email'] = t('Project Assignee(s) E-mail(s) for Storm Project Module.'); + $tokens['node']['stormproject-assigned-title'] = t('Project Manager Title for Storm Project Module.'); + } + return $tokens; +} + +/** +* Implementation of hook_token_values(). +*/ +function stormproject_token_values ($type, $object = NULL) { + $values = array(); + $node = $object; + if ((($type == 'node') || ($type == 'all')) && ($node->type === 'stormproject')) { + //Project + $values['stormproject-manager-projectstatus'] = $node->projectstatus; + //Project Manager + if($node->manager_nid) { + $manager = node_load($node->manager_nid); + $manager_user = user_load($manager->user_uid); + $values['stormproject-manager-uid'] = $manager->user_uid; + $values['stormproject-manager-name'] = $manager->title; + $values['stormproject-manager-fullname'] = $manager->fullname; + //grab e-mail from Drupal user account + $values['stormproject-manager-email'] = $manager_user->email; + $values['stormproject-manager-title'] = $node->manager_title; + } + else { + $values['stormproject-manager-email'] = NULL; + } + //Project Assignee(s) e-mail + if($node->assigned_nid) { + $values['stormproject-assigned-title'] = $node->manager_title; + $assignees_node = node_load($node->assigned_nid); + //Assigned to one person + if($assignees_node->type === 'stormperson') { + $assigned = user_load($assignees_node->user_uid); + $values['stormproject-assigned-to-email'] = $assigned->mail; + } + //assigned to a team + else { + $assignees_array = $assignees_node->members_array; + $assignees = array(); + foreach($assignees_array as $nid => $name) { + $assignee = node_load($nid); + $assignee_user = user_load($assignee->user_uid); + $assignees[] = $assignee_user->mail; + } + $assigned = implode(", ", $assignees); + //return comma separated list of e-mails + $values['stormproject-assigned-to-email'] = $assigned; + } + } + else { + $values['stormproject-assigned-to-email'] = NULL; + } + } + return $values; +}