Index: ecard.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/ecard/ecard.module,v retrieving revision 1.1.4.10 diff -u -p -r1.1.4.10 ecard.module --- ecard.module 19 Oct 2009 13:48:41 -0000 1.1.4.10 +++ ecard.module 19 Oct 2009 17:05:20 -0000 @@ -375,13 +375,43 @@ function ecard_form_validate($form_id, & * Submit handler for ecard_form. */ function ecard_form_submit($form_id, &$form_state) { - unset($random); + // Set up the ecard record. + $ecard = new stdClass; + $ecard->nid = $form_state['values']['nid']; + $ecard->sender_name = $form_state['values']['name']; + $ecard->sender_email = $form_state['values']['from_email']; + $ecard->valid_emails = $form_state['values']['valid_emails']; + $ecard->message = $form_state['values']['message']; + $ecard->send_time = time(); + $ecard->send = 'y'; + $ecard->notify = $form_state['values']['notify']; + $ecard->format = $form_state['values']['format']; + + // Send the e-cards, including copies. + ecard_send_card($ecard); + + // Display a message. + drupal_set_message(format_plural(count($form_state['values']['valid_emails']), 'Your e-card has been sent.', 'Your e-cards have been sent.')); + + // Redirect to thank you page if necessary. + $thank_you_page = variable_get('ecard_thank_you_page', 'ecard/thanks'); + if (!empty($thank_you_page)) { + $form_state['redirect'] = $thank_you_page; + } + + $form_state['nid'] = $node->nid; +} + +/** + * Send e-cards, including copies if necessary. + */ +function ecard_send_card($ecard) { global $base_url; global $language; + + unset($random); $start = 0; - $timestamp = time(); - $send = "y"; - $notify = "n"; + // Set the base variable from the clean url value. if (variable_get('clean_url', 0)) { $base = $base_url .'/'; @@ -400,56 +430,50 @@ function ecard_form_submit($form_id, &$f unset($random); } } - $card_copy_url = $base .'ecard/view/'. $random; - - // Making a copy for you else if you click any other recp link it will mail - // notification also there is some problem while we produce random. - $record = new stdClass; - $record->random = $random; - $record->nid = $form_state['values']['nid']; - $record->sender_name = $form_state['values']['name']; - $record->sender_email = $form_state['values']['from_email']; - $record->recp_mail = $form_state['values']['from_email']; - $record->message = $form_state['values']['message']; - $record->send_time = $timestamp; - $record->send = $send; - $record->notify = $notify; - $record->format = $form_state['values']['format']; - drupal_write_record('ecard', $record); $cardid = $random; // Iterate through each emails and send them and store a random number for // each. - foreach ($form_state['values']['valid_emails'] as $email) { - if (variable_get('ecard_notify_enabled', TRUE) && $form_state['values']['notify'] == 1) { - $notify = "y"; - // Append start value to random number to get cardid. - $cardid = $random . $start; - // Making some number in increment order. - $start = $start + 1; - - $record->random = $cardid; - $record->recp_mail = $email; - drupal_write_record('ecard', $record); + foreach ($ecard->valid_emails as $email) { + // Append start value to random number to get cardid. + $cardid = $random . $start; + // Making some number in increment order. + $start = $start + 1; + + if (variable_get('ecard_notify_enabled', TRUE) && $ecard->notify == 1) { + // Save record to the database. + $ecard->notify = 'y'; + } + else { + $ecard->notify = 'n'; } + $ecard->random = $cardid; + $ecard->recp_mail = $email; + drupal_write_record('ecard', $ecard); + $params['card'] = $base .'ecard/view/'. $cardid; - $params['sender'] = $form_state['values']['name']; - $params['sendermail'] = $form_state['values']['from_email']; + $params['sender'] = $ecard->sender_name; + $params['sendermail'] = $ecard->sender_email; $params['recipient'] = $email; - drupal_mail('ecard', 'ecard-mail', $email, $language, $params, $form_state['values']['from_email']); + drupal_mail('ecard', 'ecard-mail', $email, $language, $params, $ecard->sender_email); } - drupal_set_message(format_plural(count($form_state['values']['valid_emails']), 'Your e-card has been sent.', 'Your e-cards have been sent.')); + if (variable_get('ecard_copy_enabled', TRUE)) { + // Making a copy for you else if you click any other recp link it will mail + // notification also there is some problem while we produce random. + $ecard->send = 'y'; + $ecard->notify = 'n'; + $ecard->random = $random; + $ecard->recp_mail = $ecard->sender_email; + drupal_write_record('ecard', $ecard); + + $card_copy_url = $base .'ecard/view/'. $random; drupal_set_message(t('You can view the e-card at here.')); + $params['card_copy'] = $card_copy_url; - drupal_mail('ecard', 'ecard-copy', $form_state['values']['from_email'], $language, $params, variable_get('site_mail', ini_get('sendmail_from'))); + drupal_mail('ecard', 'ecard-copy', $ecard->sender_email, $language, $params, variable_get('site_mail', ini_get('sendmail_from'))); } - $thank_you_page = variable_get('ecard_thank_you_page', 'ecard/thanks'); - if (!empty($thank_you_page)) { - $form_state['redirect'] = $thank_you_page; - } - $form_state['nid'] = $node->nid; } /**