diff -dur newsletter-orig/includes/newsletter.admin.inc newsletter/includes/newsletter.admin.inc --- newsletter-orig/includes/newsletter.admin.inc 2011-11-22 13:22:45.000000000 +0000 +++ newsletter/includes/newsletter.admin.inc 2012-02-16 12:09:40.000000000 +0000 @@ -747,6 +747,11 @@ '#default_value' => check_plain($list->send_rate), '#title' => t('Send Rate'), ); + $form['always_send'] = array( + '#type' => 'checkbox', + '#default_value' => FALSE, + '#title' => t('Send newsletter even if there are no nodes to list.'), + ); $form['send_rate_custom'] = array( '#attributes' => array('id' => array('send_rate_custom')), '#type' => 'textfield', diff -dur newsletter-orig/includes/newsletter.mail.inc newsletter/includes/newsletter.mail.inc --- newsletter-orig/includes/newsletter.mail.inc 2011-11-22 13:22:45.000000000 +0000 +++ newsletter/includes/newsletter.mail.inc 2012-02-16 12:29:01.000000000 +0000 @@ -268,9 +268,9 @@ ? $this->getSubscriberNodes($subscriber) : $this->nodes; - if (empty($nodes)) { + if (empty($nodes) && ($this->list->always_send == 0)) { continue; } $params['nodes'] = $nodes; if ($i>=$mails_to_send) { $subscriber->nodes = $nodes; diff -dur newsletter-orig/newsletter.install newsletter/newsletter.install --- newsletter-orig/newsletter.install 2011-11-22 13:22:45.000000000 +0000 +++ newsletter/newsletter.install 2012-02-16 12:16:39.000000000 +0000 @@ -217,6 +217,13 @@ 'not null' => TRUE, 'default' => 'Manual', ), + 'always_send' => array( + 'description' => 'Whether or not the newsletter should be sent regardless of new nodes present.', + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + ), 'last_sent' => array( 'description' => 'Timestamp this list was last sent.', 'type' => 'int', @@ -598,3 +605,21 @@ $list->send_rate = 'Manual'; $controller->save($list); } + + +/** + * Add origname field to {file_managed}. + */ +function newsletter_update_7101() { + // Add always_send field. + if (!db_field_exists('newsletter_list', 'always_send')) { + db_add_field('newsletter_list', 'always_send', array( + 'description' => 'Whether or not the newsletter should be sent regardless of new nodes present.', + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + )); + } +} + diff -dur newsletter-orig/newsletter.module newsletter/newsletter.module --- newsletter-orig/newsletter.module 2012-02-15 19:39:48.000000000 +0000 +++ newsletter/newsletter.module 2012-02-16 12:31:35.000000000 +0000 @@ -365,7 +365,7 @@ } // Automated Newsletter lists that didn't have remaining for this cron run $cron_lists = db_query("SELECT nlid FROM {newsletter_list} - WHERE send_again = CURDATE() + WHERE send_again <= CURDATE() OR send_again IS NULL AND (send_rate = 'Daily' OR send_rate = 'Weekly' OR send_rate = 'Monthly')") ->fetchAll();