Subscribe2 - Version 4.17

Version Description

Download this release

Release Info

Developer MattyRob
Plugin Icon 128x128 Subscribe2
Version 4.17
Comparing to
See all releases

Code changes from version 4.16 to 4.17

Files changed (5) hide show
  1. ReadMe.txt +15 -2
  2. counterwidget.php +1 -1
  3. include/s2_user_admin.css +1 -1
  4. subscribe2.php +265 -224
  5. subscribe2.pot +175 -159
ReadMe.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: MattyRob, Skippy, RavanH
3
  Donate link: http://subscribe2.wordpress.com/donate/
4
  Tags: posts, subscription, email, subscribe, notify, notification
5
  Requires at least: 2.0.x
6
- Tested up to: 2.7.1
7
- Stable tag: 4.16
8
 
9
  Sends a list of subscribers an email notification when new posts are published to your blog
10
 
@@ -100,6 +100,19 @@ Registered Users have registered with your WorPress blog (provided you have enab
100
 
101
  == Version History ==
102
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  Version 4.16 by Matthew Robinson
104
 
105
  * Correct minor layout issue in Settings->Subscribe2
3
  Donate link: http://subscribe2.wordpress.com/donate/
4
  Tags: posts, subscription, email, subscribe, notify, notification
5
  Requires at least: 2.0.x
6
+ Tested up to: 2.8.1beta2
7
+ Stable tag: 4.17
8
 
9
  Sends a list of subscribers an email notification when new posts are published to your blog
10
 
100
 
101
  == Version History ==
102
 
103
+ Version 4.17 by Matthew Robinson
104
+
105
+ * Tested for compatibility with WordPress 2.8.x
106
+ * Added TAGS and CATS keyword for per-post notification templates
107
+ * Fixed bug where confirmation emails may have an empty sender field if notifications come from post author
108
+ * Fixed a bug in WPMU CSS
109
+ * Added option to exclude new categories by default
110
+ * Fixed a bug where emails may not be sent to subscribers when a user subscribes or unsubscribes
111
+ * Improved accessing of 'Admin' level users on blogs where user_level is set below 10
112
+ * Added ability to send email previews to currently logged in user from Settings->Subscribe2
113
+ * Styled admin menu form buttons to fit with WordPress theme
114
+ * Improved handling of confirmation sending to reduce errors
115
+
116
  Version 4.16 by Matthew Robinson
117
 
118
  * Correct minor layout issue in Settings->Subscribe2
counterwidget.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Plugin Name: Subscribe2 Counter Widget
4
- Version: 4.16
5
  Plugin URI: http://subscribe2.wordpress.com
6
  Description: Adds a sidebar widget to easily customize and display your Subscribe2 subscribers stats.
7
  Author: Matthew Robinson
1
  <?php
2
  /*
3
  Plugin Name: Subscribe2 Counter Widget
4
+ Version: 4.17
5
  Plugin URI: http://subscribe2.wordpress.com
6
  Description: Adds a sidebar widget to easily customize and display your Subscribe2 subscribers stats.
7
  Author: Matthew Robinson
include/s2_user_admin.css CHANGED
@@ -41,7 +41,7 @@ ul.s2_blogs li .buttons a {
41
  margin: 0 0 0 1em;
42
  }
43
 
44
- ul.s2_blogs li .buttons a: hover {
45
  background-color: whitesmoke;
46
  color: #666;
47
  }
41
  margin: 0 0 0 1em;
42
  }
43
 
44
+ ul.s2_blogs li .buttons a:hover {
45
  background-color: whitesmoke;
46
  color: #666;
47
  }
subscribe2.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Subscribe2
4
  Plugin URI: http://subscribe2.wordpress.com
5
  Description: Notifies an email list when new entries are posted.
6
- Version: 4.16
7
  Author: Matthew Robinson
8
  Author URI: http://subscribe2.wordpress.com
9
  */
@@ -31,7 +31,7 @@ along with Subscribe2. If not, see <http://www.gnu.org/licenses/>.
31
 
32
  // our version number. Don't touch this or any line below
33
  // unless you know exacly what you are doing
34
- define('S2VERSION', '4.16');
35
  define('S2PATH', trailingslashit(dirname(__FILE__)));
36
 
37
  // Pre-2.6 compatibility
@@ -139,7 +139,7 @@ class s2class {
139
  function checkbox_form_js() {
140
  wp_enqueue_script('s2_checkbox', WP_CONTENT_URL . '/plugins/' . dirname( plugin_basename( __FILE__ ) ) . '/include/s2_checkbox.js', array('jquery'), '1.0');
141
  } //end checkbox_form_js()
142
-
143
  function user_admin_css() {
144
  wp_enqueue_style('s2_user_admin', WP_CONTENT_URL . '/plugins/ '. dirname( plugin_basename( __FILE__ ) ) . '/include/s2_user_admin.css', array(), '1.0');
145
  }
@@ -205,7 +205,7 @@ class s2class {
205
  //double check that the options are in the database
206
  require(S2PATH . "include/options.php");
207
  update_option('subscribe2_options', $this->subscribe2_options);
208
-
209
  // upgrade old wpmu user meta data to new
210
  if ( (isset($wpmu_version)) || (strpos($wp_version, 'wordpress-mu')) ) {
211
  $this->namechange_subscribe2_widget();
@@ -269,7 +269,7 @@ class s2class {
269
  $string = str_replace("PERMALINK", $this->permalink, $string);
270
  if (strstr($string, "TINYLINK")) {
271
  $tinylink = file_get_contents('http://tinyurl.com/api-create.php?url=' . urlencode($this->permalink));
272
- if ( ($tinylink !== 'Error') || ($tinylink != FALSE) ) {
273
  $string = str_replace("TINYLINK", $tinylink, $string);
274
  } else {
275
  $string = str_replace("TINYLINK", $this->permalink, $string);
@@ -278,6 +278,9 @@ class s2class {
278
  $string = str_replace("MYNAME", stripslashes($this->myname), $string);
279
  $string = str_replace("EMAIL", $this->myemail, $string);
280
  $string = str_replace("AUTHORNAME", $this->authorname, $string);
 
 
 
281
  return $string;
282
  } // end substitute()
283
 
@@ -287,30 +290,15 @@ class s2class {
287
  function mail($recipients = array(), $subject = '', $message = '', $type='text') {
288
  if ( (empty($recipients)) || ('' == $message) ) { return; }
289
 
290
- // Set sender details
291
- if ('' == $this->myname) {
292
- $admin = $this->get_userdata($this->subscribe2_options['sender']);
293
- $this->myname = html_entity_decode($admin->display_name);
294
- $this->myemail = $admin->user_email;
295
- }
296
- $headers = "From: \"" . $this->myname . "\" <" . $this->myemail . ">\n";
297
- $headers .= "Return-path: <" . $this->myemail . ">\n";
298
- $headers .= "Reply-To: \"" . $this->myname . "\" <" . $this->myemail . ">\n";
299
- $headers .= "X-Mailer:PHP" . phpversion() . "\n";
300
- $headers .= "Precedence: list\nList-Id: " . get_option('blogname') . "\n";
301
-
302
  if ('html' == $type) {
303
- // To send HTML mail, the Content-Type header must be set
304
- $headers .= "MIME-Version: 1.0\n";
305
- $headers .= "Content-Type: " . get_bloginfo('html_type') . "; charset=\"". get_bloginfo('charset') . "\"\n";
306
  if ('yes' == $this->subscribe2_options['stylesheet']) {
307
  $mailtext = apply_filters('s2_html_email', "<html><head><title>" . $subject . "</title><link rel=\"stylesheet\" href=\"" . get_bloginfo('stylesheet_url') . "\" type=\"text/css\" media=\"screen\" /></head><body>" . $message . "</body></html>");
308
  } else {
309
  $mailtext = apply_filters('s2_html_email', "<html><head><title>" . $subject . "</title></head><body>" . $message . "</body></html>");
310
  }
311
  } else {
312
- $headers .= "MIME-Version: 1.0\n";
313
- $headers .= "Content-Type: text/plain; charset=\"". get_bloginfo('charset') . "\"\n";
314
  $message = preg_replace('|&[^a][^m][^p].{0,3};|', '', $message);
315
  $message = preg_replace('|&amp;|', '&', $message);
316
  $message = wordwrap(strip_tags($message), 80, "\n");
@@ -386,87 +374,116 @@ class s2class {
386
  return $status;
387
  } // end mail()
388
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
389
  /**
390
  Sends an email notification of a new post
391
  */
392
- function publish($post = 0) {
393
  if (!$post) { return $post; }
394
 
395
- $s2mail = get_post_meta($post->ID, 's2mail', true);
396
- if ( ($_POST['s2_meta_field'] == 'no') || (strtolower(trim($s2mail)) == 'no') ) { return $post; }
397
-
398
- // are we doing daily digests? If so, don't send anything now
399
- if ($this->subscribe2_options['email_freq'] != 'never') { return $post; }
400
 
401
- // is the current post a page
402
- // and should this not generate a notification email?
403
- if ( ($this->subscribe2_options['pages'] == 'no') && ($post->post_type == 'page') ) {
404
- return $post;
405
- }
406
 
407
- // is this post set in the future?
408
- if ($post->post_date > current_time('mysql')) {
409
- // bail out
410
- return $post;
411
- }
412
 
413
- //Are we sending notifications for password protected posts?
414
- if ( ($this->subscribe2_options['password'] == "no") && ($post->post_password != '') ) {
 
415
  return $post;
416
- }
417
 
418
- $post_cats = wp_get_post_categories($post->ID);
419
- $post_cats_string = implode(',', $post_cats);
420
- $check = false;
421
- // is the current post assigned to any categories
422
- // which should not generate a notification email?
423
- foreach (explode(',', $this->subscribe2_options['exclude']) as $cat) {
424
- if (in_array($cat, $post_cats)) {
425
- $check = true;
426
  }
427
- }
428
 
429
- if ($check) {
430
- // hang on -- can registered users subscribe to
431
- // excluded categories?
432
- if ('0' == $this->subscribe2_options['reg_override']) {
433
- // nope? okay, let's leave
434
- return $post;
 
 
435
  }
436
- }
437
 
438
- // Are we sending notifications for Private posts?
439
- // Action is added if we are, but double check option and post status
440
- if ( ($this->subscribe2_options['private'] == "yes") && ($post->post_status == 'private') ) {
441
- // don't send notification to public users
442
- $check = true;
443
- }
 
 
444
 
445
- // lets collect our subscribers
446
- if (!$check) {
447
- // if this post is assigned to an excluded
448
- // category, or is a private post then
449
- // don't send public subscribers a notification
450
- $public = $this->get_public();
451
- }
452
- $registered = $this->get_registered("cats=$post_cats_string");
 
 
 
 
 
 
 
 
453
 
454
- // do we have subscribers?
455
- if ( (empty($public)) && (empty($registered)) ) {
456
- // if not, no sense doing anything else
457
- return $post;
 
458
  }
 
459
  // we set these class variables so that we can avoid
460
  // passing them in function calls a little later
461
  $this->post_title = "<a href=\"" . get_permalink($post->ID) . "\">" . $post->post_title . "</a>";
462
  $this->permalink = "<a href=\"" . get_permalink($post->ID) . "\">" . get_permalink($post->ID) . "</a>";
463
-
464
  $author = get_userdata($post->post_author);
465
  $this->authorname = $author->display_name;
466
 
467
  // do we send as admin, or post author?
468
  if ('author' == $this->subscribe2_options['sender']) {
469
- // get author details
470
  $user = &$author;
471
  } else {
472
  // get admin details
@@ -480,6 +497,9 @@ class s2class {
480
  $mailtext = apply_filters('s2_email_template', $this->subscribe2_options['mailtext']);
481
  $mailtext = stripslashes($this->substitute($mailtext));
482
 
 
 
 
483
  $plaintext = $post->post_content;
484
  if (function_exists('strip_shortcodes')) {
485
  $plaintext = strip_shortcodes($plaintext);
@@ -509,25 +529,35 @@ class s2class {
509
  }
510
  }
511
 
512
- // first we send plaintext summary emails
513
- $body = str_replace("POST", $excerpt, $mailtext);
514
- $registered = $this->get_registered("cats=$post_cats_string&format=text&amount=excerpt");
515
- if (empty($registered)) {
516
- $recipients = (array)$public;
517
- }
518
- elseif (empty($public)) {
519
- $recipients = (array)$registered;
 
 
520
  } else {
521
- $recipients = array_merge((array)$public, (array)$registered);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
522
  }
523
- $this->mail($recipients, $subject, $body);
524
- // next we send plaintext full content emails
525
- $body = str_replace("POST", strip_tags($plaintext), $mailtext);
526
- $this->mail($this->get_registered("cats=$post_cats_string&format=text&amount=post"), $subject, $body);
527
- // finally we send html full content emails
528
- $body = str_replace("\r\n", "<br />\r\n", $mailtext);
529
- $body = str_replace("POST", $content, $body);
530
- $this->mail($this->get_registered("cats=$post_cats_string&format=html"), $subject, $body, 'html');
531
  } // end publish()
532
 
533
  /**
@@ -544,8 +574,8 @@ class s2class {
544
  /**
545
  Send confirmation email to the user
546
  */
547
- function send_confirm($what = '', $is_remind = FALSE) {
548
- if ($this->filtered == 1) { return; }
549
  if ( (!$this->email) || (!$what) ) {
550
  return false;
551
  }
@@ -569,10 +599,7 @@ class s2class {
569
  $link .= md5($this->email);
570
  $link .= $id;
571
 
572
- $admin = $this->get_userdata($this->subscribe2_options['sender']);
573
- $this->myname = html_entity_decode($admin->display_name);
574
-
575
- if ($is_remind == TRUE) {
576
  $body = $this->substitute(stripslashes($this->subscribe2_options['remind_email']));
577
  $subject = $this->substitute(stripslashes($this->subscribe2_options['remind_subject']));
578
  } else {
@@ -587,13 +614,7 @@ class s2class {
587
 
588
  $body = str_replace("LINK", $link, $body);
589
 
590
- $mailheaders .= "From: \"" . $admin->display_name . "\" <" . $admin->user_email . ">\n";
591
- $mailheaders .= "Reply-To: \"" . $admin->display_name . "\" <" . $admin->user_email . ">\n";
592
- $mailheaders .= "Return-path: <" . $admin->user_email . ">\n";
593
- $mailheaders .= "X-Mailer:PHP" . phpversion() . "\n";
594
- $mailheaders .= "Precedence: list\nList-Id: " . get_option('blogname') . "\n";
595
- $mailheaders .= "MIME-Version: 1.0\n";
596
- $mailheaders .= "Content-Type: text/plain; charset=\"". get_bloginfo('charset') . "\"\n";
597
 
598
  return @wp_mail($this->email, $subject, $body, $mailheaders);
599
  } // end send_confirm()
@@ -713,12 +734,12 @@ class s2class {
713
  */
714
  function remind($emails = '') {
715
  if ('' == $emails) { return false; }
716
-
717
  $recipients = explode(",", $emails);
718
  if (!is_array($recipients)) { $recipients = (array)$recipients; }
719
  foreach ($recipients as $recipient) {
720
  $this->email = $recipient;
721
- $this->send_confirm('add', TRUE);
722
  }
723
  } //end remind()
724
 
@@ -729,14 +750,14 @@ class s2class {
729
  $barred_option = $this->subscribe2_options['barred'];
730
  list($user, $domain) = split('@', $email);
731
  $bar_check = stristr($barred_option, $domain);
732
-
733
  if (!empty($bar_check)) {
734
  return true;
735
  } else {
736
  return false;
737
  }
738
  } //end is_barred()
739
-
740
  /**
741
  Confirm request from the link emailed to the user and email the admin
742
  */
@@ -771,7 +792,10 @@ class s2class {
771
  $subject = '[' . get_option('blogname') . '] ' . __('New subscription', 'subscribe2');
772
  $message = $this->email . " " . __('subscribed to email notifications!', 'subscribe2');
773
  $recipients = $wpdb->get_col("SELECT DISTINCT(user_email) FROM $wpdb->users INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key='" . $wpdb->prefix . "user_level' AND $wpdb->usermeta.meta_value='10'");
774
- $this->mail($recipients, $subject, $message);
 
 
 
775
  }
776
  }
777
  $this->filtered = 1;
@@ -784,7 +808,10 @@ class s2class {
784
  $subject = '[' . get_option('blogname') . '] ' . __('New Unsubscription', 'subscribe2');
785
  $message = $this->email . " " . __('unsubscribed from email notifications!', 'subscribe2');
786
  $recipients = $wpdb->get_col("SELECT DISTINCT(user_email) FROM $wpdb->users INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key='" . $wpdb->prefix . "user_level' AND $wpdb->usermeta.meta_value='10'");
787
- $this->mail($recipients, $subject, $message);
 
 
 
788
  }
789
  }
790
  $this->filtered = 1;
@@ -914,6 +941,7 @@ class s2class {
914
  // specific category subscribers
915
  if ('' != $r['cats']) {
916
  $JOIN .= "INNER JOIN $wpdb->usermeta AS d ON a.user_id = d.user_id ";
 
917
  foreach (explode(',', $r['cats']) as $cat) {
918
  ('' == $and) ? $and = "d.meta_key='" . $this->get_usermeta_keyname('s2_cat') . "$cat'" : $and .= " OR d.meta_key='" . $this->get_usermeta_keyname('s2_cat') . "$cat'";
919
  }
@@ -954,11 +982,11 @@ class s2class {
954
  Create the appropriate usermeta values when a user registers
955
  If the registering user had previously subscribed to notifications, this function will delete them from the public subscriber list first
956
  */
957
- function register($user_id = 0) {
958
  global $wpdb;
959
 
960
- if (0 == $user_id) { return $user_id; }
961
- $user = get_userdata($user_id);
962
  $all_cats = get_categories(array('hide_empty' => false));
963
 
964
  // Are registered users are allowed to subscribe to excluded categories?
@@ -978,55 +1006,55 @@ class s2class {
978
 
979
  if ('' == $cats) {
980
  // sanity check, might occur if all cats excluded and reg_override = 0
981
- return $user_id;
982
  }
983
 
984
  // has this user previously signed up for email notification?
985
  if (false !== $this->is_public($user->user_email)) {
986
  // delete this user from the public table, and subscribe them to all the categories
987
  $this->delete($user->user_email);
988
- update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), $cats);
989
  foreach (explode(',', $cats) as $cat) {
990
- update_usermeta($user_id, $this->get_usermeta_keyname('s2_cat') . $cat, "$cat");
991
  }
992
- update_usermeta($user_id, 's2_format', 'text');
993
- update_usermeta($user_id, 's2_excerpt', 'excerpt');
994
- update_usermeta($user_id, 's2_autosub', $this->subscribe2_options['autosub_def']);
995
  } else {
996
  // create post format entries for all users
997
- $check_format = get_usermeta($user_id, 's2_format');
998
  if (empty($check_format)) {
999
  // ensure existing subscription options are not overwritten on upgrade
1000
  if ('html' == $this->subscribe2_options['autoformat']) {
1001
- update_usermeta($user_id, 's2_format', 'html');
1002
- update_usermeta($user_id, 's2_excerpt', 'post');
1003
  } elseif ('fulltext' == $this->subscribe2_options['autoformat']) {
1004
- update_usermeta($user_id, 's2_format', 'text');
1005
- update_usermeta($user_id, 's2_excerpt', 'post');
1006
  } else {
1007
- update_usermeta($user_id, 's2_format', 'text');
1008
- update_usermeta($user_id, 's2_excerpt', 'excerpt');
1009
  }
1010
- update_usermeta($user_id, 's2_autosub', $this->subscribe2_options['autosub_def']);
1011
  // if the are no existing subscriptions, create them if, by default if autosub is on
1012
  if ( ('yes' == $this->subscribe2_options['autosub']) || (('wpreg' == $this->subscribe2_options['autosub']) && ('on' == $_POST['subscribe'])) ) {
1013
- update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), $cats);
1014
  foreach (explode(',', $cats) as $cat) {
1015
- update_usermeta($user_id, $this->get_usermeta_keyname('s2_cat') . $cat, "$cat");
1016
  }
1017
  }
1018
  }
1019
- $subscribed = get_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'));
1020
  if (strstr($subscribed, '-1')) {
1021
  // make sure we remove '-1' from any settings
1022
  $old_cats = explode(',', $subscribed);
1023
  $pos = array_search('-1', $old_cats);
1024
  unset($old_cats[$pos]);
1025
  $cats = implode(',', $old_cats);
1026
- update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), $cats);
1027
  }
1028
  }
1029
- return $user_id;
1030
  } // end register()
1031
 
1032
  /**
@@ -1035,7 +1063,7 @@ class s2class {
1035
  function subscribe_registered_users($emails = '', $cats = '') {
1036
  if ( ('' == $emails) || ('' == $cats) ) { return false; }
1037
  global $wpdb;
1038
-
1039
  $useremails = explode(",", $emails);
1040
  $useremails = implode("', '", $useremails);
1041
 
@@ -1044,8 +1072,8 @@ class s2class {
1044
  if (!is_array($cats)) {
1045
  $cats = array($cats);
1046
  }
1047
-
1048
- foreach ($user_IDs as $user_ID) {
1049
  $old_cats = get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'));
1050
  $old_cats = explode(',', $old_cats);
1051
  if (!is_array($old_cats)) {
@@ -1069,7 +1097,7 @@ class s2class {
1069
  function unsubscribe_registered_users($emails = '', $cats = '') {
1070
  if ( ('' == $emails) || ('' == $cats) ) { return false; }
1071
  global $wpdb;
1072
-
1073
  $useremails = explode(",", $emails);
1074
  $useremails = implode("', '", $useremails);
1075
 
@@ -1078,8 +1106,8 @@ class s2class {
1078
  if (!is_array($cats)) {
1079
  $cats = array($cats);
1080
  }
1081
-
1082
- foreach ($user_IDs as $user_ID) {
1083
  $old_cats = explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')));
1084
  if (!is_array($old_cats)) {
1085
  $old_cats = array($old_cats);
@@ -1113,12 +1141,14 @@ class s2class {
1113
  if ($blog_id >= 0) {
1114
  switch_to_blog($blog_id);
1115
 
1116
- $user_id = get_current_user_id();
1117
 
1118
  // if user is not a user of the current blog
1119
  if (!is_blog_user($blog_id)) {
1120
  // add user to current blog as subscriber
1121
- add_user_to_blog($blog_id, $user_id, 'subscriber');
 
 
1122
  }
1123
 
1124
  // subscribe to all categories by default
@@ -1139,12 +1169,12 @@ class s2class {
1139
  foreach ($all_cats as $cat => $term) {
1140
  $term_id = $term->term_id;
1141
  $cats[] = $term_id;
1142
- update_usermeta($user_id, $this->get_usermeta_keyname('s2_cat') . $term_id, $term_id);
1143
  }
1144
  if (empty($cats)) {
1145
- update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), '');
1146
  } else {
1147
- update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $cats));
1148
  }
1149
 
1150
  // don't restore_current_blog(); -> redirect to new subscription page
@@ -1156,43 +1186,37 @@ class s2class {
1156
  if ($blog_id >= 0) {
1157
  switch_to_blog($blog_id);
1158
 
1159
- $user_id = get_current_user_id();
1160
 
1161
  // delete subscription to all categories on that blog
1162
- $cats = get_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'));
1163
  $cats = explode(',', $cats);
1164
  if (!is_array($cats)) {
1165
  $cats = array($cats);
1166
  }
1167
 
1168
  foreach ($cats as $id) {
1169
- delete_usermeta($user_id, $this->get_usermeta_keyname('s2_cat') . $id);
1170
- }
1171
- update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), '');
1172
-
1173
- // remove level_0 users
1174
- if (!current_user_can(1)) {
1175
- $blogs = get_blogs_of_user($user_id, true);
1176
- // if user only has one blog left
1177
- if (count($blogs) == 1) {
1178
- wp_delete_user($user_id, 1); // delete posts and reassign any existing posts to root user
1179
- wp_redirect(get_option('siteurl')); // redirect to front page
1180
- exit();
1181
- } else {
1182
- remove_user_from_blog($user_id, $blog_id);
1183
- delete_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'));
1184
- }
1185
  }
 
 
 
 
 
1186
  restore_current_blog();
1187
  $redirect_to_subscriptionpage = true;
1188
  }
1189
  }
1190
 
1191
  if ($redirect_to_subscriptionpage == true) {
1192
- if (!is_user_member_of_blog($user_id)) {
1193
- $user_blogs = get_active_blog_for_user($user_id);
1194
  if (is_array($user_blogs)) {
1195
  switch_to_blog(key($user_blogs));
 
 
 
 
1196
  }
1197
  }
1198
 
@@ -1213,24 +1237,32 @@ class s2class {
1213
  Autosubscribe registered users to newly created categories
1214
  if registered user has selected this option
1215
  */
1216
- function autosub_new_category($new_category='') {
 
1217
  global $wpdb;
1218
 
1219
- $sql = "SELECT DISTINCT user_id FROM $wpdb->usermeta WHERE $wpdb->usermeta.meta_key='s2_autosub' AND $wpdb->usermeta.meta_value='yes'";
1220
- $user_IDs = $wpdb->get_col($sql);
1221
- if ('' == $user_IDs) { return; }
 
1222
 
1223
- foreach ($user_IDs as $user_ID) {
1224
- $old_cats = explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')));
1225
- if (!is_array($old_cats)) {
1226
- $old_cats = array($old_cats);
 
 
 
 
 
1227
  }
1228
- // add subscription to these cat IDs
1229
- update_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $new_category, "$new_category");
1230
- $newcats = array_merge($old_cats, (array)$new_category);
1231
- update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $newcats));
 
1232
  }
1233
- } // end autosub_new_category()
1234
 
1235
  function delete_category($deleted_category='') {
1236
  global $wpdb;
@@ -1239,7 +1271,7 @@ class s2class {
1239
  $user_IDs = $wpdb->get_col($sql);
1240
  if ('' == $user_IDs) { return; }
1241
 
1242
- foreach ($user_IDs as $user_ID) {
1243
  $old_cats = explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')));
1244
  if (!is_array($old_cats)) {
1245
  $old_cats = array($old_cats);
@@ -1249,7 +1281,6 @@ class s2class {
1249
  $remain = array_diff($old_cats, (array)$deleted_category);
1250
  update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $remain));
1251
  }
1252
-
1253
  }
1254
 
1255
  /**
@@ -1258,8 +1289,8 @@ class s2class {
1258
  function get_userdata($admin_id) {
1259
  global $wpdb, $userdata;
1260
 
1261
- // ensure compatability with Subscribe2 < 4.16
1262
- if ($admin_id == 'admin') {
1263
  $admin_id = 1;
1264
  }
1265
 
@@ -1271,13 +1302,13 @@ class s2class {
1271
 
1272
  // if user record is empty grab the first admin from the database
1273
  if (empty($admin)) {
1274
- $sql = "SELECT DISTINCT(ID) FROM $wpdb->users INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key='" . $wpdb->prefix . "user_level' AND $wpdb->usermeta.meta_value='10' LIMIT 1";
1275
  $admin = get_userdata($wpdb->get_var($sql));
1276
  }
1277
 
1278
  return $admin;
1279
  } //end get_userdata()
1280
-
1281
  /* ===== Menus ===== */
1282
  /**
1283
  Our management page
@@ -1474,8 +1505,8 @@ class s2class {
1474
  echo "<p>" . __('Enter addresses, one per line or comma-separated', 'subscribe2') . "<br />\r\n";
1475
  echo "<textarea rows=\"2\" cols=\"80\" name=\"addresses\"></textarea></p>\r\n";
1476
  echo "<input type=\"hidden\" name=\"s2_admin\" />\r\n";
1477
- echo "<p class=\"submit\" style=\"border-top: none;\"><input type=\"submit\" name=\"subscribe\" value=\"" . __('Subscribe', 'subscribe2') . "\" />";
1478
- echo "&nbsp;<input type=\"submit\" name=\"unsubscribe\" value=\"" . __('Unsubscribe', 'subscribe2') . "\" /></p>\r\n";
1479
 
1480
  // subscriber lists
1481
  echo "<h2>" . __('Current Subscribers', 'subscribe2') . "</h2>\r\n";
@@ -1487,21 +1518,21 @@ class s2class {
1487
  $exportcsv = implode(",\r\n", $subscribers);
1488
  echo "<table cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">";
1489
  echo "<tr class=\"alternate\"><td width=\"50%\"><input type=\"text\" name=\"searchterm\" value=\"\" />&nbsp;\r\n";
1490
- echo "<input type=\"submit\" name=\"search\" value=\"" . __('Search Subscribers', 'subscribe2') . "\" class=\"button\" /></td>\r\n";
1491
  if ($reminderform) {
1492
  echo "<td width=\"25%\" align=\"right\"><input type=\"hidden\" name=\"reminderemails\" value=\"" . $reminderemails . "\" />\r\n";
1493
- echo "<input type=\"submit\" name=\"remind\" value=\"" . __('Send Reminder Email', 'subscribe2') . "\" class=\"button\" /></td>\r\n";
1494
  } else {
1495
  echo "<td width=\"25%\"></td>";
1496
  }
1497
  echo "<td width=\"25%\" align=\"right\"><input type=\"hidden\" name=\"exportcsv\" value=\"" . $exportcsv . "\" />\r\n";
1498
- echo "<input type=\"submit\" name=\"csv\" value=\"" . __('Save Emails to CSV File', 'subscribe2') . "\" class=\"button\" /></td></tr>\r\n";
1499
  echo "</table>";
1500
  }
1501
 
1502
  echo "<table class=\"widefat\" cellpadding=\"2\" cellspacing=\"2\">";
1503
  if (!empty($subscribers)) {
1504
- echo "<tr><td colspan=\"3\" align=\"center\"><input type=\"submit\" name=\"process\" value=\"" . __('Process', 'subscribe2') . "\" class=\"button\" /></td>\r\n";
1505
  echo "<td align=\"right\">" . $strip . "</td></tr>\r\n";
1506
  }
1507
  if (!empty($subscribers)) {
@@ -1555,7 +1586,7 @@ class s2class {
1555
  }
1556
  }
1557
  if (!empty($subscribers)) {
1558
- echo "<tr><td colspan=\"3\" align=\"center\"><input type=\"submit\" name=\"process\" value=\"" . __('Process', 'subscribe2') . "\" class=\"button\" /></td>\r\n";
1559
  echo "<td align=\"right\">" . $strip . "</td></tr>\r\n";
1560
  }
1561
  echo "</table>\r\n";
@@ -1571,7 +1602,7 @@ class s2class {
1571
  echo "<label><input type=\"radio\" name=\"manage\" value=\"unsubscribe\" />" . __('Unsubscribe', 'subscribe2') . "</label><br /><br />\r\n";
1572
  echo "<input type=\"hidden\" name=\"emails\" value=\"$emails\" />\r\n";
1573
  $this->display_category_form();
1574
- echo "<p class=\"submit\"><input type=\"submit\" id=\"deletepost\" name=\"register\" value=\"" . __('Submit', 'subscribe2') . "\" /></p>";
1575
  echo "</form></div>\r\n";
1576
 
1577
  include(ABSPATH . 'wp-admin/admin-footer.php');
@@ -1591,6 +1622,10 @@ class s2class {
1591
  if ($_POST['reset']) {
1592
  $this->reset();
1593
  echo "<div id=\"message\" class=\"updated fade\"><p><strong>$this->options_reset</strong></p></div>";
 
 
 
 
1594
  } elseif ($_POST['submit']) {
1595
  // BCClimit
1596
  if ( (is_numeric($_POST['bcc'])) && ($_POST['bcc'] >= 0) ) {
@@ -1701,7 +1736,7 @@ class s2class {
1701
  $this->subscribe2_options['autoformat'] = $_POST['autoformat'];
1702
  $this->subscribe2_options['show_autosub'] = $_POST['show_autosub'];
1703
  $this->subscribe2_options['autosub_def'] = $_POST['autosub_def'];
1704
-
1705
  //barred domains
1706
  $this->subscribe2_options['barred'] = $_POST['barred'];
1707
 
@@ -1764,7 +1799,7 @@ class s2class {
1764
  echo " checked=\"checked\"";
1765
  }
1766
  echo " /> " . __('No', 'subscribe2') . "</label><br /><br />\r\n";
1767
-
1768
  echo __('Send Emails for Pages', 'subscribe2') . ': ';
1769
  echo "<label><input type=\"radio\" name=\"pages\" value=\"yes\"";
1770
  if ('yes' == $this->subscribe2_options['pages']) {
@@ -1800,7 +1835,7 @@ class s2class {
1800
  echo " /> " . __('No', 'subscribe2') . "</label><br /><br />\r\n";
1801
  echo __('Send Email From', 'subscribe2') . ': ';
1802
  echo "<label>\r\n";
1803
- $this->admin_dropdown(1);
1804
  echo "</label><br /><br />\r\n";
1805
  if (function_exists('wp_schedule_event')) {
1806
  echo __('Send Emails', 'subscribe2') . ": <br /><br />\r\n";
@@ -1818,6 +1853,7 @@ class s2class {
1818
  echo "<br />\r\n";
1819
  echo "<textarea rows=\"9\" cols=\"60\" name=\"mailtext\">" . stripslashes($this->subscribe2_options['mailtext']) . "</textarea><br /><br />\r\n";
1820
  echo "</td><td valign=\"top\" rowspan=\"3\">";
 
1821
  echo "<h3>" . __('Message substitions', 'subscribe2') . "</h3>\r\n";
1822
  echo "<dl>";
1823
  echo "<dt><b>BLOGNAME</b></dt><dd>" . get_bloginfo('name') . "</dd>\r\n";
@@ -1833,6 +1869,8 @@ class s2class {
1833
  echo "<dt><b>AUTHORNAME</b></dt><dd>" . __("the post author's name", 'subscribe2') . "</dd>\r\n";
1834
  echo "<dt><b>LINK</b></dt><dd>" . __("the generated link to confirm a request<br />(<i>only used in the confirmation email template</i>)", 'subscribe2') . "</dd>\r\n";
1835
  echo "<dt><b>ACTION</b></dt><dd>" . __("Action performed by LINK in confirmation email<br />(<i>only used in the confirmation email template</i>)", 'subscribe2') . "</dd>\r\n";
 
 
1836
  echo "</dl></td></tr><tr><td>";
1837
  echo __('Subscribe / Unsubscribe confirmation email', 'subscribe2') . ":<br />\r\n";
1838
  echo __('Subject Line', 'subscribe2') . ": ";
@@ -1856,11 +1894,11 @@ class s2class {
1856
  echo " checked=\"checked\"";
1857
  }
1858
  echo " /> " . __('Allow registered users to subscribe to excluded categories?', 'subscribe2') . "</label></center><br />\r\n";
1859
-
1860
  // Appearance options
1861
  echo "<h2>" . __('Appearance', 'subscribe2') . "</h2>\r\n";
1862
  echo"<p>";
1863
-
1864
  // WordPress page ID where subscribe2 token is used
1865
  echo __('Set default Subscribe2 page as ID', 'subscribe2') . ': ';
1866
  echo "<span id=\"s2page_1\"><span id=\"s2page\" style=\"background-color: #FFFBCC\">" . $this->subscribe2_options['s2page'] . "</span> ";
@@ -1958,7 +1996,7 @@ class s2class {
1958
  echo "checked=\"checked\" ";
1959
  }
1960
  echo "/> " . __('Plain Text - Excerpt', 'subscribe2') . "</label><br /><br />";
1961
- echo __('Display option for Register Users to auto-subscribe to new categories', 'subscribe2') . ": <br />\r\n";
1962
  echo "<label><input type=\"radio\" name=\"show_autosub\" value=\"yes\"";
1963
  if ('yes' == $this->subscribe2_options['show_autosub']) {
1964
  echo " checked=\"checked\"";
@@ -1968,8 +2006,13 @@ class s2class {
1968
  if ('no' == $this->subscribe2_options['show_autosub']) {
1969
  echo " checked=\"checked\"";
1970
  }
1971
- echo " />" . __('No', 'subscribe2') . "</label><br /><br />";
1972
- echo __('Option for Register Users to auto-subscribe to new categories is checked by default', 'subscribe2') . ": <br />\r\n";
 
 
 
 
 
1973
  echo "<label><input type=\"radio\" name=\"autosub_def\" value=\"yes\"";
1974
  if ('yes' == $this->subscribe2_options['autosub_def']) {
1975
  echo " checked=\"checked\"";
@@ -1990,7 +2033,7 @@ class s2class {
1990
  echo"</p>";
1991
 
1992
  // submit
1993
- echo "<p class=\"submit\" align=\"center\"><input type=\"submit\" id=\"save\" name=\"submit\" value=\"" . __('Submit', 'subscribe2') . "\" /></p>";
1994
 
1995
  // reset
1996
  echo "<h2>" . __('Reset Default', 'subscribe2') . "</h2>\r\n";
@@ -2162,10 +2205,9 @@ class s2class {
2162
  }
2163
 
2164
  // submit
2165
- echo "<p class=\"submit\"><input type=\"submit\" name=\"submit\" value=\"" . __("Update Preferences", 'subscribe2') . " &raquo;\" /></p>";
2166
  echo "</form>\r\n";
2167
-
2168
-
2169
  // list of subscribed blogs on wordpress mu
2170
  if ($this->s2_mu) {
2171
  global $blog_id;
@@ -2174,7 +2216,7 @@ class s2class {
2174
  $blogs_subscribed = array();
2175
  $blogs_notsubscribed = array();
2176
 
2177
- foreach ($blogs as $key => $blog) {
2178
  // switch to blog
2179
  switch_to_blog($blog['blog_id']);
2180
 
@@ -2330,7 +2372,7 @@ class s2class {
2330
  $this->display_subscriber_dropdown('registered', false, array('all'));
2331
  echo "<input type=\"hidden\" name=\"s2_admin\" value=\"mail\" />";
2332
  echo "</p>";
2333
- echo "<p class=\"submit\"><input type=\"submit\" name=\"submit\" value=\"" . __('Send', 'subscribe2') . "\" /></p>";
2334
  echo "</form></div>\r\n";
2335
  echo "<div style=\"clear: both;\"><p>&nbsp;</p></div>";
2336
 
@@ -2360,7 +2402,7 @@ class s2class {
2360
  }
2361
  }
2362
  }
2363
-
2364
  $half = (count($all_cats) / 2);
2365
  $i = 0;
2366
  $j = 0;
@@ -2468,7 +2510,7 @@ class s2class {
2468
  }
2469
  echo "</select>";
2470
  if (false !== $submit) {
2471
- echo "&nbsp;<input type=\"submit\" value=\"$submit\" class=\"button\"/>\r\n";
2472
  }
2473
  } // end display_subscriber_dropdown()
2474
 
@@ -2476,13 +2518,12 @@ class s2class {
2476
  Display a drop down lisy of administrator level users and
2477
  optionally include a choice for Post Author
2478
  */
2479
- function admin_dropdown($inc_author) {
2480
  global $wpdb;
2481
 
2482
- $sql = "SELECT ID,display_name FROM $wpdb->users INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key='" . $wpdb->prefix . "user_level' AND $wpdb->usermeta.meta_value='10'";
2483
  $admins = $wpdb->get_results($sql);
2484
-
2485
-
2486
  if ($inc_author) {
2487
  $author[] = (object)array('ID' => 'author', 'display_name' => 'Post Author');
2488
  $admins = array_merge($author, $admins);
@@ -2599,9 +2640,9 @@ class s2class {
2599
  */
2600
  function register_post() {
2601
  if ('on' == $_POST['subscribe']) {
2602
- $user_id = get_userdatabylogin($_POST['user_login']);
2603
- if (0 == $user_id->ID) { return; }
2604
- $this->register($user_id->ID);
2605
  }
2606
  }
2607
 
@@ -2649,7 +2690,7 @@ class s2class {
2649
  Meta box form handler
2650
  */
2651
  function s2_meta_handler($post_id) {
2652
- if (!wp_verify_nonce($_POST['s2meta_nonce'], md5(plugin_basename(__FILE__)))) { return $post_id; }
2653
 
2654
  if ('page' == $_POST['post_type']) {
2655
  if (!current_user_can('edit_page', $post_id)) { return $post_id; }
@@ -2657,7 +2698,7 @@ class s2class {
2657
  if (!current_user_can('edit_post', $post_id)) { return $post_id; }
2658
  }
2659
 
2660
- if ($_POST['s2_meta_field'] == 'no') {
2661
  update_post_meta($post_id, 's2mail', $_POST['s2_meta_field']);
2662
  } else {
2663
  delete_post_meta($post_id, 's2mail');
@@ -2897,7 +2938,7 @@ class s2class {
2897
  $arr['subscribe2'] = $path;
2898
  return $arr;
2899
  }
2900
-
2901
  function mce3_button($arr) {
2902
  $arr[] = 'subscribe2';
2903
  return $arr;
@@ -3107,7 +3148,7 @@ class s2class {
3107
  add_filter('the_title', array(&$this, 'title_filter'));
3108
  add_filter('the_content', array(&$this, 'confirm'));
3109
  }
3110
-
3111
  if ( (isset($_POST['s2_admin'])) && ($_POST['csv']) ) {
3112
  $date = date('Y-m-d');
3113
  header("Content-Description: File Transfer");
@@ -3119,12 +3160,12 @@ class s2class {
3119
 
3120
  exit(0);
3121
  }
3122
-
3123
  //add regular actions and filters
3124
  add_action('admin_menu', array(&$this, 'admin_menu'));
3125
  add_action('admin_menu', array(&$this, 's2_meta_init'));
3126
  add_action('save_post', array(&$this, 's2_meta_handler'));
3127
- add_action('create_category', array(&$this, 'autosub_new_category'));
3128
  add_action('delete_category', array(&$this, 'delete_category'));
3129
  add_filter('the_content', array(&$this, 'filter'), 10);
3130
  add_filter('cron_schedules', array(&$this, 'add_weekly_sched'));
@@ -3145,8 +3186,8 @@ class s2class {
3145
  add_action('register_form', array(&$this, 'register_form'));
3146
  add_action('user_register', array(&$this, 'register'));
3147
  add_action('add_user_to_blog', array(&$this, 'register'), 10, 1);
3148
-
3149
- if ($this->s2_mu) {
3150
  add_action('admin_init', array(&$this, 'wpmu_subscribe'));
3151
  }
3152
 
3
  Plugin Name: Subscribe2
4
  Plugin URI: http://subscribe2.wordpress.com
5
  Description: Notifies an email list when new entries are posted.
6
+ Version: 4.17
7
  Author: Matthew Robinson
8
  Author URI: http://subscribe2.wordpress.com
9
  */
31
 
32
  // our version number. Don't touch this or any line below
33
  // unless you know exacly what you are doing
34
+ define('S2VERSION', '4.17');
35
  define('S2PATH', trailingslashit(dirname(__FILE__)));
36
 
37
  // Pre-2.6 compatibility
139
  function checkbox_form_js() {
140
  wp_enqueue_script('s2_checkbox', WP_CONTENT_URL . '/plugins/' . dirname( plugin_basename( __FILE__ ) ) . '/include/s2_checkbox.js', array('jquery'), '1.0');
141
  } //end checkbox_form_js()
142
+
143
  function user_admin_css() {
144
  wp_enqueue_style('s2_user_admin', WP_CONTENT_URL . '/plugins/ '. dirname( plugin_basename( __FILE__ ) ) . '/include/s2_user_admin.css', array(), '1.0');
145
  }
205
  //double check that the options are in the database
206
  require(S2PATH . "include/options.php");
207
  update_option('subscribe2_options', $this->subscribe2_options);
208
+
209
  // upgrade old wpmu user meta data to new
210
  if ( (isset($wpmu_version)) || (strpos($wp_version, 'wordpress-mu')) ) {
211
  $this->namechange_subscribe2_widget();
269
  $string = str_replace("PERMALINK", $this->permalink, $string);
270
  if (strstr($string, "TINYLINK")) {
271
  $tinylink = file_get_contents('http://tinyurl.com/api-create.php?url=' . urlencode($this->permalink));
272
+ if ( ($tinylink !== 'Error') || ($tinylink != false) ) {
273
  $string = str_replace("TINYLINK", $tinylink, $string);
274
  } else {
275
  $string = str_replace("TINYLINK", $this->permalink, $string);
278
  $string = str_replace("MYNAME", stripslashes($this->myname), $string);
279
  $string = str_replace("EMAIL", $this->myemail, $string);
280
  $string = str_replace("AUTHORNAME", $this->authorname, $string);
281
+ $string = str_replace("CATS", $this->post_cats_names, $string);
282
+ $string = str_replace("TAGS", $this->post_tags_names, $string);
283
+
284
  return $string;
285
  } // end substitute()
286
 
290
  function mail($recipients = array(), $subject = '', $message = '', $type='text') {
291
  if ( (empty($recipients)) || ('' == $message) ) { return; }
292
 
 
 
 
 
 
 
 
 
 
 
 
 
293
  if ('html' == $type) {
294
+ $headers = $this->headers('html');
 
 
295
  if ('yes' == $this->subscribe2_options['stylesheet']) {
296
  $mailtext = apply_filters('s2_html_email', "<html><head><title>" . $subject . "</title><link rel=\"stylesheet\" href=\"" . get_bloginfo('stylesheet_url') . "\" type=\"text/css\" media=\"screen\" /></head><body>" . $message . "</body></html>");
297
  } else {
298
  $mailtext = apply_filters('s2_html_email', "<html><head><title>" . $subject . "</title></head><body>" . $message . "</body></html>");
299
  }
300
  } else {
301
+ $headers = $this->headers();
 
302
  $message = preg_replace('|&[^a][^m][^p].{0,3};|', '', $message);
303
  $message = preg_replace('|&amp;|', '&', $message);
304
  $message = wordwrap(strip_tags($message), 80, "\n");
374
  return $status;
375
  } // end mail()
376
 
377
+
378
+ /**
379
+ Construct standard set of email headers
380
+ */
381
+ function headers($type='text') {
382
+ $admin = $this->get_userdata($this->subscribe2_options['sender']);
383
+ $this->myname = html_entity_decode($admin->display_name);
384
+ $this->myemail = $admin->user_email;
385
+
386
+ $headers = "From: \"" . $this->myname . "\" <" . $this->myemail . ">\n";
387
+ $headers .= "Reply-To: \"" . $this->myname . "\" <" . $this->myemail . ">\n";
388
+ $headers .= "Return-path: <" . $this->myemail . ">\n";
389
+ $headers .= "Precedence: list\nList-Id: " . get_option('blogname') . "\n";
390
+ $headers .= "MIME-Version: 1.0\n";
391
+ $headers .= "X-Mailer: PHP" . phpversion() . "\n";
392
+ if ($type == 'html') {
393
+ // To send HTML mail, the Content-Type header must be set
394
+ $headers .= "Content-Type: " . get_bloginfo('html_type') . "; charset=\"". get_bloginfo('charset') . "\"\n";
395
+ } else {
396
+ $headers .= "Content-Type: text/plain; charset=\"". get_bloginfo('charset') . "\"\n";
397
+ }
398
+
399
+ return $headers;
400
+ } // end headers()
401
+
402
  /**
403
  Sends an email notification of a new post
404
  */
405
+ function publish($post = 0, $preview = '') {
406
  if (!$post) { return $post; }
407
 
408
+ if ($preview == '') {
409
+ // we aren't sending a Preview to the current user so carry out checks
410
+ $s2mail = get_post_meta($post->ID, 's2mail', true);
411
+ if ( (isset($_POST['s2_meta_field']) && ($_POST['s2_meta_field'] == 'no')) || (strtolower(trim($s2mail)) == 'no') ) { return $post; }
 
412
 
413
+ // are we doing daily digests? If so, don't send anything now
414
+ if ($this->subscribe2_options['email_freq'] != 'never') { return $post; }
 
 
 
415
 
416
+ // is the current post a page
417
+ // and should this not generate a notification email?
418
+ if ( ($this->subscribe2_options['pages'] == 'no') && ($post->post_type == 'page') ) {
419
+ return $post;
420
+ }
421
 
422
+ // is this post set in the future?
423
+ if ($post->post_date > current_time('mysql')) {
424
+ // bail out
425
  return $post;
426
+ }
427
 
428
+ //Are we sending notifications for password protected posts?
429
+ if ( ($this->subscribe2_options['password'] == "no") && ($post->post_password != '') ) {
430
+ return $post;
 
 
 
 
 
431
  }
 
432
 
433
+ $post_cats = wp_get_post_categories($post->ID);
434
+ $check = false;
435
+ // is the current post assigned to any categories
436
+ // which should not generate a notification email?
437
+ foreach (explode(',', $this->subscribe2_options['exclude']) as $cat) {
438
+ if (in_array($cat, $post_cats)) {
439
+ $check = true;
440
+ }
441
  }
 
442
 
443
+ if ($check) {
444
+ // hang on -- can registered users subscribe to
445
+ // excluded categories?
446
+ if ('0' == $this->subscribe2_options['reg_override']) {
447
+ // nope? okay, let's leave
448
+ return $post;
449
+ }
450
+ }
451
 
452
+ // Are we sending notifications for Private posts?
453
+ // Action is added if we are, but double check option and post status
454
+ if ( ($this->subscribe2_options['private'] == "yes") && ($post->post_status == 'private') ) {
455
+ // don't send notification to public users
456
+ $check = true;
457
+ }
458
+
459
+ // lets collect our subscribers
460
+ if (!$check) {
461
+ // if this post is assigned to an excluded
462
+ // category, or is a private post then
463
+ // don't send public subscribers a notification
464
+ $public = $this->get_public();
465
+ }
466
+ $post_cats_string = implode(',', $post_cats);
467
+ $registered = $this->get_registered("cats=$post_cats_string");
468
 
469
+ // do we have subscribers?
470
+ if ( (empty($public)) && (empty($registered)) ) {
471
+ // if not, no sense doing anything else
472
+ return $post;
473
+ }
474
  }
475
+
476
  // we set these class variables so that we can avoid
477
  // passing them in function calls a little later
478
  $this->post_title = "<a href=\"" . get_permalink($post->ID) . "\">" . $post->post_title . "</a>";
479
  $this->permalink = "<a href=\"" . get_permalink($post->ID) . "\">" . get_permalink($post->ID) . "</a>";
480
+
481
  $author = get_userdata($post->post_author);
482
  $this->authorname = $author->display_name;
483
 
484
  // do we send as admin, or post author?
485
  if ('author' == $this->subscribe2_options['sender']) {
486
+ // get author details
487
  $user = &$author;
488
  } else {
489
  // get admin details
497
  $mailtext = apply_filters('s2_email_template', $this->subscribe2_options['mailtext']);
498
  $mailtext = stripslashes($this->substitute($mailtext));
499
 
500
+ $this->post_cat_names = implode(', ', wp_get_post_categories($post->ID, array('fields' => 'names')));
501
+ $this->post_tag_names = implode(', ', wp_get_post_tags($post->ID, array('fields' => 'names')));
502
+
503
  $plaintext = $post->post_content;
504
  if (function_exists('strip_shortcodes')) {
505
  $plaintext = strip_shortcodes($plaintext);
529
  }
530
  }
531
 
532
+ // prepare mail body texts
533
+ $excerpt_body = str_replace("POST", $excerpt, $mailtext);
534
+ $full_body = str_replace("POST", strip_tags($plaintext), $mailtext);
535
+ $html_body = str_replace("\r\n", "<br />\r\n", $mailtext);
536
+ $html_body = str_replace("POST", $content, $html_body);
537
+
538
+ if ($preview != '') {
539
+ $this->mail(array($preview), $subject, $excerpt_body);
540
+ $this->mail(array($preview), $subject, $full_body);
541
+ $this->mail(array($preview), $subject, $html_body, 'html');
542
  } else {
543
+ // first we send plaintext summary emails
544
+ $registered = $this->get_registered("cats=$post_cats_string&format=text&amount=excerpt");
545
+ if (empty($registered)) {
546
+ $recipients = (array)$public;
547
+ }
548
+ elseif (empty($public)) {
549
+ $recipients = (array)$registered;
550
+ } else {
551
+ $recipients = array_merge((array)$public, (array)$registered);
552
+ }
553
+ $this->mail($recipients, $subject, $excerpt_body);
554
+
555
+ // next we send plaintext full content emails
556
+ $this->mail($this->get_registered("cats=$post_cats_string&format=text&amount=post"), $subject, $full_body);
557
+
558
+ // finally we send html full content emails
559
+ $this->mail($this->get_registered("cats=$post_cats_string&format=html"), $subject, $html_body, 'html');
560
  }
 
 
 
 
 
 
 
 
561
  } // end publish()
562
 
563
  /**
574
  /**
575
  Send confirmation email to the user
576
  */
577
+ function send_confirm($what = '', $is_remind = false) {
578
+ if ($this->filtered == 1) { return true; }
579
  if ( (!$this->email) || (!$what) ) {
580
  return false;
581
  }
599
  $link .= md5($this->email);
600
  $link .= $id;
601
 
602
+ if ($is_remind == true) {
 
 
 
603
  $body = $this->substitute(stripslashes($this->subscribe2_options['remind_email']));
604
  $subject = $this->substitute(stripslashes($this->subscribe2_options['remind_subject']));
605
  } else {
614
 
615
  $body = str_replace("LINK", $link, $body);
616
 
617
+ $mailheaders = $this->headers();
 
 
 
 
 
 
618
 
619
  return @wp_mail($this->email, $subject, $body, $mailheaders);
620
  } // end send_confirm()
734
  */
735
  function remind($emails = '') {
736
  if ('' == $emails) { return false; }
737
+
738
  $recipients = explode(",", $emails);
739
  if (!is_array($recipients)) { $recipients = (array)$recipients; }
740
  foreach ($recipients as $recipient) {
741
  $this->email = $recipient;
742
+ $this->send_confirm('add', true);
743
  }
744
  } //end remind()
745
 
750
  $barred_option = $this->subscribe2_options['barred'];
751
  list($user, $domain) = split('@', $email);
752
  $bar_check = stristr($barred_option, $domain);
753
+
754
  if (!empty($bar_check)) {
755
  return true;
756
  } else {
757
  return false;
758
  }
759
  } //end is_barred()
760
+
761
  /**
762
  Confirm request from the link emailed to the user and email the admin
763
  */
792
  $subject = '[' . get_option('blogname') . '] ' . __('New subscription', 'subscribe2');
793
  $message = $this->email . " " . __('subscribed to email notifications!', 'subscribe2');
794
  $recipients = $wpdb->get_col("SELECT DISTINCT(user_email) FROM $wpdb->users INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key='" . $wpdb->prefix . "user_level' AND $wpdb->usermeta.meta_value='10'");
795
+ $headers = $this->headers();
796
+ foreach ($recipients as $recipient) {
797
+ @wp_mail($recipient, $subject, $message, $headers);
798
+ }
799
  }
800
  }
801
  $this->filtered = 1;
808
  $subject = '[' . get_option('blogname') . '] ' . __('New Unsubscription', 'subscribe2');
809
  $message = $this->email . " " . __('unsubscribed from email notifications!', 'subscribe2');
810
  $recipients = $wpdb->get_col("SELECT DISTINCT(user_email) FROM $wpdb->users INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key='" . $wpdb->prefix . "user_level' AND $wpdb->usermeta.meta_value='10'");
811
+ $headers = $this->headers();
812
+ foreach ($recipients as $recipient) {
813
+ @wp_mail($recipient, $subject, $message, $headers);
814
+ }
815
  }
816
  }
817
  $this->filtered = 1;
941
  // specific category subscribers
942
  if ('' != $r['cats']) {
943
  $JOIN .= "INNER JOIN $wpdb->usermeta AS d ON a.user_id = d.user_id ";
944
+ $all = '';
945
  foreach (explode(',', $r['cats']) as $cat) {
946
  ('' == $and) ? $and = "d.meta_key='" . $this->get_usermeta_keyname('s2_cat') . "$cat'" : $and .= " OR d.meta_key='" . $this->get_usermeta_keyname('s2_cat') . "$cat'";
947
  }
982
  Create the appropriate usermeta values when a user registers
983
  If the registering user had previously subscribed to notifications, this function will delete them from the public subscriber list first
984
  */
985
+ function register($user_ID = 0) {
986
  global $wpdb;
987
 
988
+ if (0 == $user_ID) { return $user_ID; }
989
+ $user = get_userdata($user_ID);
990
  $all_cats = get_categories(array('hide_empty' => false));
991
 
992
  // Are registered users are allowed to subscribe to excluded categories?
1006
 
1007
  if ('' == $cats) {
1008
  // sanity check, might occur if all cats excluded and reg_override = 0
1009
+ return $user_ID;
1010
  }
1011
 
1012
  // has this user previously signed up for email notification?
1013
  if (false !== $this->is_public($user->user_email)) {
1014
  // delete this user from the public table, and subscribe them to all the categories
1015
  $this->delete($user->user_email);
1016
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), $cats);
1017
  foreach (explode(',', $cats) as $cat) {
1018
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $cat, "$cat");
1019
  }
1020
+ update_usermeta($user_ID, 's2_format', 'text');
1021
+ update_usermeta($user_ID, 's2_excerpt', 'excerpt');
1022
+ update_usermeta($user_ID, 's2_autosub', $this->subscribe2_options['autosub_def']);
1023
  } else {
1024
  // create post format entries for all users
1025
+ $check_format = get_usermeta($user_ID, 's2_format');
1026
  if (empty($check_format)) {
1027
  // ensure existing subscription options are not overwritten on upgrade
1028
  if ('html' == $this->subscribe2_options['autoformat']) {
1029
+ update_usermeta($user_ID, 's2_format', 'html');
1030
+ update_usermeta($user_ID, 's2_excerpt', 'post');
1031
  } elseif ('fulltext' == $this->subscribe2_options['autoformat']) {
1032
+ update_usermeta($user_ID, 's2_format', 'text');
1033
+ update_usermeta($user_ID, 's2_excerpt', 'post');
1034
  } else {
1035
+ update_usermeta($user_ID, 's2_format', 'text');
1036
+ update_usermeta($user_ID, 's2_excerpt', 'excerpt');
1037
  }
1038
+ update_usermeta($user_ID, 's2_autosub', $this->subscribe2_options['autosub_def']);
1039
  // if the are no existing subscriptions, create them if, by default if autosub is on
1040
  if ( ('yes' == $this->subscribe2_options['autosub']) || (('wpreg' == $this->subscribe2_options['autosub']) && ('on' == $_POST['subscribe'])) ) {
1041
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), $cats);
1042
  foreach (explode(',', $cats) as $cat) {
1043
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $cat, "$cat");
1044
  }
1045
  }
1046
  }
1047
+ $subscribed = get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'));
1048
  if (strstr($subscribed, '-1')) {
1049
  // make sure we remove '-1' from any settings
1050
  $old_cats = explode(',', $subscribed);
1051
  $pos = array_search('-1', $old_cats);
1052
  unset($old_cats[$pos]);
1053
  $cats = implode(',', $old_cats);
1054
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), $cats);
1055
  }
1056
  }
1057
+ return $user_ID;
1058
  } // end register()
1059
 
1060
  /**
1063
  function subscribe_registered_users($emails = '', $cats = '') {
1064
  if ( ('' == $emails) || ('' == $cats) ) { return false; }
1065
  global $wpdb;
1066
+
1067
  $useremails = explode(",", $emails);
1068
  $useremails = implode("', '", $useremails);
1069
 
1072
  if (!is_array($cats)) {
1073
  $cats = array($cats);
1074
  }
1075
+
1076
+ foreach ($user_IDs as $user_ID) {
1077
  $old_cats = get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'));
1078
  $old_cats = explode(',', $old_cats);
1079
  if (!is_array($old_cats)) {
1097
  function unsubscribe_registered_users($emails = '', $cats = '') {
1098
  if ( ('' == $emails) || ('' == $cats) ) { return false; }
1099
  global $wpdb;
1100
+
1101
  $useremails = explode(",", $emails);
1102
  $useremails = implode("', '", $useremails);
1103
 
1106
  if (!is_array($cats)) {
1107
  $cats = array($cats);
1108
  }
1109
+
1110
+ foreach ($user_IDs as $user_ID) {
1111
  $old_cats = explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')));
1112
  if (!is_array($old_cats)) {
1113
  $old_cats = array($old_cats);
1141
  if ($blog_id >= 0) {
1142
  switch_to_blog($blog_id);
1143
 
1144
+ $user_ID = get_current_user_id();
1145
 
1146
  // if user is not a user of the current blog
1147
  if (!is_blog_user($blog_id)) {
1148
  // add user to current blog as subscriber
1149
+ add_user_to_blog($blog_id, $user_ID, 'subscriber');
1150
+ // add an action hook for external manipulation of blog and user data
1151
+ do_action_ref_array('subscribe2_wpmu_subscribe', array($user_ID, $blog_id));
1152
  }
1153
 
1154
  // subscribe to all categories by default
1169
  foreach ($all_cats as $cat => $term) {
1170
  $term_id = $term->term_id;
1171
  $cats[] = $term_id;
1172
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $term_id, $term_id);
1173
  }
1174
  if (empty($cats)) {
1175
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), '');
1176
  } else {
1177
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $cats));
1178
  }
1179
 
1180
  // don't restore_current_blog(); -> redirect to new subscription page
1186
  if ($blog_id >= 0) {
1187
  switch_to_blog($blog_id);
1188
 
1189
+ $user_ID = get_current_user_id();
1190
 
1191
  // delete subscription to all categories on that blog
1192
+ $cats = get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'));
1193
  $cats = explode(',', $cats);
1194
  if (!is_array($cats)) {
1195
  $cats = array($cats);
1196
  }
1197
 
1198
  foreach ($cats as $id) {
1199
+ delete_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $id);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1200
  }
1201
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), '');
1202
+
1203
+ // add an action hook for external manipulation of blog and user data
1204
+ do_action_ref_array('subscribe2_wpmu_unsubscribe', array($user_ID, $blog_id));
1205
+
1206
  restore_current_blog();
1207
  $redirect_to_subscriptionpage = true;
1208
  }
1209
  }
1210
 
1211
  if ($redirect_to_subscriptionpage == true) {
1212
+ if (!is_user_member_of_blog($user_ID)) {
1213
+ $user_blogs = get_active_blog_for_user($user_ID);
1214
  if (is_array($user_blogs)) {
1215
  switch_to_blog(key($user_blogs));
1216
+ } else {
1217
+ // no longer a member of a blog
1218
+ wp_redirect(get_option('siteurl')); // redirect to front page
1219
+ exit();
1220
  }
1221
  }
1222
 
1237
  Autosubscribe registered users to newly created categories
1238
  if registered user has selected this option
1239
  */
1240
+ function new_category($new_category='') {
1241
+ if ('no' == $this->subscribe2_options['show_autosub']) { return; }
1242
  global $wpdb;
1243
 
1244
+ if ('yes' == $this->subscribe2_options['show_autosub']) {
1245
+ $sql = "SELECT DISTINCT user_id FROM $wpdb->usermeta WHERE $wpdb->usermeta.meta_key='s2_autosub' AND $wpdb->usermeta.meta_value='yes'";
1246
+ $user_IDs = $wpdb->get_col($sql);
1247
+ if ('' == $user_IDs) { return; }
1248
 
1249
+ foreach ($user_IDs as $user_ID) {
1250
+ $old_cats = explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')));
1251
+ if (!is_array($old_cats)) {
1252
+ $old_cats = array($old_cats);
1253
+ }
1254
+ // add subscription to these cat IDs
1255
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $new_category, "$new_category");
1256
+ $newcats = array_merge($old_cats, (array)$new_category);
1257
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $newcats));
1258
  }
1259
+ } elseif ('exclude' == $this->subscribe2_options['show_autosub']) {
1260
+ $excluded_cats = explode(',', $this->subscribe2_options['exclude']);
1261
+ $excluded_cats[] = $new_category;
1262
+ $this->subscribe2_options['exclude'] = implode(',', $excluded_cats);
1263
+ update_option('subscribe2_options', $this->subscribe2_options);
1264
  }
1265
+ } // end new_category()
1266
 
1267
  function delete_category($deleted_category='') {
1268
  global $wpdb;
1271
  $user_IDs = $wpdb->get_col($sql);
1272
  if ('' == $user_IDs) { return; }
1273
 
1274
+ foreach ($user_IDs as $user_ID) {
1275
  $old_cats = explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')));
1276
  if (!is_array($old_cats)) {
1277
  $old_cats = array($old_cats);
1281
  $remain = array_diff($old_cats, (array)$deleted_category);
1282
  update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $remain));
1283
  }
 
1284
  }
1285
 
1286
  /**
1289
  function get_userdata($admin_id) {
1290
  global $wpdb, $userdata;
1291
 
1292
+ // ensure compatability with possible 'sender' settings
1293
+ if ( ($admin_id == 'admin') || ($admin_id == 'author') ) {
1294
  $admin_id = 1;
1295
  }
1296
 
1302
 
1303
  // if user record is empty grab the first admin from the database
1304
  if (empty($admin)) {
1305
+ $sql = "SELECT DISTINCT(ID) FROM $wpdb->users INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key='" . $wpdb->prefix . "user_level' AND $wpdb->usermeta.meta_value IN (8, 9, 10) LIMIT 1";
1306
  $admin = get_userdata($wpdb->get_var($sql));
1307
  }
1308
 
1309
  return $admin;
1310
  } //end get_userdata()
1311
+
1312
  /* ===== Menus ===== */
1313
  /**
1314
  Our management page
1505
  echo "<p>" . __('Enter addresses, one per line or comma-separated', 'subscribe2') . "<br />\r\n";
1506
  echo "<textarea rows=\"2\" cols=\"80\" name=\"addresses\"></textarea></p>\r\n";
1507
  echo "<input type=\"hidden\" name=\"s2_admin\" />\r\n";
1508
+ echo "<p class=\"submit\" style=\"border-top: none;\"><input type=\"submit\" class=\"button-primary\" name=\"subscribe\" value=\"" . __('Subscribe', 'subscribe2') . "\" />";
1509
+ echo "&nbsp;<input type=\"submit\" class=\"button-primary\" name=\"unsubscribe\" value=\"" . __('Unsubscribe', 'subscribe2') . "\" /></p>\r\n";
1510
 
1511
  // subscriber lists
1512
  echo "<h2>" . __('Current Subscribers', 'subscribe2') . "</h2>\r\n";
1518
  $exportcsv = implode(",\r\n", $subscribers);
1519
  echo "<table cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">";
1520
  echo "<tr class=\"alternate\"><td width=\"50%\"><input type=\"text\" name=\"searchterm\" value=\"\" />&nbsp;\r\n";
1521
+ echo "<input type=\"submit\" class=\"button-secondary\" name=\"search\" value=\"" . __('Search Subscribers', 'subscribe2') . "\" /></td>\r\n";
1522
  if ($reminderform) {
1523
  echo "<td width=\"25%\" align=\"right\"><input type=\"hidden\" name=\"reminderemails\" value=\"" . $reminderemails . "\" />\r\n";
1524
+ echo "<input type=\"submit\" class=\"button-secondary\" name=\"remind\" value=\"" . __('Send Reminder Email', 'subscribe2') . "\" /></td>\r\n";
1525
  } else {
1526
  echo "<td width=\"25%\"></td>";
1527
  }
1528
  echo "<td width=\"25%\" align=\"right\"><input type=\"hidden\" name=\"exportcsv\" value=\"" . $exportcsv . "\" />\r\n";
1529
+ echo "<input type=\"submit\" class=\"button-secondary\" name=\"csv\" value=\"" . __('Save Emails to CSV File', 'subscribe2') . "\" /></td></tr>\r\n";
1530
  echo "</table>";
1531
  }
1532
 
1533
  echo "<table class=\"widefat\" cellpadding=\"2\" cellspacing=\"2\">";
1534
  if (!empty($subscribers)) {
1535
+ echo "<tr><td colspan=\"3\" align=\"center\"><input type=\"submit\" class=\"button-secondary\" name=\"process\" value=\"" . __('Process', 'subscribe2') . "\" /></td>\r\n";
1536
  echo "<td align=\"right\">" . $strip . "</td></tr>\r\n";
1537
  }
1538
  if (!empty($subscribers)) {
1586
  }
1587
  }
1588
  if (!empty($subscribers)) {
1589
+ echo "<tr><td colspan=\"3\" align=\"center\"><input type=\"submit\" class=\"button-secondary\" name=\"process\" value=\"" . __('Process', 'subscribe2') . "\" /></td>\r\n";
1590
  echo "<td align=\"right\">" . $strip . "</td></tr>\r\n";
1591
  }
1592
  echo "</table>\r\n";
1602
  echo "<label><input type=\"radio\" name=\"manage\" value=\"unsubscribe\" />" . __('Unsubscribe', 'subscribe2') . "</label><br /><br />\r\n";
1603
  echo "<input type=\"hidden\" name=\"emails\" value=\"$emails\" />\r\n";
1604
  $this->display_category_form();
1605
+ echo "<p class=\"submit\"><input type=\"submit\" class=\"button-primary\" name=\"register\" value=\"" . __('Submit', 'subscribe2') . "\" /></p>";
1606
  echo "</form></div>\r\n";
1607
 
1608
  include(ABSPATH . 'wp-admin/admin-footer.php');
1622
  if ($_POST['reset']) {
1623
  $this->reset();
1624
  echo "<div id=\"message\" class=\"updated fade\"><p><strong>$this->options_reset</strong></p></div>";
1625
+ } elseif ($_POST['preview']) {
1626
+ global $user_email;
1627
+ $post = get_posts('numberposts=1');
1628
+ $this->publish($post[0], $user_email);
1629
  } elseif ($_POST['submit']) {
1630
  // BCClimit
1631
  if ( (is_numeric($_POST['bcc'])) && ($_POST['bcc'] >= 0) ) {
1736
  $this->subscribe2_options['autoformat'] = $_POST['autoformat'];
1737
  $this->subscribe2_options['show_autosub'] = $_POST['show_autosub'];
1738
  $this->subscribe2_options['autosub_def'] = $_POST['autosub_def'];
1739
+
1740
  //barred domains
1741
  $this->subscribe2_options['barred'] = $_POST['barred'];
1742
 
1799
  echo " checked=\"checked\"";
1800
  }
1801
  echo " /> " . __('No', 'subscribe2') . "</label><br /><br />\r\n";
1802
+
1803
  echo __('Send Emails for Pages', 'subscribe2') . ': ';
1804
  echo "<label><input type=\"radio\" name=\"pages\" value=\"yes\"";
1805
  if ('yes' == $this->subscribe2_options['pages']) {
1835
  echo " /> " . __('No', 'subscribe2') . "</label><br /><br />\r\n";
1836
  echo __('Send Email From', 'subscribe2') . ': ';
1837
  echo "<label>\r\n";
1838
+ $this->admin_dropdown(true);
1839
  echo "</label><br /><br />\r\n";
1840
  if (function_exists('wp_schedule_event')) {
1841
  echo __('Send Emails', 'subscribe2') . ": <br /><br />\r\n";
1853
  echo "<br />\r\n";
1854
  echo "<textarea rows=\"9\" cols=\"60\" name=\"mailtext\">" . stripslashes($this->subscribe2_options['mailtext']) . "</textarea><br /><br />\r\n";
1855
  echo "</td><td valign=\"top\" rowspan=\"3\">";
1856
+ echo "<p class=\"submit\"><input type=\"submit\" class=\"button-secondary\" name=\"preview\" value=\"" . __('Send Email Preview', 'subscribe2') . "\" /></p>\r\n";
1857
  echo "<h3>" . __('Message substitions', 'subscribe2') . "</h3>\r\n";
1858
  echo "<dl>";
1859
  echo "<dt><b>BLOGNAME</b></dt><dd>" . get_bloginfo('name') . "</dd>\r\n";
1869
  echo "<dt><b>AUTHORNAME</b></dt><dd>" . __("the post author's name", 'subscribe2') . "</dd>\r\n";
1870
  echo "<dt><b>LINK</b></dt><dd>" . __("the generated link to confirm a request<br />(<i>only used in the confirmation email template</i>)", 'subscribe2') . "</dd>\r\n";
1871
  echo "<dt><b>ACTION</b></dt><dd>" . __("Action performed by LINK in confirmation email<br />(<i>only used in the confirmation email template</i>)", 'subscribe2') . "</dd>\r\n";
1872
+ echo "<dt><b>CATS</b></dt><dd>" . __("the post's assigned categories", 'subscribe2') . "</dd>\r\n";
1873
+ echo "<dt><b>TAGS</b></dt><dd>" . __("the post's assigned Tags", 'subscribe2') . "</dd>\r\n";
1874
  echo "</dl></td></tr><tr><td>";
1875
  echo __('Subscribe / Unsubscribe confirmation email', 'subscribe2') . ":<br />\r\n";
1876
  echo __('Subject Line', 'subscribe2') . ": ";
1894
  echo " checked=\"checked\"";
1895
  }
1896
  echo " /> " . __('Allow registered users to subscribe to excluded categories?', 'subscribe2') . "</label></center><br />\r\n";
1897
+
1898
  // Appearance options
1899
  echo "<h2>" . __('Appearance', 'subscribe2') . "</h2>\r\n";
1900
  echo"<p>";
1901
+
1902
  // WordPress page ID where subscribe2 token is used
1903
  echo __('Set default Subscribe2 page as ID', 'subscribe2') . ': ';
1904
  echo "<span id=\"s2page_1\"><span id=\"s2page\" style=\"background-color: #FFFBCC\">" . $this->subscribe2_options['s2page'] . "</span> ";
1996
  echo "checked=\"checked\" ";
1997
  }
1998
  echo "/> " . __('Plain Text - Excerpt', 'subscribe2') . "</label><br /><br />";
1999
+ echo __('Registered Users have the option to auto-subscribe to new categories', 'subscribe2') . ": <br />\r\n";
2000
  echo "<label><input type=\"radio\" name=\"show_autosub\" value=\"yes\"";
2001
  if ('yes' == $this->subscribe2_options['show_autosub']) {
2002
  echo " checked=\"checked\"";
2006
  if ('no' == $this->subscribe2_options['show_autosub']) {
2007
  echo " checked=\"checked\"";
2008
  }
2009
+ echo " />" . __('No', 'subscribe2') . "</label>&nbsp;&nbsp;";
2010
+ echo "<label><input type=\"radio\" name=\"show_autosub\" value=\"exclude\"";
2011
+ if ('exclude' == $this->subscribe2_options['show_autosub']) {
2012
+ echo " checked=\"checked\"";
2013
+ }
2014
+ echo " />" .__('New categories are immediately excluded', 'subscribe2') . "</label><br /><br />";
2015
+ echo __('Option for Registered Users to auto-subscribe to new categories is checked by default', 'subscribe2') . ": <br />\r\n";
2016
  echo "<label><input type=\"radio\" name=\"autosub_def\" value=\"yes\"";
2017
  if ('yes' == $this->subscribe2_options['autosub_def']) {
2018
  echo " checked=\"checked\"";
2033
  echo"</p>";
2034
 
2035
  // submit
2036
+ echo "<p class=\"submit\" align=\"center\"><input type=\"submit\" class=\"button-primary\" name=\"submit\" value=\"" . __('Submit', 'subscribe2') . "\" /></p>";
2037
 
2038
  // reset
2039
  echo "<h2>" . __('Reset Default', 'subscribe2') . "</h2>\r\n";
2205
  }
2206
 
2207
  // submit
2208
+ echo "<p class=\"submit\"><input type=\"submit\" class=\"button-primary\" name=\"submit\" value=\"" . __("Update Preferences", 'subscribe2') . " &raquo;\" /></p>";
2209
  echo "</form>\r\n";
2210
+
 
2211
  // list of subscribed blogs on wordpress mu
2212
  if ($this->s2_mu) {
2213
  global $blog_id;
2216
  $blogs_subscribed = array();
2217
  $blogs_notsubscribed = array();
2218
 
2219
+ foreach ($blogs as $key => $blog) {
2220
  // switch to blog
2221
  switch_to_blog($blog['blog_id']);
2222
 
2372
  $this->display_subscriber_dropdown('registered', false, array('all'));
2373
  echo "<input type=\"hidden\" name=\"s2_admin\" value=\"mail\" />";
2374
  echo "</p>";
2375
+ echo "<p class=\"submit\"><input type=\"submit\" class=\"button-primary\" name=\"submit\" value=\"" . __('Send', 'subscribe2') . "\" /></p>";
2376
  echo "</form></div>\r\n";
2377
  echo "<div style=\"clear: both;\"><p>&nbsp;</p></div>";
2378
 
2402
  }
2403
  }
2404
  }
2405
+
2406
  $half = (count($all_cats) / 2);
2407
  $i = 0;
2408
  $j = 0;
2510
  }
2511
  echo "</select>";
2512
  if (false !== $submit) {
2513
+ echo "&nbsp;<input type=\"submit\" class=\"button-secondary\" value=\"$submit\" />\r\n";
2514
  }
2515
  } // end display_subscriber_dropdown()
2516
 
2518
  Display a drop down lisy of administrator level users and
2519
  optionally include a choice for Post Author
2520
  */
2521
+ function admin_dropdown($inc_author = false) {
2522
  global $wpdb;
2523
 
2524
+ $sql = "SELECT ID,display_name FROM $wpdb->users INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key='" . $wpdb->prefix . "user_level' AND $wpdb->usermeta.meta_value IN (8, 9, 10)";
2525
  $admins = $wpdb->get_results($sql);
2526
+
 
2527
  if ($inc_author) {
2528
  $author[] = (object)array('ID' => 'author', 'display_name' => 'Post Author');
2529
  $admins = array_merge($author, $admins);
2640
  */
2641
  function register_post() {
2642
  if ('on' == $_POST['subscribe']) {
2643
+ $user = get_userdatabylogin($_POST['user_login']);
2644
+ if (0 == $user->ID) { return; }
2645
+ $this->register($user->ID);
2646
  }
2647
  }
2648
 
2690
  Meta box form handler
2691
  */
2692
  function s2_meta_handler($post_id) {
2693
+ if ( (!isset($_POST['s2meta_nonce'])) || (!wp_verify_nonce($_POST['s2meta_nonce'], md5(plugin_basename(__FILE__)))) ) { return $post_id; }
2694
 
2695
  if ('page' == $_POST['post_type']) {
2696
  if (!current_user_can('edit_page', $post_id)) { return $post_id; }
2698
  if (!current_user_can('edit_post', $post_id)) { return $post_id; }
2699
  }
2700
 
2701
+ if ( (isset($_POST['s2_meta_field'])) && ($_POST['s2_meta_field'] == 'no') ) {
2702
  update_post_meta($post_id, 's2mail', $_POST['s2_meta_field']);
2703
  } else {
2704
  delete_post_meta($post_id, 's2mail');
2938
  $arr['subscribe2'] = $path;
2939
  return $arr;
2940
  }
2941
+
2942
  function mce3_button($arr) {
2943
  $arr[] = 'subscribe2';
2944
  return $arr;
3148
  add_filter('the_title', array(&$this, 'title_filter'));
3149
  add_filter('the_content', array(&$this, 'confirm'));
3150
  }
3151
+
3152
  if ( (isset($_POST['s2_admin'])) && ($_POST['csv']) ) {
3153
  $date = date('Y-m-d');
3154
  header("Content-Description: File Transfer");
3160
 
3161
  exit(0);
3162
  }
3163
+
3164
  //add regular actions and filters
3165
  add_action('admin_menu', array(&$this, 'admin_menu'));
3166
  add_action('admin_menu', array(&$this, 's2_meta_init'));
3167
  add_action('save_post', array(&$this, 's2_meta_handler'));
3168
+ add_action('create_category', array(&$this, 'new_category'));
3169
  add_action('delete_category', array(&$this, 'delete_category'));
3170
  add_filter('the_content', array(&$this, 'filter'), 10);
3171
  add_filter('cron_schedules', array(&$this, 'add_weekly_sched'));
3186
  add_action('register_form', array(&$this, 'register_form'));
3187
  add_action('user_register', array(&$this, 'register'));
3188
  add_action('add_user_to_blog', array(&$this, 'register'), 10, 1);
3189
+
3190
+ if ( ($this->s2_mu) && ((isset($_GET['s2mu_subscribe'])) || (isset($_GET['s2mu_unsubscribe']))) ) {
3191
  add_action('admin_init', array(&$this, 'wpmu_subscribe'));
3192
  }
3193
 
subscribe2.pot CHANGED
@@ -8,7 +8,7 @@ msgid ""
8
  msgstr ""
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2009-05-24 20:26+0100\n"
12
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -76,13 +76,13 @@ msgstr ""
76
  msgid "Enter email address..."
77
  msgstr ""
78
 
79
- #: subscribe2.php:85 subscribe2.php:1477 subscribe2.php:1570
80
- #: subscribe2.php:2256
81
  msgid "Subscribe"
82
  msgstr ""
83
 
84
- #: subscribe2.php:85 subscribe2.php:1478 subscribe2.php:1571
85
- #: subscribe2.php:2235
86
  msgid "Unsubscribe"
87
  msgstr ""
88
 
@@ -122,11 +122,11 @@ msgstr ""
122
  msgid "Subscribe2 Options"
123
  msgstr ""
124
 
125
- #: subscribe2.php:111 subscribe2.php:2784 subscribe2.php:2888
126
  msgid "Subscribe2"
127
  msgstr ""
128
 
129
- #: subscribe2.php:116 subscribe2.php:1739
130
  msgid "Subscriptions"
131
  msgstr ""
132
 
@@ -134,605 +134,621 @@ msgstr ""
134
  msgid "Mail Subscribers"
135
  msgstr ""
136
 
137
- #: subscribe2.php:771
138
  msgid "New subscription"
139
  msgstr ""
140
 
141
- #: subscribe2.php:772
142
  msgid "subscribed to email notifications!"
143
  msgstr ""
144
 
145
- #: subscribe2.php:784
146
  msgid "New Unsubscription"
147
  msgstr ""
148
 
149
- #: subscribe2.php:785
150
  msgid "unsubscribed from email notifications!"
151
  msgstr ""
152
 
153
- #: subscribe2.php:1302
154
  msgid "Address(es) subscribed!"
155
  msgstr ""
156
 
157
- #: subscribe2.php:1305
158
  msgid "Address(es) unsubscribed!"
159
  msgstr ""
160
 
161
- #: subscribe2.php:1315
162
  msgid "Address(es) deleted!"
163
  msgstr ""
164
 
165
- #: subscribe2.php:1321 subscribe2.php:1327
166
  msgid "Status changed!"
167
  msgstr ""
168
 
169
- #: subscribe2.php:1341
170
  msgid "Reminder Email(s) Sent!"
171
  msgstr ""
172
 
173
- #: subscribe2.php:1344
174
  msgid "Registered Users Subscribed!"
175
  msgstr ""
176
 
177
- #: subscribe2.php:1347
178
  msgid "Registered Users Unsubscribed!"
179
  msgstr ""
180
 
181
- #: subscribe2.php:1442
182
  msgid "Previous Page"
183
  msgstr ""
184
 
185
- #: subscribe2.php:1462
186
  msgid "Next Page"
187
  msgstr ""
188
 
189
- #: subscribe2.php:1468
190
  msgid "Manage Subscribers"
191
  msgstr ""
192
 
193
- #: subscribe2.php:1473
194
  msgid "Add/Remove Subscribers"
195
  msgstr ""
196
 
197
- #: subscribe2.php:1474
198
  msgid "Enter addresses, one per line or comma-separated"
199
  msgstr ""
200
 
201
- #: subscribe2.php:1481
202
  msgid "Current Subscribers"
203
  msgstr ""
204
 
205
- #: subscribe2.php:1483
206
  msgid "Filter"
207
  msgstr ""
208
 
209
- #: subscribe2.php:1490
210
  msgid "Search Subscribers"
211
  msgstr ""
212
 
213
- #: subscribe2.php:1493
214
  msgid "Send Reminder Email"
215
  msgstr ""
216
 
217
- #: subscribe2.php:1498
218
  msgid "Save Emails to CSV File"
219
  msgstr ""
220
 
221
- #: subscribe2.php:1504 subscribe2.php:1558
222
  msgid "Process"
223
  msgstr ""
224
 
225
- #: subscribe2.php:1513 subscribe2.php:1535
226
  msgid "Confirm this email address"
227
  msgstr ""
228
 
229
- #: subscribe2.php:1515 subscribe2.php:1528
230
  msgid "Unconfirm this email address"
231
  msgstr ""
232
 
233
- #: subscribe2.php:1517 subscribe2.php:1530 subscribe2.php:1538
234
  msgid "Delete this email address"
235
  msgstr ""
236
 
237
- #: subscribe2.php:1521 subscribe2.php:2392
238
  msgid "Select / Unselect All"
239
  msgstr ""
240
 
241
- #: subscribe2.php:1545
242
  msgid "edit"
243
  msgstr ""
244
 
245
- #: subscribe2.php:1552
246
  msgid "No matching subscribers found"
247
  msgstr ""
248
 
249
- #: subscribe2.php:1554
250
  msgid "NONE"
251
  msgstr ""
252
 
253
- #: subscribe2.php:1564
254
  msgid "Categories"
255
  msgstr ""
256
 
257
- #: subscribe2.php:1566
258
  msgid ""
259
  "Existing Registered Users can be automatically (un)subscribed to categories "
260
  "using this section."
261
  msgstr ""
262
 
263
- #: subscribe2.php:1567
264
  msgid "Consider User Privacy as changes cannot be undone"
265
  msgstr ""
266
 
267
- #: subscribe2.php:1569
268
  msgid "Action to perform"
269
  msgstr ""
270
 
271
- #: subscribe2.php:1574 subscribe2.php:1993
272
  msgid "Submit"
273
  msgstr ""
274
 
275
- #: subscribe2.php:1714
276
  msgid "Subscribe2 Settings"
277
  msgstr ""
278
 
279
- #: subscribe2.php:1725 subscribe2.php:2080
280
  msgid "Notification Settings"
281
  msgstr ""
282
 
283
- #: subscribe2.php:1726
284
  msgid "Restrict the number of recipients per email to (0 for unlimited)"
285
  msgstr ""
286
 
287
- #: subscribe2.php:1728 subscribe2.php:1867 subscribe2.php:1876
288
  msgid "Edit"
289
  msgstr ""
290
 
291
- #: subscribe2.php:1731 subscribe2.php:1870 subscribe2.php:1879
292
  msgid "Update"
293
  msgstr ""
294
 
295
- #: subscribe2.php:1732 subscribe2.php:1871 subscribe2.php:1880
296
  msgid "Revert"
297
  msgstr ""
298
 
299
- #: subscribe2.php:1734
300
  msgid "Send Admins notifications for new"
301
  msgstr ""
302
 
303
- #: subscribe2.php:1744
304
  msgid "Unsubscriptions"
305
  msgstr ""
306
 
307
- #: subscribe2.php:1749
308
  msgid "Both"
309
  msgstr ""
310
 
311
- #: subscribe2.php:1754
312
  msgid "Neither"
313
  msgstr ""
314
 
315
- #: subscribe2.php:1756
316
  msgid "Include theme CSS stylesheet in HTML notifications"
317
  msgstr ""
318
 
319
- #: subscribe2.php:1761 subscribe2.php:1773 subscribe2.php:1784
320
- #: subscribe2.php:1795 subscribe2.php:1928 subscribe2.php:1939
321
- #: subscribe2.php:1966 subscribe2.php:1977 subscribe2.php:2120
322
- #: subscribe2.php:2156
323
  msgid "Yes"
324
  msgstr ""
325
 
326
- #: subscribe2.php:1766 subscribe2.php:1778 subscribe2.php:1789
327
- #: subscribe2.php:1800 subscribe2.php:1922 subscribe2.php:1933
328
- #: subscribe2.php:1944 subscribe2.php:1971 subscribe2.php:1982
329
- #: subscribe2.php:2125 subscribe2.php:2160
330
  msgid "No"
331
  msgstr ""
332
 
333
- #: subscribe2.php:1768
334
  msgid "Send Emails for Pages"
335
  msgstr ""
336
 
337
- #: subscribe2.php:1779
338
  msgid "Send Emails for Password Protected Posts"
339
  msgstr ""
340
 
341
- #: subscribe2.php:1790
342
  msgid "Send Emails for Private Posts"
343
  msgstr ""
344
 
345
- #: subscribe2.php:1801
346
  msgid "Send Email From"
347
  msgstr ""
348
 
349
- #: subscribe2.php:1806
350
  msgid "Send Emails"
351
  msgstr ""
352
 
353
- #: subscribe2.php:1811
354
  msgid "Email Templates"
355
  msgstr ""
356
 
357
- #: subscribe2.php:1815
358
  msgid "New Post email (must not be empty)"
359
  msgstr ""
360
 
361
- #: subscribe2.php:1816 subscribe2.php:1838 subscribe2.php:1843
362
  msgid "Subject Line"
363
  msgstr ""
364
 
365
- #: subscribe2.php:1821
 
 
 
 
366
  msgid "Message substitions"
367
  msgstr ""
368
 
369
- #: subscribe2.php:1825
370
  msgid "the post's title<br />(<i>for per-post emails only</i>)"
371
  msgstr ""
372
 
373
- #: subscribe2.php:1826
374
  msgid ""
375
  "the excerpt or the entire post<br />(<i>based on the subscriber's "
376
  "preferences</i>)"
377
  msgstr ""
378
 
379
- #: subscribe2.php:1827
380
  msgid ""
381
  "the excerpt of the post and the time it was posted<br />(<i>for digest "
382
  "emails only</i>)"
383
  msgstr ""
384
 
385
- #: subscribe2.php:1828
386
  msgid "a list of post titles<br />(<i>for digest emails only</i>)"
387
  msgstr ""
388
 
389
- #: subscribe2.php:1829
390
  msgid "the post's permalink<br />(<i>for per-post emails only</i>)"
391
  msgstr ""
392
 
393
- #: subscribe2.php:1830
394
  msgid ""
395
  "the post's permalink after conversion by TinyURL<br />(<i>for per-post "
396
  "emails only</i>)"
397
  msgstr ""
398
 
399
- #: subscribe2.php:1831
400
  msgid "the admin or post author's name"
401
  msgstr ""
402
 
403
- #: subscribe2.php:1832
404
  msgid "the admin or post author's email"
405
  msgstr ""
406
 
407
- #: subscribe2.php:1833
408
  msgid "the post author's name"
409
  msgstr ""
410
 
411
- #: subscribe2.php:1834
412
  msgid ""
413
  "the generated link to confirm a request<br />(<i>only used in the "
414
  "confirmation email template</i>)"
415
  msgstr ""
416
 
417
- #: subscribe2.php:1835
418
  msgid ""
419
  "Action performed by LINK in confirmation email<br />(<i>only used in the "
420
  "confirmation email template</i>)"
421
  msgstr ""
422
 
423
- #: subscribe2.php:1837
 
 
 
 
 
 
 
 
424
  msgid "Subscribe / Unsubscribe confirmation email"
425
  msgstr ""
426
 
427
- #: subscribe2.php:1842
428
  msgid "Reminder email to Unconfirmed Subscribers"
429
  msgstr ""
430
 
431
- #: subscribe2.php:1849
432
  msgid "Excluded Categories"
433
  msgstr ""
434
 
435
- #: subscribe2.php:1851
436
  msgid ""
437
  "Posts assigned to any Excluded Category do not generate notifications and "
438
  "are not included in digest notifications"
439
  msgstr ""
440
 
441
- #: subscribe2.php:1858
442
  msgid "Allow registered users to subscribe to excluded categories?"
443
  msgstr ""
444
 
445
- #: subscribe2.php:1861
446
  msgid "Appearance"
447
  msgstr ""
448
 
449
- #: subscribe2.php:1865
450
  msgid "Set default Subscribe2 page as ID"
451
  msgstr ""
452
 
453
- #: subscribe2.php:1874
454
  msgid "Set the number of Subscribers displayed per page"
455
  msgstr ""
456
 
457
- #: subscribe2.php:1887
458
  msgid "Show a link to your subscription page in \"meta\"?"
459
  msgstr ""
460
 
461
- #: subscribe2.php:1894
462
  msgid "Show the Subscribe2 button on the Write toolbar?"
463
  msgstr ""
464
 
465
- #: subscribe2.php:1901
466
  msgid "Enable Subscribe2 Widget?"
467
  msgstr ""
468
 
469
- #: subscribe2.php:1905
470
  msgid "Auto Subscribe"
471
  msgstr ""
472
 
473
- #: subscribe2.php:1907
474
  msgid "Subscribe new users registering with your blog"
475
  msgstr ""
476
 
477
- #: subscribe2.php:1912
478
  msgid "Automatically"
479
  msgstr ""
480
 
481
- #: subscribe2.php:1917
482
  msgid "Display option on Registration Form"
483
  msgstr ""
484
 
485
- #: subscribe2.php:1923
486
  msgid "Auto-subscribe includes any excluded categories"
487
  msgstr ""
488
 
489
- #: subscribe2.php:1934
490
  msgid "Registration Form option is checked by default"
491
  msgstr ""
492
 
493
- #: subscribe2.php:1945
494
  msgid "Auto-subscribe users to receive email as"
495
  msgstr ""
496
 
497
- #: subscribe2.php:1950 subscribe2.php:2097
498
  msgid "HTML"
499
  msgstr ""
500
 
501
- #: subscribe2.php:1955
502
  msgid "Plain Text - Full"
503
  msgstr ""
504
 
505
- #: subscribe2.php:1960
506
  msgid "Plain Text - Excerpt"
507
  msgstr ""
508
 
509
- #: subscribe2.php:1961
510
- msgid "Display option for Register Users to auto-subscribe to new categories"
511
  msgstr ""
512
 
513
- #: subscribe2.php:1972
 
 
 
 
514
  msgid ""
515
- "Option for Register Users to auto-subscribe to new categories is checked by "
516
- "default"
517
  msgstr ""
518
 
519
- #: subscribe2.php:1986
520
  msgid "Barred Domains"
521
  msgstr ""
522
 
523
- #: subscribe2.php:1988
524
  msgid ""
525
  "Enter domains to bar from public subscriptions: <br /> (Use a new line for "
526
  "each entry and omit the \"@\" symbol, for example email.com)"
527
  msgstr ""
528
 
529
- #: subscribe2.php:1996
530
  msgid "Reset Default"
531
  msgstr ""
532
 
533
- #: subscribe2.php:1997
534
  msgid ""
535
  "Use this to reset all options to their defaults. This <strong><em>will not</"
536
  "em></strong> modify your list of subscribers."
537
  msgstr ""
538
 
539
- #: subscribe2.php:1999
540
  msgid "RESET"
541
  msgstr ""
542
 
543
- #: subscribe2.php:2025
544
  msgid "Subscription preferences updated."
545
  msgstr ""
546
 
547
- #: subscribe2.php:2083
548
  msgid "Editing Subscribe2 preferences for user"
549
  msgstr ""
550
 
551
- #: subscribe2.php:2092
552
  msgid "Receive email as"
553
  msgstr ""
554
 
555
- #: subscribe2.php:2102
556
  msgid "Plain Text"
557
  msgstr ""
558
 
559
- #: subscribe2.php:2104
560
  msgid "Email contains"
561
  msgstr ""
562
 
563
- #: subscribe2.php:2105
564
  msgid "Excerpt Only"
565
  msgstr ""
566
 
567
- #: subscribe2.php:2105
568
  msgid "Full Post"
569
  msgstr ""
570
 
571
- #: subscribe2.php:2113
572
  msgid "Note: HTML format will always deliver the full post"
573
  msgstr ""
574
 
575
- #: subscribe2.php:2115
576
  msgid "Automatically subscribe me to newly created categories"
577
  msgstr ""
578
 
579
- #: subscribe2.php:2136
580
  msgid "Unsubscribe me from this blog"
581
  msgstr ""
582
 
583
- #: subscribe2.php:2140
584
  msgid "Subscribe to all categories"
585
  msgstr ""
586
 
587
- #: subscribe2.php:2142
588
  msgid "Subscribed Categories on"
589
  msgstr ""
590
 
591
- #: subscribe2.php:2144
592
  msgid "Subscribed Categories"
593
  msgstr ""
594
 
595
- #: subscribe2.php:2150
596
  msgid "Receive periodic summaries of new posts?"
597
  msgstr ""
598
 
599
- #: subscribe2.php:2165
600
  msgid "Update Preferences"
601
  msgstr ""
602
 
603
- #: subscribe2.php:2224
604
  msgid "Subscribed Blogs"
605
  msgstr ""
606
 
607
- #: subscribe2.php:2229 subscribe2.php:2250
608
  msgid "Viewing Settings Now"
609
  msgstr ""
610
 
611
- #: subscribe2.php:2233 subscribe2.php:2254
612
  msgid "View Settings"
613
  msgstr ""
614
 
615
- #: subscribe2.php:2245
616
  msgid "Subscribe to new blogs"
617
  msgstr ""
618
 
619
- #: subscribe2.php:2316
620
  msgid "Send an email to subscribers"
621
  msgstr ""
622
 
623
- #: subscribe2.php:2324
624
  msgid "A message from "
625
  msgstr ""
626
 
627
- #: subscribe2.php:2326
628
  msgid "Subject"
629
  msgstr ""
630
 
631
- #: subscribe2.php:2329
632
  msgid "Recipients: "
633
  msgstr ""
634
 
635
- #: subscribe2.php:2333
636
  msgid "Send"
637
  msgstr ""
638
 
639
- #: subscribe2.php:2405
640
  msgid "All Users and Subscribers"
641
  msgstr ""
642
 
643
- #: subscribe2.php:2406
644
  msgid "Public Subscribers"
645
  msgstr ""
646
 
647
- #: subscribe2.php:2407
648
  msgid "Confirmed"
649
  msgstr ""
650
 
651
- #: subscribe2.php:2408
652
  msgid "Unconfirmed"
653
  msgstr ""
654
 
655
- #: subscribe2.php:2409
656
  msgid "All Registered Users"
657
  msgstr ""
658
 
659
- #: subscribe2.php:2410
660
  msgid "Registered Subscribers"
661
  msgstr ""
662
 
663
- #: subscribe2.php:2506
664
  msgid "For each Post"
665
  msgstr ""
666
 
667
- #: subscribe2.php:2521
668
  msgid "Send Digest Notification at"
669
  msgstr ""
670
 
671
- #: subscribe2.php:2533
672
  msgid ""
673
  "This option will work for digest notification sent daily or less frequently"
674
  msgstr ""
675
 
676
- #: subscribe2.php:2536
677
  msgid "Current UTC time is"
678
  msgstr ""
679
 
680
- #: subscribe2.php:2538
681
  msgid "Current blog time is"
682
  msgstr ""
683
 
684
- #: subscribe2.php:2540
685
  msgid "Next email notification will be sent when your blog time is after"
686
  msgstr ""
687
 
688
- #: subscribe2.php:2571
689
  msgid "Settings"
690
  msgstr ""
691
 
692
- #: subscribe2.php:2583
693
  msgid "Check here to Subscribe to email notifications for new posts"
694
  msgstr ""
695
 
696
- #: subscribe2.php:2592
697
  msgid ""
698
  "By registering with this blog you are also agreeing to receive email "
699
  "notifications for new posts but you can unsubscribe at anytime"
700
  msgstr ""
701
 
702
- #: subscribe2.php:2613 subscribe2.php:2614 subscribe2.php:2642
703
  msgid "Subscribe2 Notification Override"
704
  msgstr ""
705
 
706
- #: subscribe2.php:2628
707
  msgid ""
708
  "Check here to disable sending of an email notification for this post/page"
709
  msgstr ""
710
 
711
- #: subscribe2.php:2770
712
  msgid "Subscription Confirmation"
713
  msgstr ""
714
 
715
- #: subscribe2.php:2810
716
  msgid "Title:"
717
  msgstr ""
718
 
719
- #: subscribe2.php:2812
720
  msgid "Div class name:"
721
  msgstr ""
722
 
723
- #: subscribe2.php:2862
724
  msgid "[Un]Subscribe to Posts"
725
  msgstr ""
726
 
727
- #: subscribe2.php:2940
728
  msgid "Weekly"
729
  msgstr ""
730
 
731
- #: subscribe2.php:3008
732
  msgid "Posted on"
733
  msgstr ""
734
 
735
- #: subscribe2.php:3053
736
  msgid "Digest Email"
737
  msgstr ""
738
 
8
  msgstr ""
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
  "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2009-07-02 19:52+0100\n"
12
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
76
  msgid "Enter email address..."
77
  msgstr ""
78
 
79
+ #: subscribe2.php:85 subscribe2.php:1508 subscribe2.php:1601
80
+ #: subscribe2.php:2298
81
  msgid "Subscribe"
82
  msgstr ""
83
 
84
+ #: subscribe2.php:85 subscribe2.php:1509 subscribe2.php:1602
85
+ #: subscribe2.php:2277
86
  msgid "Unsubscribe"
87
  msgstr ""
88
 
122
  msgid "Subscribe2 Options"
123
  msgstr ""
124
 
125
+ #: subscribe2.php:111 subscribe2.php:2825 subscribe2.php:2929
126
  msgid "Subscribe2"
127
  msgstr ""
128
 
129
+ #: subscribe2.php:116 subscribe2.php:1774
130
  msgid "Subscriptions"
131
  msgstr ""
132
 
134
  msgid "Mail Subscribers"
135
  msgstr ""
136
 
137
+ #: subscribe2.php:792
138
  msgid "New subscription"
139
  msgstr ""
140
 
141
+ #: subscribe2.php:793
142
  msgid "subscribed to email notifications!"
143
  msgstr ""
144
 
145
+ #: subscribe2.php:808
146
  msgid "New Unsubscription"
147
  msgstr ""
148
 
149
+ #: subscribe2.php:809
150
  msgid "unsubscribed from email notifications!"
151
  msgstr ""
152
 
153
+ #: subscribe2.php:1333
154
  msgid "Address(es) subscribed!"
155
  msgstr ""
156
 
157
+ #: subscribe2.php:1336
158
  msgid "Address(es) unsubscribed!"
159
  msgstr ""
160
 
161
+ #: subscribe2.php:1346
162
  msgid "Address(es) deleted!"
163
  msgstr ""
164
 
165
+ #: subscribe2.php:1352 subscribe2.php:1358
166
  msgid "Status changed!"
167
  msgstr ""
168
 
169
+ #: subscribe2.php:1372
170
  msgid "Reminder Email(s) Sent!"
171
  msgstr ""
172
 
173
+ #: subscribe2.php:1375
174
  msgid "Registered Users Subscribed!"
175
  msgstr ""
176
 
177
+ #: subscribe2.php:1378
178
  msgid "Registered Users Unsubscribed!"
179
  msgstr ""
180
 
181
+ #: subscribe2.php:1473
182
  msgid "Previous Page"
183
  msgstr ""
184
 
185
+ #: subscribe2.php:1493
186
  msgid "Next Page"
187
  msgstr ""
188
 
189
+ #: subscribe2.php:1499
190
  msgid "Manage Subscribers"
191
  msgstr ""
192
 
193
+ #: subscribe2.php:1504
194
  msgid "Add/Remove Subscribers"
195
  msgstr ""
196
 
197
+ #: subscribe2.php:1505
198
  msgid "Enter addresses, one per line or comma-separated"
199
  msgstr ""
200
 
201
+ #: subscribe2.php:1512
202
  msgid "Current Subscribers"
203
  msgstr ""
204
 
205
+ #: subscribe2.php:1514
206
  msgid "Filter"
207
  msgstr ""
208
 
209
+ #: subscribe2.php:1521
210
  msgid "Search Subscribers"
211
  msgstr ""
212
 
213
+ #: subscribe2.php:1524
214
  msgid "Send Reminder Email"
215
  msgstr ""
216
 
217
+ #: subscribe2.php:1529
218
  msgid "Save Emails to CSV File"
219
  msgstr ""
220
 
221
+ #: subscribe2.php:1535 subscribe2.php:1589
222
  msgid "Process"
223
  msgstr ""
224
 
225
+ #: subscribe2.php:1544 subscribe2.php:1566
226
  msgid "Confirm this email address"
227
  msgstr ""
228
 
229
+ #: subscribe2.php:1546 subscribe2.php:1559
230
  msgid "Unconfirm this email address"
231
  msgstr ""
232
 
233
+ #: subscribe2.php:1548 subscribe2.php:1561 subscribe2.php:1569
234
  msgid "Delete this email address"
235
  msgstr ""
236
 
237
+ #: subscribe2.php:1552 subscribe2.php:2434
238
  msgid "Select / Unselect All"
239
  msgstr ""
240
 
241
+ #: subscribe2.php:1576
242
  msgid "edit"
243
  msgstr ""
244
 
245
+ #: subscribe2.php:1583
246
  msgid "No matching subscribers found"
247
  msgstr ""
248
 
249
+ #: subscribe2.php:1585
250
  msgid "NONE"
251
  msgstr ""
252
 
253
+ #: subscribe2.php:1595
254
  msgid "Categories"
255
  msgstr ""
256
 
257
+ #: subscribe2.php:1597
258
  msgid ""
259
  "Existing Registered Users can be automatically (un)subscribed to categories "
260
  "using this section."
261
  msgstr ""
262
 
263
+ #: subscribe2.php:1598
264
  msgid "Consider User Privacy as changes cannot be undone"
265
  msgstr ""
266
 
267
+ #: subscribe2.php:1600
268
  msgid "Action to perform"
269
  msgstr ""
270
 
271
+ #: subscribe2.php:1605 subscribe2.php:2036
272
  msgid "Submit"
273
  msgstr ""
274
 
275
+ #: subscribe2.php:1749
276
  msgid "Subscribe2 Settings"
277
  msgstr ""
278
 
279
+ #: subscribe2.php:1760 subscribe2.php:2123
280
  msgid "Notification Settings"
281
  msgstr ""
282
 
283
+ #: subscribe2.php:1761
284
  msgid "Restrict the number of recipients per email to (0 for unlimited)"
285
  msgstr ""
286
 
287
+ #: subscribe2.php:1763 subscribe2.php:1905 subscribe2.php:1914
288
  msgid "Edit"
289
  msgstr ""
290
 
291
+ #: subscribe2.php:1766 subscribe2.php:1908 subscribe2.php:1917
292
  msgid "Update"
293
  msgstr ""
294
 
295
+ #: subscribe2.php:1767 subscribe2.php:1909 subscribe2.php:1918
296
  msgid "Revert"
297
  msgstr ""
298
 
299
+ #: subscribe2.php:1769
300
  msgid "Send Admins notifications for new"
301
  msgstr ""
302
 
303
+ #: subscribe2.php:1779
304
  msgid "Unsubscriptions"
305
  msgstr ""
306
 
307
+ #: subscribe2.php:1784
308
  msgid "Both"
309
  msgstr ""
310
 
311
+ #: subscribe2.php:1789
312
  msgid "Neither"
313
  msgstr ""
314
 
315
+ #: subscribe2.php:1791
316
  msgid "Include theme CSS stylesheet in HTML notifications"
317
  msgstr ""
318
 
319
+ #: subscribe2.php:1796 subscribe2.php:1808 subscribe2.php:1819
320
+ #: subscribe2.php:1830 subscribe2.php:1966 subscribe2.php:1977
321
+ #: subscribe2.php:2004 subscribe2.php:2020 subscribe2.php:2163
322
+ #: subscribe2.php:2199
323
  msgid "Yes"
324
  msgstr ""
325
 
326
+ #: subscribe2.php:1801 subscribe2.php:1813 subscribe2.php:1824
327
+ #: subscribe2.php:1835 subscribe2.php:1960 subscribe2.php:1971
328
+ #: subscribe2.php:1982 subscribe2.php:2009 subscribe2.php:2025
329
+ #: subscribe2.php:2168 subscribe2.php:2203
330
  msgid "No"
331
  msgstr ""
332
 
333
+ #: subscribe2.php:1803
334
  msgid "Send Emails for Pages"
335
  msgstr ""
336
 
337
+ #: subscribe2.php:1814
338
  msgid "Send Emails for Password Protected Posts"
339
  msgstr ""
340
 
341
+ #: subscribe2.php:1825
342
  msgid "Send Emails for Private Posts"
343
  msgstr ""
344
 
345
+ #: subscribe2.php:1836
346
  msgid "Send Email From"
347
  msgstr ""
348
 
349
+ #: subscribe2.php:1841
350
  msgid "Send Emails"
351
  msgstr ""
352
 
353
+ #: subscribe2.php:1846
354
  msgid "Email Templates"
355
  msgstr ""
356
 
357
+ #: subscribe2.php:1850
358
  msgid "New Post email (must not be empty)"
359
  msgstr ""
360
 
361
+ #: subscribe2.php:1851 subscribe2.php:1876 subscribe2.php:1881
362
  msgid "Subject Line"
363
  msgstr ""
364
 
365
+ #: subscribe2.php:1856
366
+ msgid "Send Email Preview"
367
+ msgstr ""
368
+
369
+ #: subscribe2.php:1857
370
  msgid "Message substitions"
371
  msgstr ""
372
 
373
+ #: subscribe2.php:1861
374
  msgid "the post's title<br />(<i>for per-post emails only</i>)"
375
  msgstr ""
376
 
377
+ #: subscribe2.php:1862
378
  msgid ""
379
  "the excerpt or the entire post<br />(<i>based on the subscriber's "
380
  "preferences</i>)"
381
  msgstr ""
382
 
383
+ #: subscribe2.php:1863
384
  msgid ""
385
  "the excerpt of the post and the time it was posted<br />(<i>for digest "
386
  "emails only</i>)"
387
  msgstr ""
388
 
389
+ #: subscribe2.php:1864
390
  msgid "a list of post titles<br />(<i>for digest emails only</i>)"
391
  msgstr ""
392
 
393
+ #: subscribe2.php:1865
394
  msgid "the post's permalink<br />(<i>for per-post emails only</i>)"
395
  msgstr ""
396
 
397
+ #: subscribe2.php:1866
398
  msgid ""
399
  "the post's permalink after conversion by TinyURL<br />(<i>for per-post "
400
  "emails only</i>)"
401
  msgstr ""
402
 
403
+ #: subscribe2.php:1867
404
  msgid "the admin or post author's name"
405
  msgstr ""
406
 
407
+ #: subscribe2.php:1868
408
  msgid "the admin or post author's email"
409
  msgstr ""
410
 
411
+ #: subscribe2.php:1869
412
  msgid "the post author's name"
413
  msgstr ""
414
 
415
+ #: subscribe2.php:1870
416
  msgid ""
417
  "the generated link to confirm a request<br />(<i>only used in the "
418
  "confirmation email template</i>)"
419
  msgstr ""
420
 
421
+ #: subscribe2.php:1871
422
  msgid ""
423
  "Action performed by LINK in confirmation email<br />(<i>only used in the "
424
  "confirmation email template</i>)"
425
  msgstr ""
426
 
427
+ #: subscribe2.php:1872
428
+ msgid "the post's assigned categories"
429
+ msgstr ""
430
+
431
+ #: subscribe2.php:1873
432
+ msgid "the post's assigned Tags"
433
+ msgstr ""
434
+
435
+ #: subscribe2.php:1875
436
  msgid "Subscribe / Unsubscribe confirmation email"
437
  msgstr ""
438
 
439
+ #: subscribe2.php:1880
440
  msgid "Reminder email to Unconfirmed Subscribers"
441
  msgstr ""
442
 
443
+ #: subscribe2.php:1887
444
  msgid "Excluded Categories"
445
  msgstr ""
446
 
447
+ #: subscribe2.php:1889
448
  msgid ""
449
  "Posts assigned to any Excluded Category do not generate notifications and "
450
  "are not included in digest notifications"
451
  msgstr ""
452
 
453
+ #: subscribe2.php:1896
454
  msgid "Allow registered users to subscribe to excluded categories?"
455
  msgstr ""
456
 
457
+ #: subscribe2.php:1899
458
  msgid "Appearance"
459
  msgstr ""
460
 
461
+ #: subscribe2.php:1903
462
  msgid "Set default Subscribe2 page as ID"
463
  msgstr ""
464
 
465
+ #: subscribe2.php:1912
466
  msgid "Set the number of Subscribers displayed per page"
467
  msgstr ""
468
 
469
+ #: subscribe2.php:1925
470
  msgid "Show a link to your subscription page in \"meta\"?"
471
  msgstr ""
472
 
473
+ #: subscribe2.php:1932
474
  msgid "Show the Subscribe2 button on the Write toolbar?"
475
  msgstr ""
476
 
477
+ #: subscribe2.php:1939
478
  msgid "Enable Subscribe2 Widget?"
479
  msgstr ""
480
 
481
+ #: subscribe2.php:1943
482
  msgid "Auto Subscribe"
483
  msgstr ""
484
 
485
+ #: subscribe2.php:1945
486
  msgid "Subscribe new users registering with your blog"
487
  msgstr ""
488
 
489
+ #: subscribe2.php:1950
490
  msgid "Automatically"
491
  msgstr ""
492
 
493
+ #: subscribe2.php:1955
494
  msgid "Display option on Registration Form"
495
  msgstr ""
496
 
497
+ #: subscribe2.php:1961
498
  msgid "Auto-subscribe includes any excluded categories"
499
  msgstr ""
500
 
501
+ #: subscribe2.php:1972
502
  msgid "Registration Form option is checked by default"
503
  msgstr ""
504
 
505
+ #: subscribe2.php:1983
506
  msgid "Auto-subscribe users to receive email as"
507
  msgstr ""
508
 
509
+ #: subscribe2.php:1988 subscribe2.php:2140
510
  msgid "HTML"
511
  msgstr ""
512
 
513
+ #: subscribe2.php:1993
514
  msgid "Plain Text - Full"
515
  msgstr ""
516
 
517
+ #: subscribe2.php:1998
518
  msgid "Plain Text - Excerpt"
519
  msgstr ""
520
 
521
+ #: subscribe2.php:1999
522
+ msgid "Registered Users have the option to auto-subscribe to new categories"
523
  msgstr ""
524
 
525
+ #: subscribe2.php:2014
526
+ msgid "New categories are immediately excluded"
527
+ msgstr ""
528
+
529
+ #: subscribe2.php:2015
530
  msgid ""
531
+ "Option for Registered Users to auto-subscribe to new categories is checked "
532
+ "by default"
533
  msgstr ""
534
 
535
+ #: subscribe2.php:2029
536
  msgid "Barred Domains"
537
  msgstr ""
538
 
539
+ #: subscribe2.php:2031
540
  msgid ""
541
  "Enter domains to bar from public subscriptions: <br /> (Use a new line for "
542
  "each entry and omit the \"@\" symbol, for example email.com)"
543
  msgstr ""
544
 
545
+ #: subscribe2.php:2039
546
  msgid "Reset Default"
547
  msgstr ""
548
 
549
+ #: subscribe2.php:2040
550
  msgid ""
551
  "Use this to reset all options to their defaults. This <strong><em>will not</"
552
  "em></strong> modify your list of subscribers."
553
  msgstr ""
554
 
555
+ #: subscribe2.php:2042
556
  msgid "RESET"
557
  msgstr ""
558
 
559
+ #: subscribe2.php:2068
560
  msgid "Subscription preferences updated."
561
  msgstr ""
562
 
563
+ #: subscribe2.php:2126
564
  msgid "Editing Subscribe2 preferences for user"
565
  msgstr ""
566
 
567
+ #: subscribe2.php:2135
568
  msgid "Receive email as"
569
  msgstr ""
570
 
571
+ #: subscribe2.php:2145
572
  msgid "Plain Text"
573
  msgstr ""
574
 
575
+ #: subscribe2.php:2147
576
  msgid "Email contains"
577
  msgstr ""
578
 
579
+ #: subscribe2.php:2148
580
  msgid "Excerpt Only"
581
  msgstr ""
582
 
583
+ #: subscribe2.php:2148
584
  msgid "Full Post"
585
  msgstr ""
586
 
587
+ #: subscribe2.php:2156
588
  msgid "Note: HTML format will always deliver the full post"
589
  msgstr ""
590
 
591
+ #: subscribe2.php:2158
592
  msgid "Automatically subscribe me to newly created categories"
593
  msgstr ""
594
 
595
+ #: subscribe2.php:2179
596
  msgid "Unsubscribe me from this blog"
597
  msgstr ""
598
 
599
+ #: subscribe2.php:2183
600
  msgid "Subscribe to all categories"
601
  msgstr ""
602
 
603
+ #: subscribe2.php:2185
604
  msgid "Subscribed Categories on"
605
  msgstr ""
606
 
607
+ #: subscribe2.php:2187
608
  msgid "Subscribed Categories"
609
  msgstr ""
610
 
611
+ #: subscribe2.php:2193
612
  msgid "Receive periodic summaries of new posts?"
613
  msgstr ""
614
 
615
+ #: subscribe2.php:2208
616
  msgid "Update Preferences"
617
  msgstr ""
618
 
619
+ #: subscribe2.php:2266
620
  msgid "Subscribed Blogs"
621
  msgstr ""
622
 
623
+ #: subscribe2.php:2271 subscribe2.php:2292
624
  msgid "Viewing Settings Now"
625
  msgstr ""
626
 
627
+ #: subscribe2.php:2275 subscribe2.php:2296
628
  msgid "View Settings"
629
  msgstr ""
630
 
631
+ #: subscribe2.php:2287
632
  msgid "Subscribe to new blogs"
633
  msgstr ""
634
 
635
+ #: subscribe2.php:2358
636
  msgid "Send an email to subscribers"
637
  msgstr ""
638
 
639
+ #: subscribe2.php:2366
640
  msgid "A message from "
641
  msgstr ""
642
 
643
+ #: subscribe2.php:2368
644
  msgid "Subject"
645
  msgstr ""
646
 
647
+ #: subscribe2.php:2371
648
  msgid "Recipients: "
649
  msgstr ""
650
 
651
+ #: subscribe2.php:2375
652
  msgid "Send"
653
  msgstr ""
654
 
655
+ #: subscribe2.php:2447
656
  msgid "All Users and Subscribers"
657
  msgstr ""
658
 
659
+ #: subscribe2.php:2448
660
  msgid "Public Subscribers"
661
  msgstr ""
662
 
663
+ #: subscribe2.php:2449
664
  msgid "Confirmed"
665
  msgstr ""
666
 
667
+ #: subscribe2.php:2450
668
  msgid "Unconfirmed"
669
  msgstr ""
670
 
671
+ #: subscribe2.php:2451
672
  msgid "All Registered Users"
673
  msgstr ""
674
 
675
+ #: subscribe2.php:2452
676
  msgid "Registered Subscribers"
677
  msgstr ""
678
 
679
+ #: subscribe2.php:2547
680
  msgid "For each Post"
681
  msgstr ""
682
 
683
+ #: subscribe2.php:2562
684
  msgid "Send Digest Notification at"
685
  msgstr ""
686
 
687
+ #: subscribe2.php:2574
688
  msgid ""
689
  "This option will work for digest notification sent daily or less frequently"
690
  msgstr ""
691
 
692
+ #: subscribe2.php:2577
693
  msgid "Current UTC time is"
694
  msgstr ""
695
 
696
+ #: subscribe2.php:2579
697
  msgid "Current blog time is"
698
  msgstr ""
699
 
700
+ #: subscribe2.php:2581
701
  msgid "Next email notification will be sent when your blog time is after"
702
  msgstr ""
703
 
704
+ #: subscribe2.php:2612
705
  msgid "Settings"
706
  msgstr ""
707
 
708
+ #: subscribe2.php:2624
709
  msgid "Check here to Subscribe to email notifications for new posts"
710
  msgstr ""
711
 
712
+ #: subscribe2.php:2633
713
  msgid ""
714
  "By registering with this blog you are also agreeing to receive email "
715
  "notifications for new posts but you can unsubscribe at anytime"
716
  msgstr ""
717
 
718
+ #: subscribe2.php:2654 subscribe2.php:2655 subscribe2.php:2683
719
  msgid "Subscribe2 Notification Override"
720
  msgstr ""
721
 
722
+ #: subscribe2.php:2669
723
  msgid ""
724
  "Check here to disable sending of an email notification for this post/page"
725
  msgstr ""
726
 
727
+ #: subscribe2.php:2811
728
  msgid "Subscription Confirmation"
729
  msgstr ""
730
 
731
+ #: subscribe2.php:2851
732
  msgid "Title:"
733
  msgstr ""
734
 
735
+ #: subscribe2.php:2853
736
  msgid "Div class name:"
737
  msgstr ""
738
 
739
+ #: subscribe2.php:2903
740
  msgid "[Un]Subscribe to Posts"
741
  msgstr ""
742
 
743
+ #: subscribe2.php:2981
744
  msgid "Weekly"
745
  msgstr ""
746
 
747
+ #: subscribe2.php:3049
748
  msgid "Posted on"
749
  msgstr ""
750
 
751
+ #: subscribe2.php:3094
752
  msgid "Digest Email"
753
  msgstr ""
754