Index: stormmail.info =================================================================== --- stormmail.info (revision 1) +++ stormmail.info (working copy) @@ -1,6 +1,6 @@ -; $Id: storm.info,v 1.3.4.2 2009/07/29 22:42:24 magnity Exp $ -name = Storm mail -description = "Send mails for \"assigned to\" person." +; $Id$ +name = Storm Mail +description = "Sends mail to assigned person or team" dependencies[] = storm dependencies[] = stormproject dependencies[] = stormtask @@ -8,3 +8,6 @@ dependencies[] = stormperson core = 6.x package = Storm + + + Index: stormmail.module =================================================================== --- stormmail.module (revision 1) +++ stormmail.module (working copy) @@ -1,86 +1,117 @@ type == "stormproject") { - stormmail_all($node, "project", "up"); - } - if($node->type == "stormtask") { - stormmail_all($node, "task", "up"); - } - if($node->type == "stormticket") { - stormmail_all($node, "tikcet", "up"); - } - break; - case 'insert': - if($node->type == "stormproject") { - stormmail_all($node, "project", "ins"); - } - if($node->type == "stormtask") { - stormmail_all($node, "task", "ins"); - } - if($node->type == "stormticket") { - stormmail_all($node, "ticket", "ins"); - } - break; - } +function stormmail_nodeapi(&$node, $op, $teaser, $page) { + switch ($op) { +case 'update': + if ($node->type == "stormproject") { + stormmail_all($node, "project", "up"); + } + if ($node->type == "stormtask") { + stormmail_all($node, "task", "up"); + } + if ($node->type == "stormticket") { + stormmail_all($node, "ticket", "up"); + } + break; + case 'insert': + if ($node->type == "stormproject") { + stormmail_all($node, "project", "ins"); + } + if ($node->type == "stormtask") { + stormmail_all($node, "task", "ins"); + } + if ($node->type == "stormticket") { + stormmail_all($node, "ticket", "ins"); + } + break; + } } /* * I prepare the data necessary for shipment of the mail */ -function stormmail_all($node, $type, $oper){ - $result = db_query("SELECT * FROM {%s} WHERE nid = %d ", $node->type, $node->nid); - if ($data = db_fetch_object($result)) { - $assign = $data->assigned_nid; - } - $result = db_query("SELECT * FROM {stormperson} WHERE nid = %d ", $assign); - if ($data = db_fetch_object($result)) { - $emailTo = $data->email; - $name = $data->fullname; - } - - //Check if pathauto module exists and it's enabled - $exist_alias = db_result(db_query("SELECT dst FROM {url_alias} WHERE src = '%s' ", 'node/'.$node->nid)); - if($exist_alias) { - $result = db_query("SELECT * FROM {url_alias} WHERE src = '%s' ", 'node/'.$node->nid); - if ($data = db_fetch_object($result)) { - $url = $data->dst; - } - } - else $url = 'node/'.$node->nid; - - //I obtain URL of the corresponding page to the rows unloaded - global $base_url; - $url_down = $base_url.'/'.$url; - - $result = db_query("SELECT * FROM {node} WHERE nid = %d", $node->nid); - if ($data = db_fetch_object($result)) { - $titolo = $data->title; - } - - //It passes the parameters to the mail - $params = array( - 'name' => $name, - 'url' => $url_down, - 'titolo' => $titolo, - 'type' => $type - ); + function stormmail_all($node, $type, $oper) { +//Grab the ticket +$result = db_query("SELECT * FROM {%s} WHERE nid = %d ", $node->type, $node->nid); +if ($data = db_fetch_object($result)) { +$assign = $data->assigned_nid; +//Check who has been assigned to it +$sql = db_query("SELECT * FROM {node} WHERE nid = %d ", $assign); +$type= db_fetch_object($sql); - //shipment mail all' awardee of the task - if($node->send_mail == 'yes' && $emailTo != '' && $oper == "up") { - drupal_mail('stormmail', 'assigned_to_update', $emailTo, language_default(), $params); - } - if($node->send_mail == 'yes' && $emailTo != '' && $oper == "ins") { - drupal_mail('stormmail', 'assigned_to', $emailTo, language_default(), $params); - } + if ($type->type == 'stormteam') { +//getTicket Type +$type= $type->type; +//get Team name +$name = $type->title; +//get members +$result = db_query("SELECT * FROM {stormteam} WHERE nid = %d ", $assign); +$teammembers= db_fetch_object($result); +$teammembers= unserialize($teammembers->members); +$emailTo=''; + +$counter_teammembers=0; +foreach($teammembers as $key => $teammember) { +if($counter_teammembers!=0) $emailTo .= ' , '; +$counter_teammembers++; +$result = db_query("SELECT * FROM {stormperson} WHERE nid = %d ", $key); +if ($data = db_fetch_object($result)) { +$emailTo .= $data->email; + } +} +} +else { +$result = db_query("SELECT * FROM {stormperson} WHERE nid = %d ", $assign); +if ($data = db_fetch_object($result)) { +$emailTo = $data->email; +$name = $data->fullname; +} +}; + +} +//Check if pathauto module exists and it's enabled + $exist_alias = db_result(db_query("SELECT dst FROM {url_alias} WHERE src = '%s' ", 'node/' . $node->nid)); + if ($exist_alias) { + $result = db_query("SELECT * FROM {url_alias} WHERE src = '%s' ", 'node/' . $node->nid); + if ($data = db_fetch_object($result)) { + $url = $data->dst; + } + } + else $url = 'node/' . $node->nid; + //I obtain URL of the corresponding page to the rows unloaded + global $base_url; + $url_down = $base_url . '/' . $url; + $result = db_query("SELECT * FROM {node} WHERE nid = %d", $node->nid); + if ($data = db_fetch_object($result)) { + $titolo = $data->title; + } + //It passes the parameters to the mail + $params = array( +'name' => $name, +'url' => $url_down, +'titolo' => $titolo, +'type' => $type + ); + + + //shipment mail all' awardee of the task + if ($node->send_mail == 'yes' && $emailTo != '' && $oper == "up") { +drupal_mail('stormmail', 'assigned_to_update', $emailTo, language_default(), $params); +drupal_set_message ('update mail sent '); + } + if ($node->send_mail == 'yes' && $emailTo != '' && $oper == "ins") { +drupal_mail('stormmail', 'assigned_to', $emailTo, language_default(), $params); +drupal_set_message ('mail sent '); + + } + } + /** * Function for the shipment of email */ @@ -88,25 +119,24 @@ switch ($key) { case 'assigned_to': // note: data can be passed to this function in the $params array - $message['subject'] = t('assignment ').$params['type']; - $message['body'] = t('Hello ').$params['name'].t(', ') - .t('The e\' state as soon as assigned the following one ').$params['type'].(': ').$params['url'].t(' dal titolo: "').$params['titolo'].t('"'); + $message['subject'] = t('assignment ') . $params['type']; + $message['body'] = t('Hello ') . $params['name'] . t(', ') + . t('The e\' state as soon as assigned the following one ') . $params['type'] . (': ') . $params['url'] . t(' dal titolo: "') . $params['titolo'] . t('"'); break; - case 'assigned_to_update': // note: data can be passed to this function in the $params array - $message['subject'] = t('update ').$params['type']; - $message['body'] = t('Hello ').$params['name'].t(', ') - .t('The ').$params['type'].(' "').$params['titolo'].t('", to which you are assigned has been modified: ').$params['url']; + $message['subject'] = t('update ') . $params['type']; + $message['body'] = t('Hello ') . $params['name'] . t(', ') + . t('The ') . $params['type'] . (' "') . $params['titolo'] . t('", to which you are assigned has been modified: ') . $params['url']; break; - } + } } /** - * Implementation of hook_form_alter() + * Implementation of hook_form_alter(). */ - function stormmail_form_alter(&$form, $form_state, $form_id){ - switch($form_id){ + function stormmail_form_alter(&$form, $form_state, $form_id) { + switch ($form_id) { case 'stormproject_node_form': case 'stormtask_node_form': case 'stormticket_node_form': @@ -122,6 +152,5 @@ ); return $form; break; - } - } - \ No newline at end of file + } + } \ No newline at end of file