Subscribe2 - Version 4.14

Version Description

Download this release

Release Info

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

Code changes from version 4.13 to 4.14

ReadMe.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Subscribe2 ===
2
  Contributors: MattyRob, Skippy, RavanH
3
  Donate link: http://subscribe2.wordpress.com/donate/
4
- Tags: posts, subscription, email
5
  Requires at least: 2.0.x
6
  Tested up to: 2.7
7
- Stable tag: 4.13
8
 
9
  Sends a list of subscribers an email notification when new posts are published to your blog
10
 
@@ -100,6 +100,21 @@ Registered Users have registered with your WorPress blog (provided you have enab
100
 
101
  == Version History ==
102
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  Version 4.13 by Matthew Robinson
104
 
105
  * Update weekly description
1
  === Subscribe2 ===
2
  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
7
+ Stable tag: 4.14
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.14 by Matthew Robinson
104
+
105
+ * Reordered some functions to improve grouping
106
+ * Stop s2mail custom variable being added if empty
107
+ * Localised 'Send Digest Notification at' string
108
+ * Add support for template tags in Post->Mail Subscribers emails
109
+ * Improve handling of translation files for more recent version of WordPress
110
+ * Implemented <label> tags in the admin pages so text descriptors are click enabled
111
+ * Improved subscription preferences for WordPress MU (Huge thanks to Benedikt Forchhammer)
112
+ * Added TINYLINK tag to allow TinyURL insertion in place of PERMALINK
113
+ * Improved layout of Tools->Subscriber page (Thanks to Anne-Marie Redpath)
114
+ * Enhancements to Subscription form layout (Thanks to Anne-Marie Redpath and Andy Steinmark)
115
+ * Sender details now uses current user information from Write->Mail Subscribers
116
+ * Introduced 's2_template_filter' to allow other plugins to amend the email template on-the-fly
117
+
118
  Version 4.13 by Matthew Robinson
119
 
120
  * Update weekly description
counterwidget.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Plugin Name: Subscribe2 Counter Widget
4
- Version: 4.13
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.14
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/accept.png ADDED
Binary file
include/arrow_left.png DELETED
Binary file
include/arrow_right.png DELETED
Binary file
include/exclamation.png ADDED
Binary file
include/s2_user_admin.css ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ul.s2_blogs {
2
+ float:left;
3
+ width: 99%;
4
+ }
5
+
6
+ ul.s2_blogs li {
7
+ display: block;
8
+ width: 300px;
9
+ float: left;
10
+ padding: .5em 1em;
11
+ background-color: #e3e3e3;
12
+ margin-right: 1em;
13
+ }
14
+
15
+ ul.s2_blogs li .name {
16
+ display: block;
17
+ }
18
+
19
+ ul.s2_blogs li .buttons {
20
+ display: block;
21
+ float: left;
22
+ white-space: nowrap;
23
+ }
24
+
25
+ ul.s2_blogs li .buttons a {
26
+ font-size: .8em;
27
+ display: block;
28
+ float: left;
29
+ padding: .1em .5em;
30
+ background-color: #666;
31
+ color: white;
32
+ margin: .5em .5em 0 0;
33
+ }
34
+
35
+ ul.s2_blogs li .buttons a:hover {
36
+ background-color: whitesmoke;
37
+ color: #666;
38
+ }
39
+
40
+ ul.s2_blogs_unsubscribed li .buttons {
41
+ float: right;
42
+ }
43
+
44
+ ul.s2_blogs_unsubscribed li .buttons a {
45
+ margin: 0 0 0 1em;
46
+ }
47
+
48
+ ul.s2_blogs_unsubscribed li .name {
49
+ float: left;
50
+ }
screenshot-2.png CHANGED
Binary file
subscribe2.php CHANGED
@@ -3,13 +3,13 @@
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.13
7
  Author: Matthew Robinson
8
  Author URI: http://subscribe2.wordpress.com
9
  */
10
 
11
  /*
12
- Copyright (C) 2006-8 Matthew Robinson
13
  Based on the Original Subscribe2 plugin by
14
  Copyright (C) 2005 Scott Merrill (skippy@skippy.net)
15
 
@@ -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.13');
35
  define('S2PATH', trailingslashit(dirname(__FILE__)));
36
 
37
  // Pre-2.6 compatibility
@@ -82,8 +82,8 @@ class s2class {
82
 
83
  $this->mail_failed = "<p>" . __('Message failed! Check your settings and check with your hosting provider', 'subscribe2') . "</p>";
84
 
85
- $this->form = "<form method=\"post\" action=\"\"><p>" . __('Your email:', 'subscribe2') . "<br /><input type=\"text\" name=\"email\" value=\"\" size=\"20\" /><br /><input type=\"radio\" name=\"s2_action\" value=\"subscribe\" checked=\"checked\" />" . __('Subscribe', 'subscribe2') . "&nbsp;&nbsp;&nbsp;<input type=\"radio\" name=\"s2_action\" value=\"unsubscribe\" />" . __('Unsubscribe', 'subscribe2') . "<br /><input type=\"submit\" value=\"" . __('Send', 'subscribe2') . "\" /></p></form>\r\n";
86
-
87
  // confirmation messages
88
  $this->no_such_email = "<p>" . __('No such email address is registered.', 'subscribe2') . "</p>";
89
 
@@ -104,7 +104,7 @@ class s2class {
104
  $this->options_reset = __('Options reset!', 'subscribe2');
105
  } // end load_strings()
106
 
107
- /* ===== WordPress menu registration ===== */
108
  /**
109
  Hook the menu
110
  */
@@ -119,11 +119,12 @@ class s2class {
119
 
120
  $s2user = add_users_page(__('Subscriptions', 'subscribe2'), __('Subscriptions', 'subscribe2'), "read", __FILE__, array(&$this, 'user_menu'));
121
  add_action("admin_print_scripts-$s2user", array(&$this, 'checkbox_form_js'));
 
122
 
123
  add_submenu_page('post-new.php', __('Mail Subscribers', 'subscribe2'), __('Mail Subscribers', 'subscribe2'), "publish_posts", __FILE__, array(&$this, 'write_menu'));
124
 
125
  $s2nonce = md5('subscribe2');
126
- }
127
 
128
  /**
129
  Hook for Admin Drop Down Icons
@@ -134,78 +135,22 @@ class s2class {
134
  } else {
135
  return $hook;
136
  }
137
- }
138
 
139
  /**
140
  Insert Javascript into admin_header
141
  */
142
  function checkbox_form_js() {
143
  wp_enqueue_script('s2_checkbox', WP_CONTENT_URL . '/plugins/' . dirname( plugin_basename( __FILE__ ) ) . '/include/s2_checkbox.js', array('jquery'), '1.0');
 
 
 
 
144
  }
145
 
146
  function option_form_js() {
147
  wp_enqueue_script('s2_edit', WP_CONTENT_URL . '/plugins/' . dirname( plugin_basename( __FILE__ ) ) . '/include/s2_edit.js', array('jquery'), '1.0');
148
- }
149
-
150
- function add_weekly_sched($sched) {
151
- $sched['weekly'] = array('interval' => 604800, 'display' => __('Weekly', 'subscribe2'));
152
- return $sched;
153
- }
154
-
155
- /**
156
- Create meta box on write pages
157
- */
158
- function s2_meta_init() {
159
- if (function_exists('add_meta_box')) {
160
- add_meta_box('subscribe2', __( 'Subscribe2 Notification Override', 'subscribe2' ), array(&$this, 's2_meta_box'), 'post', 'advanced');
161
- add_meta_box('subscribe2', __( 'Subscribe2 Notification Override', 'subscribe2' ), array(&$this, 's2_meta_box'), 'page', 'advanced');
162
- } else {
163
- add_action('dbx_post_advanced', array(&$this, 's2_meta_box_old'));
164
- add_action('dbx_page_advanced', array(&$this, 's2_meta_box_old'));
165
- }
166
- }
167
-
168
- /**
169
- Meta box code for WordPress 2.5+
170
- */
171
- function s2_meta_box() {
172
- global $post_ID;
173
- $s2mail = get_post_meta($post_ID, 's2mail', true);
174
- echo "<input type=\"hidden\" name=\"s2meta_nonce\" id=\"s2meta_nonce\" value=\"" . wp_create_nonce(md5(plugin_basename(__FILE__))) . "\" />";
175
- echo __("Check here to disable sending of an email notification for this post/page", 'subscribe2');
176
- echo "&nbsp;&nbsp;<input type=\"checkbox\" name=\"s2_meta_field\" value=\"no\"";
177
- if ($s2mail == 'no') {
178
- echo " checked=\"checked\"";
179
- }
180
- echo " />";
181
- }
182
-
183
- /**
184
- Meta box code for WordPress pre-2.5
185
- */
186
- function s2_meta_box_old() {
187
- echo "<div class=\"dbx-b-ox-wrapper\">\r\n";
188
- echo "<fieldset id=\"s2_meta_box\" class=\"dbx-box\">\r\n";
189
- echo "<div class=\"dbx-h-andle-wrapper\"><h3 class=\"dbx-handle\">" . __('Subscribe2 Notification Override', 'subscribe2') . "</h3></div>\r\n";
190
- echo "<div class=\"dbx-c-ontent-wrapper\"><div class=\"dbx-content\">\r\n";
191
- $this->s2_meta_box();
192
- echo "</div></div></fieldset></div>\r\n";
193
- }
194
-
195
- /**
196
- Meta box form handler
197
- */
198
- function s2_meta_handler($post_id) {
199
- if (!wp_verify_nonce($_POST['s2meta_nonce'], md5(plugin_basename(__FILE__)))) { return $post_id; }
200
-
201
- if ('page' == $_POST['post_type']) {
202
- if (!current_user_can('edit_page', $post_id)) { return $post_id; }
203
- } else {
204
- if (!current_user_can('edit_post', $post_id)) { return $post_id; }
205
- }
206
-
207
- update_post_meta($post_id, 's2mail', $_POST['s2_meta_field']);
208
- }
209
 
210
  /* ===== Install, upgrade, reset ===== */
211
  /**
@@ -265,6 +210,50 @@ class s2class {
265
  //double check that the options are in the database
266
  require(S2PATH . "include/options.php");
267
  update_option('subscribe2_options', $this->subscribe2_options);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  } // end upgrade()
269
 
270
  /**
@@ -290,6 +279,14 @@ class s2class {
290
  $string = str_replace("BLOGLINK", get_bloginfo('url'), $string);
291
  $string = str_replace("TITLE", stripslashes($this->post_title), $string);
292
  $string = str_replace("PERMALINK", $this->permalink, $string);
 
 
 
 
 
 
 
 
293
  $string = str_replace("MYNAME", stripslashes($this->myname), $string);
294
  $string = str_replace("EMAIL", $this->myemail, $string);
295
  $string = str_replace("AUTHORNAME", $this->authorname, $string);
@@ -479,7 +476,7 @@ class s2class {
479
  }
480
  // we set these class variables so that we can avoid
481
  // passing them in function calls a little later
482
- $this->post_title = $post->post_title;
483
  $this->permalink = "<a href=\"" . get_permalink($post->ID) . "\">" . get_permalink($post->ID) . "</a>";
484
 
485
  $author = get_userdata($post->post_author);
@@ -498,7 +495,8 @@ class s2class {
498
  // Get email subject
499
  $subject = stripslashes(strip_tags($this->substitute($this->s2_subject)));
500
  // Get the message template
501
- $mailtext = stripslashes($this->substitute($this->subscribe2_options['mailtext']));
 
502
 
503
  $plaintext = $post->post_content;
504
  if (function_exists('strip_shortcodes')) {
@@ -559,7 +557,7 @@ class s2class {
559
  $post = get_post($id);
560
  $this->publish($post);
561
  return $post;
562
- }
563
 
564
  /**
565
  Send confirmation email to the user
@@ -629,7 +627,7 @@ class s2class {
629
  return false;
630
  }
631
  return $wpdb->get_var("SELECT email FROM $this->public WHERE id=$id");
632
- } // end get_email
633
 
634
  /**
635
  Given a public subscriber email, returns the subscriber ID
@@ -644,7 +642,7 @@ class s2class {
644
  } // end get_id()
645
 
646
  /**
647
- Activate an email address
648
  If the address is not already present, it will be added
649
  */
650
  function activate ($email = '') {
@@ -668,7 +666,7 @@ class s2class {
668
  } // end activate()
669
 
670
  /**
671
- Add an unconfirmed email address to the subscriber list
672
  */
673
  function add ($email = '') {
674
  if ($this->filtered ==1) { return; }
@@ -692,7 +690,7 @@ class s2class {
692
  } // end add()
693
 
694
  /**
695
- Remove a user from the subscription table
696
  */
697
  function delete($email = '') {
698
  global $wpdb;
@@ -813,7 +811,7 @@ class s2class {
813
  if ('' != $this->message) {
814
  return $this->message;
815
  }
816
- } // end confirm
817
 
818
  /**
819
  Is the supplied email address a public subscriber?
@@ -845,7 +843,7 @@ class s2class {
845
  } else {
846
  return false;
847
  }
848
- }
849
 
850
  /**
851
  Return an array of all the public subscribers
@@ -917,15 +915,15 @@ class s2class {
917
  if ('' != $r['cats']) {
918
  $JOIN .= "INNER JOIN $wpdb->usermeta AS d ON a.user_id = d.user_id ";
919
  foreach (explode(',', $r['cats']) as $cat) {
920
- ('' == $and) ? $and = "d.meta_key='s2_cat$cat'" : $and .= " OR d.meta_key='s2_cat$cat'";
921
  }
922
  $AND .= " AND ($and)";
923
  }
924
 
925
  if ($s2_mu) {
926
- $sql = "SELECT a.user_id FROM $wpdb->usermeta AS a INNER JOIN $wpdb->usermeta AS e ON a.user_id = e.user_id " . $JOIN . "WHERE a.meta_key='" . $wpdb->prefix . "capabilities' AND e.meta_key='s2_subscribed'" . $AND;
927
  } else {
928
- $sql = "SELECT a.user_id FROM $wpdb->usermeta AS a " . $JOIN . "WHERE a.meta_key='s2_subscribed'" . $AND;
929
  }
930
  $result = $wpdb->get_col($sql);
931
  if ($result) {
@@ -988,9 +986,9 @@ class s2class {
988
  if (false !== $this->is_public($user->user_email)) {
989
  // delete this user from the public table, and subscribe them to all the categories
990
  $this->delete($user->user_email);
991
- update_usermeta($user_id, 's2_subscribed', $cats);
992
  foreach(explode(',', $cats) as $cat) {
993
- update_usermeta($user_id, 's2_cat' . $cat, "$cat");
994
  }
995
  update_usermeta($user_id, 's2_format', 'text');
996
  update_usermeta($user_id, 's2_excerpt', 'excerpt');
@@ -1012,17 +1010,17 @@ class s2class {
1012
  update_usermeta($user_id, 's2_autosub', $this->subscribe2_options['autosub_def']);
1013
  }
1014
  // ensure existing subscriptions are not overwritten on upgrade
1015
- $check_subscribed = get_usermeta($user_id, 's2_subscribed');
1016
  // if the are no existing subscriptions, create them based on admin options
1017
  if (empty($check_subscribed)) {
1018
  // add entries by default if autosub is on
1019
  if ( ('yes' == $this->subscribe2_options['autosub']) || (('wpreg' == $this->subscribe2_options['autosub']) && ('on' == $_POST['subscribe'])) ) {
1020
- update_usermeta($user_id, 's2_subscribed', $cats);
1021
  foreach(explode(',', $cats) as $cat) {
1022
- update_usermeta($user_id, 's2_cat' . $cat, "$cat");
1023
  }
1024
  } else {
1025
- update_usermeta($user_id, 's2_subscribed', '-1');
1026
  }
1027
  } else {
1028
  update_usermeta($user_id, 's2_autosub', 'no');
@@ -1048,7 +1046,7 @@ class s2class {
1048
  }
1049
 
1050
  foreach ($user_IDs as $user_ID) {
1051
- $old_cats = get_usermeta($user_ID, 's2_subscribed');
1052
  if ($old_cats == '-1') {
1053
  $old_cats = array();
1054
  } else {
@@ -1061,13 +1059,13 @@ class s2class {
1061
  if (!empty($new)) {
1062
  // add subscription to these cat IDs
1063
  foreach ($new as $id) {
1064
- update_usermeta($user_ID, 's2_cat' . $id, "$id");
1065
  }
1066
  }
1067
  $newcats = array_merge($cats, $old_cats);
1068
- update_usermeta($user_ID, 's2_subscribed', implode(',', $newcats));
1069
  }
1070
- } // end subscribe_registered_users
1071
 
1072
  /**
1073
  Unsubscribe all registered users to category selected on Admin Manage Page
@@ -1086,7 +1084,7 @@ class s2class {
1086
  }
1087
 
1088
  foreach ($user_IDs as $user_ID) {
1089
- $old_cats = explode(',', get_usermeta($user_ID, 's2_subscribed'));
1090
  if (!is_array($old_cats)) {
1091
  $old_cats = array($old_cats);
1092
  }
@@ -1094,18 +1092,126 @@ class s2class {
1094
  if (!empty($remain)) {
1095
  // remove subscription to these cat IDs and update s2_subscribed
1096
  foreach ($cats as $id) {
1097
- delete_usermeta($user_ID, 's2_cat' . $id);
1098
  }
1099
- update_usermeta($user_ID, 's2_subscribed', implode(',', $remain));
1100
  } else {
1101
  // remove subscription to these cat IDs and update s2_subscribed to ''
1102
  foreach ($cats as $id) {
1103
- delete_usermeta($user_ID, 's2_cat' . $id);
1104
  }
1105
- update_usermeta($user_ID, 's2_subscribed', '-1');
1106
  }
1107
  }
1108
- } // end unsubscribe_registered_users
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1109
 
1110
  /**
1111
  Autosubscribe registered users to newly created categories
@@ -1119,16 +1225,16 @@ class s2class {
1119
  if ('' == $user_IDs) { return; }
1120
 
1121
  foreach ($user_IDs as $user_ID) {
1122
- $old_cats = explode(',', get_usermeta($user_ID, 's2_subscribed'));
1123
  if (!is_array($old_cats)) {
1124
  $old_cats = array($old_cats);
1125
  }
1126
  // add subscription to these cat IDs
1127
- update_usermeta($user_ID, 's2_cat' . $new_category, "$new_category");
1128
  $newcats = array_merge($old_cats, (array)$new_category);
1129
- update_usermeta($user_ID, 's2_subscribed', implode(',', $newcats));
1130
  }
1131
- } // end autosub_new_category
1132
 
1133
  /**
1134
  Get admin data from record 1 or first user with admin rights
@@ -1150,7 +1256,7 @@ class s2class {
1150
  $admin = get_userdata($wpdb->get_var($sql));
1151
  }
1152
  return $admin;
1153
- } //end get_userdata
1154
 
1155
  /* ===== Menus ===== */
1156
  /**
@@ -1172,12 +1278,14 @@ class s2class {
1172
  foreach (preg_split ("/[\s,]+/", $_POST['addresses']) as $email) {
1173
  if ( (is_email($email)) && ($_POST['subscribe']) ) {
1174
  $this->activate($email);
 
1175
  } elseif ( (is_email($email)) && ($_POST['unsubscribe']) ) {
1176
  $this->delete($email);
 
1177
  }
1178
  }
 
1179
  $_POST['what'] = 'confirmed';
1180
- echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Address(es) subscribed!', 'subscribe2') . "</strong></p></div>";
1181
  } elseif ($_POST['process']) {
1182
  if ($_POST['delete']) {
1183
  foreach ($_POST['delete'] as $address) {
@@ -1227,7 +1335,6 @@ class s2class {
1227
  if ('' == $unconfirmed) { $unconfirmed = array(); }
1228
  if ('' == $registered) { $registered = array(); }
1229
 
1230
- $show = array('all', 'public', 'confirmed', 'unconfirmed');
1231
  $reminderform = false;
1232
  $urlpath = str_replace("\\", "/", S2PATH);
1233
  $urlpath = trailingslashit(get_option('siteurl')) . substr($urlpath,strpos($urlpath, "wp-content/"));
@@ -1287,19 +1394,8 @@ class s2class {
1287
  $subscribers = $registered;
1288
  }
1289
  } else {
1290
- $what = 'registered';
1291
- $subscribers = $registered;
1292
- if (empty($subscribers)) {
1293
- $subscribers = $confirmed;
1294
- $what = 'confirmed';
1295
- if (empty($subscribers)) {
1296
- $subscribers = $unconfirmed;
1297
- $what = 'unconfirmed';
1298
- if (empty($subscribers)) {
1299
- $what = 'all';
1300
- }
1301
- }
1302
- }
1303
  }
1304
  if ($_POST['searchterm']) {
1305
  $subscribers = &$result;
@@ -1360,71 +1456,65 @@ class s2class {
1360
  // show the selected subscribers
1361
  $alternate = '';
1362
  if (!empty($subscribers)) {
1363
- echo "<p align=\"center\"><b>" . __('Registered on the left, confirmed in the middle, unconfirmed on the right', 'subscribe2') . "</b></p>\r\n";
1364
  $exportcsv = implode(",\r\n", $subscribers);
1365
  echo "<table cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">";
1366
  echo "<tr class=\"alternate\"><td width=\"50%\"><input type=\"text\" name=\"searchterm\" value=\"\" />&nbsp;\r\n";
1367
  echo "<input type=\"submit\" name=\"search\" value=\"" . __('Search Subscribers', 'subscribe2') . "\" class=\"button\" /></td>\r\n";
1368
- echo "<td width=\"50%\" align=\"right\"><input type=\"hidden\" name=\"exportcsv\" value=\"" . $exportcsv . "\" />\r\n";
1369
- echo "<input type=\"submit\" name=\"csv\" value=\"" . __('Save Emails to CSV File', 'subscribe2') . "\" class=\"button\" /></td></tr>\r\n";
1370
  if ($reminderform) {
1371
- echo "<tr><td width=\"50%\"><input type=\"hidden\" name=\"reminderemails\" value=\"" . $reminderemails . "\" />\r\n";
1372
- echo "<td width=\"50%\" align=\"right\"><input type=\"submit\" name=\"remind\" value=\"" . __('Send Reminder Email', 'subscribe2') . "\" class=\"button\" /></td></tr>\r\n";
1373
- }
1374
- echo "<tr><td valign=\"bottom\">" . $strip . "\r\n";
1375
- if (in_array($what, $show)) {
1376
- echo "</td><td align=\"right\"><input type=\"submit\" name=\"process\" value=\"" . __('Process', 'subscribe2') . "\" class=\"button\" />\r\n";
1377
  }
1378
- echo "</td></tr></table>\r\n";
 
 
1379
  }
1380
 
1381
- echo "<table cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">";
 
 
 
 
1382
  if (!empty($subscribers)) {
1383
  $subscriber_chunks = array_chunk($subscribers, $this->subscribe2_options['entries']);
1384
  $chunk = $page - 1;
1385
  $subscribers = $subscriber_chunks[$chunk];
1386
- if (in_array($what, $show)) {
1387
- echo "<tr class=\"alternate\">\r\n";
1388
- echo "<td width=\"88%\"></td>\r\n";
1389
- echo "<td width=\"4%\" align=\"center\">";
1390
- echo "<img src=\"" . $urlpath . "include/arrow_left.png\" alt=\"&lt;\" title=\"" . __('Confirm this email address', 'subscribe2') . "\" /></td>\r\n";
1391
- echo "<td width=\"4%\" align=\"center\">";
1392
- echo "<img src=\"" . $urlpath . "include/arrow_right.png\" alt=\"&gt;\" title=\"" . __('Unconfirm this email address', 'subscribe2') . "\" /></td>\r\n";
1393
- echo "<td width=\"4%\" align=\"center\">";
1394
- echo "<img src=\"" . $urlpath . "include/cross.png\" alt=\"X\" title=\"" . __('Delete this email address', 'subscribe2') . "\" /></td></tr>\r\n";
1395
- echo "<tr class=\"alternate\"><td align=\"right\"><strong>" . __('Select / Unselect All', 'subscribe2') . "</strong></td>\r\n";
1396
- echo "<td align=\"center\"><input type=\"checkbox\" name=\"checkall\" value=\"confirm_checkall\" /></td>\r\n";
1397
- echo "<td align=\"center\"><input type=\"checkbox\" name=\"checkall\" value=\"unconfirm_checkall\" /></td>\r\n";
1398
- echo "<td align=\"center\"><input type=\"checkbox\" name=\"checkall\" value=\"delete_checkall\" /></td></tr>\r\n";
1399
- }
1400
  foreach ($subscribers as $subscriber) {
1401
- echo "<tr class=\"$alternate\" style=\"height:50px;\">";
1402
- echo "<td";
1403
- if (in_array($subscriber, $unconfirmed)) {
1404
- echo " align=\"right\">";
1405
- } elseif (in_array($subscriber, $confirmed)) {
1406
- echo " align=\"center\">";
1407
- } else {
1408
- echo " align=\"left\" colspan=\"4\">";
1409
- }
1410
- echo "<a href=\"mailto:" . $subscriber . "\">" . $subscriber . "</a>\r\n";
1411
- if (in_array($subscriber, $registered)) {
1412
- echo "(<a href=\"" . get_option('siteurl') . "/wp-admin/users.php?page=subscribe2/subscribe2.php&amp;email=$subscriber\">" . __('edit', 'subscribe2') . "</a>)\r\n";
1413
- }
1414
- if (in_array($subscriber, $unconfirmed) || in_array($subscriber, $confirmed) ) {
1415
- echo "(" . $this->signup_date($subscriber) . ")</td>\r\n";
1416
- echo "<td align=\"center\">\r\n";
1417
- if (in_array($subscriber, $confirmed)) {
1418
- echo "</td><td align=\"center\">\r\n";
1419
- echo "<input class=\"unconfirm_checkall\" title=\"" . __('Unconfirm this email address', 'subscribe2') . "\" type=\"checkbox\" name=\"unconfirm[]\" value=\"" . $subscriber . "\" /></td>\r\n";
1420
- } elseif (in_array($subscriber, $unconfirmed)) {
1421
- echo "<input class=\"confirm_checkall\" title=\"" . __('Confirm this email address', 'subscribe2') . "\" type=\"checkbox\" name=\"confirm[]\" value=\"" . $subscriber . "\" /></td>\r\n";
1422
- echo "<td align=\"center\"></td>\r\n";
1423
- }
1424
- echo "<td align=\"center\">\r\n";
1425
- echo "<p class=\"delete\">\r\n";
1426
  echo "<input class=\"delete_checkall\" title=\"" . __('Delete this email address', 'subscribe2') . "\" type=\"checkbox\" name=\"delete[]\" value=\"" . $subscriber . "\" />\r\n";
1427
- echo "</p>";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1428
  }
1429
  echo "</td></tr>\r\n";
1430
  ('alternate' == $alternate) ? $alternate = '' : $alternate = 'alternate';
@@ -1436,13 +1526,11 @@ class s2class {
1436
  echo "<tr><td align=\"center\"><b>" . __('NONE', 'subscribe2') . "</b></td></tr>\r\n";
1437
  }
1438
  }
1439
- echo "</table>\r\n";
1440
- if ( (in_array($what, $show)) && (!empty($subscribers)) ) {
1441
- echo "<table width=\"100%\">";
1442
- echo "<tr><td valign=\"bottom\">" . $strip . "</td>\r\n";
1443
- echo "<td align=\"right\"><input type=\"submit\" name=\"process\" value=\"" . __('Process', 'subscribe2') . "\" class=\"button\" />\r\n";
1444
- echo "</td></tr></table>\r\n";
1445
  }
 
1446
 
1447
  //show bulk managment form
1448
  echo "<h2>" . __('Categories', 'subscribe2') . "</h2>\r\n";
@@ -1451,8 +1539,8 @@ class s2class {
1451
  echo "<strong><em style=\"color: red\">" . __('Consider User Privacy as changes cannot be undone', 'subscribe2') . "</em></strong><br />\r\n";
1452
  echo "</p>";
1453
  echo "<br />" . __('Action to perform', 'subscribe2') . ":\r\n";
1454
- echo "<input type=\"radio\" name=\"manage\" value=\"subscribe\" checked=\"checked\" />" . __('Subscribe', 'subscribe2') . "\r\n";
1455
- echo "<input type=\"radio\" name=\"manage\" value=\"unsubscribe\" />" . __('Unsubscribe', 'subscribe2') . "<br /><br />\r\n";
1456
  echo "<input type=\"hidden\" name=\"emails\" value=\"$emails\" />\r\n";
1457
  $this->display_category_form();
1458
  echo "<p class=\"submit\"><input type=\"submit\" id=\"deletepost\" name=\"register\" value=\"" . __('Submit', 'subscribe2') . "\" /></p>";
@@ -1600,85 +1688,85 @@ class s2class {
1600
  echo "<a href=\"#\" onclick=\"s2_revert('bcc'); return false;\">". __('Revert', 'subscribe2') . "</a></span>\n";
1601
 
1602
  echo "<br /><br />" . __('Send Admins notifications for new', 'subscribe2') . ': ';
1603
- echo "<input type=\"radio\" name=\"admin_email\" value=\"subs\"";
1604
  if ('subs' == $this->subscribe2_options['admin_email']) {
1605
  echo " checked=\"checked\"";
1606
  }
1607
- echo " /> " . __('Subscriptions', 'subscribe2') . " &nbsp;&nbsp;";
1608
- echo "<input type=\"radio\" name=\"admin_email\" value=\"unsubs\"";
1609
  if ('unsubs' == $this->subscribe2_options['admin_email']) {
1610
  echo " checked=\"checked\"";
1611
  }
1612
- echo " /> " . __('Unsubscriptions', 'subscribe2') . " &nbsp;&nbsp;";
1613
- echo "<input type=\"radio\" name=\"admin_email\" value=\"both\"";
1614
  if ('both' == $this->subscribe2_options['admin_email']) {
1615
  echo " checked=\"checked\"";
1616
  }
1617
- echo " /> " . __('Both', 'subscribe2') . " &nbsp;&nbsp;";
1618
- echo "<input type=\"radio\" name=\"admin_email\" value=\"none\"";
1619
  if ('none' == $this->subscribe2_options['admin_email']) {
1620
  echo " checked=\"checked\"";
1621
  }
1622
- echo " /> " . __('Neither', 'subscribe2') . "<br /><br />\r\n";
1623
 
1624
  echo __('Include theme CSS stylesheet in HTML notifications', 'subscribe2') . ': ';
1625
- echo "<input type=\"radio\" name=\"stylesheet\" value=\"yes\"";
1626
  if ('yes' == $this->subscribe2_options['stylesheet']) {
1627
  echo " checked=\"checked\"";
1628
  }
1629
- echo " /> " . __('Yes', 'subscribe2') . " &nbsp;&nbsp;";
1630
- echo "<input type=\"radio\" name=\"stylesheet\" value=\"no\"";
1631
  if ('no' == $this->subscribe2_options['stylesheet']) {
1632
  echo " checked=\"checked\"";
1633
  }
1634
- echo " /> " . __('No', 'subscribe2') . "<br /><br />\r\n";
1635
 
1636
  echo __('Send Emails for Pages', 'subscribe2') . ': ';
1637
- echo "<input type=\"radio\" name=\"pages\" value=\"yes\"";
1638
  if ('yes' == $this->subscribe2_options['pages']) {
1639
  echo " checked=\"checked\"";
1640
  }
1641
- echo " /> " . __('Yes', 'subscribe2') . " &nbsp;&nbsp;";
1642
- echo "<input type=\"radio\" name=\"pages\" value=\"no\"";
1643
  if ('no' == $this->subscribe2_options['pages']) {
1644
  echo " checked=\"checked\"";
1645
  }
1646
- echo " /> " . __('No', 'subscribe2') . "<br /><br />\r\n";
1647
  echo __('Send Emails for Password Protected Posts', 'subscribe2') . ': ';
1648
- echo "<input type=\"radio\" name=\"password\" value=\"yes\"";
1649
  if ('yes' == $this->subscribe2_options['password']) {
1650
  echo " checked=\"checked\"";
1651
  }
1652
- echo " /> " . __('Yes', 'subscribe2') . " &nbsp;&nbsp;";
1653
- echo "<input type=\"radio\" name=\"password\" value=\"no\"";
1654
  if ('no' == $this->subscribe2_options['password']) {
1655
  echo " checked=\"checked\"";
1656
  }
1657
- echo " /> " . __('No', 'subscribe2') . "<br /><br />\r\n";
1658
  echo __('Send Emails for Private Posts', 'subscribe2') . ': ';
1659
- echo "<input type=\"radio\" name=\"private\" value=\"yes\"";
1660
  if ('yes' == $this->subscribe2_options['private']) {
1661
  echo " checked=\"checked\"";
1662
  }
1663
- echo " /> " . __('Yes', 'subscribe2') . " &nbsp;&nbsp;";
1664
- echo "<input type=\"radio\" name=\"private\" value=\"no\"";
1665
  if ('no' == $this->subscribe2_options['private']) {
1666
  echo " checked=\"checked\"";
1667
  }
1668
- echo " /> " . __('No', 'subscribe2') . "<br /><br />\r\n";
1669
  echo __('Send Email From', 'subscribe2') . ': ';
1670
- echo "<input type=\"radio\" name=\"sender\" value=\"author\"";
1671
  if ('author' == $this->subscribe2_options['sender']) {
1672
  echo " checked=\"checked\" ";
1673
  }
1674
- echo " /> " . __('Author of the post', 'subscribe2') . " &nbsp;&nbsp;";
1675
- echo "<input type=\"radio\" name=\"sender\" value=\"admin\"";
1676
  if ('admin' == $this->subscribe2_options['sender']) {
1677
  echo " checked=\"checked\" ";
1678
  }
1679
- echo " /> " . __('Blog Admin', 'subscribe2') . "<br /><br />\r\n";
1680
  if (function_exists('wp_schedule_event')) {
1681
- echo __('Send Email as Digest', 'subscribe2') . ": <br /><br />\r\n";
1682
  $this->display_digest_choices();
1683
  }
1684
  echo "</p>";
@@ -1701,6 +1789,7 @@ class s2class {
1701
  echo "<dt><b>POSTTIME</b></dt><dd>" . __("the excerpt of the post and the time it was posted<br />(<i>for digest emails only</i>)", 'subscribe2') . "</dd>\r\n";
1702
  echo "<dt><b>TABLE</b></dt><dd>" . __("a list of post titles<br />(<i>for digest emails only</i>)", 'subscribe2') . "</dd>\r\n";
1703
  echo "<dt><b>PERMALINK</b></dt><dd>" . __("the post's permalink<br />(<i>for per-post emails only</i>)", 'subscribe2') . "</dd>\r\n";
 
1704
  echo "<dt><b>MYNAME</b></dt><dd>" . __("the admin or post author's name", 'subscribe2') . "</dd>\r\n";
1705
  echo "<dt><b>EMAIL</b></dt><dd>" . __("the admin or post author's email", 'subscribe2') . "</dd>\r\n";
1706
  echo "<dt><b>AUTHORNAME</b></dt><dd>" . __("the post author's name", 'subscribe2') . "</dd>\r\n";
@@ -1720,11 +1809,11 @@ class s2class {
1720
  echo "<strong><em style=\"color: red\">" . __('Posts assigned to any Excluded Category do not generate notifications and are not included in digest notifications', 'subscribe2') . "</em></strong><br />\r\n";
1721
  echo"</p>";
1722
  $this->display_category_form(explode(',', $this->subscribe2_options['exclude']));
1723
- echo "<center><input type=\"checkbox\" name=\"reg_override\" value=\"1\"";
1724
  if ('1' == $this->subscribe2_options['reg_override']) {
1725
  echo " checked=\"checked\"";
1726
  }
1727
- echo " /> " . __('Allow registered users to subscribe to excluded categories?', 'subscribe2') . "</center><br />\r\n";
1728
 
1729
  // Appearance options
1730
  echo "<h2>" . __('Appearance', 'subscribe2') . "</h2>\r\n";
@@ -1749,96 +1838,96 @@ class s2class {
1749
  echo "<a href=\"#\" onclick=\"s2_revert('entries'); return false;\">". __('Revert', 'subscribe2') . "</a></span>\n";
1750
 
1751
  // show link to WordPress page in meta
1752
- echo "<br /><br /><input type=\"checkbox\" name=\"show_meta\" value=\"1\"";
1753
  if ('1' == $this->subscribe2_options['show_meta']) {
1754
  echo " checked=\"checked\"";
1755
  }
1756
- echo " /> " . __('Show a link to your subscription page in "meta"?', 'subscribe2') . "<br /><br />\r\n";
1757
 
1758
  // show QuickTag button
1759
- echo "<input type=\"checkbox\" name=\"show_button\" value=\"1\"";
1760
  if ('1' == $this->subscribe2_options['show_button']) {
1761
  echo " checked=\"checked\"";
1762
  }
1763
- echo " /> " . __('Show the Subscribe2 button on the Write toolbar?', 'subscribe2') . "<br /><br />\r\n";
1764
 
1765
  // show Widget
1766
- echo "<input type=\"checkbox\" name=\"widget\" value=\"1\"";
1767
  if ('1' == $this->subscribe2_options['widget']) {
1768
  echo " checked=\"checked\"";
1769
  }
1770
- echo " /> " . __('Enable Subscribe2 Widget?', 'subscribe2') . "<br /><br />\r\n";
1771
  echo"</p>";
1772
 
1773
  //Auto Subscription for new registrations
1774
  echo "<h2>" . __('Auto Subscribe', 'subscribe2') . "</h2>\r\n";
1775
  echo"<p>";
1776
  echo __('Subscribe new users registering with your blog', 'subscribe2') . ":<br />\r\n";
1777
- echo "<input type=\"radio\" name=\"autosub\" value=\"yes\"";
1778
  if ('yes' == $this->subscribe2_options['autosub']) {
1779
  echo " checked=\"checked\"";
1780
  }
1781
- echo " /> " . __('Automatically', 'subscribe2') . " &nbsp;&nbsp;";
1782
- echo "<input type=\"radio\" name=\"autosub\" value=\"wpreg\"";
1783
  if ('wpreg' == $this->subscribe2_options['autosub']) {
1784
  echo " checked=\"checked\"";
1785
  }
1786
- echo " /> " . __('Display option on Registration Form', 'subscribe2') . " &nbsp;&nbsp;";
1787
- echo "<input type=\"radio\" name=\"autosub\" value=\"no\"";
1788
  if ('no' == $this->subscribe2_options['autosub']) {
1789
  echo " checked=\"checked\"";
1790
  }
1791
- echo " /> " . __('No', 'subscribe2') . "<br /><br />\r\n";
1792
  echo __('Registration Form option is checked by default', 'subscribe2') . ": &nbsp;&nbsp;";
1793
- echo "<input type=\"radio\" name=\"wpregdef\" value=\"yes\"";
1794
  if ('yes' == $this->subscribe2_options['wpregdef']) {
1795
  echo " checked=\"checked\"";
1796
  }
1797
- echo " />" . __('Yes', 'subscribe2') . " &nbsp;&nbsp;";
1798
- echo "<input type=\"radio\" name=\"wpregdef\" value=\"no\"";
1799
  if ('no' == $this->subscribe2_options['wpregdef']) {
1800
  echo " checked=\"checked\"";
1801
  }
1802
- echo " />" . __('No', 'subscribe2') . "<br /><br />\r\n";
1803
  echo __('Auto-subscribe users to receive email as', 'subscribe2') . ": <br />\r\n";
1804
- echo "<input type=\"radio\" name=\"autoformat\" value=\"html\"";
1805
  if ('html' == $this->subscribe2_options['autoformat']) {
1806
  echo "checked=\"checked\" ";
1807
  }
1808
- echo "/> " . __('HTML', 'subscribe2') ." &nbsp;&nbsp;";
1809
- echo "<input type=\"radio\" name=\"autoformat\" value=\"fulltext\" ";
1810
  if ('fulltext' == $this->subscribe2_options['autoformat']) {
1811
  echo "checked=\"checked\" ";
1812
  }
1813
- echo "/> " . __('Plain Text - Full', 'subscribe2') . " &nbsp;&nbsp;";
1814
- echo "<input type=\"radio\" name=\"autoformat\" value=\"text\" ";
1815
  if ('text' == $this->subscribe2_options['autoformat']) {
1816
  echo "checked=\"checked\" ";
1817
  }
1818
- echo "/> " . __('Plain Text - Excerpt', 'subscribe2') . " <br /><br />";
1819
  echo __('Show Auto Subscribe option on Users page', 'subscribe2') . ": <br />\r\n";
1820
- echo "<input type=\"radio\" name=\"show_autosub\" value=\"yes\"";
1821
  if ('yes' == $this->subscribe2_options['show_autosub']) {
1822
  echo " checked=\"checked\"";
1823
  }
1824
- echo " />" . __('Yes', 'subscribe2') . " &nbsp;&nbsp;";
1825
- echo "<input type=\"radio\" name=\"show_autosub\" value=\"no\"";
1826
  if ('no' == $this->subscribe2_options['show_autosub']) {
1827
  echo " checked=\"checked\"";
1828
  }
1829
- echo " />" . __('No', 'subscribe2') . "<br /><br />";
1830
  echo __('Auto Subscribe me to new categories is checked by default', 'subscribe2') . ": <br />\r\n";
1831
- echo "<input type=\"radio\" name=\"autosub_def\" value=\"yes\"";
1832
  if ('yes' == $this->subscribe2_options['autosub_def']) {
1833
  echo " checked=\"checked\"";
1834
  }
1835
- echo " />" . __('Yes', 'subscribe2') . " &nbsp;&nbsp;";
1836
- echo "<input type=\"radio\" name=\"autosub_def\" value=\"no\"";
1837
  if ('no' == $this->subscribe2_options['autosub_def']) {
1838
  echo " checked=\"checked\"";
1839
  }
1840
  echo " />" . __('No', 'subscribe2');
1841
- echo"</p>";
1842
 
1843
  //barred domains
1844
  echo "<h2>" . __('Barred Domains', 'subscribe2') . "</h2>\r\n";
@@ -1876,15 +1965,18 @@ class s2class {
1876
  get_currentuserinfo();
1877
  }
1878
 
 
 
 
 
 
 
 
 
1879
  // was anything POSTed?
1880
  if ( (isset($_POST['s2_admin'])) && ('user' == $_POST['s2_admin']) ) {
1881
  check_admin_referer('subscribe2-user_subscribers' . $s2nonce);
1882
 
1883
- // Is this WordPressMU or not?
1884
- if ( (isset($wpmu_version)) || (strpos($wp_version, 'wordpress-mu')) ) {
1885
- $s2_mu = true;
1886
- }
1887
-
1888
  echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Subscription preferences updated.', 'subscribe2') . "</strong></p></div>\n";
1889
  $format = 'text';
1890
  $post = 'post';
@@ -1898,58 +1990,43 @@ class s2class {
1898
  update_usermeta($user_ID, 's2_format', $format);
1899
  update_usermeta($user_ID, 's2_autosub', $_POST['new_category']);
1900
 
1901
- if ($s2_mu) {
1902
- $posted_cats = $_POST['category'];
1903
- $other_blogs = get_usermeta($user_ID, 's2_subscribed');
1904
- if ($other_blogs == '-1') {
1905
- $other_blogs = array();
1906
- } else {
1907
- $other_blogs = array_diff(explode(',', $other_blogs), get_all_category_ids());
1908
- }
1909
- if (empty($posted_cats)) {
1910
- $cats = $other_blogs;
1911
- } else {
1912
- $cats = array_merge($posted_cats, $other_blogs);
1913
- }
1914
- } else {
1915
- $cats = $_POST['category'];
1916
- }
1917
 
1918
  if ( (empty($cats)) || ($cats == '-1') ) {
1919
- $oldcats = explode(',', get_usermeta($user_ID, 's2_subscribed'));
1920
  if ($oldcats) {
1921
  foreach ($oldcats as $cat) {
1922
- delete_usermeta($user_ID, "s2_cat" . $cat);
1923
  }
1924
  }
1925
- update_usermeta($user_ID, 's2_subscribed', '-1');
1926
  } elseif ($cats == 'digest') {
1927
  $all_cats = get_categories(array('hide_empty' => false));
1928
  foreach ($all_cats as $cat) {
1929
  ('' == $catids) ? $catids = "$cat->term_id" : $catids .= ",$cat->term_id";
1930
- update_usermeta($user_ID, 's2_cat' . $cat->term_id, $cat->term_id);
1931
  }
1932
- update_usermeta($user_ID, 's2_subscribed', $catids);
1933
  } else {
1934
  if (!is_array($cats)) {
1935
  $cats = array($_POST['category']);
1936
  }
1937
- $old_cats = explode(',', get_usermeta($user_ID, 's2_subscribed'));
1938
  $remove = array_diff($old_cats, $cats);
1939
  $new = array_diff($cats, $old_cats);
1940
  if (!empty($remove)) {
1941
  // remove subscription to these cat IDs
1942
  foreach ($remove as $id) {
1943
- delete_usermeta($user_ID, "s2_cat" . $id);
1944
  }
1945
  }
1946
  if (!empty($new)) {
1947
  // add subscription to these cat IDs
1948
  foreach ($new as $id) {
1949
- update_usermeta($user_ID, 's2_cat' . $id, $id);
1950
  }
1951
  }
1952
- update_usermeta($user_ID, 's2_subscribed', implode(',', $cats));
1953
  }
1954
  }
1955
 
@@ -1968,66 +2045,152 @@ class s2class {
1968
  echo "<input type=\"hidden\" name=\"s2_admin\" value=\"user\" />";
1969
  if ($this->subscribe2_options['email_freq'] == 'never') {
1970
  echo __('Receive email as', 'subscribe2') . ": &nbsp;&nbsp;";
1971
- echo "<input type=\"radio\" name=\"s2_format\" value=\"html\"";
1972
  if ('html' == get_usermeta($user_ID, 's2_format')) {
1973
  echo "checked=\"checked\" ";
1974
  }
1975
- echo "/> " . __('HTML', 'subscribe2') ." &nbsp;&nbsp;";
1976
- echo "<input type=\"radio\" name=\"s2_format\" value=\"text\" ";
1977
  if ('text' == get_usermeta($user_ID, 's2_format')) {
1978
  echo "checked=\"checked\" ";
1979
  }
1980
- echo "/> " . __('Plain Text', 'subscribe2') . "<br /><br />\r\n";
1981
 
1982
  echo __('Email contains', 'subscribe2') . ": &nbsp;&nbsp;";
1983
  $amount = array('excerpt' => __('Excerpt Only', 'subscribe2'), 'post' => __('Full Post', 'subscribe2'));
1984
  foreach ($amount as $key => $value) {
1985
- echo "<input type=\"radio\" name=\"s2_excerpt\" value=\"" . $key . "\"";
1986
  if ($key == get_usermeta($user_ID, 's2_excerpt')) {
1987
  echo " checked=\"checked\"";
1988
  }
1989
- echo " /> " . $value . "&nbsp;&nbsp;";
1990
  }
1991
  echo "<br /><span style=\"color: red;line-height: 300%;\">" . __('Note: HTML format will always deliver the full post', 'subscribe2') . ".</span><br />\r\n";
1992
  if ($this->subscribe2_options['show_autosub'] == 'yes') {
1993
  echo __('Automatically subscribe me to newly created categories', 'subscribe2') . ': &nbsp;&nbsp;';
1994
- echo "<input type=\"radio\" name=\"new_category\" value=\"yes\" ";
1995
  if ('yes' == get_usermeta($user_ID, 's2_autosub')) {
1996
  echo "checked=\"checked\" ";
1997
  }
1998
- echo "/> " . __('Yes', 'subscribe2') . "&nbsp;&nbsp;";
1999
- echo "<input type=\"radio\" name=\"new_category\" value=\"no\" ";
2000
  if ('no' == get_usermeta($user_ID, 's2_autosub')) {
2001
  echo "checked=\"checked\" ";
2002
  }
2003
- echo "/> " . __('No', 'subscribe2') . "<br /><br />";
2004
  echo "</p>";
2005
  }
2006
 
2007
  // subscribed categories
2008
- echo "<h2>" . __('Subscribed Categories', 'subscribe2') . "</h2>\r\n";
2009
- $this->display_category_form(explode(',', get_usermeta($user_ID, 's2_subscribed')), $this->subscribe2_options['reg_override']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2010
  } else {
2011
  // we're doing daily digests, so just show
2012
  // subscribe / unnsubscribe
2013
- echo __('Receive daily summary of new posts?', 'subscribe2') . ': &nbsp;&nbsp;';
2014
- echo "<p>";
2015
  echo "<input type=\"radio\" name=\"category\" value=\"digest\" ";
2016
- if (get_usermeta($user_ID, 's2_subscribed') != '-1') {
2017
  echo "checked=\"yes\" ";
2018
  }
2019
- echo "/> " . __('Yes', 'subscribe2') . "<input type=\"radio\" name=\"category\" value=\"-1\" ";
2020
- if (get_usermeta($user_ID, 's2_subscribed') == '-1') {
2021
  echo "checked=\"yes\" ";
2022
  }
2023
  echo "/> " . __('No', 'subscribe2');
2024
- echo "</p>";
2025
  }
2026
 
2027
-
2028
  // submit
2029
  echo "<p class=\"submit\"><input type=\"submit\" name=\"submit\" value=\"" . __("Update Preferences", 'subscribe2') . " &raquo;\" /></p>";
2030
- echo "</form></div>\r\n";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2031
 
2032
  include(ABSPATH . 'wp-admin/admin-footer.php');
2033
  // just to be sure
@@ -2038,7 +2201,7 @@ class s2class {
2038
  Display the Write sub-menu
2039
  */
2040
  function write_menu() {
2041
- global $wpdb, $s2nonce;
2042
 
2043
  // was anything POSTed?
2044
  if (isset($_POST['s2_admin']) && ('mail' == $_POST['s2_admin']) ) {
@@ -2057,8 +2220,12 @@ class s2class {
2057
  } else {
2058
  $recipients = $this->get_registered();
2059
  }
2060
- $subject = stripslashes(strip_tags($_POST['subject']));
2061
- $body = stripslashes($_POST['content']);
 
 
 
 
2062
  $status = $this->mail($recipients, $subject, $body, 'text');
2063
  if ($status) {
2064
  $message = $this->mail_sent;
@@ -2131,24 +2298,24 @@ class s2class {
2131
  $j++;
2132
  }
2133
  if (0 == $j) {
2134
- echo "<input class=\"cat_checkall\" type=\"checkbox\" name=\"category[]\" value=\"" . $cat->term_id . "\"";
2135
  if (in_array($cat->term_id, $selected)) {
2136
  echo " checked=\"checked\" ";
2137
  }
2138
- echo " /> " . $cat->name . "<br />\r\n";
2139
  } else {
2140
 
2141
- echo "<input class=\"cat_checkall\" type=\"checkbox\" name=\"category[]\" value=\"" . $cat->term_id . "\"";
2142
  if (in_array($cat->term_id, $selected)) {
2143
  echo " checked=\"checked\" ";
2144
  }
2145
- echo " /> " . $cat->name . "<br />\r\n";
2146
  }
2147
  $i++;
2148
  }
2149
  echo "</td></tr>\r\n";
2150
  echo "<tr><td align=\"left\" colspan=\"2\">\r\n";
2151
- echo "<input type=\"checkbox\" name=\"checkall\" value=\"cat_checkall\" /> " . __('Select / Unselect All', 'subscribe2') . "\r\n";
2152
  echo "</td></tr>\r\n";
2153
  echo "</table>\r\n";
2154
  } // end display_category_form()
@@ -2187,16 +2354,16 @@ class s2class {
2187
  if ($s2_mu) {
2188
  $count['registered'] = $wpdb->get_var("SELECT COUNT(meta_key) FROM $wpdb->usermeta WHERE meta_key='" . $wpdb->prefix . "capabilities'");
2189
  } else {
2190
- $count['registered'] = $wpdb->get_var("SELECT COUNT(meta_key) FROM $wpdb->usermeta WHERE meta_key='s2_subscribed'");
2191
  }
2192
  $count['all'] = ($count['confirmed'] + $count['unconfirmed'] + $count['registered']);
2193
  if ($s2_mu) {
2194
  foreach ($all_cats as $cat) {
2195
- $count[$cat->name] = $wpdb->get_var("SELECT COUNT(a.meta_key) FROM $wpdb->usermeta AS a INNER JOIN $wpdb->usermeta AS b ON a.user_id = b.user_id WHERE a.meta_key='" . $wpdb->prefix . "capabilities' AND b.meta_key=('s2_cat$cat->term_id')");
2196
  }
2197
  } else {
2198
  foreach ($all_cats as $cat) {
2199
- $count[$cat->name] = $wpdb->get_var("SELECT COUNT(meta_value) FROM $wpdb->usermeta WHERE meta_key='s2_cat$cat->term_id'");
2200
  }
2201
  }
2202
 
@@ -2234,7 +2401,7 @@ class s2class {
2234
  global $wpdb;
2235
  $scheduled_time = wp_next_scheduled('s2_digest_cron');
2236
  $schedule = (array)wp_get_schedules();
2237
- $schedule = array_merge(array('never' => array('interval' => 0, 'display' => __('Per Post Email', 'subscribe2'))), $schedule);
2238
  $sort = array();
2239
  foreach ( (array)$schedule as $key => $value ) $sort[$key] = $value['interval'];
2240
  asort($sort);
@@ -2243,11 +2410,11 @@ class s2class {
2243
  $schedule_sorted[$key] = $schedule[$key];
2244
  }
2245
  foreach ($schedule_sorted as $key => $value) {
2246
- echo "<input type=\"radio\" name=\"email_freq\" value=\"" . $key . "\"";
2247
  if ($key == $this->subscribe2_options['email_freq']) {
2248
  echo " checked=\"checked\" ";
2249
  }
2250
- echo " /> " . $value['display'] . "<br />\r\n";
2251
  }
2252
  echo "<br />" . __('Send Digest Notification at', 'subscribe2') . ": \r\n";
2253
  $hours = array('12am', '1am', '2am', '3am', '4am', '5am', '6am', '7am', '8am', '9am', '10am', '11am', '12pm', '1pm', '2pm', '3pm', '4pm', '5pm', '6pm', '7pm', '8pm', '9pm', '10pm', '11pm');
@@ -2275,6 +2442,36 @@ class s2class {
2275
  }
2276
  } // end display_digest_choices()
2277
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2278
  /**
2279
  Adds information to the WordPress registration screen for new users
2280
  */
@@ -2306,6 +2503,65 @@ class s2class {
2306
  }
2307
  }
2308
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2309
  /* ===== template and filter functions ===== */
2310
  /**
2311
  Display our form; also handles (un)subscribe requests
@@ -2323,7 +2579,7 @@ class s2class {
2323
  $this->s2form = $this->use_profile_users;
2324
  }
2325
  }
2326
- if (isset($_POST['s2_action'])) {
2327
  global $wpdb, $user_email;
2328
  if (!is_email($_POST['email'])) {
2329
  $this->s2form = $this->form . $this->not_an_email;
@@ -2339,7 +2595,7 @@ class s2class {
2339
  } else {
2340
  // this is not a registered email
2341
  // what should we do?
2342
- if ('subscribe' == $_POST['s2_action']) {
2343
  // someone is trying to subscribe
2344
  // lets see if they've tried to subscribe previously
2345
  if ('1' !== $this->is_public($this->email)) {
@@ -2358,7 +2614,7 @@ class s2class {
2358
  $this->s2form = $this->already_subscribed;
2359
  }
2360
  $this->action = 'subscribe';
2361
- } elseif ('unsubscribe' == $_POST['s2_action']) {
2362
  // is this email a subscriber?
2363
  if (false == $this->is_public($this->email)) {
2364
  $this->s2form = $this->form . $this->not_subscribed;
@@ -2431,7 +2687,7 @@ class s2class {
2431
  echo $content;
2432
  echo "</div>";
2433
  echo $after_widget;
2434
- }
2435
 
2436
  /**
2437
  Register the optional widget control form
@@ -2449,7 +2705,7 @@ class s2class {
2449
  echo "<p><label for=\"s2w-title\">" . __('Title:');
2450
  echo "<input style=\"width: 250px;\" id=\"s2w-title\" name=\"s2w-title\" type=\"text\" value=\"" . $title . "\" /></label></p>";
2451
  echo "<input type=\"hidden\" id=\"s2w-submit\" name=\"s2w-submit\" value=\"1\" />";
2452
- }
2453
 
2454
  /**
2455
  Actually register the Widget into the WordPress Widget API
@@ -2462,7 +2718,34 @@ class s2class {
2462
  register_sidebar_widget('Subscribe2', array(&$this, 'widget_subscribe2widget'));
2463
  register_widget_control('Subscribe2', array(&$this, 'widget_subscribe2widget_control'));
2464
  }
2465
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2466
 
2467
  /**
2468
  Add hook for Minimeta Widget plugin
@@ -2471,18 +2754,7 @@ class s2class {
2471
  if ($this->subscribe2_options['s2page'] != 0) {
2472
  echo "<li><a href=\"" . get_option('siteurl') . "/?page_id=" . $this->subscribe2_options['s2page'] . "\">" . __('[Un]Subscribe to Posts', 'subscribe2') . "</a></li>\r\n";
2473
  }
2474
- }
2475
-
2476
- /**
2477
- Adds a link directly to the settings page from the plugin page
2478
- */
2479
- function plugin_action($links, $file) {
2480
- if ($file == plugin_basename(dirname(__FILE__).'/subscribe2.php')) {
2481
- $s2link[] = "<a href='options-general.php?page=subscribe2/subscribe2.php'><b>" . __('Settings', 'subscribe2') . "</b></a>";
2482
- $links = array_merge($s2link, $links);
2483
- }
2484
- return $links;
2485
- }
2486
 
2487
  /* ===== Write Toolbar Button Functions ===== */
2488
 
@@ -2508,7 +2780,7 @@ class s2class {
2508
  buttonsnap_separator();
2509
  buttonsnap_jsbutton(WP_CONTENT_URL . '/plugins/subscribe2/include/s2_button.png', __('Subscribe2', 'subscribe2'), 's2_insert_token();');
2510
  }
2511
- }
2512
 
2513
  /**
2514
  Add buttons for WordPress 2.5+ using built in hooks
@@ -2554,6 +2826,14 @@ class s2class {
2554
  }
2555
 
2556
  /* ===== wp-cron functions ===== */
 
 
 
 
 
 
 
 
2557
  /**
2558
  Send a daily digest of today's new posts
2559
  */
@@ -2668,7 +2948,8 @@ class s2class {
2668
  $all_post_cats_string = implode(',', $all_post_cats);
2669
  $registered = $this->get_registered("cats=$all_post_cats_string");
2670
  $recipients = array_merge((array)$public, (array)$registered);
2671
- $mailtext = $this->substitute(stripslashes($this->subscribe2_options['mailtext']));
 
2672
  $mailtext = str_replace("TABLE", $table, $mailtext);
2673
  $mailtext = str_replace("POSTTIME", $message_posttime, $mailtext);
2674
  $mailtext = str_replace("POST", $message_post, $mailtext);
@@ -2691,12 +2972,12 @@ class s2class {
2691
  if ('1' == $this->subscribe2_options['widget']) {
2692
  add_action('plugins_loaded', array(&$this, 'register_subscribe2widget'));
2693
  }
2694
- }
2695
 
2696
  function subscribe2() {
2697
  global $table_prefix;
2698
 
2699
- load_plugin_textdomain('subscribe2', PLUGINDIR . '/' . dirname(plugin_basename(__FILE__)), dirname(plugin_basename(__FILE__)));
2700
 
2701
  // do we need to install anything?
2702
  $this->public = $table_prefix . "subscribe2";
@@ -2748,6 +3029,9 @@ class s2class {
2748
  // add actions for automatic subscription based on option settings
2749
  add_action('register_form', array(&$this, 'register_form'));
2750
  add_action('user_register', array(&$this, 'register'));
 
 
 
2751
 
2752
  // add actions for processing posts based on per-post or cron email settings
2753
  if ($this->subscribe2_options['email_freq'] != 'never') {
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.14
7
  Author: Matthew Robinson
8
  Author URI: http://subscribe2.wordpress.com
9
  */
10
 
11
  /*
12
+ Copyright (C) 2006-9 Matthew Robinson
13
  Based on the Original Subscribe2 plugin by
14
  Copyright (C) 2005 Scott Merrill (skippy@skippy.net)
15
 
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.14');
35
  define('S2PATH', trailingslashit(dirname(__FILE__)));
36
 
37
  // Pre-2.6 compatibility
82
 
83
  $this->mail_failed = "<p>" . __('Message failed! Check your settings and check with your hosting provider', 'subscribe2') . "</p>";
84
 
85
+ $this->form = "<form method=\"post\" action=\"\"><p>" . __('Your email:', 'subscribe2') . "<br /><input type=\"text\" name=\"email\" value=\"" . __('Enter email address...', 'subscribe2') . "\" size=\"20\" onfocus=\"if (this.value == '" . __('Enter email address...', 'subscribe2') . "') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '" . __('Enter email address...', 'subscribe2') . "';}\" /></p><p><input type=\"submit\" name=\"subscribe\" value=\"" . __('Subscribe', 'subscribe2') . "\" />&nbsp;<input type=\"submit\" name=\"unsubscribe\" value=\"" . __('Unsubscribe', 'subscribe2') . "\" /></p></form>\r\n";
86
+
87
  // confirmation messages
88
  $this->no_such_email = "<p>" . __('No such email address is registered.', 'subscribe2') . "</p>";
89
 
104
  $this->options_reset = __('Options reset!', 'subscribe2');
105
  } // end load_strings()
106
 
107
+ /* ===== WordPress menu registration and scripts ===== */
108
  /**
109
  Hook the menu
110
  */
119
 
120
  $s2user = add_users_page(__('Subscriptions', 'subscribe2'), __('Subscriptions', 'subscribe2'), "read", __FILE__, array(&$this, 'user_menu'));
121
  add_action("admin_print_scripts-$s2user", array(&$this, 'checkbox_form_js'));
122
+ add_action("admin_print_styles-$s2user", array(&$this, 'user_admin_css'));
123
 
124
  add_submenu_page('post-new.php', __('Mail Subscribers', 'subscribe2'), __('Mail Subscribers', 'subscribe2'), "publish_posts", __FILE__, array(&$this, 'write_menu'));
125
 
126
  $s2nonce = md5('subscribe2');
127
+ } // end admin_menu()
128
 
129
  /**
130
  Hook for Admin Drop Down Icons
135
  } else {
136
  return $hook;
137
  }
138
+ } // end ozh_s2_icon()
139
 
140
  /**
141
  Insert Javascript into admin_header
142
  */
143
  function checkbox_form_js() {
144
  wp_enqueue_script('s2_checkbox', WP_CONTENT_URL . '/plugins/' . dirname( plugin_basename( __FILE__ ) ) . '/include/s2_checkbox.js', array('jquery'), '1.0');
145
+ } //end checkbox_form_js()
146
+
147
+ function user_admin_css() {
148
+ wp_enqueue_style('s2_user_admin', WP_CONTENT_URL . '/plugins/ '. dirname( plugin_basename( __FILE__ ) ) . '/include/s2_user_admin.css', array(), '1.0');
149
  }
150
 
151
  function option_form_js() {
152
  wp_enqueue_script('s2_edit', WP_CONTENT_URL . '/plugins/' . dirname( plugin_basename( __FILE__ ) ) . '/include/s2_edit.js', array('jquery'), '1.0');
153
+ } // end option_form_js()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
 
155
  /* ===== Install, upgrade, reset ===== */
156
  /**
210
  //double check that the options are in the database
211
  require(S2PATH . "include/options.php");
212
  update_option('subscribe2_options', $this->subscribe2_options);
213
+
214
+ // upgrade old wpmu user meta data to new
215
+ global $wp_version, $wpmu_version;
216
+ if ( (isset($wpmu_version)) || (strpos($wp_version, 'wordpress-mu')) ) {
217
+ $this->namechange_subscribe2_widget();
218
+ // loop through all users
219
+ $users = $wpdb->get_col("SELECT ID FROM $wpdb->users");
220
+ foreach ($users as $user) {
221
+ // get categories which the user is subscribed to (old ones)
222
+ $categories = get_usermeta($user, 's2_subscribed');
223
+ $categories = explode(',', $categories);
224
+
225
+ // load blogs of user (only if we need them)
226
+ $blogs = array();
227
+ if (count($categories) > 0 && !in_array('-1', $categories)) {
228
+ $blogs = get_blogs_of_user($user, true);
229
+ }
230
+
231
+ foreach ($blogs as $blog_id => $blog) {
232
+ switch_to_blog($blog_id);
233
+
234
+ $blog_categories = (array)$wpdb->get_col("SELECT term_id FROM $wpdb->term_taxonomy WHERE taxonomy = 'category'");
235
+ $subscribed_categories = array_intersect($categories, $blog_categories);
236
+ if (!empty($subscribed_categories)) {
237
+ foreach ($subscribed_categories as $subscribed_category) {
238
+ update_usermeta($user, $this->get_usermeta_keyname('s2_cat') . $subscribed_category, $subscribed_category);
239
+ }
240
+ update_usermeta($user, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $subscribed_categories));
241
+ } else {
242
+ $current_s2_subscribed = get_usermeta($user, $this->get_usermeta_keyname('s2_subscribed'));
243
+ if (empty($current_s2_subscribed)) {
244
+ update_usermeta($user, $this->get_usermeta_keyname('s2_subscribed'), '-1');
245
+ }
246
+ }
247
+ restore_current_blog();
248
+ }
249
+
250
+ // delete old user meta keys
251
+ delete_usermeta($user, 's2_subscribed');
252
+ foreach ($categories as $cat) if ($cat != '-1') {
253
+ delete_usermeta($user, 's2_cat' . $cat);
254
+ }
255
+ }
256
+ }
257
  } // end upgrade()
258
 
259
  /**
279
  $string = str_replace("BLOGLINK", get_bloginfo('url'), $string);
280
  $string = str_replace("TITLE", stripslashes($this->post_title), $string);
281
  $string = str_replace("PERMALINK", $this->permalink, $string);
282
+ if (strstr("TINYLINK", $string)) {
283
+ $tinylink = file_get_contents('http://tinyurl.com/api-create.php?url=' . urlencode($this->permalink));
284
+ if ( ($tinylink !== 'Error') || ($tinylink != FALSE) ) {
285
+ $string = str_replace("TINYLINK", $tinylink, $string);
286
+ } else {
287
+ $string = str_replace("TINYLINK", $this->permalink, $string);
288
+ }
289
+ }
290
  $string = str_replace("MYNAME", stripslashes($this->myname), $string);
291
  $string = str_replace("EMAIL", $this->myemail, $string);
292
  $string = str_replace("AUTHORNAME", $this->authorname, $string);
476
  }
477
  // we set these class variables so that we can avoid
478
  // passing them in function calls a little later
479
+ $this->post_title = "<a href=\"" . get_permalink($post->ID) . "\">" . $post->post_title . "</a>";
480
  $this->permalink = "<a href=\"" . get_permalink($post->ID) . "\">" . get_permalink($post->ID) . "</a>";
481
 
482
  $author = get_userdata($post->post_author);
495
  // Get email subject
496
  $subject = stripslashes(strip_tags($this->substitute($this->s2_subject)));
497
  // Get the message template
498
+ $mailtext = apply_filter('s2_email_template', $this->subscribe2_options['mailtext']);
499
+ $mailtext = stripslashes($this->substitute($mailtext));
500
 
501
  $plaintext = $post->post_content;
502
  if (function_exists('strip_shortcodes')) {
557
  $post = get_post($id);
558
  $this->publish($post);
559
  return $post;
560
+ } // end publish_phone()
561
 
562
  /**
563
  Send confirmation email to the user
627
  return false;
628
  }
629
  return $wpdb->get_var("SELECT email FROM $this->public WHERE id=$id");
630
+ } // end get_email()
631
 
632
  /**
633
  Given a public subscriber email, returns the subscriber ID
642
  } // end get_id()
643
 
644
  /**
645
+ Activate an public subscriber email address
646
  If the address is not already present, it will be added
647
  */
648
  function activate ($email = '') {
666
  } // end activate()
667
 
668
  /**
669
+ Add an public subscriber to the subscriber table as unconfirmed
670
  */
671
  function add ($email = '') {
672
  if ($this->filtered ==1) { return; }
690
  } // end add()
691
 
692
  /**
693
+ Remove a public subscriber user from the subscription table
694
  */
695
  function delete($email = '') {
696
  global $wpdb;
811
  if ('' != $this->message) {
812
  return $this->message;
813
  }
814
+ } // end confirm()
815
 
816
  /**
817
  Is the supplied email address a public subscriber?
843
  } else {
844
  return false;
845
  }
846
+ } // end is_registered()
847
 
848
  /**
849
  Return an array of all the public 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
  }
920
  $AND .= " AND ($and)";
921
  }
922
 
923
  if ($s2_mu) {
924
+ $sql = "SELECT a.user_id FROM $wpdb->usermeta AS a INNER JOIN $wpdb->usermeta AS e ON a.user_id = e.user_id " . $JOIN . "WHERE a.meta_key='" . $wpdb->prefix . "capabilities' AND e.meta_key='{$this->get_usermeta_keyname('s2_subscribed')}'" . $AND;
925
  } else {
926
+ $sql = "SELECT a.user_id FROM $wpdb->usermeta AS a " . $JOIN . "WHERE a.meta_key='{$this->get_usermeta_keyname('s2_subscribed')}'" . $AND;
927
  }
928
  $result = $wpdb->get_col($sql);
929
  if ($result) {
986
  if (false !== $this->is_public($user->user_email)) {
987
  // delete this user from the public table, and subscribe them to all the categories
988
  $this->delete($user->user_email);
989
+ update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), $cats);
990
  foreach(explode(',', $cats) as $cat) {
991
+ update_usermeta($user_id, $this->get_usermeta_keyname('s2_cat') . $cat, "$cat");
992
  }
993
  update_usermeta($user_id, 's2_format', 'text');
994
  update_usermeta($user_id, 's2_excerpt', 'excerpt');
1010
  update_usermeta($user_id, 's2_autosub', $this->subscribe2_options['autosub_def']);
1011
  }
1012
  // ensure existing subscriptions are not overwritten on upgrade
1013
+ $check_subscribed = get_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'));
1014
  // if the are no existing subscriptions, create them based on admin options
1015
  if (empty($check_subscribed)) {
1016
  // add entries by default if autosub is on
1017
  if ( ('yes' == $this->subscribe2_options['autosub']) || (('wpreg' == $this->subscribe2_options['autosub']) && ('on' == $_POST['subscribe'])) ) {
1018
+ update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), $cats);
1019
  foreach(explode(',', $cats) as $cat) {
1020
+ update_usermeta($user_id, $this->get_usermeta_keyname('s2_cat') . $cat, "$cat");
1021
  }
1022
  } else {
1023
+ update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), '-1');
1024
  }
1025
  } else {
1026
  update_usermeta($user_id, 's2_autosub', 'no');
1046
  }
1047
 
1048
  foreach ($user_IDs as $user_ID) {
1049
+ $old_cats = get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'));
1050
  if ($old_cats == '-1') {
1051
  $old_cats = array();
1052
  } else {
1059
  if (!empty($new)) {
1060
  // add subscription to these cat IDs
1061
  foreach ($new as $id) {
1062
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $id, "$id");
1063
  }
1064
  }
1065
  $newcats = array_merge($cats, $old_cats);
1066
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $newcats));
1067
  }
1068
+ } // end subscribe_registered_users()
1069
 
1070
  /**
1071
  Unsubscribe all registered users to category selected on Admin Manage Page
1084
  }
1085
 
1086
  foreach ($user_IDs as $user_ID) {
1087
+ $old_cats = explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')));
1088
  if (!is_array($old_cats)) {
1089
  $old_cats = array($old_cats);
1090
  }
1092
  if (!empty($remain)) {
1093
  // remove subscription to these cat IDs and update s2_subscribed
1094
  foreach ($cats as $id) {
1095
+ delete_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $id);
1096
  }
1097
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $remain));
1098
  } else {
1099
  // remove subscription to these cat IDs and update s2_subscribed to ''
1100
  foreach ($cats as $id) {
1101
+ delete_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $id);
1102
  }
1103
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), '-1');
1104
  }
1105
  }
1106
+ } // end unsubscribe_registered_users()
1107
+
1108
+ /**
1109
+ Handles subscriptions and unsubscriptions for different blogs on WPMU installs
1110
+ */
1111
+ function wpmu_subscribe() {
1112
+ $redirect_to_subscriptionpage = false;
1113
+
1114
+ // subscribe to new blog
1115
+ if (!empty($_GET['s2mu_subscribe'])) {
1116
+ $blog_id = intval($_GET['s2mu_subscribe']);
1117
+ if ($blog_id >= 0) {
1118
+ switch_to_blog($blog_id);
1119
+
1120
+ $user_id = get_current_user_id();
1121
+
1122
+ // if user is not a user of the current blog
1123
+ if (!is_blog_user($blog_id)) {
1124
+ // add user to current blog as subscriber
1125
+ add_user_to_blog($blog_id, $user_id, 'subscriber');
1126
+ }
1127
+
1128
+ // subscribe to all categories by default
1129
+ $all_cats = get_categories(array('hide_empty' => false));
1130
+
1131
+ if (0 == $this->subscribe2_options['reg_override']) {
1132
+ // registered users are not allowed to subscribe to excluded categories
1133
+ $exclude = explode(',', $this->subscribe2_options['exclude']);
1134
+ foreach ($all_cats as $cat => $term) {
1135
+ if (in_array($all_cats[$cat]->term_id, $exclude)) {
1136
+ $cat = (int)$cat;
1137
+ unset($all_cats[$cat]);
1138
+ }
1139
+ }
1140
+ }
1141
+
1142
+ $cats = array();
1143
+ foreach ($all_cats as $cat => $term) {
1144
+ $term_id = $term->term_id;
1145
+ $cats[] = $term_id;
1146
+ update_usermeta($user_id, $this->get_usermeta_keyname('s2_cat') . $term_id, $term_id);
1147
+ }
1148
+ if (empty($cats)) {
1149
+ $cats = array('-1');
1150
+ }
1151
+ update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $cats));
1152
+
1153
+ // don't restore_current_blog(); -> redirect to new subscription page
1154
+ $redirect_to_subscriptionpage = true;
1155
+ }
1156
+ } elseif (!empty($_GET['s2mu_unsubscribe'])) {
1157
+ // unsubscribe from a blog
1158
+ $blog_id = intval($_GET['s2mu_unsubscribe']);
1159
+ if ($blog_id >= 0) {
1160
+ switch_to_blog($blog_id);
1161
+
1162
+ $user_id = get_current_user_id();
1163
+
1164
+ // delete subscription to all categories on that blog
1165
+ $cats = get_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'));
1166
+ if ($cats == '-1') {
1167
+ $cats = array();
1168
+ } else {
1169
+ $cats = explode(',', $cats);
1170
+ if (!is_array($cats)) $cats = array($cats);
1171
+ }
1172
+ foreach ($cats as $id) {
1173
+ delete_usermeta($user_id, $this->get_usermeta_keyname('s2_cat') . $id);
1174
+ }
1175
+ update_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'), '-1');
1176
+
1177
+ // remove level_0 users
1178
+ if (!current_user_can(1)) {
1179
+ $blogs = get_blogs_of_user($user_id, true);
1180
+ // if user only has one blog left
1181
+ if (count($blogs) == 1) {
1182
+ wp_delete_user($user_id, 1); // delete posts and reassign any existing posts to root user
1183
+ wp_redirect(get_option('siteurl')); // redirect to front page
1184
+ exit();
1185
+ } else {
1186
+ remove_user_from_blog($user_id, $blog_id);
1187
+ delete_usermeta($user_id, $this->get_usermeta_keyname('s2_subscribed'));
1188
+ }
1189
+ }
1190
+ restore_current_blog();
1191
+ $redirect_to_subscriptionpage = true;
1192
+ }
1193
+ }
1194
+
1195
+ if ($redirect_to_subscriptionpage == true) {
1196
+ if (!is_user_member_of_blog($user_id)) {
1197
+ $user_blogs = get_active_blog_for_user($user_id);
1198
+ if (is_array($user_blogs)) {
1199
+ switch_to_blog(key($user_blogs));
1200
+ }
1201
+ }
1202
+
1203
+ // redirect to profile page
1204
+ if (current_user_can('manage_options')) {
1205
+ $url = get_option('siteurl') . '/wp-admin/users.php?page=subscribe2/subscribe2.php';
1206
+ wp_redirect($url);
1207
+ exit();
1208
+ } else {
1209
+ $url = get_option('siteurl') . '/wp-admin/profile.php?page=subscribe2/subscribe2.php';
1210
+ wp_redirect($url);
1211
+ exit();
1212
+ }
1213
+ }
1214
+ } // end wpmu_subscribe()
1215
 
1216
  /**
1217
  Autosubscribe registered users to newly created categories
1225
  if ('' == $user_IDs) { return; }
1226
 
1227
  foreach ($user_IDs as $user_ID) {
1228
+ $old_cats = explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')));
1229
  if (!is_array($old_cats)) {
1230
  $old_cats = array($old_cats);
1231
  }
1232
  // add subscription to these cat IDs
1233
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $new_category, "$new_category");
1234
  $newcats = array_merge($old_cats, (array)$new_category);
1235
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $newcats));
1236
  }
1237
+ } // end autosub_new_category()
1238
 
1239
  /**
1240
  Get admin data from record 1 or first user with admin rights
1256
  $admin = get_userdata($wpdb->get_var($sql));
1257
  }
1258
  return $admin;
1259
+ } //end get_userdata()
1260
 
1261
  /* ===== Menus ===== */
1262
  /**
1278
  foreach (preg_split ("/[\s,]+/", $_POST['addresses']) as $email) {
1279
  if ( (is_email($email)) && ($_POST['subscribe']) ) {
1280
  $this->activate($email);
1281
+ $message = "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Address(es) subscribed!', 'subscribe2') . "</strong></p></div>";
1282
  } elseif ( (is_email($email)) && ($_POST['unsubscribe']) ) {
1283
  $this->delete($email);
1284
+ $message = "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Address(es) unsubscribed!', 'subscribe2') . "</strong></p></div>";
1285
  }
1286
  }
1287
+ echo $message;
1288
  $_POST['what'] = 'confirmed';
 
1289
  } elseif ($_POST['process']) {
1290
  if ($_POST['delete']) {
1291
  foreach ($_POST['delete'] as $address) {
1335
  if ('' == $unconfirmed) { $unconfirmed = array(); }
1336
  if ('' == $registered) { $registered = array(); }
1337
 
 
1338
  $reminderform = false;
1339
  $urlpath = str_replace("\\", "/", S2PATH);
1340
  $urlpath = trailingslashit(get_option('siteurl')) . substr($urlpath,strpos($urlpath, "wp-content/"));
1394
  $subscribers = $registered;
1395
  }
1396
  } else {
1397
+ $what = 'all';
1398
+ $subscribers = array_merge((array)$confirmed, (array)$unconfirmed, (array)$registered);
 
 
 
 
 
 
 
 
 
 
 
1399
  }
1400
  if ($_POST['searchterm']) {
1401
  $subscribers = &$result;
1456
  // show the selected subscribers
1457
  $alternate = '';
1458
  if (!empty($subscribers)) {
 
1459
  $exportcsv = implode(",\r\n", $subscribers);
1460
  echo "<table cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">";
1461
  echo "<tr class=\"alternate\"><td width=\"50%\"><input type=\"text\" name=\"searchterm\" value=\"\" />&nbsp;\r\n";
1462
  echo "<input type=\"submit\" name=\"search\" value=\"" . __('Search Subscribers', 'subscribe2') . "\" class=\"button\" /></td>\r\n";
 
 
1463
  if ($reminderform) {
1464
+ echo "<td width=\"25%\" align=\"right\"><input type=\"hidden\" name=\"reminderemails\" value=\"" . $reminderemails . "\" />\r\n";
1465
+ echo "<input type=\"submit\" name=\"remind\" value=\"" . __('Send Reminder Email', 'subscribe2') . "\" class=\"button\" /></td>\r\n";
1466
+ } else {
1467
+ echo "<td width=\"25%\"></td>";
 
 
1468
  }
1469
+ echo "<td width=\"25%\" align=\"right\"><input type=\"hidden\" name=\"exportcsv\" value=\"" . $exportcsv . "\" />\r\n";
1470
+ echo "<input type=\"submit\" name=\"csv\" value=\"" . __('Save Emails to CSV File', 'subscribe2') . "\" class=\"button\" /></td></tr>\r\n";
1471
+ echo "</table>";
1472
  }
1473
 
1474
+ echo "<table class=\"widefat\" cellpadding=\"2\" cellspacing=\"2\">";
1475
+ if (!empty($subscribers)) {
1476
+ echo "<tr><td colspan=\"3\" align=\"center\"><input type=\"submit\" name=\"process\" value=\"" . __('Process', 'subscribe2') . "\" class=\"button\" /></td>\r\n";
1477
+ echo "<td align=\"right\">" . $strip . "</td></tr>\r\n";
1478
+ }
1479
  if (!empty($subscribers)) {
1480
  $subscriber_chunks = array_chunk($subscribers, $this->subscribe2_options['entries']);
1481
  $chunk = $page - 1;
1482
  $subscribers = $subscriber_chunks[$chunk];
1483
+ echo "<tr class=\"alternate\" style=\"height:1.5em;\">\r\n";
1484
+ echo "<td width=\"4%\" align=\"center\">";
1485
+ echo "<img src=\"" . $urlpath . "include/accept.png\" alt=\"&lt;\" title=\"" . __('Confirm this email address', 'subscribe2') . "\" /></td>\r\n";
1486
+ echo "<td width=\"4%\" align=\"center\">";
1487
+ echo "<img src=\"" . $urlpath . "include/exclamation.png\" alt=\"&gt;\" title=\"" . __('Unconfirm this email address', 'subscribe2') . "\" /></td>\r\n";
1488
+ echo "<td width=\"4%\" align=\"center\">";
1489
+ echo "<img src=\"" . $urlpath . "include/cross.png\" alt=\"X\" title=\"" . __('Delete this email address', 'subscribe2') . "\" /></td><td></td></tr>\r\n";
1490
+ echo "<tr><td align=\"center\"><input type=\"checkbox\" name=\"checkall\" value=\"confirm_checkall\" /></td>\r\n";
1491
+ echo "<td align=\"center\"><input type=\"checkbox\" name=\"checkall\" value=\"unconfirm_checkall\" /></td>\r\n";
1492
+ echo "<td align=\"center\"><input type=\"checkbox\" name=\"checkall\" value=\"delete_checkall\" /></td>\r\n";
1493
+ echo "<td align=\"left\"><strong>" . __('Select / Unselect All', 'subscribe2') . "</strong></td></tr>\r\n";
1494
+
 
 
1495
  foreach ($subscribers as $subscriber) {
1496
+ echo "<tr class=\"$alternate\" style=\"height:1.5em;\">";
1497
+ echo "<td align=\"center\">\r\n";
1498
+ if (in_array($subscriber, $confirmed)) {
1499
+ echo "</td><td align=\"center\">\r\n";
1500
+ echo "<input class=\"unconfirm_checkall\" title=\"" . __('Unconfirm this email address', 'subscribe2') . "\" type=\"checkbox\" name=\"unconfirm[]\" value=\"" . $subscriber . "\" /></td>\r\n";
1501
+ echo "<td align=\"center\"><span class=\"delete\">\r\n";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1502
  echo "<input class=\"delete_checkall\" title=\"" . __('Delete this email address', 'subscribe2') . "\" type=\"checkbox\" name=\"delete[]\" value=\"" . $subscriber . "\" />\r\n";
1503
+ echo "</span></td>\r\n";
1504
+ echo "<td><span style=\"color:#006600\">&#x221A;&nbsp;&nbsp;</span><a href=\"mailto:" . $subscriber . "\">" . $subscriber . "</a>\r\n";
1505
+ echo "(<span style=\"color:#006600\">" . $this->signup_date($subscriber) . "</span>)\r\n";
1506
+ } elseif (in_array($subscriber, $unconfirmed)) {
1507
+ echo "<input class=\"confirm_checkall\" title=\"" . __('Confirm this email address', 'subscribe2') . "\" type=\"checkbox\" name=\"confirm[]\" value=\"" . $subscriber . "\" /></td>\r\n";
1508
+ echo "<td align=\"center\"></td>\r\n";
1509
+ echo "<td align=\"center\"><span class=\"delete\">\r\n";
1510
+ echo "<input class=\"delete_checkall\" title=\"" . __('Delete this email address', 'subscribe2') . "\" type=\"checkbox\" name=\"delete[]\" value=\"" . $subscriber . "\" />\r\n";
1511
+ echo "</span></td>\r\n";
1512
+ echo "<td><span style=\"color:#FF0000\">&nbsp;!&nbsp;&nbsp;&nbsp;</span><a href=\"mailto:" . $subscriber . "\">" . $subscriber . "</a>\r\n";
1513
+ echo "(<span style=\"color:#FF0000\">" . $this->signup_date($subscriber) . "</span>)\r\n";
1514
+ } elseif (in_array($subscriber, $registered)) {
1515
+ echo "</td><td align=\"center\"></td><td align=\"center\"></td>\r\n";
1516
+ echo "<td><span style=\"color:#006600\">&reg;&nbsp;&nbsp;</span><a href=\"mailto:" . $subscriber . "\">" . $subscriber . "</a>\r\n";
1517
+ echo "(<a href=\"" . get_option('siteurl') . "/wp-admin/users.php?page=subscribe2/subscribe2.php&amp;email=$subscriber\">" . __('edit', 'subscribe2') . "</a>)\r\n";
1518
  }
1519
  echo "</td></tr>\r\n";
1520
  ('alternate' == $alternate) ? $alternate = '' : $alternate = 'alternate';
1526
  echo "<tr><td align=\"center\"><b>" . __('NONE', 'subscribe2') . "</b></td></tr>\r\n";
1527
  }
1528
  }
1529
+ if (!empty($subscribers)) {
1530
+ echo "<tr><td colspan=\"3\" align=\"center\"><input type=\"submit\" name=\"process\" value=\"" . __('Process', 'subscribe2') . "\" class=\"button\" /></td>\r\n";
1531
+ echo "<td align=\"right\">" . $strip . "</td></tr>\r\n";
 
 
 
1532
  }
1533
+ echo "</table>\r\n";
1534
 
1535
  //show bulk managment form
1536
  echo "<h2>" . __('Categories', 'subscribe2') . "</h2>\r\n";
1539
  echo "<strong><em style=\"color: red\">" . __('Consider User Privacy as changes cannot be undone', 'subscribe2') . "</em></strong><br />\r\n";
1540
  echo "</p>";
1541
  echo "<br />" . __('Action to perform', 'subscribe2') . ":\r\n";
1542
+ echo "<label><input type=\"radio\" name=\"manage\" value=\"subscribe\" checked=\"checked\" />" . __('Subscribe', 'subscribe2') . "</label>\r\n";
1543
+ echo "<label><input type=\"radio\" name=\"manage\" value=\"unsubscribe\" />" . __('Unsubscribe', 'subscribe2') . "</label><br /><br />\r\n";
1544
  echo "<input type=\"hidden\" name=\"emails\" value=\"$emails\" />\r\n";
1545
  $this->display_category_form();
1546
  echo "<p class=\"submit\"><input type=\"submit\" id=\"deletepost\" name=\"register\" value=\"" . __('Submit', 'subscribe2') . "\" /></p>";
1688
  echo "<a href=\"#\" onclick=\"s2_revert('bcc'); return false;\">". __('Revert', 'subscribe2') . "</a></span>\n";
1689
 
1690
  echo "<br /><br />" . __('Send Admins notifications for new', 'subscribe2') . ': ';
1691
+ echo "<label><input type=\"radio\" name=\"admin_email\" value=\"subs\"";
1692
  if ('subs' == $this->subscribe2_options['admin_email']) {
1693
  echo " checked=\"checked\"";
1694
  }
1695
+ echo " /> " . __('Subscriptions', 'subscribe2') . "</label>&nbsp;&nbsp;";
1696
+ echo "<label><input type=\"radio\" name=\"admin_email\" value=\"unsubs\"";
1697
  if ('unsubs' == $this->subscribe2_options['admin_email']) {
1698
  echo " checked=\"checked\"";
1699
  }
1700
+ echo " /> " . __('Unsubscriptions', 'subscribe2') . "</label>&nbsp;&nbsp;";
1701
+ echo "<label><input type=\"radio\" name=\"admin_email\" value=\"both\"";
1702
  if ('both' == $this->subscribe2_options['admin_email']) {
1703
  echo " checked=\"checked\"";
1704
  }
1705
+ echo " /> " . __('Both', 'subscribe2') . "</label>&nbsp;&nbsp;";
1706
+ echo "<label><input type=\"radio\" name=\"admin_email\" value=\"none\"";
1707
  if ('none' == $this->subscribe2_options['admin_email']) {
1708
  echo " checked=\"checked\"";
1709
  }
1710
+ echo " /> " . __('Neither', 'subscribe2') . "</label><br /><br />\r\n";
1711
 
1712
  echo __('Include theme CSS stylesheet in HTML notifications', 'subscribe2') . ': ';
1713
+ echo "<label><input type=\"radio\" name=\"stylesheet\" value=\"yes\"";
1714
  if ('yes' == $this->subscribe2_options['stylesheet']) {
1715
  echo " checked=\"checked\"";
1716
  }
1717
+ echo " /> " . __('Yes', 'subscribe2') . "</label>&nbsp;&nbsp;";
1718
+ echo "<label><input type=\"radio\" name=\"stylesheet\" value=\"no\"";
1719
  if ('no' == $this->subscribe2_options['stylesheet']) {
1720
  echo " checked=\"checked\"";
1721
  }
1722
+ echo " /> " . __('No', 'subscribe2') . "</label><br /><br />\r\n";
1723
 
1724
  echo __('Send Emails for Pages', 'subscribe2') . ': ';
1725
+ echo "<label><input type=\"radio\" name=\"pages\" value=\"yes\"";
1726
  if ('yes' == $this->subscribe2_options['pages']) {
1727
  echo " checked=\"checked\"";
1728
  }
1729
+ echo " /> " . __('Yes', 'subscribe2') . "</label>&nbsp;&nbsp;";
1730
+ echo "<label><input type=\"radio\" name=\"pages\" value=\"no\"";
1731
  if ('no' == $this->subscribe2_options['pages']) {
1732
  echo " checked=\"checked\"";
1733
  }
1734
+ echo " /> " . __('No', 'subscribe2') . "</label><br /><br />\r\n";
1735
  echo __('Send Emails for Password Protected Posts', 'subscribe2') . ': ';
1736
+ echo "<label><input type=\"radio\" name=\"password\" value=\"yes\"";
1737
  if ('yes' == $this->subscribe2_options['password']) {
1738
  echo " checked=\"checked\"";
1739
  }
1740
+ echo " /> " . __('Yes', 'subscribe2') . "</label>&nbsp;&nbsp;";
1741
+ echo "<label><input type=\"radio\" name=\"password\" value=\"no\"";
1742
  if ('no' == $this->subscribe2_options['password']) {
1743
  echo " checked=\"checked\"";
1744
  }
1745
+ echo " /> " . __('No', 'subscribe2') . "</label><br /><br />\r\n";
1746
  echo __('Send Emails for Private Posts', 'subscribe2') . ': ';
1747
+ echo "<label><input type=\"radio\" name=\"private\" value=\"yes\"";
1748
  if ('yes' == $this->subscribe2_options['private']) {
1749
  echo " checked=\"checked\"";
1750
  }
1751
+ echo " /> " . __('Yes', 'subscribe2') . "</label>&nbsp;&nbsp;";
1752
+ echo "<label><input type=\"radio\" name=\"private\" value=\"no\"";
1753
  if ('no' == $this->subscribe2_options['private']) {
1754
  echo " checked=\"checked\"";
1755
  }
1756
+ echo " /> " . __('No', 'subscribe2') . "</label><br /><br />\r\n";
1757
  echo __('Send Email From', 'subscribe2') . ': ';
1758
+ echo "<label><input type=\"radio\" name=\"sender\" value=\"author\"";
1759
  if ('author' == $this->subscribe2_options['sender']) {
1760
  echo " checked=\"checked\" ";
1761
  }
1762
+ echo " /> " . __('Author of the post', 'subscribe2') . "</label>&nbsp;&nbsp;";
1763
+ echo "<label><input type=\"radio\" name=\"sender\" value=\"admin\"";
1764
  if ('admin' == $this->subscribe2_options['sender']) {
1765
  echo " checked=\"checked\" ";
1766
  }
1767
+ echo " /> " . __('Blog Admin', 'subscribe2') . "</label><br /><br />\r\n";
1768
  if (function_exists('wp_schedule_event')) {
1769
+ echo __('Send Emails', 'subscribe2') . ": <br /><br />\r\n";
1770
  $this->display_digest_choices();
1771
  }
1772
  echo "</p>";
1789
  echo "<dt><b>POSTTIME</b></dt><dd>" . __("the excerpt of the post and the time it was posted<br />(<i>for digest emails only</i>)", 'subscribe2') . "</dd>\r\n";
1790
  echo "<dt><b>TABLE</b></dt><dd>" . __("a list of post titles<br />(<i>for digest emails only</i>)", 'subscribe2') . "</dd>\r\n";
1791
  echo "<dt><b>PERMALINK</b></dt><dd>" . __("the post's permalink<br />(<i>for per-post emails only</i>)", 'subscribe2') . "</dd>\r\n";
1792
+ echo "<dt><b>TINYLINK</b></dt><dd>" . __("the post's permalink after conversion by TinyURL<br />(<i>for per-post emails only</i>)", 'subscribe2') . "</dd>\r\n";
1793
  echo "<dt><b>MYNAME</b></dt><dd>" . __("the admin or post author's name", 'subscribe2') . "</dd>\r\n";
1794
  echo "<dt><b>EMAIL</b></dt><dd>" . __("the admin or post author's email", 'subscribe2') . "</dd>\r\n";
1795
  echo "<dt><b>AUTHORNAME</b></dt><dd>" . __("the post author's name", 'subscribe2') . "</dd>\r\n";
1809
  echo "<strong><em style=\"color: red\">" . __('Posts assigned to any Excluded Category do not generate notifications and are not included in digest notifications', 'subscribe2') . "</em></strong><br />\r\n";
1810
  echo"</p>";
1811
  $this->display_category_form(explode(',', $this->subscribe2_options['exclude']));
1812
+ echo "<center><label><input type=\"checkbox\" name=\"reg_override\" value=\"1\"";
1813
  if ('1' == $this->subscribe2_options['reg_override']) {
1814
  echo " checked=\"checked\"";
1815
  }
1816
+ echo " /> " . __('Allow registered users to subscribe to excluded categories?', 'subscribe2') . "</label></center><br />\r\n";
1817
 
1818
  // Appearance options
1819
  echo "<h2>" . __('Appearance', 'subscribe2') . "</h2>\r\n";
1838
  echo "<a href=\"#\" onclick=\"s2_revert('entries'); return false;\">". __('Revert', 'subscribe2') . "</a></span>\n";
1839
 
1840
  // show link to WordPress page in meta
1841
+ echo "<br /><br /><label><input type=\"checkbox\" name=\"show_meta\" value=\"1\"";
1842
  if ('1' == $this->subscribe2_options['show_meta']) {
1843
  echo " checked=\"checked\"";
1844
  }
1845
+ echo " /> " . __('Show a link to your subscription page in "meta"?', 'subscribe2') . "</label><br /><br />\r\n";
1846
 
1847
  // show QuickTag button
1848
+ echo "<label><input type=\"checkbox\" name=\"show_button\" value=\"1\"";
1849
  if ('1' == $this->subscribe2_options['show_button']) {
1850
  echo " checked=\"checked\"";
1851
  }
1852
+ echo " /> " . __('Show the Subscribe2 button on the Write toolbar?', 'subscribe2') . "</label><br /><br />\r\n";
1853
 
1854
  // show Widget
1855
+ echo "<label><input type=\"checkbox\" name=\"widget\" value=\"1\"";
1856
  if ('1' == $this->subscribe2_options['widget']) {
1857
  echo " checked=\"checked\"";
1858
  }
1859
+ echo " /> " . __('Enable Subscribe2 Widget?', 'subscribe2') . "</label><br /><br />\r\n";
1860
  echo"</p>";
1861
 
1862
  //Auto Subscription for new registrations
1863
  echo "<h2>" . __('Auto Subscribe', 'subscribe2') . "</h2>\r\n";
1864
  echo"<p>";
1865
  echo __('Subscribe new users registering with your blog', 'subscribe2') . ":<br />\r\n";
1866
+ echo "<label><input type=\"radio\" name=\"autosub\" value=\"yes\"";
1867
  if ('yes' == $this->subscribe2_options['autosub']) {
1868
  echo " checked=\"checked\"";
1869
  }
1870
+ echo " /> " . __('Automatically', 'subscribe2') . "</label>&nbsp;&nbsp;";
1871
+ echo "<label><input type=\"radio\" name=\"autosub\" value=\"wpreg\"";
1872
  if ('wpreg' == $this->subscribe2_options['autosub']) {
1873
  echo " checked=\"checked\"";
1874
  }
1875
+ echo " /> " . __('Display option on Registration Form', 'subscribe2') . "</label>&nbsp;&nbsp;";
1876
+ echo "<label><input type=\"radio\" name=\"autosub\" value=\"no\"";
1877
  if ('no' == $this->subscribe2_options['autosub']) {
1878
  echo " checked=\"checked\"";
1879
  }
1880
+ echo " /> " . __('No', 'subscribe2') . "</label><br /><br />\r\n";
1881
  echo __('Registration Form option is checked by default', 'subscribe2') . ": &nbsp;&nbsp;";
1882
+ echo "<label><input type=\"radio\" name=\"wpregdef\" value=\"yes\"";
1883
  if ('yes' == $this->subscribe2_options['wpregdef']) {
1884
  echo " checked=\"checked\"";
1885
  }
1886
+ echo " />" . __('Yes', 'subscribe2') . "</label>&nbsp;&nbsp;";
1887
+ echo "<label><input type=\"radio\" name=\"wpregdef\" value=\"no\"";
1888
  if ('no' == $this->subscribe2_options['wpregdef']) {
1889
  echo " checked=\"checked\"";
1890
  }
1891
+ echo " />" . __('No', 'subscribe2') . "</label><br /><br />\r\n";
1892
  echo __('Auto-subscribe users to receive email as', 'subscribe2') . ": <br />\r\n";
1893
+ echo "<label><input type=\"radio\" name=\"autoformat\" value=\"html\"";
1894
  if ('html' == $this->subscribe2_options['autoformat']) {
1895
  echo "checked=\"checked\" ";
1896
  }
1897
+ echo "/> " . __('HTML', 'subscribe2') ."</label>&nbsp;&nbsp;";
1898
+ echo "<label><input type=\"radio\" name=\"autoformat\" value=\"fulltext\" ";
1899
  if ('fulltext' == $this->subscribe2_options['autoformat']) {
1900
  echo "checked=\"checked\" ";
1901
  }
1902
+ echo "/> " . __('Plain Text - Full', 'subscribe2') . "</label>&nbsp;&nbsp;";
1903
+ echo "<label><input type=\"radio\" name=\"autoformat\" value=\"text\" ";
1904
  if ('text' == $this->subscribe2_options['autoformat']) {
1905
  echo "checked=\"checked\" ";
1906
  }
1907
+ echo "/> " . __('Plain Text - Excerpt', 'subscribe2') . "</label><br /><br />";
1908
  echo __('Show Auto Subscribe option on Users page', 'subscribe2') . ": <br />\r\n";
1909
+ echo "<label><input type=\"radio\" name=\"show_autosub\" value=\"yes\"";
1910
  if ('yes' == $this->subscribe2_options['show_autosub']) {
1911
  echo " checked=\"checked\"";
1912
  }
1913
+ echo " />" . __('Yes', 'subscribe2') . "</label>&nbsp;&nbsp;";
1914
+ echo "<label><input type=\"radio\" name=\"show_autosub\" value=\"no\"";
1915
  if ('no' == $this->subscribe2_options['show_autosub']) {
1916
  echo " checked=\"checked\"";
1917
  }
1918
+ echo " />" . __('No', 'subscribe2') . "</label><br /><br />";
1919
  echo __('Auto Subscribe me to new categories is checked by default', 'subscribe2') . ": <br />\r\n";
1920
+ echo "<label><input type=\"radio\" name=\"autosub_def\" value=\"yes\"";
1921
  if ('yes' == $this->subscribe2_options['autosub_def']) {
1922
  echo " checked=\"checked\"";
1923
  }
1924
+ echo " />" . __('Yes', 'subscribe2') . "</label>&nbsp;&nbsp;";
1925
+ echo "<label><input type=\"radio\" name=\"autosub_def\" value=\"no\"";
1926
  if ('no' == $this->subscribe2_options['autosub_def']) {
1927
  echo " checked=\"checked\"";
1928
  }
1929
  echo " />" . __('No', 'subscribe2');
1930
+ echo"</label></p>";
1931
 
1932
  //barred domains
1933
  echo "<h2>" . __('Barred Domains', 'subscribe2') . "</h2>\r\n";
1965
  get_currentuserinfo();
1966
  }
1967
 
1968
+ // Is this WordPressMU or not?
1969
+ if ( (isset($wpmu_version)) || (strpos($wp_version, 'wordpress-mu')) ) {
1970
+ $s2_mu = true;
1971
+ }
1972
+ else {
1973
+ $s2_mu = false;
1974
+ }
1975
+
1976
  // was anything POSTed?
1977
  if ( (isset($_POST['s2_admin'])) && ('user' == $_POST['s2_admin']) ) {
1978
  check_admin_referer('subscribe2-user_subscribers' . $s2nonce);
1979
 
 
 
 
 
 
1980
  echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Subscription preferences updated.', 'subscribe2') . "</strong></p></div>\n";
1981
  $format = 'text';
1982
  $post = 'post';
1990
  update_usermeta($user_ID, 's2_format', $format);
1991
  update_usermeta($user_ID, 's2_autosub', $_POST['new_category']);
1992
 
1993
+ $cats = $_POST['category'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1994
 
1995
  if ( (empty($cats)) || ($cats == '-1') ) {
1996
+ $oldcats = explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')));
1997
  if ($oldcats) {
1998
  foreach ($oldcats as $cat) {
1999
+ delete_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $cat);
2000
  }
2001
  }
2002
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), '-1');
2003
  } elseif ($cats == 'digest') {
2004
  $all_cats = get_categories(array('hide_empty' => false));
2005
  foreach ($all_cats as $cat) {
2006
  ('' == $catids) ? $catids = "$cat->term_id" : $catids .= ",$cat->term_id";
2007
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $cat->term_id, $cat->term_id);
2008
  }
2009
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), $catids);
2010
  } else {
2011
  if (!is_array($cats)) {
2012
  $cats = array($_POST['category']);
2013
  }
2014
+ $old_cats = explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')));
2015
  $remove = array_diff($old_cats, $cats);
2016
  $new = array_diff($cats, $old_cats);
2017
  if (!empty($remove)) {
2018
  // remove subscription to these cat IDs
2019
  foreach ($remove as $id) {
2020
+ delete_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $id);
2021
  }
2022
  }
2023
  if (!empty($new)) {
2024
  // add subscription to these cat IDs
2025
  foreach ($new as $id) {
2026
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_cat') . $id, $id);
2027
  }
2028
  }
2029
+ update_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $cats));
2030
  }
2031
  }
2032
 
2045
  echo "<input type=\"hidden\" name=\"s2_admin\" value=\"user\" />";
2046
  if ($this->subscribe2_options['email_freq'] == 'never') {
2047
  echo __('Receive email as', 'subscribe2') . ": &nbsp;&nbsp;";
2048
+ echo "<label><input type=\"radio\" name=\"s2_format\" value=\"html\"";
2049
  if ('html' == get_usermeta($user_ID, 's2_format')) {
2050
  echo "checked=\"checked\" ";
2051
  }
2052
+ echo "/> " . __('HTML', 'subscribe2') ."</label>&nbsp;&nbsp;";
2053
+ echo "<label><input type=\"radio\" name=\"s2_format\" value=\"text\" ";
2054
  if ('text' == get_usermeta($user_ID, 's2_format')) {
2055
  echo "checked=\"checked\" ";
2056
  }
2057
+ echo "/> " . __('Plain Text', 'subscribe2') . "</label><br /><br />\r\n";
2058
 
2059
  echo __('Email contains', 'subscribe2') . ": &nbsp;&nbsp;";
2060
  $amount = array('excerpt' => __('Excerpt Only', 'subscribe2'), 'post' => __('Full Post', 'subscribe2'));
2061
  foreach ($amount as $key => $value) {
2062
+ echo "<label><input type=\"radio\" name=\"s2_excerpt\" value=\"" . $key . "\"";
2063
  if ($key == get_usermeta($user_ID, 's2_excerpt')) {
2064
  echo " checked=\"checked\"";
2065
  }
2066
+ echo " /> " . $value . "</label>&nbsp;&nbsp;";
2067
  }
2068
  echo "<br /><span style=\"color: red;line-height: 300%;\">" . __('Note: HTML format will always deliver the full post', 'subscribe2') . ".</span><br />\r\n";
2069
  if ($this->subscribe2_options['show_autosub'] == 'yes') {
2070
  echo __('Automatically subscribe me to newly created categories', 'subscribe2') . ': &nbsp;&nbsp;';
2071
+ echo "<label><input type=\"radio\" name=\"new_category\" value=\"yes\" ";
2072
  if ('yes' == get_usermeta($user_ID, 's2_autosub')) {
2073
  echo "checked=\"checked\" ";
2074
  }
2075
+ echo "/> " . __('Yes', 'subscribe2') . "</label>&nbsp;&nbsp;";
2076
+ echo "<label><input type=\"radio\" name=\"new_category\" value=\"no\" ";
2077
  if ('no' == get_usermeta($user_ID, 's2_autosub')) {
2078
  echo "checked=\"checked\" ";
2079
  }
2080
+ echo "/> " . __('No', 'subscribe2') . "</label><br /><br />";
2081
  echo "</p>";
2082
  }
2083
 
2084
  // subscribed categories
2085
+ if ($s2_mu) {
2086
+ global $blog_id;
2087
+ $subscribed = get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'));
2088
+ // if we are subscribed to the current blog display an "unsubscribe" link
2089
+ if (!empty($subscribed) && $subscribed != "-1") {
2090
+ $unsubscribe_link = get_bloginfo('url') . "/wp-admin/?s2mu_unsubscribe=". $blog_id;
2091
+ echo "<p><a href=\"". $unsubscribe_link ."\" class=\"button\">" . __('Unsubscribe me from this blog', 'subscribe2') . "</a></p>";
2092
+ } else {
2093
+ // else we show a "subscribe" link
2094
+ $subscribe_link = get_bloginfo('url') . "/wp-admin/?s2mu_subscribe=". $blog_id;
2095
+ echo "<p><a href=\"". $subscribe_link ."\" class=\"button\">" . __('Subscribe to all categories', 'subscribe2') . "</a></p>";
2096
+ }
2097
+ echo "<h2>" . __('Subscribed Categories on', 'subscribe2') . " " . get_bloginfo('name') . " </h2>\r\n";
2098
+ } else {
2099
+ echo "<h2>" . __('Subscribed Categories', 'subscribe2') . "</h2>\r\n";
2100
+ }
2101
+ $this->display_category_form(explode(',', get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'))), $this->subscribe2_options['reg_override']);
2102
  } else {
2103
  // we're doing daily digests, so just show
2104
  // subscribe / unnsubscribe
2105
+ echo __('Receive periodic summaries of new posts?', 'subscribe2') . ': &nbsp;&nbsp;';
2106
+ echo "<p><label>";
2107
  echo "<input type=\"radio\" name=\"category\" value=\"digest\" ";
2108
+ if (get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')) != '-1') {
2109
  echo "checked=\"yes\" ";
2110
  }
2111
+ echo "/> " . __('Yes', 'subscribe2') . "</label> <label><input type=\"radio\" name=\"category\" value=\"-1\" ";
2112
+ if (get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed')) == '-1') {
2113
  echo "checked=\"yes\" ";
2114
  }
2115
  echo "/> " . __('No', 'subscribe2');
2116
+ echo "</label></p>";
2117
  }
2118
 
 
2119
  // submit
2120
  echo "<p class=\"submit\"><input type=\"submit\" name=\"submit\" value=\"" . __("Update Preferences", 'subscribe2') . " &raquo;\" /></p>";
2121
+ echo "</form>\r\n";
2122
+
2123
+
2124
+ // list of subscribed blogs on wordpress mu
2125
+ if ($s2_mu) {
2126
+ global $blog_id;
2127
+ $blogs = get_blog_list( 0, 'all', false );
2128
+
2129
+ $blogs_subscribed = array();
2130
+ $blogs_notsubscribed = array();
2131
+
2132
+ foreach ($blogs as $key => $blog) {
2133
+ // exclude current blog
2134
+ $is_current_blog = ($blog_id == $blog['blog_id']);
2135
+
2136
+ // switch to blog
2137
+ switch_to_blog($blog['blog_id']);
2138
+
2139
+ // check that the plugin is active on the current blog
2140
+ $current_plugins = get_option('active_plugins');
2141
+ if ( !is_array($current_plugins) || !in_array('subscribe2/subscribe2.php', $current_plugins)) continue;
2142
+
2143
+ // check if we're subscribed to the blog
2144
+ $subscribed = get_usermeta($user_ID, $this->get_usermeta_keyname('s2_subscribed'));
2145
+ $subscribed = !empty($subscribed) && $subscribed != -1;
2146
+
2147
+ $blog['blogname'] = get_bloginfo('name');
2148
+ $blog['blogurl'] = get_bloginfo('url');
2149
+ $blog['subscribe_page'] = get_bloginfo('url') . "/wp-admin/users.php?page=subscribe2/subscribe2.php";
2150
+
2151
+ $key = strtolower($blog['blogname'] . "-" . $blog['blog_id']);
2152
+ if ($subscribed) {
2153
+ $blogs_subscribed[$key] = $blog;
2154
+ } elseif (!$is_current_blog) {
2155
+ $blogs_notsubscribed[$key] = $blog;
2156
+ }
2157
+
2158
+ restore_current_blog();
2159
+ }
2160
+
2161
+ if (!empty($blogs_subscribed)) {
2162
+ ksort(&$blogs_subscribed);
2163
+ $unsubscribe_link = get_bloginfo('url') . "/wp-admin/?s2mu_unsubscribe=";
2164
+ echo '<h2>' . __('Subscribed Blogs', 'subscribe2') . '</h2>'."\r\n";
2165
+
2166
+ echo "<ul class=\"s2_blogs s2_blogs_subscribed\">\r\n";
2167
+ foreach ($blogs_subscribed as $blog) {
2168
+ echo "<li><span class=\"name\"><a href=\"" . $blog['blogurl'] . "\">" . wp_html_excerpt($blog['blogname'], 30) . "</a></span>\r\n";
2169
+ echo "<span class=\"buttons\"><a href=\"" . $unsubscribe_link . $blog['blog_id'] . "\">" . __('Unsubscribe', 'subscribe2') . "</a>\r\n";
2170
+ if ($blog_id != $blog['blog_id']) {
2171
+ echo "<a href=\"". $blog['subscribe_page'] . "\">" . __('View Subscription Settings', 'subscribe2') . "</a>\r\n";
2172
+ }
2173
+ echo "</span>";
2174
+ echo "</li>";
2175
+ }
2176
+ echo "</ul>";
2177
+ }
2178
+
2179
+ if (!empty($blogs_notsubscribed)) {
2180
+ ksort(&$blogs_notsubscribed);
2181
+ $subscribe_link = get_bloginfo('url') . "/wp-admin/?s2mu_subscribe=";
2182
+ echo "<h2>" . __('Subscribe to new blogs', 'subscribe2') . "</h2>\r\n";
2183
+ echo "<ul class=\"s2_blogs s2_blogs_unsubscribed\">";
2184
+ foreach ($blogs_notsubscribed as $blog) {
2185
+ echo "<li><span class=\"name\"><a href=\"" . $blog['blogurl'] . "\">" . wp_html_excerpt($blog['blogname'], 30) . "</a></span>\r\n";
2186
+ echo "<span class=\"buttons\"><a href=\"" . $subscribe_link . $blog['blog_id'] . "\">" . __('Subscribe', 'subscribe2') . "</a></span>\r\n";
2187
+ echo "</li>";
2188
+ }
2189
+ echo "</ul>\r\n";
2190
+ }
2191
+ }
2192
+
2193
+ echo "</div>\r\n";
2194
 
2195
  include(ABSPATH . 'wp-admin/admin-footer.php');
2196
  // just to be sure
2201
  Display the Write sub-menu
2202
  */
2203
  function write_menu() {
2204
+ global $wpdb, $s2nonce, $current_user;
2205
 
2206
  // was anything POSTed?
2207
  if (isset($_POST['s2_admin']) && ('mail' == $_POST['s2_admin']) ) {
2220
  } else {
2221
  $recipients = $this->get_registered();
2222
  }
2223
+ $subject = $this->substitute(stripslashes(strip_tags($_POST['subject'])));
2224
+ $body = $this->substitute(stripslashes($_POST['content']));
2225
+ if (('' != $current_user->display_name) || ('' != $current_user->user_email)) {
2226
+ $this->myname = html_entity_decode($current_user->display_name);
2227
+ $this->myemail = $current_user->user_email;
2228
+ }
2229
  $status = $this->mail($recipients, $subject, $body, 'text');
2230
  if ($status) {
2231
  $message = $this->mail_sent;
2298
  $j++;
2299
  }
2300
  if (0 == $j) {
2301
+ echo "<label><input class=\"cat_checkall\" type=\"checkbox\" name=\"category[]\" value=\"" . $cat->term_id . "\"";
2302
  if (in_array($cat->term_id, $selected)) {
2303
  echo " checked=\"checked\" ";
2304
  }
2305
+ echo " /> " . $cat->name . "</label><br />\r\n";
2306
  } else {
2307
 
2308
+ echo "<label><input class=\"cat_checkall\" type=\"checkbox\" name=\"category[]\" value=\"" . $cat->term_id . "\"";
2309
  if (in_array($cat->term_id, $selected)) {
2310
  echo " checked=\"checked\" ";
2311
  }
2312
+ echo " /> " . $cat->name . "</label><br />\r\n";
2313
  }
2314
  $i++;
2315
  }
2316
  echo "</td></tr>\r\n";
2317
  echo "<tr><td align=\"left\" colspan=\"2\">\r\n";
2318
+ echo "<label><input type=\"checkbox\" name=\"checkall\" value=\"cat_checkall\" /> " . __('Select / Unselect All', 'subscribe2') . "</label>\r\n";
2319
  echo "</td></tr>\r\n";
2320
  echo "</table>\r\n";
2321
  } // end display_category_form()
2354
  if ($s2_mu) {
2355
  $count['registered'] = $wpdb->get_var("SELECT COUNT(meta_key) FROM $wpdb->usermeta WHERE meta_key='" . $wpdb->prefix . "capabilities'");
2356
  } else {
2357
+ $count['registered'] = $wpdb->get_var("SELECT COUNT(meta_key) FROM $wpdb->usermeta WHERE meta_key='{$this->get_usermeta_keyname('s2_subscribed')}'");
2358
  }
2359
  $count['all'] = ($count['confirmed'] + $count['unconfirmed'] + $count['registered']);
2360
  if ($s2_mu) {
2361
  foreach ($all_cats as $cat) {
2362
+ $count[$cat->name] = $wpdb->get_var("SELECT COUNT(a.meta_key) FROM $wpdb->usermeta AS a INNER JOIN $wpdb->usermeta AS b ON a.user_id = b.user_id WHERE a.meta_key='" . $wpdb->prefix . "capabilities' AND b.meta_key=('{$this->get_usermeta_keyname('s2_cat')}$cat->term_id')");
2363
  }
2364
  } else {
2365
  foreach ($all_cats as $cat) {
2366
+ $count[$cat->name] = $wpdb->get_var("SELECT COUNT(meta_value) FROM $wpdb->usermeta WHERE meta_key='{$this->get_usermeta_keyname('s2_cat')}$cat->term_id'");
2367
  }
2368
  }
2369
 
2401
  global $wpdb;
2402
  $scheduled_time = wp_next_scheduled('s2_digest_cron');
2403
  $schedule = (array)wp_get_schedules();
2404
+ $schedule = array_merge(array('never' => array('interval' => 0, 'display' => __('For each Post', 'subscribe2'))), $schedule);
2405
  $sort = array();
2406
  foreach ( (array)$schedule as $key => $value ) $sort[$key] = $value['interval'];
2407
  asort($sort);
2410
  $schedule_sorted[$key] = $schedule[$key];
2411
  }
2412
  foreach ($schedule_sorted as $key => $value) {
2413
+ echo "<label><input type=\"radio\" name=\"email_freq\" value=\"" . $key . "\"";
2414
  if ($key == $this->subscribe2_options['email_freq']) {
2415
  echo " checked=\"checked\" ";
2416
  }
2417
+ echo " /> " . $value['display'] . "</label><br />\r\n";
2418
  }
2419
  echo "<br />" . __('Send Digest Notification at', 'subscribe2') . ": \r\n";
2420
  $hours = array('12am', '1am', '2am', '3am', '4am', '5am', '6am', '7am', '8am', '9am', '10am', '11am', '12pm', '1pm', '2pm', '3pm', '4pm', '5pm', '6pm', '7pm', '8pm', '9pm', '10pm', '11pm');
2442
  }
2443
  } // end display_digest_choices()
2444
 
2445
+ /**
2446
+ Filter for usermeta table key names to adjust them if needed for WPMU blogs
2447
+ */
2448
+ function get_usermeta_keyname($metaname) {
2449
+ global $wpdb, $wp_version, $wpmu_version;
2450
+
2451
+ // Is this WordPressMU or not?
2452
+ if ( (isset($wpmu_version)) || (strpos($wp_version, 'wordpress-mu')) ) {
2453
+ switch($metaname) {
2454
+ case 's2_subscribed':
2455
+ case 's2_cat':
2456
+ return $wpdb->prefix . $metaname;
2457
+ break;
2458
+ }
2459
+ }
2460
+ // Not MU or not a prefixed option name
2461
+ return $metaname;
2462
+ }
2463
+
2464
+ /**
2465
+ Adds a link directly to the settings page from the plugin page
2466
+ */
2467
+ function plugin_action($links, $file) {
2468
+ if ($file == plugin_basename(dirname(__FILE__).'/subscribe2.php')) {
2469
+ $s2link[] = "<a href='options-general.php?page=subscribe2/subscribe2.php'><b>" . __('Settings', 'subscribe2') . "</b></a>";
2470
+ $links = array_merge($s2link, $links);
2471
+ }
2472
+ return $links;
2473
+ } // end plugin_action()
2474
+
2475
  /**
2476
  Adds information to the WordPress registration screen for new users
2477
  */
2503
  }
2504
  }
2505
 
2506
+ /**
2507
+ Create meta box on write pages
2508
+ */
2509
+ function s2_meta_init() {
2510
+ if (function_exists('add_meta_box')) {
2511
+ add_meta_box('subscribe2', __( 'Subscribe2 Notification Override', 'subscribe2' ), array(&$this, 's2_meta_box'), 'post', 'advanced');
2512
+ add_meta_box('subscribe2', __( 'Subscribe2 Notification Override', 'subscribe2' ), array(&$this, 's2_meta_box'), 'page', 'advanced');
2513
+ } else {
2514
+ add_action('dbx_post_advanced', array(&$this, 's2_meta_box_old'));
2515
+ add_action('dbx_page_advanced', array(&$this, 's2_meta_box_old'));
2516
+ }
2517
+ } // end s2_meta_init()
2518
+
2519
+ /**
2520
+ Meta box code for WordPress 2.5+
2521
+ */
2522
+ function s2_meta_box() {
2523
+ global $post_ID;
2524
+ $s2mail = get_post_meta($post_ID, 's2mail', true);
2525
+ echo "<input type=\"hidden\" name=\"s2meta_nonce\" id=\"s2meta_nonce\" value=\"" . wp_create_nonce(md5(plugin_basename(__FILE__))) . "\" />";
2526
+ echo __("Check here to disable sending of an email notification for this post/page", 'subscribe2');
2527
+ echo "&nbsp;&nbsp;<input type=\"checkbox\" name=\"s2_meta_field\" value=\"no\"";
2528
+ if ($s2mail == 'no') {
2529
+ echo " checked=\"checked\"";
2530
+ }
2531
+ echo " />";
2532
+ } // end s2_meta_box()
2533
+
2534
+ /**
2535
+ Meta box code for WordPress pre-2.5
2536
+ */
2537
+ function s2_meta_box_old() {
2538
+ echo "<div class=\"dbx-b-ox-wrapper\">\r\n";
2539
+ echo "<fieldset id=\"s2_meta_box\" class=\"dbx-box\">\r\n";
2540
+ echo "<div class=\"dbx-h-andle-wrapper\"><h3 class=\"dbx-handle\">" . __('Subscribe2 Notification Override', 'subscribe2') . "</h3></div>\r\n";
2541
+ echo "<div class=\"dbx-c-ontent-wrapper\"><div class=\"dbx-content\">\r\n";
2542
+ $this->s2_meta_box();
2543
+ echo "</div></div></fieldset></div>\r\n";
2544
+ } // end s2_meta_box_old()
2545
+
2546
+ /**
2547
+ Meta box form handler
2548
+ */
2549
+ function s2_meta_handler($post_id) {
2550
+ if (!wp_verify_nonce($_POST['s2meta_nonce'], md5(plugin_basename(__FILE__)))) { return $post_id; }
2551
+
2552
+ if ('page' == $_POST['post_type']) {
2553
+ if (!current_user_can('edit_page', $post_id)) { return $post_id; }
2554
+ } else {
2555
+ if (!current_user_can('edit_post', $post_id)) { return $post_id; }
2556
+ }
2557
+
2558
+ if ($_POST['s2_meta_field'] == 'no') {
2559
+ update_post_meta($post_id, 's2mail', $_POST['s2_meta_field']);
2560
+ } else {
2561
+ delete_post_meta($post_id, 's2mail');
2562
+ }
2563
+ } // end s2_meta_box_handler()
2564
+
2565
  /* ===== template and filter functions ===== */
2566
  /**
2567
  Display our form; also handles (un)subscribe requests
2579
  $this->s2form = $this->use_profile_users;
2580
  }
2581
  }
2582
+ if ( (isset($_POST['subscribe'])) || (isset($_POST['unsubscribe'])) ) {
2583
  global $wpdb, $user_email;
2584
  if (!is_email($_POST['email'])) {
2585
  $this->s2form = $this->form . $this->not_an_email;
2595
  } else {
2596
  // this is not a registered email
2597
  // what should we do?
2598
+ if (isset($_POST['subscribe'])) {
2599
  // someone is trying to subscribe
2600
  // lets see if they've tried to subscribe previously
2601
  if ('1' !== $this->is_public($this->email)) {
2614
  $this->s2form = $this->already_subscribed;
2615
  }
2616
  $this->action = 'subscribe';
2617
+ } elseif (isset($_POST['unsubscribe'])) {
2618
  // is this email a subscriber?
2619
  if (false == $this->is_public($this->email)) {
2620
  $this->s2form = $this->form . $this->not_subscribed;
2687
  echo $content;
2688
  echo "</div>";
2689
  echo $after_widget;
2690
+ } // end widget_subscribe2widget()
2691
 
2692
  /**
2693
  Register the optional widget control form
2705
  echo "<p><label for=\"s2w-title\">" . __('Title:');
2706
  echo "<input style=\"width: 250px;\" id=\"s2w-title\" name=\"s2w-title\" type=\"text\" value=\"" . $title . "\" /></label></p>";
2707
  echo "<input type=\"hidden\" id=\"s2w-submit\" name=\"s2w-submit\" value=\"1\" />";
2708
+ } // end widget_subscribe2_widget_control()
2709
 
2710
  /**
2711
  Actually register the Widget into the WordPress Widget API
2718
  register_sidebar_widget('Subscribe2', array(&$this, 'widget_subscribe2widget'));
2719
  register_widget_control('Subscribe2', array(&$this, 'widget_subscribe2widget_control'));
2720
  }
2721
+ } // end register_subscribe2widget()
2722
+
2723
+ function namechange_subscribe2_widget() {
2724
+ // rename WPMU widgets without requiring user to re-enable
2725
+ global $wpdb;
2726
+ $blogs = $wpdb->get_col("SELECT blog_id FROM {$wpdb->blogs}");
2727
+
2728
+ foreach ($blogs as $blog) {
2729
+ switch_to_blog($blog);
2730
+
2731
+ $sidebars = get_option('sidebars_widgets');
2732
+ if ( (empty($sidebars)) || (!is_array($sidebars)) ) { return; }
2733
+ $changed = false;
2734
+ foreach ($sidebars as $s =>$sidebar) {
2735
+ if (empty($sidebar)) { break; }
2736
+ foreach ($sidebar as $w => $widget) {
2737
+ if ($widget == 'subscribe2widget') {
2738
+ $sidebars[$s][$w] = 'subscribe2';
2739
+ $changed = true;
2740
+ }
2741
+ }
2742
+ }
2743
+ if ($changed) {
2744
+ update_option('sidebar_widgets', $sidebars);
2745
+ }
2746
+ }
2747
+ restore_current_blog();
2748
+ } // end namechange_subscribe2_widget()
2749
 
2750
  /**
2751
  Add hook for Minimeta Widget plugin
2754
  if ($this->subscribe2_options['s2page'] != 0) {
2755
  echo "<li><a href=\"" . get_option('siteurl') . "/?page_id=" . $this->subscribe2_options['s2page'] . "\">" . __('[Un]Subscribe to Posts', 'subscribe2') . "</a></li>\r\n";
2756
  }
2757
+ } // end add_minimeta()
 
 
 
 
 
 
 
 
 
 
 
2758
 
2759
  /* ===== Write Toolbar Button Functions ===== */
2760
 
2780
  buttonsnap_separator();
2781
  buttonsnap_jsbutton(WP_CONTENT_URL . '/plugins/subscribe2/include/s2_button.png', __('Subscribe2', 'subscribe2'), 's2_insert_token();');
2782
  }
2783
+ } // end button_init()
2784
 
2785
  /**
2786
  Add buttons for WordPress 2.5+ using built in hooks
2826
  }
2827
 
2828
  /* ===== wp-cron functions ===== */
2829
+ /**
2830
+ Add a weekly event to cron
2831
+ */
2832
+ function add_weekly_sched($sched) {
2833
+ $sched['weekly'] = array('interval' => 604800, 'display' => __('Weekly', 'subscribe2'));
2834
+ return $sched;
2835
+ } // end add_weekly_sched()
2836
+
2837
  /**
2838
  Send a daily digest of today's new posts
2839
  */
2948
  $all_post_cats_string = implode(',', $all_post_cats);
2949
  $registered = $this->get_registered("cats=$all_post_cats_string");
2950
  $recipients = array_merge((array)$public, (array)$registered);
2951
+ $mailtext = apply_filter('s2_email_template', $this->subscribe2_options['mailtext']);
2952
+ $mailtext = stripslashes($this->substitute($mailtext));
2953
  $mailtext = str_replace("TABLE", $table, $mailtext);
2954
  $mailtext = str_replace("POSTTIME", $message_posttime, $mailtext);
2955
  $mailtext = str_replace("POST", $message_post, $mailtext);
2972
  if ('1' == $this->subscribe2_options['widget']) {
2973
  add_action('plugins_loaded', array(&$this, 'register_subscribe2widget'));
2974
  }
2975
+ } // end s2init()
2976
 
2977
  function subscribe2() {
2978
  global $table_prefix;
2979
 
2980
+ load_plugin_textdomain('subscribe2', 'wp-content/plugins/' . dirname(plugin_basename(__FILE__)), dirname(plugin_basename(__FILE__)));
2981
 
2982
  // do we need to install anything?
2983
  $this->public = $table_prefix . "subscribe2";
3029
  // add actions for automatic subscription based on option settings
3030
  add_action('register_form', array(&$this, 'register_form'));
3031
  add_action('user_register', array(&$this, 'register'));
3032
+ add_action('add_user_to_blog', array(&$this, 'register'), 10, 1);
3033
+
3034
+ add_action('admin_init', array(&$this, 'wpmu_subscribe'));
3035
 
3036
  // add actions for processing posts based on per-post or cron email settings
3037
  if ($this->subscribe2_options['email_freq'] != 'never') {
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-01-30 19:23+0000\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"
@@ -72,16 +72,18 @@ msgstr ""
72
  msgid "Your email:"
73
  msgstr ""
74
 
75
- #: subscribe2.php:85 subscribe2.php:1353 subscribe2.php:1454
76
- msgid "Subscribe"
77
  msgstr ""
78
 
79
- #: subscribe2.php:85 subscribe2.php:1354 subscribe2.php:1455
80
- msgid "Unsubscribe"
 
81
  msgstr ""
82
 
83
- #: subscribe2.php:85 subscribe2.php:2092
84
- msgid "Send"
 
85
  msgstr ""
86
 
87
  #: subscribe2.php:88
@@ -128,569 +130,602 @@ msgstr ""
128
  msgid "Subscribe2 Options"
129
  msgstr ""
130
 
131
- #: subscribe2.php:115 subscribe2.php:2426 subscribe2.php:2509
132
  msgid "Subscribe2"
133
  msgstr ""
134
 
135
- #: subscribe2.php:120 subscribe2.php:1607
136
  msgid "Subscriptions"
137
  msgstr ""
138
 
139
- #: subscribe2.php:123
140
  msgid "Mail Subscribers"
141
  msgstr ""
142
 
143
- #: subscribe2.php:151
144
- msgid "Weekly"
145
- msgstr ""
146
-
147
- #: subscribe2.php:160 subscribe2.php:161 subscribe2.php:189
148
- msgid "Subscribe2 Notification Override"
149
- msgstr ""
150
-
151
- #: subscribe2.php:175
152
- msgid ""
153
- "Check here to disable sending of an email notification for this post/page"
154
- msgstr ""
155
-
156
- #: subscribe2.php:791
157
  msgid "New subscription"
158
  msgstr ""
159
 
160
- #: subscribe2.php:792
161
  msgid "subscribed to email notifications!"
162
  msgstr ""
163
 
164
- #: subscribe2.php:804
165
  msgid "New Unsubscription"
166
  msgstr ""
167
 
168
- #: subscribe2.php:805
169
  msgid "unsubscribed from email notifications!"
170
  msgstr ""
171
 
172
- #: subscribe2.php:1180
173
  msgid "Address(es) subscribed!"
174
  msgstr ""
175
 
176
- #: subscribe2.php:1186
 
 
 
 
177
  msgid "Address(es) deleted!"
178
  msgstr ""
179
 
180
- #: subscribe2.php:1192 subscribe2.php:1198
181
  msgid "Status changed!"
182
  msgstr ""
183
 
184
- #: subscribe2.php:1212
185
  msgid "Reminder Email(s) Sent!"
186
  msgstr ""
187
 
188
- #: subscribe2.php:1215
189
  msgid "Registered Users Subscribed!"
190
  msgstr ""
191
 
192
- #: subscribe2.php:1218
193
  msgid "Registered Users Unsubscribed!"
194
  msgstr ""
195
 
196
- #: subscribe2.php:1318
197
  msgid "Previous Page"
198
  msgstr ""
199
 
200
- #: subscribe2.php:1338
201
  msgid "Next Page"
202
  msgstr ""
203
 
204
- #: subscribe2.php:1344
205
  msgid "Manage Subscribers"
206
  msgstr ""
207
 
208
- #: subscribe2.php:1349
209
  msgid "Add/Remove Subscribers"
210
  msgstr ""
211
 
212
- #: subscribe2.php:1350
213
  msgid "Enter addresses, one per line or comma-separated"
214
  msgstr ""
215
 
216
- #: subscribe2.php:1357
217
  msgid "Current Subscribers"
218
  msgstr ""
219
 
220
- #: subscribe2.php:1359
221
  msgid "Filter"
222
  msgstr ""
223
 
224
- #: subscribe2.php:1363
225
- msgid ""
226
- "Registered on the left, confirmed in the middle, unconfirmed on the right"
227
- msgstr ""
228
-
229
- #: subscribe2.php:1367
230
  msgid "Search Subscribers"
231
  msgstr ""
232
 
233
- #: subscribe2.php:1369
234
- msgid "Save Emails to CSV File"
235
  msgstr ""
236
 
237
- #: subscribe2.php:1372
238
- msgid "Send Reminder Email"
239
  msgstr ""
240
 
241
- #: subscribe2.php:1376 subscribe2.php:1443
242
  msgid "Process"
243
  msgstr ""
244
 
245
- #: subscribe2.php:1390 subscribe2.php:1421
246
  msgid "Confirm this email address"
247
  msgstr ""
248
 
249
- #: subscribe2.php:1392 subscribe2.php:1419
250
  msgid "Unconfirm this email address"
251
  msgstr ""
252
 
253
- #: subscribe2.php:1394 subscribe2.php:1426
254
  msgid "Delete this email address"
255
  msgstr ""
256
 
257
- #: subscribe2.php:1395 subscribe2.php:2151
258
  msgid "Select / Unselect All"
259
  msgstr ""
260
 
261
- #: subscribe2.php:1412
262
  msgid "edit"
263
  msgstr ""
264
 
265
- #: subscribe2.php:1434
266
  msgid "No matching subscribers found"
267
  msgstr ""
268
 
269
- #: subscribe2.php:1436
270
  msgid "NONE"
271
  msgstr ""
272
 
273
- #: subscribe2.php:1448
274
  msgid "Categories"
275
  msgstr ""
276
 
277
- #: subscribe2.php:1450
278
  msgid ""
279
  "Existing Registered Users can be automatically (un)subscribed to categories "
280
  "using this section."
281
  msgstr ""
282
 
283
- #: subscribe2.php:1451
284
  msgid "Consider User Privacy as changes cannot be undone"
285
  msgstr ""
286
 
287
- #: subscribe2.php:1453
288
  msgid "Action to perform"
289
  msgstr ""
290
 
291
- #: subscribe2.php:1458 subscribe2.php:1851
292
  msgid "Submit"
293
  msgstr ""
294
 
295
- #: subscribe2.php:1581
296
  msgid "Subscribe2 Settings"
297
  msgstr ""
298
 
299
- #: subscribe2.php:1592 subscribe2.php:1958
300
  msgid "Notification Settings"
301
  msgstr ""
302
 
303
- #: subscribe2.php:1594
304
  msgid "Restrict the number of recipients per email to (0 for unlimited)"
305
  msgstr ""
306
 
307
- #: subscribe2.php:1596 subscribe2.php:1736 subscribe2.php:1745
308
  msgid "Edit"
309
  msgstr ""
310
 
311
- #: subscribe2.php:1599 subscribe2.php:1739 subscribe2.php:1748
312
  msgid "Update"
313
  msgstr ""
314
 
315
- #: subscribe2.php:1600 subscribe2.php:1740 subscribe2.php:1749
316
  msgid "Revert"
317
  msgstr ""
318
 
319
- #: subscribe2.php:1602
320
  msgid "Send Admins notifications for new"
321
  msgstr ""
322
 
323
- #: subscribe2.php:1612
324
  msgid "Unsubscriptions"
325
  msgstr ""
326
 
327
- #: subscribe2.php:1617
328
  msgid "Both"
329
  msgstr ""
330
 
331
- #: subscribe2.php:1622
332
  msgid "Neither"
333
  msgstr ""
334
 
335
- #: subscribe2.php:1624
336
  msgid "Include theme CSS stylesheet in HTML notifications"
337
  msgstr ""
338
 
339
- #: subscribe2.php:1629 subscribe2.php:1641 subscribe2.php:1652
340
- #: subscribe2.php:1663 subscribe2.php:1797 subscribe2.php:1824
341
- #: subscribe2.php:1835 subscribe2.php:1998 subscribe2.php:2019
342
  msgid "Yes"
343
  msgstr ""
344
 
345
- #: subscribe2.php:1634 subscribe2.php:1646 subscribe2.php:1657
346
- #: subscribe2.php:1668 subscribe2.php:1791 subscribe2.php:1802
347
- #: subscribe2.php:1829 subscribe2.php:1840 subscribe2.php:2003
348
- #: subscribe2.php:2023
349
  msgid "No"
350
  msgstr ""
351
 
352
- #: subscribe2.php:1636
353
  msgid "Send Emails for Pages"
354
  msgstr ""
355
 
356
- #: subscribe2.php:1647
357
  msgid "Send Emails for Password Protected Posts"
358
  msgstr ""
359
 
360
- #: subscribe2.php:1658
361
  msgid "Send Emails for Private Posts"
362
  msgstr ""
363
 
364
- #: subscribe2.php:1669
365
  msgid "Send Email From"
366
  msgstr ""
367
 
368
- #: subscribe2.php:1674
369
  msgid "Author of the post"
370
  msgstr ""
371
 
372
- #: subscribe2.php:1679
373
  msgid "Blog Admin"
374
  msgstr ""
375
 
376
- #: subscribe2.php:1681
377
- msgid "Send Email as Digest"
378
  msgstr ""
379
 
380
- #: subscribe2.php:1687
381
  msgid "Email Templates"
382
  msgstr ""
383
 
384
- #: subscribe2.php:1691
385
  msgid "New Post email (must not be empty)"
386
  msgstr ""
387
 
388
- #: subscribe2.php:1695
389
  msgid "Message substitions"
390
  msgstr ""
391
 
392
- #: subscribe2.php:1699
393
  msgid "the post's title<br />(<i>for per-post emails only</i>)"
394
  msgstr ""
395
 
396
- #: subscribe2.php:1700
397
  msgid ""
398
  "the excerpt or the entire post<br />(<i>based on the subscriber's "
399
  "preferences</i>)"
400
  msgstr ""
401
 
402
- #: subscribe2.php:1701
403
  msgid ""
404
  "the excerpt of the post and the time it was posted<br />(<i>for digest "
405
  "emails only</i>)"
406
  msgstr ""
407
 
408
- #: subscribe2.php:1702
409
  msgid "a list of post titles<br />(<i>for digest emails only</i>)"
410
  msgstr ""
411
 
412
- #: subscribe2.php:1703
413
  msgid "the post's permalink<br />(<i>for per-post emails only</i>)"
414
  msgstr ""
415
 
416
- #: subscribe2.php:1704
 
 
 
 
 
 
417
  msgid "the admin or post author's name"
418
  msgstr ""
419
 
420
- #: subscribe2.php:1705
421
  msgid "the admin or post author's email"
422
  msgstr ""
423
 
424
- #: subscribe2.php:1706
425
  msgid "the post author's name"
426
  msgstr ""
427
 
428
- #: subscribe2.php:1707
429
  msgid ""
430
  "the generated link to confirm a request<br />(<i>only used in the "
431
  "confirmation email template</i>)"
432
  msgstr ""
433
 
434
- #: subscribe2.php:1708
435
  msgid ""
436
  "Action performed by LINK in confirmation email<br />(<i>only used in the "
437
  "confirmation email template</i>)"
438
  msgstr ""
439
 
440
- #: subscribe2.php:1710
441
  msgid "Subscribe / Unsubscribe confirmation email"
442
  msgstr ""
443
 
444
- #: subscribe2.php:1713
445
  msgid "Reminder email to Unconfirmed Subscribers"
446
  msgstr ""
447
 
448
- #: subscribe2.php:1718
449
  msgid "Excluded Categories"
450
  msgstr ""
451
 
452
- #: subscribe2.php:1720
453
  msgid ""
454
  "Posts assigned to any Excluded Category do not generate notifications and "
455
  "are not included in digest notifications"
456
  msgstr ""
457
 
458
- #: subscribe2.php:1727
459
  msgid "Allow registered users to subscribe to excluded categories?"
460
  msgstr ""
461
 
462
- #: subscribe2.php:1730
463
  msgid "Appearance"
464
  msgstr ""
465
 
466
- #: subscribe2.php:1734
467
  msgid "Set default Subscribe2 page as ID"
468
  msgstr ""
469
 
470
- #: subscribe2.php:1743
471
  msgid "Set the number of Subscribers displayed per page"
472
  msgstr ""
473
 
474
- #: subscribe2.php:1756
475
  msgid "Show a link to your subscription page in \"meta\"?"
476
  msgstr ""
477
 
478
- #: subscribe2.php:1763
479
  msgid "Show the Subscribe2 button on the Write toolbar?"
480
  msgstr ""
481
 
482
- #: subscribe2.php:1770
483
  msgid "Enable Subscribe2 Widget?"
484
  msgstr ""
485
 
486
- #: subscribe2.php:1774
487
  msgid "Auto Subscribe"
488
  msgstr ""
489
 
490
- #: subscribe2.php:1776
491
  msgid "Subscribe new users registering with your blog"
492
  msgstr ""
493
 
494
- #: subscribe2.php:1781
495
  msgid "Automatically"
496
  msgstr ""
497
 
498
- #: subscribe2.php:1786
499
  msgid "Display option on Registration Form"
500
  msgstr ""
501
 
502
- #: subscribe2.php:1792
503
  msgid "Registration Form option is checked by default"
504
  msgstr ""
505
 
506
- #: subscribe2.php:1803
507
  msgid "Auto-subscribe users to receive email as"
508
  msgstr ""
509
 
510
- #: subscribe2.php:1808 subscribe2.php:1975
511
  msgid "HTML"
512
  msgstr ""
513
 
514
- #: subscribe2.php:1813
515
  msgid "Plain Text - Full"
516
  msgstr ""
517
 
518
- #: subscribe2.php:1818
519
  msgid "Plain Text - Excerpt"
520
  msgstr ""
521
 
522
- #: subscribe2.php:1819
523
  msgid "Show Auto Subscribe option on Users page"
524
  msgstr ""
525
 
526
- #: subscribe2.php:1830
527
  msgid "Auto Subscribe me to new categories is checked by default"
528
  msgstr ""
529
 
530
- #: subscribe2.php:1844
531
  msgid "Barred Domains"
532
  msgstr ""
533
 
534
- #: subscribe2.php:1846
535
  msgid ""
536
  "Enter domains to bar from public subscriptions: <br /> (Use a new line for "
537
  "each entry and omit the \"@\" symbol, for example email.com)"
538
  msgstr ""
539
 
540
- #: subscribe2.php:1854
541
  msgid "Reset Default"
542
  msgstr ""
543
 
544
- #: subscribe2.php:1855
545
  msgid ""
546
  "Use this to reset all options to their defaults. This <strong><em>will not</"
547
  "em></strong> modify your list of subscribers."
548
  msgstr ""
549
 
550
- #: subscribe2.php:1857
551
  msgid "RESET"
552
  msgstr ""
553
 
554
- #: subscribe2.php:1888
555
  msgid "Subscription preferences updated."
556
  msgstr ""
557
 
558
- #: subscribe2.php:1961
559
  msgid "Editing Subscribe2 preferences for user"
560
  msgstr ""
561
 
562
- #: subscribe2.php:1970
563
  msgid "Receive email as"
564
  msgstr ""
565
 
566
- #: subscribe2.php:1980
567
  msgid "Plain Text"
568
  msgstr ""
569
 
570
- #: subscribe2.php:1982
571
  msgid "Email contains"
572
  msgstr ""
573
 
574
- #: subscribe2.php:1983
575
  msgid "Excerpt Only"
576
  msgstr ""
577
 
578
- #: subscribe2.php:1983
579
  msgid "Full Post"
580
  msgstr ""
581
 
582
- #: subscribe2.php:1991
583
  msgid "Note: HTML format will always deliver the full post"
584
  msgstr ""
585
 
586
- #: subscribe2.php:1993
587
  msgid "Automatically subscribe me to newly created categories"
588
  msgstr ""
589
 
590
- #: subscribe2.php:2008
 
 
 
 
 
 
 
 
 
 
 
 
591
  msgid "Subscribed Categories"
592
  msgstr ""
593
 
594
- #: subscribe2.php:2013
595
- msgid "Receive daily summary of new posts?"
596
  msgstr ""
597
 
598
- #: subscribe2.php:2029
599
  msgid "Update Preferences"
600
  msgstr ""
601
 
602
- #: subscribe2.php:2075
 
 
 
 
 
 
 
 
 
 
 
 
603
  msgid "Send an email to subscribers"
604
  msgstr ""
605
 
606
- #: subscribe2.php:2083
607
  msgid "A message from "
608
  msgstr ""
609
 
610
- #: subscribe2.php:2085
611
  msgid "Subject"
612
  msgstr ""
613
 
614
- #: subscribe2.php:2088
615
  msgid "Recipients: "
616
  msgstr ""
617
 
618
- #: subscribe2.php:2169
 
 
 
 
619
  msgid "All Subscribers"
620
  msgstr ""
621
 
622
- #: subscribe2.php:2170
623
  msgid "Public Subscribers"
624
  msgstr ""
625
 
626
- #: subscribe2.php:2171
627
  msgid "Confirmed"
628
  msgstr ""
629
 
630
- #: subscribe2.php:2172
631
  msgid "Unconfirmed"
632
  msgstr ""
633
 
634
- #: subscribe2.php:2173
635
  msgid "Registered Users"
636
  msgstr ""
637
 
638
- #: subscribe2.php:2237
639
- msgid "Per Post Email"
640
  msgstr ""
641
 
642
- #: subscribe2.php:2252
643
  msgid "Send Digest Notification at"
644
  msgstr ""
645
 
646
- #: subscribe2.php:2264
647
  msgid ""
648
  "This option will work for digest notification sent daily or less frequently"
649
  msgstr ""
650
 
651
- #: subscribe2.php:2267
652
  msgid "Current UTC time is"
653
  msgstr ""
654
 
655
- #: subscribe2.php:2269
656
  msgid "Current blog time is"
657
  msgstr ""
658
 
659
- #: subscribe2.php:2271
660
  msgid "Next email notification will be sent when your blog time is after"
661
  msgstr ""
662
 
663
- #: subscribe2.php:2284
 
 
 
 
664
  msgid "Check here to Subscribe to email notifications for new posts"
665
  msgstr ""
666
 
667
- #: subscribe2.php:2293
668
  msgid ""
669
  "By registering with this blog you are also agreeing to receive email "
670
  "notifications for new posts but you can unsubscribe at anytime"
671
  msgstr ""
672
 
673
- #: subscribe2.php:2412
 
 
 
 
 
 
 
 
 
674
  msgid "Subscription Confirmation"
675
  msgstr ""
676
 
677
- #: subscribe2.php:2449
678
  msgid "Title:"
679
  msgstr ""
680
 
681
- #: subscribe2.php:2472
682
  msgid "[Un]Subscribe to Posts"
683
  msgstr ""
684
 
685
- #: subscribe2.php:2481
686
- msgid "Settings"
687
  msgstr ""
688
 
689
- #: subscribe2.php:2621
690
  msgid "Posted on"
691
  msgstr ""
692
 
693
- #: subscribe2.php:2666
694
  msgid "Digest Email"
695
  msgstr ""
696
 
8
  msgstr ""
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
  "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2009-03-19 19:21+0000\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"
72
  msgid "Your email:"
73
  msgstr ""
74
 
75
+ #: subscribe2.php:85
76
+ msgid "Enter email address..."
77
  msgstr ""
78
 
79
+ #: subscribe2.php:85 subscribe2.php:1449 subscribe2.php:1542
80
+ #: subscribe2.php:2186
81
+ msgid "Subscribe"
82
  msgstr ""
83
 
84
+ #: subscribe2.php:85 subscribe2.php:1450 subscribe2.php:1543
85
+ #: subscribe2.php:2169
86
+ msgid "Unsubscribe"
87
  msgstr ""
88
 
89
  #: subscribe2.php:88
130
  msgid "Subscribe2 Options"
131
  msgstr ""
132
 
133
+ #: subscribe2.php:115 subscribe2.php:2682 subscribe2.php:2782
134
  msgid "Subscribe2"
135
  msgstr ""
136
 
137
+ #: subscribe2.php:120 subscribe2.php:1695
138
  msgid "Subscriptions"
139
  msgstr ""
140
 
141
+ #: subscribe2.php:124
142
  msgid "Mail Subscribers"
143
  msgstr ""
144
 
145
+ #: subscribe2.php:789
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  msgid "New subscription"
147
  msgstr ""
148
 
149
+ #: subscribe2.php:790
150
  msgid "subscribed to email notifications!"
151
  msgstr ""
152
 
153
+ #: subscribe2.php:802
154
  msgid "New Unsubscription"
155
  msgstr ""
156
 
157
+ #: subscribe2.php:803
158
  msgid "unsubscribed from email notifications!"
159
  msgstr ""
160
 
161
+ #: subscribe2.php:1281
162
  msgid "Address(es) subscribed!"
163
  msgstr ""
164
 
165
+ #: subscribe2.php:1284
166
+ msgid "Address(es) unsubscribed!"
167
+ msgstr ""
168
+
169
+ #: subscribe2.php:1294
170
  msgid "Address(es) deleted!"
171
  msgstr ""
172
 
173
+ #: subscribe2.php:1300 subscribe2.php:1306
174
  msgid "Status changed!"
175
  msgstr ""
176
 
177
+ #: subscribe2.php:1320
178
  msgid "Reminder Email(s) Sent!"
179
  msgstr ""
180
 
181
+ #: subscribe2.php:1323
182
  msgid "Registered Users Subscribed!"
183
  msgstr ""
184
 
185
+ #: subscribe2.php:1326
186
  msgid "Registered Users Unsubscribed!"
187
  msgstr ""
188
 
189
+ #: subscribe2.php:1414
190
  msgid "Previous Page"
191
  msgstr ""
192
 
193
+ #: subscribe2.php:1434
194
  msgid "Next Page"
195
  msgstr ""
196
 
197
+ #: subscribe2.php:1440
198
  msgid "Manage Subscribers"
199
  msgstr ""
200
 
201
+ #: subscribe2.php:1445
202
  msgid "Add/Remove Subscribers"
203
  msgstr ""
204
 
205
+ #: subscribe2.php:1446
206
  msgid "Enter addresses, one per line or comma-separated"
207
  msgstr ""
208
 
209
+ #: subscribe2.php:1453
210
  msgid "Current Subscribers"
211
  msgstr ""
212
 
213
+ #: subscribe2.php:1455
214
  msgid "Filter"
215
  msgstr ""
216
 
217
+ #: subscribe2.php:1462
 
 
 
 
 
218
  msgid "Search Subscribers"
219
  msgstr ""
220
 
221
+ #: subscribe2.php:1465
222
+ msgid "Send Reminder Email"
223
  msgstr ""
224
 
225
+ #: subscribe2.php:1470
226
+ msgid "Save Emails to CSV File"
227
  msgstr ""
228
 
229
+ #: subscribe2.php:1476 subscribe2.php:1530
230
  msgid "Process"
231
  msgstr ""
232
 
233
+ #: subscribe2.php:1485 subscribe2.php:1507
234
  msgid "Confirm this email address"
235
  msgstr ""
236
 
237
+ #: subscribe2.php:1487 subscribe2.php:1500
238
  msgid "Unconfirm this email address"
239
  msgstr ""
240
 
241
+ #: subscribe2.php:1489 subscribe2.php:1502 subscribe2.php:1510
242
  msgid "Delete this email address"
243
  msgstr ""
244
 
245
+ #: subscribe2.php:1493 subscribe2.php:2318
246
  msgid "Select / Unselect All"
247
  msgstr ""
248
 
249
+ #: subscribe2.php:1517
250
  msgid "edit"
251
  msgstr ""
252
 
253
+ #: subscribe2.php:1524
254
  msgid "No matching subscribers found"
255
  msgstr ""
256
 
257
+ #: subscribe2.php:1526
258
  msgid "NONE"
259
  msgstr ""
260
 
261
+ #: subscribe2.php:1536
262
  msgid "Categories"
263
  msgstr ""
264
 
265
+ #: subscribe2.php:1538
266
  msgid ""
267
  "Existing Registered Users can be automatically (un)subscribed to categories "
268
  "using this section."
269
  msgstr ""
270
 
271
+ #: subscribe2.php:1539
272
  msgid "Consider User Privacy as changes cannot be undone"
273
  msgstr ""
274
 
275
+ #: subscribe2.php:1541
276
  msgid "Action to perform"
277
  msgstr ""
278
 
279
+ #: subscribe2.php:1546 subscribe2.php:1940
280
  msgid "Submit"
281
  msgstr ""
282
 
283
+ #: subscribe2.php:1669
284
  msgid "Subscribe2 Settings"
285
  msgstr ""
286
 
287
+ #: subscribe2.php:1680 subscribe2.php:2035
288
  msgid "Notification Settings"
289
  msgstr ""
290
 
291
+ #: subscribe2.php:1682
292
  msgid "Restrict the number of recipients per email to (0 for unlimited)"
293
  msgstr ""
294
 
295
+ #: subscribe2.php:1684 subscribe2.php:1825 subscribe2.php:1834
296
  msgid "Edit"
297
  msgstr ""
298
 
299
+ #: subscribe2.php:1687 subscribe2.php:1828 subscribe2.php:1837
300
  msgid "Update"
301
  msgstr ""
302
 
303
+ #: subscribe2.php:1688 subscribe2.php:1829 subscribe2.php:1838
304
  msgid "Revert"
305
  msgstr ""
306
 
307
+ #: subscribe2.php:1690
308
  msgid "Send Admins notifications for new"
309
  msgstr ""
310
 
311
+ #: subscribe2.php:1700
312
  msgid "Unsubscriptions"
313
  msgstr ""
314
 
315
+ #: subscribe2.php:1705
316
  msgid "Both"
317
  msgstr ""
318
 
319
+ #: subscribe2.php:1710
320
  msgid "Neither"
321
  msgstr ""
322
 
323
+ #: subscribe2.php:1712
324
  msgid "Include theme CSS stylesheet in HTML notifications"
325
  msgstr ""
326
 
327
+ #: subscribe2.php:1717 subscribe2.php:1729 subscribe2.php:1740
328
+ #: subscribe2.php:1751 subscribe2.php:1886 subscribe2.php:1913
329
+ #: subscribe2.php:1924 subscribe2.php:2075 subscribe2.php:2111
330
  msgid "Yes"
331
  msgstr ""
332
 
333
+ #: subscribe2.php:1722 subscribe2.php:1734 subscribe2.php:1745
334
+ #: subscribe2.php:1756 subscribe2.php:1880 subscribe2.php:1891
335
+ #: subscribe2.php:1918 subscribe2.php:1929 subscribe2.php:2080
336
+ #: subscribe2.php:2115
337
  msgid "No"
338
  msgstr ""
339
 
340
+ #: subscribe2.php:1724
341
  msgid "Send Emails for Pages"
342
  msgstr ""
343
 
344
+ #: subscribe2.php:1735
345
  msgid "Send Emails for Password Protected Posts"
346
  msgstr ""
347
 
348
+ #: subscribe2.php:1746
349
  msgid "Send Emails for Private Posts"
350
  msgstr ""
351
 
352
+ #: subscribe2.php:1757
353
  msgid "Send Email From"
354
  msgstr ""
355
 
356
+ #: subscribe2.php:1762
357
  msgid "Author of the post"
358
  msgstr ""
359
 
360
+ #: subscribe2.php:1767
361
  msgid "Blog Admin"
362
  msgstr ""
363
 
364
+ #: subscribe2.php:1769
365
+ msgid "Send Emails"
366
  msgstr ""
367
 
368
+ #: subscribe2.php:1775
369
  msgid "Email Templates"
370
  msgstr ""
371
 
372
+ #: subscribe2.php:1779
373
  msgid "New Post email (must not be empty)"
374
  msgstr ""
375
 
376
+ #: subscribe2.php:1783
377
  msgid "Message substitions"
378
  msgstr ""
379
 
380
+ #: subscribe2.php:1787
381
  msgid "the post's title<br />(<i>for per-post emails only</i>)"
382
  msgstr ""
383
 
384
+ #: subscribe2.php:1788
385
  msgid ""
386
  "the excerpt or the entire post<br />(<i>based on the subscriber's "
387
  "preferences</i>)"
388
  msgstr ""
389
 
390
+ #: subscribe2.php:1789
391
  msgid ""
392
  "the excerpt of the post and the time it was posted<br />(<i>for digest "
393
  "emails only</i>)"
394
  msgstr ""
395
 
396
+ #: subscribe2.php:1790
397
  msgid "a list of post titles<br />(<i>for digest emails only</i>)"
398
  msgstr ""
399
 
400
+ #: subscribe2.php:1791
401
  msgid "the post's permalink<br />(<i>for per-post emails only</i>)"
402
  msgstr ""
403
 
404
+ #: subscribe2.php:1792
405
+ msgid ""
406
+ "the post's permalink after conversion by TinyURL<br />(<i>for per-post "
407
+ "emails only</i>)"
408
+ msgstr ""
409
+
410
+ #: subscribe2.php:1793
411
  msgid "the admin or post author's name"
412
  msgstr ""
413
 
414
+ #: subscribe2.php:1794
415
  msgid "the admin or post author's email"
416
  msgstr ""
417
 
418
+ #: subscribe2.php:1795
419
  msgid "the post author's name"
420
  msgstr ""
421
 
422
+ #: subscribe2.php:1796
423
  msgid ""
424
  "the generated link to confirm a request<br />(<i>only used in the "
425
  "confirmation email template</i>)"
426
  msgstr ""
427
 
428
+ #: subscribe2.php:1797
429
  msgid ""
430
  "Action performed by LINK in confirmation email<br />(<i>only used in the "
431
  "confirmation email template</i>)"
432
  msgstr ""
433
 
434
+ #: subscribe2.php:1799
435
  msgid "Subscribe / Unsubscribe confirmation email"
436
  msgstr ""
437
 
438
+ #: subscribe2.php:1802
439
  msgid "Reminder email to Unconfirmed Subscribers"
440
  msgstr ""
441
 
442
+ #: subscribe2.php:1807
443
  msgid "Excluded Categories"
444
  msgstr ""
445
 
446
+ #: subscribe2.php:1809
447
  msgid ""
448
  "Posts assigned to any Excluded Category do not generate notifications and "
449
  "are not included in digest notifications"
450
  msgstr ""
451
 
452
+ #: subscribe2.php:1816
453
  msgid "Allow registered users to subscribe to excluded categories?"
454
  msgstr ""
455
 
456
+ #: subscribe2.php:1819
457
  msgid "Appearance"
458
  msgstr ""
459
 
460
+ #: subscribe2.php:1823
461
  msgid "Set default Subscribe2 page as ID"
462
  msgstr ""
463
 
464
+ #: subscribe2.php:1832
465
  msgid "Set the number of Subscribers displayed per page"
466
  msgstr ""
467
 
468
+ #: subscribe2.php:1845
469
  msgid "Show a link to your subscription page in \"meta\"?"
470
  msgstr ""
471
 
472
+ #: subscribe2.php:1852
473
  msgid "Show the Subscribe2 button on the Write toolbar?"
474
  msgstr ""
475
 
476
+ #: subscribe2.php:1859
477
  msgid "Enable Subscribe2 Widget?"
478
  msgstr ""
479
 
480
+ #: subscribe2.php:1863
481
  msgid "Auto Subscribe"
482
  msgstr ""
483
 
484
+ #: subscribe2.php:1865
485
  msgid "Subscribe new users registering with your blog"
486
  msgstr ""
487
 
488
+ #: subscribe2.php:1870
489
  msgid "Automatically"
490
  msgstr ""
491
 
492
+ #: subscribe2.php:1875
493
  msgid "Display option on Registration Form"
494
  msgstr ""
495
 
496
+ #: subscribe2.php:1881
497
  msgid "Registration Form option is checked by default"
498
  msgstr ""
499
 
500
+ #: subscribe2.php:1892
501
  msgid "Auto-subscribe users to receive email as"
502
  msgstr ""
503
 
504
+ #: subscribe2.php:1897 subscribe2.php:2052
505
  msgid "HTML"
506
  msgstr ""
507
 
508
+ #: subscribe2.php:1902
509
  msgid "Plain Text - Full"
510
  msgstr ""
511
 
512
+ #: subscribe2.php:1907
513
  msgid "Plain Text - Excerpt"
514
  msgstr ""
515
 
516
+ #: subscribe2.php:1908
517
  msgid "Show Auto Subscribe option on Users page"
518
  msgstr ""
519
 
520
+ #: subscribe2.php:1919
521
  msgid "Auto Subscribe me to new categories is checked by default"
522
  msgstr ""
523
 
524
+ #: subscribe2.php:1933
525
  msgid "Barred Domains"
526
  msgstr ""
527
 
528
+ #: subscribe2.php:1935
529
  msgid ""
530
  "Enter domains to bar from public subscriptions: <br /> (Use a new line for "
531
  "each entry and omit the \"@\" symbol, for example email.com)"
532
  msgstr ""
533
 
534
+ #: subscribe2.php:1943
535
  msgid "Reset Default"
536
  msgstr ""
537
 
538
+ #: subscribe2.php:1944
539
  msgid ""
540
  "Use this to reset all options to their defaults. This <strong><em>will not</"
541
  "em></strong> modify your list of subscribers."
542
  msgstr ""
543
 
544
+ #: subscribe2.php:1946
545
  msgid "RESET"
546
  msgstr ""
547
 
548
+ #: subscribe2.php:1980
549
  msgid "Subscription preferences updated."
550
  msgstr ""
551
 
552
+ #: subscribe2.php:2038
553
  msgid "Editing Subscribe2 preferences for user"
554
  msgstr ""
555
 
556
+ #: subscribe2.php:2047
557
  msgid "Receive email as"
558
  msgstr ""
559
 
560
+ #: subscribe2.php:2057
561
  msgid "Plain Text"
562
  msgstr ""
563
 
564
+ #: subscribe2.php:2059
565
  msgid "Email contains"
566
  msgstr ""
567
 
568
+ #: subscribe2.php:2060
569
  msgid "Excerpt Only"
570
  msgstr ""
571
 
572
+ #: subscribe2.php:2060
573
  msgid "Full Post"
574
  msgstr ""
575
 
576
+ #: subscribe2.php:2068
577
  msgid "Note: HTML format will always deliver the full post"
578
  msgstr ""
579
 
580
+ #: subscribe2.php:2070
581
  msgid "Automatically subscribe me to newly created categories"
582
  msgstr ""
583
 
584
+ #: subscribe2.php:2091
585
+ msgid "Unsubscribe me from this blog"
586
+ msgstr ""
587
+
588
+ #: subscribe2.php:2095
589
+ msgid "Subscribe to all categories"
590
+ msgstr ""
591
+
592
+ #: subscribe2.php:2097
593
+ msgid "Subscribed Categories on"
594
+ msgstr ""
595
+
596
+ #: subscribe2.php:2099
597
  msgid "Subscribed Categories"
598
  msgstr ""
599
 
600
+ #: subscribe2.php:2105
601
+ msgid "Receive periodic summaries of new posts?"
602
  msgstr ""
603
 
604
+ #: subscribe2.php:2120
605
  msgid "Update Preferences"
606
  msgstr ""
607
 
608
+ #: subscribe2.php:2164
609
+ msgid "Subscribed Blogs"
610
+ msgstr ""
611
+
612
+ #: subscribe2.php:2171
613
+ msgid "View Subscription Settings"
614
+ msgstr ""
615
+
616
+ #: subscribe2.php:2182
617
+ msgid "Subscribe to new blogs"
618
+ msgstr ""
619
+
620
+ #: subscribe2.php:2242
621
  msgid "Send an email to subscribers"
622
  msgstr ""
623
 
624
+ #: subscribe2.php:2250
625
  msgid "A message from "
626
  msgstr ""
627
 
628
+ #: subscribe2.php:2252
629
  msgid "Subject"
630
  msgstr ""
631
 
632
+ #: subscribe2.php:2255
633
  msgid "Recipients: "
634
  msgstr ""
635
 
636
+ #: subscribe2.php:2259
637
+ msgid "Send"
638
+ msgstr ""
639
+
640
+ #: subscribe2.php:2336
641
  msgid "All Subscribers"
642
  msgstr ""
643
 
644
+ #: subscribe2.php:2337
645
  msgid "Public Subscribers"
646
  msgstr ""
647
 
648
+ #: subscribe2.php:2338
649
  msgid "Confirmed"
650
  msgstr ""
651
 
652
+ #: subscribe2.php:2339
653
  msgid "Unconfirmed"
654
  msgstr ""
655
 
656
+ #: subscribe2.php:2340
657
  msgid "Registered Users"
658
  msgstr ""
659
 
660
+ #: subscribe2.php:2404
661
+ msgid "For each Post"
662
  msgstr ""
663
 
664
+ #: subscribe2.php:2419
665
  msgid "Send Digest Notification at"
666
  msgstr ""
667
 
668
+ #: subscribe2.php:2431
669
  msgid ""
670
  "This option will work for digest notification sent daily or less frequently"
671
  msgstr ""
672
 
673
+ #: subscribe2.php:2434
674
  msgid "Current UTC time is"
675
  msgstr ""
676
 
677
+ #: subscribe2.php:2436
678
  msgid "Current blog time is"
679
  msgstr ""
680
 
681
+ #: subscribe2.php:2438
682
  msgid "Next email notification will be sent when your blog time is after"
683
  msgstr ""
684
 
685
+ #: subscribe2.php:2469
686
+ msgid "Settings"
687
+ msgstr ""
688
+
689
+ #: subscribe2.php:2481
690
  msgid "Check here to Subscribe to email notifications for new posts"
691
  msgstr ""
692
 
693
+ #: subscribe2.php:2490
694
  msgid ""
695
  "By registering with this blog you are also agreeing to receive email "
696
  "notifications for new posts but you can unsubscribe at anytime"
697
  msgstr ""
698
 
699
+ #: subscribe2.php:2511 subscribe2.php:2512 subscribe2.php:2540
700
+ msgid "Subscribe2 Notification Override"
701
+ msgstr ""
702
+
703
+ #: subscribe2.php:2526
704
+ msgid ""
705
+ "Check here to disable sending of an email notification for this post/page"
706
+ msgstr ""
707
+
708
+ #: subscribe2.php:2668
709
  msgid "Subscription Confirmation"
710
  msgstr ""
711
 
712
+ #: subscribe2.php:2705
713
  msgid "Title:"
714
  msgstr ""
715
 
716
+ #: subscribe2.php:2756
717
  msgid "[Un]Subscribe to Posts"
718
  msgstr ""
719
 
720
+ #: subscribe2.php:2834
721
+ msgid "Weekly"
722
  msgstr ""
723
 
724
+ #: subscribe2.php:2902
725
  msgid "Posted on"
726
  msgstr ""
727
 
728
+ #: subscribe2.php:2947
729
  msgid "Digest Email"
730
  msgstr ""
731