'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');
}
?>