'autoresponder/unsubscribe', 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_user_unsubscribe', 'type' => MENU_CALLBACK ); $items[] = array( 'path' => 'admin/settings/autoresponder', 'title' => t('Autoresponder'), 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_user_list' ); $items[] = array( 'path' => 'admin/settings/autoresponder/user/list', 'title' => t('Users list'), 'access' => user_access('configure autoresponder'), 'type' => MENU_DEFAULT_LOCAL_TASK, 'callback' => 'autoresponder_user_list', 'weight' => 0 ); $items[] = array( 'path' => 'admin/settings/autoresponder/user/edit', 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_user_list', 'type' => MENU_CALLBACK, 'weight' => 1 ); $items[] = array( 'path' => 'admin/settings/autoresponder/user/delete', 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_user_list', 'type' => MENU_CALLBACK, ); $items[] = array( 'path' => 'admin/settings/autoresponder/mail/list', 'title' => t('Messages list'), 'access' => user_access('configure autoresponder'), 'type' => MENU_LOCAL_TASK, 'callback' => 'autoresponder_mail_list', 'weight' => 2 ); $items[] = array( 'path' => 'admin/settings/autoresponder/mail/add', 'title' => t('Add message'), 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_mail_list', 'type' => MENU_LOCAL_TASK, 'weight' => 3 ); $items[] = array( 'path' => 'admin/settings/autoresponder/mail/edit', 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_mail_list', 'type' => MENU_CALLBACK, ); $items[] = array( 'path' => 'admin/settings/autoresponder/mail/delete', 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_mail_list', 'type' => MENU_CALLBACK, ); $items[] = array( 'path' => 'admin/settings/autoresponder/set/list', 'title' => t('Sets list'), 'access' => user_access('configure autoresponder'), 'type' => MENU_LOCAL_TASK, 'callback' => 'autoresponder_set_list', 'weight' => 4 ); $items[] = array( 'path' => 'admin/settings/autoresponder/set/add', 'title' => t('Add set'), 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_set_list', 'type' => MENU_LOCAL_TASK, 'weight' => 5 ); $items[] = array( 'path' => 'admin/settings/autoresponder/set/activate', 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_set_list', 'type' => MENU_CALLBACK, ); $items[] = array( 'path' => 'admin/settings/autoresponder/set/deactivate', 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_set_list', 'type' => MENU_CALLBACK, ); $items[] = array( 'path' => 'admin/settings/autoresponder/set/edit', 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_set_list', 'type' => MENU_CALLBACK, ); $items[] = array( 'path' => 'admin/settings/autoresponder/set/delete', 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_set_list', 'type' => MENU_CALLBACK, ); $items[] = array( 'path' => 'admin/settings/autoresponder/status', 'title' => t('Status'), 'access' => user_access('configure autoresponder'), 'callback' => 'autoresponder_status', 'type' => MENU_LOCAL_TASK, 'weight' => 6 ); } return $items; } function autoresponder_status() { return drupal_get_form('autoresponder_status_form'); } function autoresponder_status_form() { $emails_sent = variable_get('emails_sent', time()); $date = date("F j, Y, g:i a", $emails_sent); $form['status'] = array( '#type' => 'fieldset', '#title' => t('Status'), ); $form['status']['emails_sent'] = array( '#value' => 'Last mailing time: '.$date.'

' ); $form['status']['send'] = array( '#type' => 'submit', '#value' => t('Send manually') ); return $form; } function autoresponder_status_form_submit($form_id, $form_values) { variable_set('emails_sent', 0); autoresponder_cron(); drupal_set_message('E-Mails successfully sent!'); } function autoresponder_user_unsubscribe() { return drupal_get_form('autoresponder_user_unsubscribe_confirm'); } function autoresponder_user_unsubscribe_confirm() { $id = arg(2); if ($id) { $result = db_query("SELECT a.*, at.name, au.email FROM autoresponder AS a LEFT JOIN autoresponder_sets AS at ON a.setid = at.id LEFT JOIN autoresponder_users AS au ON a.uid = au.id WHERE au.id = %d LIMIT 1 ", $id); $us = db_fetch_object($result); if (db_num_rows($result) > 0) { $form = array(); $form['id'] = array( '#type' => 'hidden', '#value' => $id ); $form['email'] = array( '#type' => 'hidden', '#value' => $us->email ); $form['set'] = array( '#type' => 'hidden', '#value' => $us->name ); $z = confirm_form( $form, t('Are you sure you want to unsubscribe \''.$us->email.'\' from mailing list \''.$us->name.'\'?'), '', t('This action cannot be undone.'), t('Unsubscribe'), t('Cancel')); return $z; } else drupal_goto(); } else drupal_goto(); } function autoresponder_cron() { $messages_count = 0; $user_count = 0; $emails_sent = variable_get('emails_sent', 0); if ((time() - $emails_sent) > (60*60*24) || $emails_sent == 0) { $result_users = db_query("SELECT a.*, at.name, au.nid, au.email, au.reg_date FROM {autoresponder} AS a LEFT JOIN {autoresponder_sets} AS at ON a.setid = at.id LEFT JOIN {autoresponder_users} AS au ON a.uid = au.id WHERE at.active = 1 "); while ($u = db_fetch_array($result_users)) { $tmp = (time() - $u['reg_date']) / (60*60*24); $day = floor($tmp); if (!$day) continue; $result_messages = db_query("SELECT * FROM {autoresponder_messages} WHERE day = %d AND mset= %d ", $day, $u['setid']); while ($message = db_fetch_array($result_messages)) { if (autoresponder_mail($u, $message)) $messages_count = $messages_count + 1; } $user_count = $user_count + 1; } variable_set('emails_sent', time()); watchdog('autoresponder', 'Mass mailing: '.$messages_count.' e-mail(s) sent to '.$user_count.' user(s)'); } } function phpWrapper($content) { ob_start(); eval('?>'.trim($content).'-------------------------
To unsubscribe from the list follow this link $url"; $headers = "From: $from\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type:multipart/alternative;\r\n" . "\tboundary=\"{$mime_boundary}\"\n"; //$headers.= "From: $from\r\n"; $text = "This is a multi-part message in MIME format.\n\n" . "\n--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . strip_tags($message_body)."\n".$unsubscribe_text."\n". "\n--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message_body."\n".$unsubscribe_html."\n"; $text = wordwrap($text, 70); return mail($to, $subject, $text, $headers); } function autoresponder_user_list() { switch (arg(4)) { case 'delete': return drupal_get_form('autoresponder_user_delete_confirm'); } $output .= drupal_get_form('autoresponder_user_list_form', $form); return $output; } function autoresponder_user_delete_confirm() { $result = db_query("SELECT * FROM {autoresponder_users} WHERE id = %d LIMIT 1", arg(5)); $us = db_fetch_object($result); $form['id'] = array( '#type' => 'hidden', '#value' => arg(5) ); $form['email'] = array( '#type' => 'hidden', '#value' => $us->email ); $z = confirm_form($form, t('Are you sure you want to delete \''.$us->email.'\'?'), 'admin/settings/autoresponder/user/list', t('This action cannot be undone. '), t('Delete'), t('Cancel')); return $z; } function autoresponder_user_list_form() { $result = db_query("SELECT a.*, at.name, au.email, au.reg_date FROM autoresponder AS a LEFT JOIN autoresponder_sets AS at ON a.setid = at.id LEFT JOIN autoresponder_users AS au ON a.uid = au.id "); while ($us = db_fetch_object($result)) { $date = date("m.d.y", $us->reg_date); $tmp = (time() - $us->reg_date) / (60*60*24); $day = floor($tmp); $rows[$us->uid] = array( '', $us->email, $us->name, $date, $day, l(t('Delete'), 'admin/settings/autoresponder/user/delete/'.$us->uid), '' ); $row = implode("%%%", $rows[$us->uid]); $form['checks'][$us->uid] = array( '#type' => 'checkbox', '#default_value' => 0, '#description' => $row ); } if ($rows) $form['delete'] = array( '#type' => 'submit', '#value' => t('Delete users') ); if (!$rows) $form['no_users'] = array( '#type' => 'markup', '#value' => 'No users in autoresponder database!' ); return $form; } function autoresponder_mail_list() { switch (arg(4)) { case 'edit': $result = db_query("SELECT * FROM {autoresponder_messages} WHERE id = %d LIMIT 1", arg(5)); return autoresponder_mail_edit_create(db_fetch_array($result)); case 'add': return autoresponder_mail_edit_create(array()); case 'delete': return drupal_get_form('autoresponder_mail_delete_confirm'); } return drupal_get_form('autoresponder_mail_list_form'); } function autoresponder_mail_delete_confirm() { $result = db_query("SELECT * FROM {autoresponder_messages} WHERE id = %d LIMIT 1", arg(5)); $mail = db_fetch_object($result); $form['id'] = array( '#type' => 'hidden', '#value' => arg(5) ); $form['subject'] = array( '#type' => 'hidden', '#value' => $mail->subject ); return confirm_form($form, t('Are you sure you want to delete \''.$mail->subject.'\'?'), 'admin/settings/autoresponder/mail/list', t('This action cannot be undone. '), t('Delete'), t('Cancel')); } function autoresponder_mail_list_form() { $result = db_query("SELECT am.*, at.name FROM {autoresponder_messages} as am LEFT JOIN {autoresponder_sets} as at ON am.mset = at.id ORDER BY am.subject ASC, am.day ASC "); while ($mail = db_fetch_object($result)) { $rows[$mail->id] = array( '', $mail->subject, $mail->day, $mail->name, l(t('Edit'), 'admin/settings/autoresponder/mail/edit/'.$mail->id).' | ', l(t('Delete'), 'admin/settings/autoresponder/mail/delete/'.$mail->id), '' ); $row = implode("%%%", $rows[$mail->id]); $form['checks'][$mail->id] = array( '#type' => 'checkbox', '#default_value' => 0, '#description' => $row ); } if ($rows) $form['delete'] = array( '#type' => 'submit', '#value' => t('Delete messages') ); if (!$rows) $form['no_messages'] = array( '#type' => 'markup', '#value' => t('No messages in database! You can add them '.l(t('here...'), 'admin/settings/autoresponder/mail/add')) ); return $form; } function autoresponder_set_list() { switch (arg(4)) { case 'edit': $result = db_query("SELECT * FROM {autoresponder_sets} WHERE id=%d LIMIT 1", arg(5)); return autoresponder_set_edit_create(db_fetch_array($result)); case 'add': return autoresponder_set_edit_create(array()); case 'activate': return autoresponder_set_activate(arg(5)); case 'deactivate': return autoresponder_set_deactivate(arg(5)); case 'delete': return drupal_get_form('autoresponder_set_delete_confirm'); } $output .= drupal_get_form('autoresponder_set_list_form'); return $output; } function autoresponder_set_delete_confirm() { $result = db_query("SELECT * FROM {autoresponder_sets} WHERE id = %d LIMIT 1", arg(5)); $set = db_fetch_object($result); $form['id'] = array( '#type' => 'hidden', '#value' => arg(5) ); $form['name'] = array( '#type' => 'hidden', '#value' => $set->name ); return confirm_form($form, t('Are you sure you want to delete \''.$set->name.'\'?'), 'admin/settings/autoresponder/set/list', t('This action cannot be undone. All messages from this set will be deleted too.'), t('Delete'), t('Cancel')); } function autoresponder_set_list_form() { $sql = "SELECT * FROM {autoresponder_sets}"; $result = db_query($sql); while ($set = db_fetch_object($result)) { $rows[$set->id] = array( '', $set->name, $set->active == 0 ? l(t('Activate'), 'admin/settings/autoresponder/set/activate/'.$set->id) : l(t('Deactivate'), 'admin/settings/autoresponder/set/deactivate/'.$set->id), l(t('Edit'), 'admin/settings/autoresponder/set/edit/'.$set->id), l(t('Delete'), 'admin/settings/autoresponder/set/delete/'.$set->id), l(t('Add message'), 'admin/settings/autoresponder/mail/add/'.$set->id), '' ); $row = implode("%%%", $rows[$set->id]); $form['checks'][$set->id] = array( '#type' => 'checkbox', '#default_value' => 0, '#description' => $row ); } if ($rows) $form['delete'] = array( '#type' => 'submit', '#value' => t('Delete sets') ); if (!$rows) $form['no_sets'] = array( '#type' => 'markup', '#value' => t('No mailing list users in database! You can add them '.l(t('here...'), 'admin/settings/autoresponder/set/add')) ); return $form; } function theme_autoresponder_user_list_form($form) { $header = array( '', array('data' => t('E-mail')), array('data' => t('Set')), array('data' => t('Register date')), array('data' => t('Now On Day #')), array('data' => t('Functions'), 'colspan' => 3) ); if ($form['checks']) foreach ($form['checks'] AS $key => $value) { if (is_int($key)) { $form['checks'][$key]['#description'] = ""; $row = explode('%%%', $value['#description']); $row[0] = drupal_render($form['checks'][$key]); $class = array_pop($row); $rows[] = array( 'data' => $row, 'class' => $class ); } } $output = theme('table', $header, $rows); $output .= "
".drupal_render($form); return $output; } function autoresponder_user_list_form_submit($form_id, $form_values) { switch ($form_values['op']) { case t('Delete users'): foreach ($_POST AS $key => $value) if (is_int($key)) $id[] = $key; if ($id) $ids = implode(",", $id); $count = count($id); if ($count) { $form['count'] = array( '#type' => 'hidden', '#value' => $count ); $form['ids'] = array( '#type' => 'hidden', '#value' => $ids ); db_query("DELETE FROM {autoresponder_users} WHERE id IN (%s)", $ids); db_query("DELETE FROM {autoresponder} WHERE uid IN (%s)", $ids); drupal_set_message($count.' user(s) has been deleted successfully!'); drupal_goto('admin/settings/autoresponder/user/list'); } else drupal_set_message('There are no selected users!'); break; } } function autoresponder_mail_list_form_submit($form_id, $form_values) { switch ($form_values['op']) { case t('Delete messages'): foreach ($_POST AS $key => $value) if (is_int($key)) $id[] = $key; if ($id) $ids = implode(",", $id); $count = count($id); if ($count) { $form['count'] = array( '#type' => 'hidden', '#value' => $count ); $form['ids'] = array( '#type' => 'hidden', '#value' => $ids ); db_query("DELETE FROM {autoresponder_messages} WHERE id IN (%s)", $ids); drupal_set_message($count.' message(s) has been deleted successfully!'); drupal_goto('admin/settings/autoresponder/mail/list'); } else drupal_set_message('There are no selected messages!'); } } function autoresponder_set_list_form_submit($form_id, $form_values) { switch ($form_values['op']) { case t('Delete sets'): foreach ($_POST AS $key => $value) if (is_int($key)) $id[] = $key; if ($id) $ids = implode(",", $id); $count = count($id); if ($count) { $form['count'] = array( '#type' => 'hidden', '#value' => $count ); $form['ids'] = array( '#type' => 'hidden', '#value' => $ids ); db_query("DELETE FROM {autoresponder_sets} WHERE id IN (%s)", $ids); drupal_set_message($count.' set(s) has been deleted successfully!'); drupal_goto('admin/settings/autoresponder/set/list'); } else drupal_set_message('There are no selected sets!'); } } function theme_autoresponder_set_list_form($form) { $header = array( '', array('data' => t('Name')), array('data' => t('Functions'), 'colspan' => 4) ); if ($form['checks']) foreach ($form['checks'] AS $key => $value) { if (is_int($key)) { $form['checks'][$key]['#description'] = ""; $row = explode('%%%', $value['#description']); $row[0] = drupal_render($form['checks'][$key]); $class = array_pop($row); $rows[] = array( 'data' => $row, 'class' => $class ); } } $output = theme('table', $header, $rows); $output .= '
'.drupal_render($form); return $output; } function theme_autoresponder_mail_list_form($form) { $header = array( '', array('data' => t('Subject')), array('data' => t('Day #')), array('data' => t('Set')), array('data' => t('Functions'), 'colspan' => 2) ); if ($form['checks']) foreach ($form['checks'] AS $key => $value) { if (is_int($key)) { $form['checks'][$key]['#description'] = ""; $row = explode('%%%', $value['#description']); $row[0] = drupal_render($form['checks'][$key]); $class = array_pop($row); $rows[] = array( 'data' => $row, 'class' => $class ); } } $output = theme('table', $header, $rows); $output .= "
".drupal_render($form); return $output; } function autoresponder_block($op = 'list', $delta = 0, $edit = array()) { switch ($op) { case 'list': $blocks[0]['info'] = t('Autoresponder'); return $blocks; case 'configure': $form = array(); if ($delta == 0) { // Here will be configure form (if needed) } return $form; case 'save': if ($delta == 0) { // Save configured settings } return; case 'view': default: switch ($delta) { case 0: $block['subject'] = t('Autoresponder'); $block['content'] = autoresponder_contents(1); $block['weight'] = 0; $block['enabled'] = 1; break; } return $block; } } function autoresponder_contents($which_block) { if ($which_block == 1) { return drupal_get_form('autoresponder_email_enter'); } } function autoresponder_email_enter($nid, $email) { $sql = "SELECT * FROM {autoresponder_sets}"; $result = db_query($sql); $sets = array(); while ($set = db_fetch_object($result)) { if ($set->active) $sets["$set->id"] = $set->name; } if (empty($sets)) $sets = array('empty' => ''); $form['lead-nid'] = array( '#type' => 'hidden', '#default_value' => $nid ); $form['email'] = array( '#type' => 'textfield', '#title' => t('E-mail'), '#default_value' => $email, '#size' => 25, '#description' => 'Enter your e-mail to sign up for a series of emails', '#required' => TRUE, '#weight' => 1 ); $form['set'] = array( '#type' => 'select', '#title' => t('Category'), '#options' => $sets, '#description' => t('Select preferred list'), '#required' => TRUE, ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Signup'), '#weight' => 3 ); return $form; } function autoresponder_set_edit_create($set) { return drupal_get_form('autoresponder_set_edit_create_form', $set); } function autoresponder_set_edit_create_form($set) { $form['name'] = array( '#type' => 'textfield', '#title' => t('Title'), '#default_value' => $set['name'], '#size' => 60, '#maxlength' => 64, '#description' => t('Enter mailing list set title'), '#required' => TRUE ); $form['active'] = array( '#type' => 'checkbox', '#title' => t('Active'), '#default_value' => $set['active'], '#description' => t('Check this to create a active set'), ); $form['submit' ] = array( '#type' => 'submit', '#value' => t('OK') ); if ($set['id']) { $form['id'] = array( '#type' => 'hidden', '#value' => $set['id'] ); } return $form; } function autoresponder_mail_edit_create($mail) { return drupal_get_form('autoresponder_mail_edit_create_form', $mail); } function autoresponder_mail_edit_create_form($mail) { $sql = "SELECT * FROM {autoresponder_sets}"; $result = db_query($sql); $sets = array(); while ($set = db_fetch_object($result)) if ($set->active) $sets["$set->id"] = $set->name; $setid = arg(5); $form['subject'] = array( '#type' => 'textfield', '#title' => t('Subject'), '#default_value' => $mail['subject'], '#size' => 60, '#maxlength' => 64, '#description' => t('Enter message subject'), '#required' => TRUE ); $form['set'] = array( '#type' => 'select', '#title' => t('Category'), '#options' => $sets, '#description' => t('Select preferred list'), '#default_value' => !empty($setid) ? $setid : $mail['mset'], '#required' => TRUE, ); $form['day'] = array( '#type' => 'textfield', '#title' => t('Day #'), '#default_value' => $mail['day'], '#size' => 3, '#maxlength' => 128, '#required' => TRUE, '#description' => 'Enter the day #, when email must be sent' ); $form['body'] = array( '#type' => 'textarea', '#title' => t('Body'), '#default_value' => $mail['body'], '#required' => TRUE, '#rows' => 15, '#description' => 'Enter an e-mail body' ); $form['phpcode'] = array( '#type' => 'textarea', '#title' => t('Variables used in the email'), '#default_value' => $mail['phpcode'], '#required' => FALSE, '#rows' => 7, '#description' => "Do not include php opening tags <?php and ?> . List only variables as %fname|\$node->field_first_name[0]['value'] - one set per line. Any other code will result in error." ); $form['submit' ] = array( '#type' => 'submit', '#value' => t('OK') ); if ($mail['id']) { $form['id'] = array( '#type' => 'hidden', '#value' => $mail['id'] ); } return $form; } function autoresponder_email_enter_validate($form_id, $form_values) { if (!valid_email_address($form_values['email'])) form_set_error('email', 'Email address is wrong. Example: john@coolsite.com'); $result = db_query("SELECT * FROM {autoresponder_users} WHERE email = '%s'", $form_values['email']); $exist = db_num_rows($result); if ($exist) form_set_error('email','The email address '.$form_values['email'].' you provide is already registered.'); } function autoresponder_email_enter_submit($form_id, $form_values) { $auid = db_next_id('{autoresponder_users}'); $time = time(); db_query("INSERT INTO {autoresponder_users} (id, nid, email, reg_date) VALUES(%d, %d, '%s', %d)", $auid, $form_values['lead-nid'], $form_values['email'], $time); $aid = db_next_id('{autoresponder}'); db_query("INSERT INTO {autoresponder} (id, uid, setid) VALUES(%d, %d, %d)", $aid, $auid, $form_values['set']); $result_messages = db_query("SELECT * FROM {autoresponder_messages} WHERE day = %d AND mset= %d ", 0, $form_values['set']); $message = db_fetch_array($result_messages); autoresponder_mail(array('email' => $form_values['email'], 'nid' => $form_values['lead-nid'], 'uid' => $auid), $message); drupal_set_message('Your email address \''.$form_values['email'].'\' is added to our mailing list! Please check your email.'); } function autoresponder_user_delete_confirm_submit($form_id, $form_values) { db_query("DELETE FROM {autoresponder_users} WHERE id = %d", $form_values['id']); db_query("DELETE FROM {autoresponder} WHERE uid = %d", $form_values['id']); drupal_set_message('User \''.$form_values['email'].'\' successfully deleted!'); drupal_goto('admin/settings/autoresponder/user/list'); } function autoresponder_mail_delete_confirm_submit($form_id, $form_values) { db_query("DELETE FROM {autoresponder_messages} WHERE id = %d", $form_values['id']); drupal_set_message('Message \''.$form_values['subject'].'\' successfully deleted!'); drupal_goto('admin/settings/autoresponder/mail/list'); } function autoresponder_set_delete_confirm_submit($form_id, $form_values) { db_query("DELETE FROM {autoresponder_sets} WHERE id = %d", $form_values['id']); db_query("DELETE FROM {autoresponder_messages} WHERE mset = %d", $form_values['id']); db_query("DELETE FROM {autoresponder} WHERE setid = %d", $form_values['id']); drupal_set_message('Set \''.$form_values['name'].'\' successfully deleted! Messages, that associated with this set was deleted too.'); drupal_goto('admin/settings/autoresponder/set/list'); } function autoresponder_set_edit_create_form_submit($form_id, $form_values) { $id = db_next_id('{autoresponder_sets}'); if ($form_values['id']) { db_query("UPDATE {autoresponder_sets} SET name = '%s', active = '%s' WHERE id = %d", $form_values['name'], $form_values['active'], $form_values['id']); drupal_set_message('Mail set \''.$form_values['name'].'\' successfully updated!'); } else { db_query("INSERT INTO {autoresponder_sets} (id, name, active) VALUES(%d, '%s', '%s')", $id, $form_values['name'], $form_values['active'] ); drupal_set_message('New messages set \''.$form_values['name'].'\' successfully added as '.($form_values['active'] ? 'active' : 'inactive').'! Add messages to this list '.l(t(here), 'admin/administration/mail/add/'.$id)); } return 'admin/settings/autoresponder/set/list'; } function autoresponder_mail_edit_create_form_validate($form_id, $form_values) { if (!is_numeric($form_values['day'])) form_set_error('day', 'The day must be a number. Example: 10'); } function autoresponder_mail_edit_create_form_submit($form_id, $form_values) { $id = db_next_id('{autoresponder_messages}'); if ($form_values['id']) { db_query("UPDATE {autoresponder_messages} SET subject = '%s', body = '%s', phpcode = '%s', mset = '%s', day = %d WHERE id = %d", $form_values['subject'], $form_values['body'], $form_values['phpcode'], $form_values['set'], $form_values['day'], $form_values['id']); drupal_set_message('Mail set \''.$form_values['subject'].'\' successfully updated!'); } else { db_query("INSERT INTO {autoresponder_messages} (id, subject, body, phpcode, mset, day) VALUES(%d, '%s', '%s', '%s', %d, '%s')", $id, $form_values['subject'], $form_values['body'], $form_values['phpcode'], $form_values['set'], $form_values['day'] ); drupal_set_message('New message \''.$form_values['subject'].'\' successfully added on day '.$form_values['day'].'!'); } return 'admin/settings/autoresponder/mail/list'; } function autoresponder_user_unsubscribe_confirm_submit($form_id, $form_values) { db_query("DELETE FROM {autoresponder_users} WHERE id = %d", $form_values['id']); db_query("DELETE FROM {autoresponder} WHERE uid = %d", $form_values['id']); drupal_set_message('\''.$form_values['email'].'\' successfully removed from \''.$form_values['set'].'\' mailing list!'); drupal_goto(); } function autoresponder_set_activate($id) { $query = db_query("SELECT * FROM {autoresponder_sets} WHERE id=%d LIMIT 1", $id); $set = db_fetch_object($query); db_query("UPDATE {autoresponder_sets} SET active = 1 WHERE id = %d", $id); drupal_set_message('Set \''.$set->name.'\' successfully activated!'); drupal_goto('admin/settings/autoresponder/set/list'); } function autoresponder_set_deactivate($id) { $query = db_query("SELECT * FROM {autoresponder_sets} WHERE id=%d LIMIT 1", $id); $set = db_fetch_object($query); db_query("UPDATE {autoresponder_sets} SET active = 0 WHERE id = %d", $id); drupal_set_message('Set \''.$set->name.'\' successfully deactivated!'); drupal_goto('admin/settings/autoresponder/set/list'); } ?>