--- auto_expire.module Mon Jun 29 00:55:18 2009 +++ auto_expire_no_db_switching.module Mon Jun 29 01:30:08 2009 @@ -275,21 +275,17 @@ $days = variable_get($code .'_d', AUTO_EXPIRE_DAYS); $warn = variable_get($code .'_w', AUTO_EXPIRE_WARN); $purge = variable_get($code .'_p', AUTO_EXPIRE_PURGE); + $now = time(); + $warn_now = strtotime("+ $warn days"); + $purge_now = strtotime("- $purge days"); // Send out expiration warnings. if ($warn > 0) { $subject = variable_get(AUTO_EXPIRE_EMAIL .'warn_subject', ''); $body = variable_get(AUTO_EXPIRE_EMAIL .'warn_body', ''); - switch ($GLOBALS['db_type']) { - case 'mysql': - case 'mysqli': - $result = db_query('SELECT n.nid, n.title FROM {auto_expire} e, {node} n WHERE n.nid = e.nid AND n.status = 1 AND e.warned = 0 AND (FROM_UNIXTIME(e.expire) - INTERVAL %d DAY) <= NOW()', $warn); - break; - case 'pgsql': - $result = db_query('SELECT n.nid, n.title FROM {auto_expire} e, {node} n WHERE n.nid = e.nid AND n.status = 1 AND e.warned = 0 AND ((e.expire::ABSTIME::TIMESTAMP) - INTERVAL \'%d DAYS\') <= NOW()', $warn); - break; - } + $result = db_query('SELECT n.nid, n.title FROM {auto_expire} e, {node} n WHERE n.nid = e.nid AND n.status = 1 AND e.warned = 0 AND e.expire <= %d', $warn_now); + while ($node = db_fetch_object($result)) { _auto_expire_notify_warning($node->nid, $node->title, $name->name, $days, $subject, $body); @@ -302,16 +298,9 @@ // Expire $subject = variable_get(AUTO_EXPIRE_EMAIL .'expired_subject', ''); $body = variable_get(AUTO_EXPIRE_EMAIL .'expired_body', ''); - switch ($GLOBALS['db_type']) { - case 'mysql': - case 'mysqli': - $result = db_query('SELECT n.nid, n.title FROM {auto_expire} e, {node} n WHERE n.nid = e.nid AND n.status = 1 AND FROM_UNIXTIME(e.expire) <= NOW()'); - break; - case 'pgsql': - $result = db_query('SELECT n.nid, n.title FROM {auto_expire} e, {node} n WHERE n.nid = e.nid AND n.status = 1 AND (e.expire::ABSTIME::TIMESTAMP) <= NOW()'); - break; - } + $result = db_query('SELECT n.nid, n.title FROM {auto_expire} e, {node} n WHERE n.nid = e.nid AND n.status = 1 AND e.expire <= %d', $now); + while ($node = db_fetch_object($result)) { db_query('UPDATE {node} SET status = 0 WHERE nid = %d', $node->nid); @@ -322,16 +311,9 @@ // Purge if ($purge > 0) { - switch ($GLOBALS['db_type']) { - case 'mysql': - case 'mysqli': - $result = db_query('SELECT e.nid FROM {auto_expire} e, {node} n WHERE n.nid = e.nid AND n.status = 0 AND (FROM_UNIXTIME(e.expire) + INTERVAL %d DAY) <= NOW()', $purge); - break; - case 'pgsql': - $result = db_query('SELECT e.nid FROM {auto_expire} e, {node} n WHERE n.nid = e.nid AND n.status = 0 AND ((e.expire::ABSTIME::TIMESTAMP) + INTERVAL \'%d DAYS\') <= NOW()', $purge); - break; - } + $result = db_query('SELECT e.nid FROM {auto_expire} e, {node} n WHERE n.nid = e.nid AND n.status = 0 AND e.expire <= %d', $purge_now); + $count_purged = 0; while ($nid = db_result($result)) {