--- ecard-6x-1.1.module Tue May 13 05:46:51 2008
+++ ecard.module Fri Nov 28 19:03:34 2008
@@ -1,63 +1,79 @@
uid == $uid));
+}
+
+
+/**
+ * Implementation of hook_menu().
+ */
+
function ecard_menu() {
- $items=array();
- $items['admin/settings/ecard'] = array(
- 'title' => t('Ecard settings'),
- 'description' => t('Change how ecards behave.'),
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('ecard_admin'),
- 'access arguments' => array('administer site configuration')
- );
- $items['ecard'] = array(
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('ecard_form'),
- 'access arguments' => array('view ecards,send ecards'),
- 'type' => MENU_CALLBACK
- );
- $items['ecard/view'] = array (
- 'page callback' => 'ecard_view',
- 'type' => MENU_CALLBACK,
- 'access arguments' => array('view ecards'),
-
- );
- $items['ecard/thanks'] = array(
- 'page callback' => 'ecard_thanks',
- 'type' => MENU_CALLBACK,
- 'access arguments' => array('view ecards'),
- );
+ $items=array();
+ $items['admin/settings/ecard'] = array(
+ 'title' => t('Ecard settings'),
+ 'description' => t('Change how ecards behave.'),
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('ecard_admin'),
+ 'access arguments' => array('administer site configuration'),
+ );
+ $items['ecard'] = array(
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('ecard_form'),
+ 'access callback' => 'ecard_form_access',
+ 'access arguments' => array($node->uid),
+ 'type' => MENU_CALLBACK
+ );
+ $items['ecard/view'] = array(
+ 'page callback' => 'ecard_view',
+ 'type' => MENU_CALLBACK,
+ 'access arguments' => array('view ecards'),
+ );
+ $items['ecard/thanks'] = array(
+ 'page callback' => 'ecard_thanks',
+ 'type' => MENU_CALLBACK,
+ 'access arguments' => array('view ecards'),
+ );
return $items;
-
}
-/**
- * Define the settings form.
- */
-
-function ecard_admin() {
- $form['ecard_nodetypes'] = array(
- '#type' => 'checkboxes',
- '#title' => t('Choose the content types which you want to send as ecard'),
- '#options' => node_get_types('names'),
- '#default_value' => variable_get('ecard_nodetypes', array('story')),
- '#description' => t('A form to send ecard will append to the content'),
- );
- $form['letter'] = array(
+/**
+ * Define the settings form.
+ */
+
+function ecard_admin() {
+ $form['ecard_nodetypes'] = array(
+ '#type' => 'checkboxes',
+ '#title' => t('Choose the content types which you want to send as ecard'),
+ '#options' => node_get_types('names'),
+ '#default_value' => variable_get('ecard_nodetypes', array('story')),
+ '#description' => t('A form to send ecard will append to the content'),
+ );
+ $form['letter'] = array(
'#type' => 'fieldset',
'#title' => t('Letter customization'),
);
@@ -69,7 +85,6 @@ function ecard_admin() {
'#maxlength' => 70,
'#description' => t('Customize the subject for ecard'),
);
-
$form['letter']['ecard_letter'] = array(
'#type' => 'textarea',
'#title' => t('Body'),
@@ -78,35 +93,31 @@ function ecard_admin() {
'#rows' => 5,
'#description' => t('This text is the body of the email that the card recipient will see. These are the variables you may use: %site = your site name, %site_url = your site URL, %site_mail = your site email address, %card_url = the URL for the ecard, %sender = sender name, %sender_email = sender email, %recipient = recipient email, '),
);
-
- $form['copy']=array(
- '#type' => 'fieldset',
- '#title' => t('Customization email send with copy of url')
- );
-
- $form['copy']['ecard_copy_subject']= array(
- '#type' => 'textfield',
- '#title' => t('Subject'),
- '#default_value' => variable_get('ecard_copy_subject','Copy of your ecard'),
- '#size' => 70,
- '#maxlenghth' => 70,
- '#description' => t('Customize email send with copy of card url')
- );
-
- $form['copy']['ecard_copy'] = array(
- '#type' => 'textarea',
- '#title' => t('Body'),
- '#default_value' => variable_get('ecard_copy', _ecard_copy()),
- '#cols' => 70,
- '#rows' => 5,
- '#description' => t('This text is the body of the email to notify the sender than the card has been picked. These are the variables you may use: %site = your site name, %site_url = your site URL, %site_mail = your site email address, %card_url = the URL for the ecard')
- );
-
- $form['notify'] = array(
+ $form['copy'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Customization email send with copy of url'),
+ );
+ $form['copy']['ecard_copy_subject'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Subject'),
+ '#default_value' => variable_get('ecard_copy_subject', 'Copy of your ecard'),
+ '#size' => 70,
+ '#maxlenghth' => 70,
+ '#description' => t('Customize email send with copy of card url'),
+ );
+ $form['copy']['ecard_copy'] = array(
+ '#type' => 'textarea',
+ '#title' => t('Body'),
+ '#default_value' => variable_get('ecard_copy', _ecard_copy()),
+ '#cols' => 70,
+ '#rows' => 5,
+ '#description' => t('This text is the body of the email to notify the sender than the card has been picked. These are the variables you may use: %site = your site name, %site_url = your site URL, %site_mail = your site email address, %card_url = the URL for the ecard'),
+ );
+ $form['notify'] = array(
'#type' => 'fieldset',
'#title' => t('Notification email customization'),
);
- $form['notify']['notify_subject'] = array(
+ $form['notify']['notify_subject'] = array(
'#type' => 'textfield',
'#title' => t('Subject'),
'#default_value' => variable_get('notify_subject', 'Your ecard has been just picked'),
@@ -114,7 +125,7 @@ function ecard_admin() {
'#maxlength' => 70,
'#description' => t('Customize the subject for ecard'),
);
- $form['notify']['ecard_notify'] = array(
+ $form['notify']['ecard_notify'] = array(
'#type' => 'textarea',
'#title' => t('Body'),
'#default_value' => variable_get('ecard_notify', _ecard_notify()),
@@ -133,26 +144,33 @@ function ecard_admin() {
'#size' => '2',
'#default_value' => variable_get('ecard_cron', '0'),
);
- $form['misc']['max_count'] = array(
- '#type' => 'textfield',
- '#title' => 'Maximum number of emails allowed to send at a time',
- '#description' => 'Do not set it to very big values as it may cause spaming',
- '#size' => '5',
- '#default_value' => variable_get('max_count','100')
- );
- $form['misc']['site_email'] = array(
- '#type' => 'textfield',
- '#title' => 'This email used to send emails',
- '#description' => 'eg: noreply@yoursitename.com or admin@sitename.com etc',
- '#default_value' => variable_get('site_email','root@localhost')
- );
- $form['array_filter'] = array('#type' => 'hidden');
+ $form['misc']['max_count'] = array(
+ '#type' => 'textfield',
+ '#title' => 'Maximum number of emails allowed to send at a time',
+ '#description' => 'Do not set it to very big values as it may cause spaming',
+ '#size' => '5',
+ '#default_value' => variable_get('max_count', '100'),
+ );
+ $form['misc']['site_email'] = array(
+ '#type' => 'textfield',
+ '#title' => 'This email used to send emails',
+ '#description' => 'eg: noreply@yoursitename.com or admin@sitename.com etc',
+ '#default_value' => variable_get('site_email', 'root@localhost'),
+ );
+ $form['misc']['hide_send_view'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Hide the send form when viewing ecard message'),
+ '#default_value' => variable_get('hide_send_view', 0),
+ );
+ $form['array_filter'] = array('#type' => 'hidden');
+ return system_settings_form($form);
+}
- return system_settings_form($form);
-}
+/**
+ * Function for making cron job
+ */
-//making cron job
function ecard_cron() {
// convert cron days into timestamp
$ecard_cron = variable_get('ecard_cron', '0') * 86400;
@@ -163,125 +181,133 @@ function ecard_cron() {
}
-//making letter to send
+/**
+ * Function for making letter to send
+ */
+
function _ecard_letter() {
$output = t("Hi,\n\n%sender_name made an ecard for you.\nAt any time you may see your card by clicking this link:\n\n%card_url\n\n(if your email client doesn't allow you to click on the site link,\nthen just copy and paste the URL into your browser)\n\nadmin");
return $output;
}
-/**
- * Implementation of hook_nodeapi().
- */
-function ecard_nodeapi(&$node, $op, $teaser, $page) {
-
- switch ($op) {
- case 'view':
- $types_to_ecard = variable_get('ecard_nodetypes', array('story'));
- if (!in_array($node->type, $types_to_ecard)) {
- break;
- }
- // Add our form as a content item.
- if ($teaser == FALSE){
- $node->content['ecard_form'] = array(
- '#value' => drupal_get_form('ecard_form',$node),
- '#weight' => 100
- );
+/**
+ * Implementation of hook_nodeapi().
+ */
+
+function ecard_nodeapi(&$node, $op, $teaser, $page) {
+ switch ($op) {
+ case 'view':
+ $types_to_ecard = variable_get('ecard_nodetypes', array('story'));
+ if (!in_array($node->type, $types_to_ecard)) {
+ break;
+ }
+ // Add our form as a content item.
+ if ($teaser == FALSE) {
+ $node->content['ecard_form'] = array(
+ '#value' => drupal_get_form('ecard_form', $node),
+ '#weight' => 100,
+ );
}
- }
-}
+ }
+}
+
+/**
+ * Function to define the form.
+ */
-/**
- * Define the form
- */
-function ecard_form($form_state,$node) {
- if ($node == NULL){
- drupal_goto();
- }
-
- if ($_SESSION['message']!=NULL){
- $form['view_message'] = array(
- '#type' => 'fieldset',
- '#title' => t('Message'),
- '#collapsible' => TRUE,
- '#collapsed' => FALSE
- );
- $form['view_message']['msg'] = array(
- '#type' => 'markup',
- '#value' => $_SESSION['message']
- );
- unset ($_SESSION['message']);
- }
-
- // Things to happen if step is 1
- //make a fieldset
- $form['block'] = array(
- '#type' => 'fieldset',
- '#title' => t('Send this card'),
- '#collapsible' => TRUE,
- '#collapsed' => FALSE
- );
-
- //redirec to false as its multiform
-
- //senders name
- $form['block']['name'] = array(
- '#title' => t('Your name'),
- '#type' => 'textfield'
- );
- //sending from
- $form['block']['from_email'] = array(
- '#title' => t('Your email'),
- '#type' => 'textfield',
- );
-
- //checking whether session variable is set if so extract emails and unset variables
- if (isset($_SESSION['emails'])) {
+function ecard_form($form_state, $node) {
+ if ($node == NULL) {
+ drupal_goto();
+ }
+ if ($_SESSION['message']!=NULL) {
+ $form['view_message'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Message'),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE,
+ );
+ $form['view_message']['msg'] = array(
+ '#type' => 'markup',
+ '#value' => $_SESSION['message'],
+ );
+ unset($_SESSION['message']);
+ }
+ // Things to happen if step is 1
+ // if the message is not set or the message is set and hide ecard form is enabled
+ if ((!isset($form['view_message']['msg']['#value'])) ||
+ ((isset($form['view_message']['msg']['#value'])) && (!variable_get('hide_send_view', 0)))) {
+ // and only show ecard form when having permission to send
+ if ((user_access('send ecards')) ||
+ ((user_access('send own content')) && ($GLOBALS['user']->uid == $node->uid))) {
+ //make a fieldset
+ $form['block'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Send this card'),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE,
+ );
+ //redirec to false as its multiform
+ //senders name
+ $form['block']['name'] = array(
+ '#title' => t('Your name'),
+ '#type' => 'textfield',
+ );
+ //sending from
+ $form['block']['from_email'] = array(
+ '#title' => t('Your email'),
+ '#type' => 'textfield',
+ );
+ //checking whether session variable is set if so extract emails and unset variables
+ if (isset($_SESSION['emails'])) {
$emails = implode("\n", (array)($_SESSION['emails']));
unset($_SESSION['emails']);
}
- //display box to type recipients emails
- $form['block']['to_email'] = array(
- '#title' => t('E-mail(s) of recipient(s)'),
- '#type' => 'textarea',
- '#rows' =>3,
- '#default_value' => $emails,
- '#description' => t('You may enter multiple emails')
- );
- //display textarea to type message
- $form['block']['message'] = array(
- '#title' => t('Type your message'),
- '#type' => 'textarea',
- '#description' => t('Whatever you type here will be attached to ecard')
- );
- $form['block']['notify']=array(
- '#type' => 'checkbox',
- '#title' => t('Notify me when the card is picked'),
- '#default_value' => 0
- );
-
- $form['nid'] = array(
- '#type' => 'value',
- '#value' => $node->nid
- );
-
- $form['block']['submit'] = array(
- '#type' => 'submit',
- '#value' => 'Send This Card'
- );
+ //display box to type recipients emails
+ $form['block']['to_email'] = array(
+ '#title' => t('E-mail(s) of recipient(s)'),
+ '#type' => 'textarea',
+ '#rows' => 3,
+ '#default_value' => $emails,
+ '#description' => t('You may enter multiple emails'),
+ );
+ //display textarea to type message
+ $form['block']['message'] = array(
+ '#title' => t('Type your message'),
+ '#type' => 'textarea',
+ '#description' => t('Whatever you type here will be attached to ecard'),
+ );
+ $form['block']['notify']=array(
+ '#type' => 'checkbox',
+ '#title' => t('Notify me when the card is picked'),
+ '#default_value' => 0,
+ );
+ $form['nid'] = array(
+ '#type' => 'value',
+ '#value' => $node->nid,
+ );
+ $form['block']['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Send This Card'),
+ );
+ }
+ }
return $form;
}
-//function to validate emails syntax
-function validate_emails($form_id,&$form_state){
- if (valid_email_address($form_state['values']['from_email']) != TRUE) {
- form_set_error('from_email',t('Your email address is invalid'));
- }
- $valid_emails = $failed_emails = array();
- $emails = array_unique(split("[,\n\r]", $form_state['values']['to_email']));
- foreach ($emails as $email) {
- $email = trim($email);
+/*
+ * Validation function for email syntax.
+ */
+
+function validate_emails($form_id, &$form_state) {
+ if (valid_email_address($form_state['values']['from_email']) != TRUE) {
+ form_set_error('from_email', t('Your email address is invalid'));
+ }
+ $valid_emails = $failed_emails = array();
+ $emails = array_unique(split("[,\n\r]", $form_state['values']['to_email']));
+ foreach ($emails as $email) {
+ $email = trim($email);
if ($email) {
if (valid_email_address($email)) {
$valid_emails[] = $email;
@@ -292,28 +318,25 @@ function validate_emails($form_id,&$form
}
}
if (count($failed_emails)) {
- form_set_error('to_email',t('This email has an error "'.$failed_emails[0].'"'));
-
+ form_set_error('to_email', t('This email has an error "'. $failed_emails[0] .'"'));
}
- return $valid_emails;
+ return $valid_emails;
}
-/*
- * Validation function for the form if call email_import of validate emails on
- * respective steps
+/*
+ * Validation function for the form if call email_import of validate emails on respective steps.
*/
+
function ecard_form_validate($form_id, &$form_state) {
- $emails=validate_emails($form_id,&$form_state);
- $count=count($emails);
- $max_count = variable_get('max_count',1000);
- if ($count > $max_count){
- form_set_error('to_email',t('You are not allowed to send to more than '.$count.' emails , please delete few email address and send the card'));
- }
-
- form_set_value(array('#parents' => array('valid_emails')), $emails,$form_state);
+ $emails = validate_emails($form_id, &$form_state);
+ $count = count($emails);
+ $max_count = variable_get('max_count', 1000);
+ if ($count > $max_count) {
+ form_set_error('to_email', t('You are not allowed to send to more than '. $count .' emails , please delete few email address and send the card'));
+ }
+ form_set_value(array('#parents' => array('valid_emails')), $emails, $form_state);
}
-
/**
@@ -321,170 +344,177 @@ function ecard_form_validate($form_id, &
*/
function ecard_form_submit($form_id, &$form_state) {
- unset($random);
- global $base_url;
- $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 .'/';
- }
- else {
- $base = $base_url .'/index.php?q=';
- }
-
- //makding a random variable
- // this loop generate a random and check whether it exist in database if not it will store that random else it will generate another one
- while (!$random) {
- $random = md5(microtime());
- $result = db_fetch_object(db_query("SELECT random FROM {ecard} WHERE random = '%s'", $random));
- if ($result) 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
- db_query("insert into {ecard} (random, nid, sender_name, sender_email, recp_mail, message, send_time,send,notify) values ('%s','%d','%s','%s','%s','%s','%d','%s','%s')",$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);
-
- $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 ($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("insert into {ecard} (random, nid,sender_name,sender_email,recp_mail,message,send_time,send,notify) values ('%s','%d','%s','%s','%s','%s','%d','%s','%s')",$cardid,$form_state['values']['nid'],$form_state['values']['name'],$form_state['values']['from_email'],$email,$form_state['values']['message'],$timestamp,$send,$notify);
- }
- $params['card']=$base.'ecard/view/'.$cardid;
- $params['sender'] = $form_state['values']['name'];
- $params['sendermail'] = $form_state['values']['from_email'];
- $params['recipient'] = $email;
- drupal_mail('ecard','ecard-mail', $email, NULL,$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'],NULL,$params,variable_get('site_mail', 'nobody@localhost'));
-
- $form_state['redirect']='ecard/thanks';
- $form_state['nid']=$node->nid;
-}
-//making copy url letter
-function _ecard_copy()
-{
- $output = t("Hi,\n Here is the copy of your message you send\n %card_url\n\n (if your email client doesn't allow you to click on the site link,\nthen just copy and paste the URL into your browser)\n\nadmin");
- return $output;
-}
-
-//making notification letter
-function _ecard_notify()
-{
- $output = t("Hi,\n\n%recipient has picked your card today.\n here is the url to your card\n %card_url\n\n (if your email client doesn't allow you to click on the site link,\nthen just copy and paste the URL into your browser)\n\nadmin");
- return $output;
-}
-
-//function to view the ecard , it also send an email to the sender to know the card is picked
-function ecard_view($arg1=NULL){
-//drupal_set_message(t("i am here"));
- global $base_url;
- // set the base variable from the clean url value
- if (variable_get('clean_url', 0)) {
- $base = $base_url .'/';
- }
- else {
- $base = $base_url .'/index.php?q=';
- }
-
- if (isset($arg1)){
- $sql = db_query("SELECT random,nid,message,sender_name,sender_email,recp_mail,notify FROM {ecard} n WHERE n.random = '%s'",$arg1);
- $result=db_fetch_object($sql);
- if ($result != NULL){
- $node=node_load($result->nid);
- $_SESSION['message']= $result->message;
- $output=node_view($node,FALSE,TRUE,FALSE );
-
- //sending email if notify == yes
- if ($result->notify == y){
- $card_url=$base.'ecard/view/'.$result->random;
- //making message
- $site_email=variable_get('site_email','root@localhost');
- $params['site']=$site_email;
- $params['card_url']=$card_url;
- $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);
- db_query("UPDATE {ecard} SET notify='n' WHERE random='%s'",$result->random);
- }
- }
- else{
- return t("Your ecard id is not valid either it may be an error or it expired");
- }
- return $output;
- }
- else
- drupal_goto();
-}
-
-// Mail hook for drupal 6
-function ecard_mail($key,&$message,$params)
-{
- global $base_url;
- switch($key){
-
- case 'ecard-mail':
- $variables = array(
- '%site' => variable_get('site_name', 'drupal'),
- '%site_url' => $base_url,
- '%site_mail' => variable_get('site_mail', 'root@localhost'),
- '%card_url' => $params['card'],
- '%sender' => $params['sender'],
- '%sender_email' => $params['sendermail'],
- '%recipient' => $params['recipient']
- );
-
- $body = strtr(variable_get('ecard_letter', _ecard_letter()), $variables);
- $subject = strtr(variable_get('ecard_subject', 'An Ecard from %sender_name'), $variables);
- $message['subject']=$subject;
- $message['body']=$body;
- break;
-
- case 'ecard-copy':
- $variables = array(
- '%site' => variable_get('site_name', 'drupal'),
- '%site_url' => $base_url,
- '%site_mail' => variable_get('site_mail', 'root@localhost'),
- '%card_url' => $params['card_copy'],
- );
- $body = strtr(variable_get('ecard_copy', _ecard_copy()), $variables);
- $subject = strtr(variable_get('ecard_copy_subject', 'Copy of your Ecard'), $variables);
- $message['subject']=$subject;
- $message['body']=$body;
- break;
-
- case 'ecard-view':
- $variables = array(
- '%site' => variable_get('site_name', 'drupal'),
- '%site_url' => $base_url,
- '%site_mail' => variable_get('site_mail', 'root@localhost'),
- '%card_url' => $params['card_url'],
- '%sender' => $params['sender'],
- '%recipient' => $params['recipient'],
- '%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 by %recipient'), $variables);
- $message['subject']=$subject;
- $message['body']=$body;
- break;
- }
+ unset($random);
+ global $base_url;
+ $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 .'/';
+ }
+ else {
+ $base = $base_url .'/index.php?q=';
+ }
+
+ // making a random variable
+ // this loop generate a random and check whether it exist in database if not it will store that random else it will generate another one
+ while (!$random) {
+ $random = md5(microtime());
+ $result = db_fetch_object(db_query("SELECT random FROM {ecard} WHERE random = '%s'", $random));
+ if ($result) 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
+ db_query("INSERT INTO {ecard} (random, nid, sender_name, sender_email, recp_mail, message, send_time,send,notify) VALUES ('%s','%d','%s','%s','%s','%s','%d','%s','%s')", $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);
+ $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 ($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("INSERT INTO {ecard} (random,nid,sender_name,sender_email,recp_mail,message,send_time,send,notify) VALUES ('%s','%d','%s','%s','%s','%s','%d','%s','%s')", $cardid, $form_state['values']['nid'], $form_state['values']['name'], $form_state['values']['from_email'], $email, $form_state['values']['message'], $timestamp, $send, $notify);
+ }
+ $params['card'] = $base .'ecard/view/'. $cardid;
+ $params['sender'] = $form_state['values']['name'];
+ $params['sendermail'] = $form_state['values']['from_email'];
+ $params['recipient'] = $email;
+ drupal_mail('ecard', 'ecard-mail', $email, NULL, $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'], NULL, $params, variable_get('site_mail', 'nobody@localhost'));
+ $form_state['redirect'] = 'ecard/thanks';
+ $form_state['nid'] = $node->nid;
}
-//thankyou page
-function ecard_thanks() {
- return t('Thanks, and have a nice day.');
+
+/**
+ * Function for making copy url letter
+ */
+
+function _ecard_copy() {
+ $output = t("Hi,\n Here is the copy of your message you send\n %card_url\n\n (if your email client doesn't allow you to click on the site link,\nthen just copy and paste the URL into your browser)\n\nadmin");
+ return $output;
}
+
+/**
+ * Function for making notification letter
+ */
+
+function _ecard_notify() {
+ $output = t("Hi,\n\n%recipient has picked your card today.\n here is the url to your card\n %card_url\n\n (if your email client doesn't allow you to click on the site link,\nthen just copy and paste the URL into your browser)\n\nadmin");
+ return $output;
+}
+
+
+/**
+ * Function to view the ecard , it also send an email to the sender to know the card is picked
+ */
+
+function ecard_view($arg1=NULL) {
+ global $base_url;
+ // set the base variable from the clean url value
+ if (variable_get('clean_url', 0)) {
+ $base = $base_url .'/';
+ }
+ else {
+ $base = $base_url .'/index.php?q=';
+ }
+ if (isset($arg1)) {
+ $sql = db_query("SELECT random,nid,message,sender_name,sender_email,recp_mail,notify FROM {ecard} n WHERE n.random = '%s'", $arg1);
+ $result = db_fetch_object($sql);
+ if ($result != NULL) {
+ $node = node_load($result->nid);
+ $_SESSION['message'] = $result->message;
+ $output=node_view($node, FALSE, TRUE, FALSE);
+
+ //sending email if notify == yes
+ if ($result->notify == y) {
+ $card_url = $base .'ecard/view/'. $result->random;
+
+ //making message
+ $site_email=variable_get('site_email', 'root@localhost');
+ $params['site'] = $site_email;
+ $params['card_url'] = $card_url;
+ $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);
+ db_query("UPDATE {ecard} SET notify='n' WHERE random='%s'", $result->random);
+ }
+ }
+ else {
+ return t("Your ecard id is not valid either it may be an error or it expired");
+ }
+ return $output;
+ }
+ else drupal_goto();
+}
+
+
+/**
+ * Implementation hook_mail().
+ */
+
+function ecard_mail($key, &$message, $params) {
+ global $base_url;
+ switch ($key) {
+ case 'ecard-mail':
+ $variables = array(
+ '%site' => variable_get('site_name', 'drupal'),
+ '%site_url' => $base_url,
+ '%site_mail' => variable_get('site_mail', 'root@localhost'),
+ '%card_url' => $params['card'],
+ '%sender' => $params['sender'],
+ '%sender_email' => $params['sendermail'],
+ '%recipient' => $params['recipient'],
+ );
+ $body = strtr(variable_get('ecard_letter', _ecard_letter()), $variables);
+ $subject = strtr(variable_get('ecard_subject', 'An Ecard from %sender_name'), $variables);
+ $message['subject'] = $subject;
+ $message['body'] = $body;
+ break;
+ case 'ecard-copy':
+ $variables = array(
+ '%site' => variable_get('site_name', 'drupal'),
+ '%site_url' => $base_url,
+ '%site_mail' => variable_get('site_mail', 'root@localhost'),
+ '%card_url' => $params['card_copy'],
+ );
+ $body = strtr(variable_get('ecard_copy', _ecard_copy()), $variables);
+ $subject = strtr(variable_get('ecard_copy_subject', 'Copy of your Ecard'), $variables);
+ $message['subject'] = $subject;
+ $message['body'] = $body;
+ break;
+ case 'ecard-view':
+ $variables = array(
+ '%site' => variable_get('site_name', 'drupal'),
+ '%site_url' => $base_url,
+ '%site_mail' => variable_get('site_mail', 'root@localhost'),
+ '%card_url' => $params['card_url'],
+ '%sender' => $params['sender'],
+ '%recipient' => $params['recipient'],
+ '%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 by %recipient'), $variables);
+ $message['subject'] = $subject;
+ $message['body'] = $body;
+ break;
+ }
+}
+
+
+/**
+ * Function for the thankyou page
+ */
+
+function ecard_thanks() {
+ return t('Thanks, and have a nice day.');
+}
\ No newline at end of file