Index: ecard.module =================================================================== --- ecard.module (revision 836) +++ ecard.module (working copy) @@ -78,6 +78,11 @@ '#size' => '5', '#default_value' => variable_get('ecard_max_count', '100'), ); + $form['settings']['ecard_thank_you_page'] = array( + '#type' => 'textfield', + '#title' => t('Path to thank you page'), + '#default_value' => variable_get('ecard_thank_you_page', 'ecard/thanks'), '#description' => t('Enter the path to the thank you page where users should be redirected to after sending an e-card. For example, ecard/thanks, node/123. Leave blank for no redirection.'), + ); $form['settings']['ecard_hide_send_view'] = array( '#type' => 'checkbox', '#title' => t('Hide the send e-card form when viewing the e-card message.'), @@ -144,12 +149,17 @@ '#collapsed' => TRUE, '#collapsible' => TRUE, ); + $form['copy']['ecard_copy_enabled'] = array( + '#type' => 'checkbox', + '#title' => t('Send a copy of e-cards to sender'), + '#default_value' => variable_get('ecard_copy_enabled', TRUE), + ); $form['copy']['ecard_copy_subject'] = array( '#type' => 'textfield', '#title' => t('Subject'), '#default_value' => variable_get('ecard_copy_subject', 'Copy of your e-card'), '#size' => 70, - '#maxlenghth' => 70, + '#maxlength' => 70, '#description' => t('Customize email sent to sender with copy of card.'), ); $form['copy']['ecard_copy'] = array( @@ -167,6 +177,11 @@ '#collapsed' => TRUE, '#collapsible' => TRUE, ); + $form['notify']['ecard_notify_enabled'] = array( + '#type' => 'checkbox', + '#title' => t('Enable option for card collection notification emails'), + '#default_value' => variable_get('ecard_notify_enabled', TRUE), + ); $form['notify']['ecard_notify_subject'] = array( '#type' => 'textfield', '#title' => t('Subject'), @@ -284,12 +299,16 @@ ); // Filter format for the text. $form['filter'] = filter_form(); + // Notification on pick up. - $form['notify']=array( - '#type' => 'checkbox', - '#title' => t('Notify me when the card is picked up'), - '#default_value' => 0 - ); + if (variable_get('ecard_notify_enabled', TRUE)) { + $form['notify'] = array( + '#type' => 'checkbox', + '#title' => t('Notify me when the card is picked up'), + '#default_value' => 0 + ); + } + $form['nid'] = array( '#type' => 'value', '#value' => $node->nid @@ -377,46 +396,42 @@ while (!$random) { $random = md5(microtime()); $result = db_fetch_object(db_query("SELECT random FROM {ecard} WHERE random = '%s'", $random)); - if ($result) unset($random); + if ($result) { + unset($random); + } } $card_copy_url = $base .'ecard/view/'. $random; - $sql = 'INSERT INTO {ecard} (random, nid, sender_name, sender_email, recp_mail, message, send_time, send, notify, format) - VALUES ("%s", %d, "%s", "%s", "%s", "%s", %d, "%s", "%s", %d)'; + // 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); - //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 - db_query($sql, - $random, - $form_state['values']['nid'], - $form_state['values']['name'], - $form_state['values']['from_email'], - $form_state['values']['from_email'], - $form_state['values']['message'], - $timestamp, - $send, - $notify, - $form_state['values']['format'] - ); $cardid = $random; - //iterate through each emails and send them and store a random number for each + // Iterate through each emails and send them and store a random number for + // each. foreach ($form_state['values']['valid_emails'] as $email) { - if ($form_state['values']['notify'] == 1) { + if (variable_get('ecard_notify_enabled', TRUE) && $form_state['values']['notify'] == 1) { $notify = "y"; - $cardid = $random . $start;//append start value to random number to get cardid - $start = $start + 1; // making some number in increment order - db_query($sql, - $cardid, - $form_state['values']['nid'], - $form_state['values']['name'], - $form_state['values']['from_email'], - $email, - $form_state['values']['message'], - $timestamp, - $send, - $notify, - $form_state['values']['format'] - ); + // 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); } $params['card'] = $base .'ecard/view/'. $cardid; $params['sender'] = $form_state['values']['name']; @@ -424,10 +439,16 @@ $params['recipient'] = $email; drupal_mail('ecard', 'ecard-mail', $email, $language, $params, $form_state['values']['from_email']); } - drupal_set_message(t("Your message has been sent and a copy is stored for your reference.
you can view the copy 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'))); - $form_state['redirect'] = 'ecard/thanks'; + 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)) { + 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'))); + } + $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; } @@ -492,7 +513,7 @@ $output = node_view($node, FALSE, TRUE, FALSE); // Sending email if notify == yes. - if ($result->notify == y) { + if ($result->notify == 'y') { $card_url = $base .'ecard/view/'. $result->random; // Make message. @@ -502,7 +523,7 @@ $params['sender'] = $result->sender_name; $params['recipient'] = $result->recp_mail; $params['sender_email'] = $result->sender_email; - drupal_mail('ecard', 'ecard-view', $params['sender_email'], NULL, $params, $site_email); + drupal_mail('ecard', 'ecard-notify', $params['sender_email'], NULL, $params, $site_email); db_query("UPDATE {ecard} SET notify='n' WHERE random='%s'", $result->random); } } @@ -551,7 +572,7 @@ $message['body'] = $body; break; - case 'ecard-view': + case 'ecard-notify': $variables = array( '%site' => variable_get('site_name', 'drupal'), '%site_url' => $base_url, @@ -562,7 +583,7 @@ '%sender_email' => $params['sender_email'], ); $body = strtr(variable_get('ecard_notify', _ecard_notify()), $variables); - $subject = strtr(variable_get('notify_subject', 'Your card has been picked up by %recipient'), $variables); + $subject = strtr(variable_get('ecard_notify_subject', 'Your card has been picked up by %recipient'), $variables); $message['subject'] = $subject; $message['body'] = $body; break;