? stormproject_token_support.2.patch
? stormproject_token_support.patch
Index: stormperson/stormperson.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/storm/stormperson/stormperson.module,v
retrieving revision 1.7.4.31
diff -u -p -r1.7.4.31 stormperson.module
--- stormperson/stormperson.module	9 Sep 2010 22:16:37 -0000	1.7.4.31
+++ stormperson/stormperson.module	28 Dec 2010 02:43:43 -0000
@@ -538,3 +538,16 @@ function stormperson_views_api() {
     'path' => drupal_get_path('module', 'stormperson'),
   );
 }
+
+function stormperson_primary_email($node) {
+  if($node->type !== 'stormperson') {
+    return NULL;
+  }
+  if($node->user_uid){
+    $stormperson_person = user_load($node->user_uid);
+    return $stormperson_person->mail;
+  }
+  elseif($node->email) {
+    return $node->email;
+  }
+}
\ No newline at end of file
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	28 Dec 2010 02:43:44 -0000
@@ -810,3 +810,74 @@ 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('Storm Project: Project Status.');
+    //Project Manager
+    $tokens['node']['stormproject-manager-title'] = t('Storm Project: Project Manager Title.');
+    $tokens['node']['stormproject-manager-uid'] = t('Storm Project: Project Manager User ID.');
+    $tokens['node']['stormproject-manager-name'] = t('Storm Project: Project Manager Name.');
+    $tokens['node']['stormproject-manager-fullname'] = t('Storm Project: Project Manager Full Name.');
+    $tokens['node']['stormproject-manager-email'] = t('Storm Project: Project Manager Email Address.');
+    //Assignee(s)
+    $tokens['node']['stormproject-assigned-to-email'] = t('Storm Project: Project Assignee(s) Email Address(s).');
+    $tokens['node']['stormproject-assigned-title'] = t('Storm Project: Project Assignee(s) Title(s).');
+  }
+  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);
+      $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'] = stormperson_primary_email($manager);
+      $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') {
+        $values['stormproject-assigned-to-email'] = stormperson_primary_email($assignees_node);
+      }
+      //assigned to a team
+      else {
+        $assignees_array = $assignees_node->members_array;
+        $assignees = array();
+        foreach($assignees_array as $nid => $name) {
+          $assignee = node_load($nid);
+          $assignees[] = stormperson_primary_email($assignee);
+        }
+        $assigned = implode(", ", $assignees);
+        //return comma separated list of emails
+        $values['stormproject-assigned-to-email'] = $assigned;
+      }
+    }
+    else {
+      $values['stormproject-assigned-to-email'] = NULL;
+    }
+  }
+  return $values;
+}
\ No newline at end of file
