? autoresponder-d6.patch Index: autoresponder.info =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/autoresponder/autoresponder.info,v retrieving revision 1.1.4.4 diff -u -p -r1.1.4.4 autoresponder.info --- autoresponder.info 30 Jul 2007 08:24:18 -0000 1.1.4.4 +++ autoresponder.info 5 Jul 2008 19:50:44 -0000 @@ -1,5 +1,6 @@ ; $Id $ name = Autoresponder description = Allow a site visitor to sign up for a series of emails sent each day via a cron job. -dependencies = mimemail -version = 5.x-1.x-dev \ No newline at end of file +core = 6.x +dependencies[] = mimemail +version = 6.x-1.x-dev Index: autoresponder.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/autoresponder/autoresponder.install,v retrieving revision 1.1.2.5 diff -u -p -r1.1.2.5 autoresponder.install --- autoresponder.install 11 Sep 2007 13:28:49 -0000 1.1.2.5 +++ autoresponder.install 5 Jul 2008 19:50:45 -0000 @@ -3,77 +3,142 @@ //$Id: autoresponder.install,v 1.1.2.5 2007/09/11 13:28:49 cyberpunk Exp $ /** + * Schema specification for Drupal 6 + */ +function autoresponder_schema() { + $schema = array(); + + $schema['autoresponder_users'] = array( + 'description' => t('The autoresponder users'), + 'fields' => array( + 'id' => array( + 'description' => t('Identifies the autoresponder subscriber'), + 'type' => 'serial', + 'not null' => TRUE, + ), + 'email' => array( + 'description' => t("The subscriber's e-mail address"), + 'type' => 'varchar', + 'length' => 50, + 'not null' => TRUE, + ), + 'reg_date' => array( + 'description' => t("Registration date"), + 'type' => 'int', + 'not null' => TRUE, + ), + ), + 'primary key' => array('id'), + ); + + $schema['autoresponder_messages'] = array( + 'description' => t('The individual messages which can be part of {autoresponder_sets}'), + 'fields' => array( + 'id' => array( + 'description' => t('Identifies the message'), + 'type' => 'serial', + 'not null' => TRUE, + ), + 'subject' => array( + 'description' => t('The mail subject'), + 'type' => 'varchar', + 'length' => 50, + 'not null' => TRUE, + ), + 'body' => array( + 'description' => t('The mail body'), + 'type' => 'text', + 'size' => 'normal', + 'not null' => TRUE, + ), + 'day' => array( + 'description' => t('The day when the message is sent'), + 'type' => 'int', + 'not null' => FALSE, + ), + 'mset' => array( + 'description' => t('The {autoresponder_sets}.id which this message is part of'), + 'type' => 'int', + 'not null' => FALSE, + ), + ), + 'primary key' => array('id'), + ); + + $schema['autoresponder_sets'] = array( + 'description' => t('Message sets'), + 'fields' => array( + 'id' => array( + 'description' => t('Message set identifier'), + 'type' => 'serial', + 'not null' => TRUE, + ), + 'name' => array( + 'description' => t('Message set name'), + 'type' => 'varchar', + 'length' => 50, + 'not null' => TRUE, + ), + 'description' => array( + 'description' => t('Message set description'), + 'type' => 'text', + 'size' => 'normal', + 'not null' => TRUE, + ), + 'message' => array( + 'description' => t('Message that is shown to the user after successful subscribing'), + 'type' => 'text', + 'size' => 'normal', + 'not null' => TRUE, + ), + 'active' => array( + 'description' => t('Indicates this is an active set or not'), + 'type' => 'int', + 'size' => 'small', + 'not null' => TRUE, + ), + 'unsubscribe' => array( + 'description' => t('User automatically unsubscribed when last mail sent or not'), + 'type' => 'int', + 'size' => 'small', + 'not null' => TRUE, + 'default' => 0, + ), + ), + 'primary key' => array('id'), + ); + + $schema['autoresponder'] = array( + 'description' => t('Pairs {autoresponder_users} and {autoresponder_sets}'), + 'fields' => array( + 'id' => array( + 'description' => t('Identifies the user-set pair'), + 'type' => 'serial', + 'not null' => TRUE, + ), + 'uid' => array( + 'description' => t('{autoresponder_users}.id'), + 'type' => 'int', + 'not null' => TRUE, + ), + 'setid' => array( + 'description' => t('{autoresponder_sets}.id'), + 'type' => 'int', + 'not null' => TRUE, + ), + ), + 'primary key' => array('id'), + ); + + return $schema; +} + +/** * Install the database schema */ function autoresponder_install() { variable_set('emails_sent', '0'); - switch($GLOBALS['db_type']) { - case 'mysql': - case 'mysqli': - db_query("CREATE TABLE {autoresponder_users} ( - id int(11) NOT NULL default '0', - email char(50) NOT NULL, - reg_date int(11) NOT NULL, - PRIMARY KEY (id) - );"); - db_query("CREATE TABLE {autoresponder_messages} ( - id int(11) NOT NULL default '0', - subject char(50) NOT NULL, - body text NOT NULL, - day int(11) default NULL, - mset int(11) default NULL, - PRIMARY KEY (id) - );"); - db_query("CREATE TABLE {autoresponder_sets} ( - id int(11) NOT NULL default '0', - name char(50) NOT NULL, - description text NOT NULL, - message text NOT NULL, - active bool NOT NULL, - unsubscribe bool NOT NULL, - PRIMARY KEY (id) - );"); - db_query("CREATE TABLE {autoresponder} ( - id int(11) NOT NULL default '0', - uid int(11) NOT NULL, - setid int(11) NOT NULL, - PRIMARY KEY (id) - );"); - drupal_set_message(t("The database schema for the autoresponder module was created.")); - break; - case 'pgsql': - db_query("CREATE TABLE {autoresponder_users} ( - id integer NOT NULL UNIQUE, - email char(50) NOT NULL, - reg_date integer NOT NULL - );"); - db_query("CREATE TABLE {autoresponder_messages} ( - id integer NOT NULL UNIQUE, - subject char(50) NOT NULL, - body text NOT NULL, - day integer default NULL, - mset integer default NULL - );"); - db_query("CREATE TABLE {autoresponder_sets} ( - id integer NOT NULL UNIQUE, - name char(50) NOT NULL, - description text NOT NULL, - message text NOT NULL, - active smallint NOT NULL, - unsubscribe smallint NOT NULL - );"); - db_query("CREATE TABLE {autoresponder} ( - id integer NOT NULL UNIQUE, - uid integer NOT NULL, - setid integer NOT NULL - );"); - db_query("CREATE SEQUENCE {autoresponder_users}_seq"); - db_query("CREATE SEQUENCE {autoresponder_messages}_seq"); - db_query("CREATE SEQUENCE {autoresponder_sets}_seq"); - db_query("CREATE SEQUENCE {autoresponder}_seq"); - drupal_set_message(t("The database schema for the autoresponder module was created.")); - break; - } + drupal_install_schema('autoresponder'); } /** @@ -81,25 +146,5 @@ function autoresponder_install() { */ function autoresponder_uninstall() { variable_del('emails_sent'); - switch($GLOBALS['db_type']) { - case 'mysql': - case 'mysqli': - db_query("DROP TABLE {autoresponder_users}"); - db_query("DROP TABLE {autoresponder_messages}"); - db_query("DROP TABLE {autoresponder_sets}"); - db_query("DROP TABLE {autoresponder}"); - break; - case 'pgsql': - db_query("DROP TABLE {autoresponder_users}"); - db_query("DROP TABLE {autoresponder_messages}"); - db_query("DROP TABLE {autoresponder_sets}"); - db_query("DROP TABLE {autoresponder}"); - db_query("DROP SEQUENCE {autoresponder_users}_seq"); - db_query("DROP SEQUENCE {autoresponder_messages}_seq"); - db_query("DROP SEQUENCE {autoresponder_sets}_seq"); - db_query("DROP SEQUENCE {autoresponder}_seq"); - drupal_set_message(t("Autoresponder module successfully uninstalled.")); - break; - } + drupal_uninstall_schema('autoresponder'); } -?> \ No newline at end of file Index: autoresponder.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/autoresponder/autoresponder.module,v retrieving revision 1.6.2.26 diff -u -p -r1.6.2.26 autoresponder.module --- autoresponder.module 3 Jul 2008 15:33:15 -0000 1.6.2.26 +++ autoresponder.module 5 Jul 2008 19:50:48 -0000 @@ -6,175 +6,153 @@ function autoresponder_perm() { return array('configure autoresponder', 'autoresponder massmail'); } -function autoresponder_menu($may_cache) { +function autoresponder_menu() { $items = array(); - if ($may_cache) { - global $user; - $items[] = array( - 'path' => 'autoresponder/unsubscribe', - 'access' => TRUE, - 'callback' => 'autoresponder_user_unsubscribe', - 'type' => MENU_CALLBACK - ); - $items[] = array( - 'path' => 'autoresponder/mail', - 'access' => TRUE, - 'callback' => 'drupal_get_form', - 'callback arguments' => array('autoresponder_mail_show_form'), - 'title' => t('View message'), - 'type' => MENU_CALLBACK - ); - $items[] = array( - 'path' => 'admin/settings/autoresponder', - 'title' => t('Autoresponder'), - 'access' => user_access('configure autoresponder'), - 'callback' => 'system_admin_menu_block_page', - 'description' => t('Autoresponder control panel') - ); - $items[] = array( - 'path' => 'admin/settings/autoresponder/settings', - 'title' => t('Autoresponder settings'), - 'access' => user_access('autoresponder settings'), - 'callback' => 'drupal_get_form', - 'callback arguments' => array('autoresponder_admin_settings'), - 'description' => t('Settings'), - 'weight' => 7 - ); - $items[] = array( - 'path' => 'admin/settings/autoresponder/massmailer', - 'title' => t('Mass-Mailer'), - 'access' => user_access('autoresponder massmail'), - 'callback' => 'drupal_get_form', - 'callback arguments' => array('autoresponder_set_massmail_form'), - 'description' => t('Sets/Subscribers/Roles mass-mailer') - ); - $items[] = array( - 'path' => 'admin/settings/autoresponder/massmailer/sets', - 'title' => t('Sets mass-mailing'), - 'access' => user_access('autoresponder massmail'), - 'type' => MENU_DEFAULT_LOCAL_TASK, - 'callback' => 'drupal_get_form', - 'callback arguments' => array('autoresponder_set_massmail_form'), - 'weight' => 0 - ); - $items[] = array( - 'path' => 'admin/settings/autoresponder/massmailer/role', - 'title' => t('Role mass-mailing'), - 'access' => user_access('autoresponder massmail'), - 'type' => MENU_LOCAL_TASK, - 'callback' => 'drupal_get_form', - 'callback arguments' => array('autoresponder_role_massmail_form'), - 'weight' => 1 - ); - $items[] = array( - 'path' => 'admin/settings/autoresponder/massmailer/all', - 'title' => t('All subscribers mass-mailing'), - 'access' => user_access('autoresponder massmail'), - 'type' => MENU_LOCAL_TASK, - 'callback' => 'drupal_get_form', - 'callback arguments' => array('autoresponder_all_massmail_form'), - 'weight' => 2 - ); - - $items[] = array( - 'path' => 'admin/settings/autoresponder/user/list', - 'title' => t('Users'), - 'access' => user_access('configure autoresponder'), - 'callback' => 'autoresponder_user_list', - 'description' => t('Subscribers overview'), - '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'), - 'access' => user_access('configure autoresponder'), - 'callback' => 'autoresponder_mail_list', - 'description' => t('Messages overview'), - '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'), - 'access' => user_access('configure autoresponder'), - 'callback' => 'autoresponder_set_list', - 'description' => t('E-mails sets overview'), - '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', - 'description' => t('Status of e-mails sending. Manual mailing.'), - 'weight' => 6 - ); - } + global $user; + $items['autoresponder/unsubscribe'] = array( + 'access callback' => TRUE, + 'page callback' => 'autoresponder_user_unsubscribe', + 'type' => MENU_CALLBACK + ); + $items['autoresponder/mail'] = array( + 'access callback' => TRUE, + 'page callback' => 'drupal_get_form', + 'page arguments' => array('autoresponder_mail_show_form'), + 'title' => 'View message', + 'type' => MENU_CALLBACK + ); + $items['admin/settings/autoresponder'] = array( + 'title' => 'Autoresponder', + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'system_admin_menu_block_page', + 'description' => 'Autoresponder control panel' + ); + $items['admin/settings/autoresponder/settings'] = array( + 'title' => 'Autoresponder settings', + 'access arguments' => array('autoresponder settings'), + 'page callback' => 'drupal_get_form', + 'page arguments' => array('autoresponder_admin_settings'), + 'description' => 'Settings', + 'weight' => 7 + ); + $items['admin/settings/autoresponder/massmailer'] = array( + 'title' => 'Mass-Mailer', + 'access arguments' => array('autoresponder massmail'), + 'page callback' => 'drupal_get_form', + 'page arguments' => array('autoresponder_set_massmail_form'), + 'description' => 'Sets/Subscribers/Roles mass-mailer' + ); + $items['admin/settings/autoresponder/massmailer/sets'] = array( + 'title' => 'Sets mass-mailing', + 'access arguments' => array('autoresponder massmail'), + 'type' => MENU_DEFAULT_LOCAL_TASK, + 'page callback' => 'drupal_get_form', + 'page arguments' => array('autoresponder_set_massmail_form'), + 'weight' => 0 + ); + $items['admin/settings/autoresponder/massmailer/role'] = array( + 'title' => 'Role mass-mailing', + 'access arguments' => array('autoresponder massmail'), + 'type' => MENU_LOCAL_TASK, + 'page callback' => 'drupal_get_form', + 'page arguments' => array('autoresponder_role_massmail_form'), + 'weight' => 1 + ); + $items['admin/settings/autoresponder/massmailer/all'] = array( + 'title' => 'All subscribers mass-mailing', + 'access arguments' => array('autoresponder massmail'), + 'type' => MENU_LOCAL_TASK, + 'page callback' => 'drupal_get_form', + 'page arguments' => array('autoresponder_all_massmail_form'), + 'weight' => 2 + ); + + $items['admin/settings/autoresponder/user/list'] = array( + 'title' => 'Users', + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_user_list', + 'description' => 'Subscribers overview', + 'weight' => 0 + ); + $items['admin/settings/autoresponder/user/edit'] = array( + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_user_list', + 'type' => MENU_CALLBACK, + 'weight' => 1 + ); + $items['admin/settings/autoresponder/user/delete'] = array( + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_user_list', + 'type' => MENU_CALLBACK, + ); + + $items['admin/settings/autoresponder/mail/list'] = array( + 'title' => 'Messages', + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_mail_list', + 'description' => 'Messages overview', + 'weight' => 2 + ); + $items['admin/settings/autoresponder/mail/add'] = array( + 'title' => 'Add message', + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_mail_list', + 'type' => MENU_LOCAL_TASK, + 'weight' => 3 + ); + $items['admin/settings/autoresponder/mail/edit'] = array( + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_mail_list', + 'type' => MENU_CALLBACK, + ); + $items['admin/settings/autoresponder/mail/delete'] = array( + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_mail_list', + 'type' => MENU_CALLBACK, + ); + $items['admin/settings/autoresponder/set/list'] = array( + 'title' => 'Sets', + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_set_list', + 'description' => 'E-mails sets overview', + 'weight' => 4 + ); + + $items['admin/settings/autoresponder/set/add'] = array( + 'title' => 'Add set', + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_set_list', + 'type' => MENU_LOCAL_TASK, + 'weight' => 5 + ); + $items['admin/settings/autoresponder/set/activate'] = array( + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_set_list', + 'type' => MENU_CALLBACK, + ); + $items['admin/settings/autoresponder/set/deactivate'] = array( + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_set_list', + 'type' => MENU_CALLBACK, + ); + $items['admin/settings/autoresponder/set/edit'] = array( + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_set_list', + 'type' => MENU_CALLBACK, + ); + $items['admin/settings/autoresponder/set/delete'] = array( + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_set_list', + 'type' => MENU_CALLBACK, + ); + + $items['admin/settings/autoresponder/status'] = array( + 'title' => 'Status', + 'access arguments' => array('configure autoresponder'), + 'page callback' => 'autoresponder_status', + 'description' => 'Status of e-mails sending. Manual mailing.', + 'weight' => 6 + ); return $items; } @@ -191,7 +169,7 @@ function autoresponder_admin_settings() '#default_value' => variable_get('autoresponder_select_type', 'select'), '#options' => array('select' => t('Dropdown list'), 'checkboxes' => t('Multiple select list')) ); - if (db_num_rows(db_query('SELECT * FROM {autoresponder_sets}')) > 1) { + if (db_result(db_query('SELECT COUNT(*) FROM {autoresponder_sets}')) > 1) { $hide = TRUE; } $form['block_settings']['autoresponder_hide_select'] = array( @@ -256,7 +234,7 @@ function autoresponder_status_form() { return $form; } -function autoresponder_status_form_submit($form_id, $form_values) { +function autoresponder_status_form_submit($form, &$form_state) { variable_set('emails_sent', 0); autoresponder_cron(); drupal_set_message(t('E-Mails successfully sent!')); @@ -281,16 +259,14 @@ function autoresponder_user_unsubscribe_ return drupal_access_denied(); } if ($id) { - $result = db_query('SELECT a.*, at.name, au.email + $result = db_query_range('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 at.id = %d AND au.id = %d - LIMIT 1 - ', $id, $uid); + ', $id, $uid, 0, 1); - if (db_num_rows($result) > 0) { - $us = db_fetch_object($result); + if ($us = db_fetch_object($result)) { $form = array(); $form['id'] = array( '#type' => 'value', @@ -323,12 +299,12 @@ function autoresponder_user_unsubscribe_ drupal_goto(); } -function autoresponder_user_unsubscribe_confirm_form_submit($form_id, $form_values) { - db_query('DELETE FROM {autoresponder} WHERE setid = %d AND uid = %d', $form_values['id'], $form_values['uid']); - drupal_set_message(t('Successfully unsubscribed %email from %set mailing list!', array('%email' => $form_values['email'], '%set' => $form_values['set']))); - $result = db_query('SELECT uid FROM {autoresponder} WHERE uid = %d', $form_values['uid']); - if (!db_num_rows($result)) - db_query('DELETE FROM {autoresponder_users} WHERE id = %d', $form_values['uid']); +function autoresponder_user_unsubscribe_confirm_form_submit($form, &$form_state) { + db_query('DELETE FROM {autoresponder} WHERE setid = %d AND uid = %d', $form_state['values']['id'], $form_state['values']['uid']); + drupal_set_message(t('Successfully unsubscribed %email from %set mailing list!', array('%email' => $form_state['values']['email'], '%set' => $form_state['values']['set']))); + $result = db_query('SELECT COUNT(uid) FROM {autoresponder} WHERE uid = %d', $form_state['values']['uid']); + if (!db_result($result)) + db_query('DELETE FROM {autoresponder_users} WHERE id = %d', $form_state['values']['uid']); drupal_goto(); } @@ -379,8 +355,8 @@ function autoresponder_mail($u, $mail) { $plain_text_only = FALSE; $plain_text_body = autoresponder_html_to_text($mail->body, array()); $hash = md5($mail->to); - $url_unsubscribe = url('autoresponder/unsubscribe/'.$u->setid.'/'.$u->uid.'/'.$hash, NULL, NULL, TRUE); - $url_view = url('autoresponder/mail/'.$u->setid.'/'.$mail->id.'/'.$u->uid.'/'.$hash, NULL, NULL, TRUE); + $url_unsubscribe = url('autoresponder/unsubscribe/'.$u->setid.'/'.$u->uid.'/'.$hash, array('absolute' => TRUE)); + $url_view = url('autoresponder/mail/'.$u->setid.'/'.$mail->id.'/'.$u->uid.'/'.$hash, array('absolute' => TRUE)); $mail->body .= "
-------------------------
To view this message in the web follow this link $url_view
"; $mail->body .= "
To unsubscribe from the list follow this link $url_unsubscribe"; watchdog('autoresponder', "Email sended to $mail->to with subject $mail->subject"); @@ -396,19 +372,15 @@ function autoresponder_mail_show_form() return drupal_not_found(); } // Check if message exists - $sql = 'SELECT * FROM {autoresponder_messages} WHERE id = %d AND mset = %d LIMIT 1'; - $result = db_query($sql, $mid, $sid); - if (db_num_rows($result) < 1) + $sql = 'SELECT * FROM {autoresponder_messages} WHERE id = %d AND mset = %d'; + $result = db_query_range($sql, $mid, $sid, 0, 1); + if (!($message = db_fetch_object($result))) return drupal_not_found(); - else - $message = db_fetch_object($result); // Check if user exists and subscribed to this message $sql = 'SELECT aus.email FROM {autoresponder} a LEFT JOIN {autoresponder_users} aus ON a.uid = aus.id WHERE a.uid = %d AND a.setid = %d'; $result = db_query($sql, $uid, $sid); - if (db_num_rows($result) < 1) + if (!($u = db_fetch_object($result))) return drupal_not_found(); - else - $u = db_fetch_object($result); if (md5($u->email) != $hash) return drupal_access_denied(); @@ -493,7 +465,7 @@ function _autoresponder_mail_url($url) { return str_replace('mailto:', '', $url); } else { - return url($url, NULL, NULL, 1); + return url($url, array('absolute' => TRUE)); } } @@ -637,7 +609,7 @@ function autoresponder_user_list() { } function autoresponder_user_delete_confirm() { - $result = db_query('SELECT * FROM {autoresponder_users} WHERE id = %d LIMIT 1', arg(5)); + $result = db_query_range('SELECT * FROM {autoresponder_users} WHERE id = %d', arg(5), 0, 1); $us = db_fetch_object($result); $form['id'] = array( '#type' => 'value', @@ -711,7 +683,7 @@ function autoresponder_user_list_form($s function autoresponder_mail_list() { switch (arg(4)) { case 'edit': - $result = db_query('SELECT * FROM {autoresponder_messages} WHERE id = %d LIMIT 1', arg(6)); + $result = db_query_range('SELECT * FROM {autoresponder_messages} WHERE id = %d', arg(6), 0, 1); return autoresponder_mail_edit_create(db_fetch_array($result)); case 'add': return autoresponder_mail_edit_create(array()); @@ -722,7 +694,7 @@ function autoresponder_mail_list() { } function autoresponder_mail_delete_confirm() { - $result = db_query("SELECT * FROM {autoresponder_messages} WHERE id = %d LIMIT 1", arg(6)); + $result = db_query_range("SELECT * FROM {autoresponder_messages} WHERE id = %d", arg(6), 0, 1); $mail = db_fetch_object($result); $form['mid'] = array( '#type' => 'value', @@ -739,7 +711,7 @@ function autoresponder_mail_delete_confi } function autoresponder_mail_list_form() { - $result = db_query('SELECT am.*, at.name, at.id sid + $result = db_query('SELECT am.*, at.name, at.id AS sid FROM {autoresponder_messages} as am LEFT JOIN {autoresponder_sets} as at ON am.mset = at.id ORDER BY am.subject ASC, am.day ASC @@ -777,7 +749,7 @@ function autoresponder_mail_list_form() function autoresponder_set_list() { switch (arg(4)) { case 'edit': - $result = db_query('SELECT * FROM {autoresponder_sets} WHERE id=%d LIMIT 1', arg(5)); + $result = db_query_range('SELECT * FROM {autoresponder_sets} WHERE id=%d', arg(5), 0, 1); return autoresponder_set_edit_create(db_fetch_array($result)); case 'add': return autoresponder_set_edit_create(); @@ -795,7 +767,7 @@ function autoresponder_set_list() { } function autoresponder_set_delete_confirm() { - $result = db_query("SELECT * FROM {autoresponder_sets} WHERE id = %d LIMIT 1", arg(5)); + $result = db_query_range("SELECT * FROM {autoresponder_sets} WHERE id = %d", arg(5), 0, 1); $set = db_fetch_object($result); $form['id'] = array( '#type' => 'value', @@ -851,13 +823,13 @@ function autoresponder_set_massmail_form return $form; } -function autoresponder_set_massmail_form_submit($form_id, $form_values) { - $result = db_query('SELECT a.uid, au.email FROM {autoresponder} a LEFT JOIN {autoresponder_users} au ON a.uid = au.id WHERE setid = %d', $form_values['set']); +function autoresponder_set_massmail_form_submit($form, &$form_state) { + $result = db_query('SELECT a.uid, au.email FROM {autoresponder} a LEFT JOIN {autoresponder_users} au ON a.uid = au.id WHERE setid = %d', $form_state['values']['set']); while ($u = db_fetch_object($result)) { $mail->uid = $u->uid; - $mail->setid = $form_values['id']; - $mail->subject = $form_values['subject']; - $mail->body = $form_values['body']; + $mail->setid = $form_state['values']['id']; + $mail->subject = $form_state['values']['subject']; + $mail->body = $form_state['values']['body']; autoresponder_mail($u, $mail); unset($mail); } @@ -893,13 +865,13 @@ function autoresponder_role_massmail_for return $form; } -function autoresponder_role_massmail_form_submit($form_id, $form_values) { - $result = db_query('SELECT u.mail, u.uid FROM {users_roles} ur LEFT JOIN {users} u ON u.uid = ur.uid WHERE ur.rid = %d', $form_values['role']); +function autoresponder_role_massmail_form_submit($form, &$form_state) { + $result = db_query('SELECT u.mail, u.uid FROM {users_roles} ur LEFT JOIN {users} u ON u.uid = ur.uid WHERE ur.rid = %d', $form_state['values']['role']); while ($u = db_fetch_object($result)) { $mail->email = $u->mail; $mail->uid = $u->uid; - $mail->subject = $form_values['subject']; - $mail->body = $form_values['body']; + $mail->subject = $form_state['values']['subject']; + $mail->body = $form_state['values']['body']; autoresponder_mail($u, $mail); unset($mail); } @@ -929,12 +901,12 @@ function autoresponder_all_massmail_form return $form; } -function autoresponder_all_massmail_form_submit($form_id, $form_values) { +function autoresponder_all_massmail_form_submit($form, &$form_state) { $result = db_query('SELECT id as uid FROM {autoresponder_users}'); while ($u = db_fetch_object($result)) { $mail->email = $u->email; - $mail->subject = $form_values['subject']; - $mail->body = $form_values['body']; + $mail->subject = $form_state['values']['subject']; + $mail->body = $form_state['values']['body']; autoresponder_mail($u, $mail); unset($mail); } @@ -947,7 +919,7 @@ function autoresponder_set_list_form() { while ($set = db_fetch_object($result)) { $rows[$set->id] = array( '', - l($set->name, 'admin/settings/autoresponder/user/list/'.$set->id, array('title' => 'View users')).'
'.$set->description.'', + l($set->name, 'admin/settings/autoresponder/user/list/'.$set->id, array('attributes' => array('title' => 'View users'))).'
'.$set->description.'', $set->active == 0 ? l(t('Activate'), 'admin/settings/autoresponder/set/activate/'.$set->id) : l(t('Deactivate'), 'admin/settings/autoresponder/set/deactivate/'.$set->id), /*$set->unsubscribe == 0 ? l(t('Unsubscribe users'), 'admin/settings/autoresponder/set/unsubscribe/'.$set->id) : l(t('Do not unsubscribe users'), 'admin/settings/autoresponder/set/subscribe/'.$set->id),*/ l(t('Edit'), 'admin/settings/autoresponder/set/edit/'.$set->id), @@ -1011,26 +983,26 @@ function theme_autoresponder_user_list_f return $output; } -function autoresponder_user_list_form_submit($form_id, $form_values) { - switch ($form_values['op']) { +function autoresponder_user_list_form_submit($form, &$form_state) { + switch ($form_state['values']['op']) { case t('Delete users'): foreach ($_POST AS $key => $value) if (is_int($key)) $id[] = $key; if ($id) - $ids = implode(",", $id); + $placeholders = array_fill(0, count($id), "%d"); $count = count($id); if ($count) { - $form['count'] = array( + /*$form['count'] = array( '#type' => 'value', '#value' => $count ); $form['ids'] = array( '#type' => 'value', '#value' => $ids - ); - db_query('DELETE FROM {autoresponder_users} WHERE id IN (%s)', $ids); - db_query('DELETE FROM {autoresponder} WHERE uid IN (%s)', $ids); + );*/ + db_query('DELETE FROM {autoresponder_users} WHERE id IN ('. implode(',', $placeholders) .')', $id); + db_query('DELETE FROM {autoresponder} WHERE uid IN ('. implode(',', $placeholders) .')', $id); drupal_set_message(t('%count user(s) has been deleted successfully!', array('%count' => $count))); drupal_goto('admin/settings/autoresponder/user/list'); } @@ -1042,52 +1014,52 @@ function autoresponder_user_list_form_su } } -function autoresponder_mail_list_form_submit($form_id, $form_values) { - switch ($form_values['op']) { +function autoresponder_mail_list_form_submit($form, &$form_state) { + switch ($form_state['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' => 'value', - '#value' => $count - ); - $form['ids'] = array( - '#type' => 'value', - '#value' => $ids - ); - db_query('DELETE FROM {autoresponder_messages} WHERE id IN (%s)', $ids); - drupal_set_message(t('%count message(s) has been deleted successfully!', array('%count' => $count))); - drupal_goto('admin/settings/autoresponder/mail/list'); - } - else - drupal_set_message(t('There are no selected messages!')); + $placeholders = array_fill(0, count($id), "%d"); + $count = count($id); + if ($count) { + /*$form['count'] = array( + '#type' => 'value', + '#value' => $count + ); + $form['ids'] = array( + '#type' => 'value', + '#value' => $ids + );*/ + db_query('DELETE FROM {autoresponder_messages} WHERE id IN ('. implode(',', $placeholders) .')', $id); + drupal_set_message(t('%count message(s) has been deleted successfully!', array('%count' => $count))); + drupal_goto('admin/settings/autoresponder/mail/list'); + } + else + drupal_set_message(t('There are no selected messages!')); } } -function autoresponder_set_list_form_submit($form_id, $form_values) { - switch ($form_values['op']) { +function autoresponder_set_list_form_submit($form, &$form_state) { + switch ($form_state['values']['op']) { case t('Delete sets'): foreach ($_POST AS $key => $value) if (is_int($key)) $id[] = $key; if ($id) - $ids = implode(",", $id); + $placeholders = array_fill(0, count($id), "%d"); $count = count($id); if ($count) { - $form['count'] = array( + /*$form['count'] = array( '#type' => 'value', '#value' => $count ); $form['ids'] = array( '#type' => 'value', '#value' => $ids - ); - db_query('DELETE FROM {autoresponder_sets} WHERE id IN (%s)', $ids); + );*/ + db_query('DELETE FROM {autoresponder_sets} WHERE id IN ('. implode(',', $placeholders) .')', $id); drupal_set_message(t('%count set(s) has been deleted successfully!', array('%count' => $count))); drupal_goto('admin/settings/autoresponder/set/list'); } @@ -1207,25 +1179,30 @@ function autoresponder_user($op, &$edit, '#options' => $sets, '#description' => t('Select sets to subscribe'), ); - } + } } return $form; case 'insert': if (variable_get('show_on_user_register', TRUE)) { $sql = 'SELECT id FROM {autoresponder_users} WHERE email = \'%s\''; $result = db_query($sql, $edit['mail']); - if (db_num_rows($result)) { - $us = db_fetch_object($result); + if ($us = db_fetch_object($result)) { $auid = $us->id; } else { - $auid = db_next_id('{autoresponder_users}'); - db_query("INSERT INTO {autoresponder_users} (id, email, reg_date) VALUES (%d, '%s', %d)", $auid, strtolower($edit['mail']), time()); + $auobj = new stdClass(); + $auobj->email = strtolower($edit['mail']); + $auobj->reg_date = time(); + drupal_write_record('autoresponder_users', $auobj); + unset($auobj); } foreach ($edit['set'] as $key => $value) { if ($value) { - $aid = db_next_id('{autoresponder}'); - db_query('INSERT INTO {autoresponder} (id, uid, setid) VALUES(%d, %d, %d)', $aid, $auid, $value); + $aobj = new stdClass(); + $aobj->uid = $auid; + $aobj->setid = $value; + drupal_write_record('autoresponder', $aobj); + unset($aobj); $result_messages = db_query('SELECT * FROM {autoresponder_messages} WHERE day = %d AND mset = %d', 0, $value); while ($mail = db_fetch_object($result_messages)) { $u->mail = $edit['mail']; @@ -1261,7 +1238,7 @@ function autoresponder_email_enter_form( $u = db_fetch_object(db_query('SELECT id FROM {autoresponder_users} WHERE email = \'%s\'', $user->mail)); $result = db_query('SELECT aus.name, aus.id, a.uid FROM {autoresponder} a LEFT JOIN {autoresponder_sets} aus ON a.setid = aus.id WHERE a.uid = %d', $u->id); while ($s = db_fetch_object($result)) { - $user_sets .= $s->name.' | '.l('Unsubscribe', 'autoresponder/unsubscribe/'.$s->id.'/'.$s->uid, array(), drupal_get_destination()).'
'; + $user_sets .= $s->name.' | '.l('Unsubscribe', 'autoresponder/unsubscribe/'.$s->id.'/'.$s->uid, array('query' => drupal_get_destination())).'
'; $set_array[$s->id] = $s->name; } if (!variable_get('autoresponder_hide_email', FALSE)) { @@ -1490,43 +1467,49 @@ function autoresponder_mail_edit_create_ return $form; } -function autoresponder_email_enter_form_validate($form_id, $form_values) { - if (!valid_email_address($form_values['email'])) +function autoresponder_email_enter_form_validate($form, &$form_state) { + if (!valid_email_address($form_state['values']['email'])) form_set_error('email', 'Email address is wrong. Example: john@coolsite.com'); - $result = db_query("SELECT * FROM {autoresponder_users} au LEFT JOIN {autoresponder} a ON au.id = a.uid WHERE au.email = '%s' AND a.setid = %d", $form_values['email'], $form_values['set']); - $exist = db_num_rows($result); + $result = db_query("SELECT COUNT(*) FROM {autoresponder_users} au LEFT JOIN {autoresponder} a ON au.id = a.uid WHERE au.email = '%s' AND a.setid = %d", $form_state['values']['email'], $form_state['values']['set']); + $exist = db_result($result) > 0; if ($exist) - form_set_error('email',t('Your email address @mail is already subscribed for this list.', array('@mail' => $form_values['email']))); + form_set_error('email',t('Your email address @mail is already subscribed for this list.', array('@mail' => $form_state['values']['email']))); } -function autoresponder_email_enter_form_submit($form_id, $form_values) { - if (!is_array($form_values['set'])) - $form_values['set'] = array($form_values['set'] => (int)$form_values['set']); - if (isset($form_values['set']['empty'])) { +function autoresponder_email_enter_form_submit($form, &$form_state) { + if (!is_array($form_state['values']['set'])) + $form_state['values']['set'] = array($form_state['values']['set'] => (int)$form_state['values']['set']); + if (isset($form_state['values']['set']['empty'])) { drupal_set_message(t('No sets available to subscribe.')); return; } $sql = 'SELECT id FROM {autoresponder_users} WHERE email = \'%s\''; - $result = db_query($sql, $form_values['email']); - if (db_num_rows($result)) { - $us = db_fetch_object($result); + $result = db_query($sql, $form_state['values']['email']); + if ($us = db_fetch_object($result)) { $auid = $us->id; } else { - $auid = db_next_id('{autoresponder_users}'); - db_query("INSERT INTO {autoresponder_users} (id, email, reg_date) VALUES (%d, '%s', %d)", $auid, strtolower($form_values['email']), time()); + $auobj = new stdClass(); + $auobj->email = strtolower($form_state['values']['email']); + $auobj->reg_date = time(); + drupal_write_record('autoresponder_users', $auobj); + $auid = $auobj->id; + unset($auobj); } - foreach ($form_values['set'] as $key => $value) { + foreach ($form_state['values']['set'] as $key => $value) { if ($value) { - $aid = db_next_id('{autoresponder}'); - db_query('INSERT INTO {autoresponder} (id, uid, setid) VALUES(%d, %d, %d)', $aid, $auid, $value); + $aobj = new stdClass(); + $aobj->uid = $auid; + $aobj->setid = $value; + drupal_write_record('autoresponder', $aobj); + unset($aobj); $result_messages = db_query('SELECT * FROM {autoresponder_messages} WHERE day = %d AND mset = %d', 0, $value); while ($mail = db_fetch_object($result_messages)) { - $u->mail = $form_values['email']; + $u->mail = $form_state['values']['email']; $u->uid = $auid; $u->setid = $value; autoresponder_mail($u, $mail); - $message = t(db_result(db_query('SELECT message FROM {autoresponder_sets} WHERE id = %d LIMIT 1', $value)), array('%email' => $form_values['email'])); + $message = t(db_result(db_query_range('SELECT message FROM {autoresponder_sets} WHERE id = %d', $value, 0, 1)), array('%email' => $form_state['values']['email'])); drupal_set_message($message); } } @@ -1534,77 +1517,84 @@ function autoresponder_email_enter_form_ drupal_goto(); } -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(t('User %email successfully deleted!',array('%email' => $form_values['email']))); +function autoresponder_user_delete_confirm_submit($form, &$form_state) { + db_query('DELETE FROM {autoresponder_users} WHERE id = %d', $form_state['values']['id']); + db_query('DELETE FROM {autoresponder} WHERE uid = %d', $form_state['values']['id']); + drupal_set_message(t('User %email successfully deleted!',array('%email' => $form_state['values']['email']))); 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['mid']); - drupal_set_message(t('Message %subject successfully deleted!', array('%subject' => $form_values['subject']))); +function autoresponder_mail_delete_confirm_submit($form, &$form_state) { + db_query('DELETE FROM {autoresponder_messages} WHERE id = %d', $form_state['values']['mid']); + drupal_set_message(t('Message %subject successfully deleted!', array('%subject' => $form_state['values']['subject']))); drupal_goto('admin/settings/autoresponder/mail/list'); } -function autoresponder_set_delete_confirm_submit($form_id, $form_values) { - $result = db_query('SELECT uid FROM {autoresponder} WHERE setid = %d', $form_values['id']); +function autoresponder_set_delete_confirm_submit($form, &$form_state) { + $result = db_query('SELECT uid FROM {autoresponder} WHERE setid = %d', $form_state['values']['id']); while ($user = db_fetch_object($result)) { $users[] = $user->uid; } - 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_sets} WHERE id = %d', $form_state['values']['id']); + db_query('DELETE FROM {autoresponder_messages} WHERE mset = %d', $form_state['values']['id']); if ($users) { + $placeholders = array_fill(0, count($users), "%d"); $uids = implode(',', $users); - db_query('DELETE FROM {autoresponder_users} WHERE uid IN (%s)', $uids); - db_query('DELETE FROM {autoresponder} WHERE uid IN (%s)', $uids); + db_query('DELETE FROM {autoresponder_users} WHERE uid IN ('. implode(',', $placeholders) .')', $users); + db_query('DELETE FROM {autoresponder} WHERE uid IN ('. implode(',', $placeholders) .')', $users); } - drupal_set_message(t('Set %name successfully deleted! Messages, that associated with this set was deleted too.', array('%name' => $form_values['name']))); + drupal_set_message(t('Set %name successfully deleted! Messages, that associated with this set was deleted too.', array('%name' => $form_state['values']['name']))); 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\', description = \'%s\', message = \'%s\', active = %d, unsubscribe = %d WHERE id = %d', - $form_values['name'], $form_values['description'], $form_values['message'], $form_values['active'], $form_values['unsubscribe'], $form_values['id']); - drupal_set_message(t('Set %name successfully updated!', array('%name' => $form_values['name']))); +function autoresponder_set_edit_create_form_submit($form, &$form_state) { + $obj = new stdClass(); + $obj->name = $form_state['values']['name']; + $obj->description = $form_state['values']['description']; + $obj->message = $form_state['values']['message']; + $obj->active = $form_state['values']['active']; + $obj->unsubscribe = $form_state['values']['unsubscribe']; + if ($form_state['values']['id']) { + $obj->id = $form_state['values']['id']; + drupal_write_record('autoresponder_sets', $obj, array('id')); + drupal_set_message(t('Set %name successfully updated!', array('%name' => $form_state['values']['name']))); } else { - db_query('INSERT INTO {autoresponder_sets} (id, name, description, message, active, unsubscribe) VALUES(%d, \'%s\', \'%s\', \'%s\', \'%s\', %d)', - $id, $form_values['name'], $form_values['description'], $form_values['description'], $form_values['active'], $form_values['unsubscribe']); + drupal_write_record('autoresponder_sets', $obj); drupal_set_message(t('Successfully added!')); } - return 'admin/settings/autoresponder/set/list'; + unset($obj); + $form_state['redirect'] = 'admin/settings/autoresponder/set/list'; } -function autoresponder_mail_edit_create_form_validate($form_id, $form_values) { - if (!is_numeric($form_values['day'])) +function autoresponder_mail_edit_create_form_validate($form, &$form_state) { + if (!is_numeric($form_state['values']['day'])) form_set_error('day', t('The day must be a number. Example: %num', array('%num' => 10))); - /*elseif (!is_numeric($form_values['day']) && (strtotime($form_values['dt']['day'].'.'.$form_values['dt']['month'].'.'.$form_values['dt']['year']) < time())) { + /*elseif (!is_numeric($form_state['values']['day']) && (strtotime($form_state['values']['dt']['day'].'.'.$form_state['values']['dt']['month'].'.'.$form_state['values']['dt']['year']) < time())) { form_set_error('dt', t('The date must be in the future.'));*/ } -function autoresponder_mail_edit_create_form_submit($form_id, $form_values) { - if ($form_values['id']) { - db_query('UPDATE {autoresponder_messages} SET subject = \'%s\', body = \'%s\', mset = \'%s\', day = %d WHERE id = %d', - $form_values['subject'], $form_values['body'], $form_values['set'], $form_values['day'], $form_values['id']); - drupal_set_message(t('Mail set %subject successfully updated!', array('%subject' => $form_values['subject']))); +function autoresponder_mail_edit_create_form_submit($form, &$form_state) { + $obj = new stdClass(); + $obj->subject = $form_state['values']['subject']; + $obj->body = $form_state['values']['body']; + $obj->mset = $form_state['values']['set']; + $obj->day = $form_state['values']['day']; + if ($form_state['values']['id']) { + $obj->id = $form_state['values']['id']; + drupal_write_record('autoresponder_messages', $obj, array('id')); + drupal_set_message(t('Mail set %subject successfully updated!', array('%subject' => $form_state['values']['subject']))); } else { - $mid = db_next_id('{autoresponder_messages}'); - db_query('INSERT INTO {autoresponder_messages} - (id, subject, body, mset, day) - VALUES(%d, \'%s\', \'%s\', %d, \'%s\')', - $mid, $form_values['subject'], $form_values['body'], $form_values['set'], $form_values['day'] - ); - drupal_set_message(t('New message %subject successfully added on day %day! If you want, you can add more messages !url', array('%subject' => $form_values['subject'], '%day' => $form_values['day'], '!url' => l(t('here...'), 'admin/settings/autoresponder/mail/add')))); + drupal_write_record('autoresponder_messages', $obj); + drupal_set_message(t('New message %subject successfully added on day %day! If you want, you can add more messages !url', array('%subject' => $form_state['values']['subject'], '%day' => $form_state['values']['day'], '!url' => l(t('here...'), 'admin/settings/autoresponder/mail/add')))); } - return 'admin/settings/autoresponder/mail/list'; + unset($obj); + $form_state['redirect'] = 'admin/settings/autoresponder/mail/list'; } function autoresponder_set_activate($id) { - $query = db_query('SELECT * FROM {autoresponder_sets} WHERE id = %d LIMIT 1', $id); + $query = db_query_range('SELECT * FROM {autoresponder_sets} WHERE id = %d', $id, 0, 1); $set = db_fetch_object($query); db_query('UPDATE {autoresponder_sets} SET active = 1 WHERE id = %d', $id); drupal_set_message(t('Set %name successfully activated!', array('%name' => $set->name))); @@ -1612,10 +1602,17 @@ function autoresponder_set_activate($id) } function autoresponder_set_deactivate($id) { - $query = db_query('SELECT * FROM {autoresponder_sets} WHERE id = %d LIMIT 1', $id); + $query = db_query_range('SELECT * FROM {autoresponder_sets} WHERE id = %d', $id, 0, 1); $set = db_fetch_object($query); db_query('UPDATE {autoresponder_sets} SET active = 0 WHERE id = %d', $id); drupal_set_message(t('Set %name successfully deactivated!', array('%name' => $set->name))); drupal_goto('admin/settings/autoresponder/set/list'); } -?> \ No newline at end of file + +function autoresponder_theme() { + return array( + 'autoresponder_user_list_form' => array( + 'arguments' => array('form' => NULL), + ), + ); +}