Subscribe2 - Version 9.1

Version Description

Download this release

Release Info

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

Code changes from version 9.0 to 9.1

ChangeLog.txt CHANGED
@@ -1,3 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  = Version 9.0 by Matthew Robinson =
2
 
3
  * Added capability to send emails with attachments from Send Email page
1
+ = Version 9.1 by Matthew Robinson =
2
+
3
+ * Shortcode parameters are now not case sensitive
4
+ * Fixed AJAX mode to work with new Anti Spam code
5
+ * Suppress undefined variable warnings when sending Digest Email previews
6
+ * Include Signup Date and IP for Public Subscribers in CSV Export - props Taylor4484
7
+ * Fix for Sticky Posts in the digest returning errant posts - thanks to belg4mit
8
+ * Move FAQs to external site to allow more timely updates
9
+ * Add ability to hide other Multisite blogs with CSS in the Subscribe2->Your Subscriptions page (DIV id of 's2_mu_sites') - props cblsysadmin
10
+ * Add 's2_form' filter to allow dynamic alterations to the default form - props adam_jack
11
+ * Conduct more thorough checking for Public and Registered emails when adding users in the admin pages - thanks to MadtownLems
12
+ * Introduce the {REFERENCELINKS} keyword - props manu1033
13
+ * Fix link to jQuery CSS for servers using HTTPS connections - props Christian (aka Alariel)
14
+ * Introduce link to Templates page with unsupported keywords are detected - props MadtownLems
15
+ * Ensure all JavaScript passes the JSHint WordPress Coding Standards
16
+ * Initialise ‘colorpicker’ boxes on page load so they are coloured before first user click
17
+ * Only add a new Weekly schedule if it doesn’t already exist
18
+ * Use trim() on post excerpt to account for blank but non-empty excerpts
19
+ * Don't display screen icons in WordPress 3.8 as they are hidden by CSS - see ticket http://core.trac.wordpress.org/ticket/26119
20
+ * Added 's2_confirm_email' filter to allow amendment or replacement of the subscribe and unsubscribe emails - proposed by Tim Büttner
21
+ * Fixed a typo in the names of the five 's2_send_{email_type}_subscribers' hooks - thanks to robertjj
22
+ * Introduced the 's2_post_statuses' to allow for custom post status transitions, for example with the 'Edit Flow' plugin
23
+ * Fix for failed deletion of Registered Subscribers in Subscribe2->Subscribers page - thanks to Russ Michaels
24
+
25
  = Version 9.0 by Matthew Robinson =
26
 
27
  * Added capability to send emails with attachments from Send Email page
ReadMe.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: MattyRob, Skippy, RavanH, bhadaway
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2387904
4
  Tags: posts, subscription, email, subscribe, notify, notification
5
  Requires at least: 3.3
6
- Tested up to: 3.6.1
7
- Stable tag: 9.0
8
  License: GPL3
9
 
10
  Sends a list of subscribers an email notification when new posts are published to your blog
@@ -51,294 +51,7 @@ This token will automatically be replaced by dynamic subscription information an
51
  8. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7.
52
 
53
  == Frequently Asked Questions ==
54
- = I want HTML email to be the default email type =
55
- You need to pay for the [Subscribe2 HTML version](http://semperplugins.com/plugins/subscribe2-html/).
56
-
57
- = Where can I get help? =
58
- So, you've downloaded the plugin an it isn't doing what you expect. First you should read the included documentation. There is a [ReadMe.txt](http://plugins.svn.wordpress.org/subscribe2/trunk/ReadMe.txt) file and a [legacy PDF startup guide](http://plugins.svn.wordpress.org/subscribe2/tags/6.0/The%20WordPress%20Subscriber%20User%20Guide.pdf) installed with the plugin.
59
-
60
- Next you could search in the [WordPress forums](http://wordpress.org/support/), the old [Subscribe2 Forum](http://getsatisfaction.com/subscribe2/), or the [Subscribe2 blog FAQs](http://subscribe2.wordpress.com/category/faq/).
61
-
62
- If you can't find an answer then post a new topic at the [WordPress forums](http://wordpress.org/support/) or make a [donation](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2387904) to get my attention!
63
-
64
- = Where can I get translation files for Subscribe2, and what do I do with them? =
65
- All of the translation files I have been given are available at [http://plugins.trac.wordpress.org/browser/subscribe2/i18n/](http://plugins.trac.wordpress.org/browser/subscribe2/i18n/).
66
-
67
- You need to download the *.mo file and place it on your server either in a folder called languages/ in the wp-content/plugins/subscribe2/ folder or you can place it in the subscribe2/ folder.
68
-
69
- = What if there isn't a translation file for my language? =
70
- If your language isn't list then you will need to make your own translation by use the *.pot file the is distributed with every release of the code. [This](http://codex.wordpress.org/Translating_WordPress) WordPress Codex page gives more background on how you make translation files.
71
-
72
- = Sending post notifications or email with Subscribe2 =
73
- Subscribe2 sends an email at the very moment the post is published. Since Subscribe2 sends live mail with no un-do, it's important to use the Preview function in WordPress to make sure the post has been edited to perfection *before* moving it from Draft to Published mode.
74
-
75
- Mail is sent when a post is published - it will not be re-sent if you Update the post later. If you need to send a mailing a second time (e.g. during testing), switch the post to Draft mode, then re-publish it.
76
-
77
- You can also manually send emails to groups of your subscribers using the Send Email page that the plugin creates in the WordPress administration area.
78
-
79
- = Where can I find the HTML and CSS templates? =
80
- While the template field in Settings | Subscribe2 does not display HTML by default, feel free to add HTML to it as needed. You can insert references to static images for use as banners, wrap sections of the template in divs or other elements, or do whatever you like.
81
-
82
- There is no need to include HTML header data or body tags - just focus on the HTML content, in conjunction with the template tags documented on the settings page.
83
-
84
- Subscribe2 does not maintain a separate stylesheet for the emails it generates. Instead, it uses the CSS of your currently active WordPress theme. If you need new/custom styles specific to your newsletter that aren't included in your theme stylesheet, try adding elements such as div id="newsletter_sidebar" to your HTML, with corresponding #newsletter_sidebar rules in your stylesheet.
85
-
86
- Note that if you ever change your site theme, you'll need to copy these additions over to the new theme's stylesheet. To avoid this problem, consider placing a custom CSS file on your server outside of your theme directory, and link to it from the template, thus overriding the active theme styles permanently.
87
-
88
- = Some or all email notifications fail to send, why? =
89
- In the first instance **check this with your hosting provider**, they have access to your server logs and will be able to tell you where and why emails are being blocked.
90
-
91
- This is by far the most common question I am asked and the most frequent issue that arises. Without fail it is always down to a server side limitation or restriction.
92
-
93
- These restrictions broadly fall into one of three areas. These are the sender details, the header details and restrictions on the number of messages sent.
94
-
95
- **Sender Details**. You may need to ensure that the email notification is being sent from an email address on the same domain as your blog. So, if your blog is http://www.example.com the email should be something like admin@example.com. To do this go to Subscribe2->Settings and carefully select from the dropdown list where is says "Send Email From". Here you will see "Post Author", then the name of your blog and then the names of your administrator level users. It may be wise to set up a dummy user account specifically to send the emails from and make sure you give that account an on domain email address.
96
-
97
- **Header Details**. Some hosting providers place a restriction on the maximum number of recipients in any one email message. Some hosts simply block all emails on certain low-cost hosting plans.
98
-
99
- Subscribe2 provides a facility to work around a restriction of the maximum number of recipients per email by sending batches of emails. To enable this feature, go to Subscribe2->Settings and locate the setting to restrict the number of recipients per email. If this is set to 30 then each outgoing email notification will only contain addresses for 30 recipients.
100
-
101
- Reminder: Because Subscribe2 places all recipients in BCC fields, and places the blog admin in the TO field, the blog admin will receive one email per batched delivery. So if you have 90 subscribers, the blog admin should receive three post notification emails, one for each set of 30 BCC recipients.
102
-
103
- Batches will occur for each group of message as described above. A site like this with many public and registered subscribers could conceivably generate a lot of email for your own inbox.
104
-
105
- **Restrictions on the number of messages sent**. In order to combat spam many hosts are now implementing time based limitations. This means you are only allowed to send a certain number of messages per unit time, 500 per hour for example. Subscribe2 does not have a work around for this inbuilt but see the next question.
106
-
107
- = My host has a limit of X emails per hour / day, can I limit the way Subscribe2 sends emails? =
108
- This is the second most common question I get asked (the first being about emails not being sent which quote often ends up here anyway!). This is more commonly called 'throttling' or 'choking'. PHP is a scripting language and while it is technically possible to throttle emails using script it is not very efficient. It is much better in terms of speed and server overhead (CPU cycles and RAM) to throttle using a server side application.
109
-
110
- In the first instance you should try to solve the problem by speaking to your hosting provider about changing the restrictions, move to a less restricting hosting package or change hosting providers.
111
-
112
- If the above has not put you off then I spent some time writing a Mail Queue script for Subscribe2 that adds the mails to a database table and sends then in periodic batches. It is available, at a price, [here](http://semperplugins.com/plugins/wordpress-mail-queue-wpmq/).
113
-
114
- = My Digest emails fail to send, why? =
115
- If you have already worked through all of the above email trouble shooting tips, and you are still not seeing your periodic digest emails send there may be an issue with the WordPress pseudo-cron functions on your server.
116
-
117
- The pseudo-cron is WordPress is named after the cron jobs on servers. These are tasks that are run periodically to automate certain functions. In WordPress these tasks include checking for core and plugin updates, publishing scheduled posts and in the case of Subscribe2 sending the digest email. so, if the psuedo-cron is not working the email won't send.
118
-
119
- some reasons why your pseudo-cron may not be working are explained [here](http://wordpress.org/support/topic/296236#post-1175405). You can also try overcoming these by calling the wp-cron.php file directly and there are even [instructions](http://www.satollo.net/how-to-make-the-wordpress-cron-work) about how to set up a server cron job to do this periodically to restore WordPress pseudo-cron to a working state.
120
-
121
- = I'd like to send the Digest email but on a different interval to the ones listed. Is this possible? =
122
- Yes, this is possible, it just requires a little bit of code. Subscribe2 uses the intervals that are currently defined in WordPress (and by any plugins that create additional intervals), so all you need to do is add to the available intervals. Use code like this and simply change the interval time (in seconds) and description.
123
-
124
- `function add_my_new_sched($sched) {
125
- $sched['my_new'] = array('interval' => 2419200, 'display' => 'Four Weekly');
126
- return $sched;
127
- }
128
- add_filter('cron_schedules', 'add_my_new_sched');`
129
-
130
- = I'd like to change the size of the image inserted by the {IMAGE} keyword in the paid version of the code. Is this possible? =
131
- Yes, this is possible, it just requires a little bit of code. Subscribe2 introduced a filter in version 8.6 that allows on-the-fly customisation of the image size. Use the code below in a plugin of your own.
132
-
133
- `function my_s2_image_size() {
134
- // return a pre-defined size like 'thumbnail' or 'full'
135
- // or return a physical size as an array like array(300, 300) or array(150, 150)
136
-
137
- // examples:
138
- return 'thumbnail';
139
- return 'full'
140
- return array(300,300);
141
- }
142
-
143
- add_filter('s2_image_size', 'my_s2_image_size');`
144
-
145
- = When I click on Send Preview in Susbcribe2->Settings I get 4 emails, why =
146
- Subscribe2 supports 4 potential email formats for Susbcribers so you will get a preview for each of the different possibilities.
147
-
148
- = Why do I need to create a WordPress Page =
149
- Subscribe2 uses a filter system to display dynamic output to your readers. The token may result in the display of the subscription form, a subscription message, confirmation that an email has been sent, a prompt to log in. This information needs a static location for the output of the filter and a WordPress page is the ideal place for this to happen.
150
-
151
- If you decide to use Subscribe2 only using the widget you must still have at least one WordPress page on your site for Subscribe2 to work correctly.
152
-
153
- = Why is my admin address getting emails from Subscribe2? =
154
- This plugin sends emails to your subscribers using the BCC (Blind Carbon Copy) header in email messages. Each email is sent TO: the admin address. There may be emails for a plain text excerpt notification, plain text full text and HTML format emails and additionally if the number of recipients per email has been set due to hosting restrictions duplicate copies of these emails will be sent to the admin address.
155
-
156
- = I can't find my subscribers / the options / something else =
157
- Subscribe2 creates four (4) new admin menus in the back end of WordPress. These are all under the top level menu header **Subscribe2**.
158
-
159
- * Your Subscriptions : Allows the currently logged in user to manage their own subscriptions
160
- * Subscribers : Allows you to manually (un)subscribe users by email address, displays lists of currently subscribed users and allows you to bulk subscribe Registered Users
161
- * Settings : Allows administrator level users to control many aspects of the plugins operation. It should be pretty self explanatory from the notes on the screen
162
- * Send Mail : Allows users with Publish capabilities to send emails to your current subscribers
163
-
164
- **Note:** In versions of the plugin prior to version 7.0 the menus are under the WordPress system at Posts -> Mail Subscribers, Tools -> Subscribers, Users -> Subscriptions and Settings -> Subscribe2.
165
-
166
- = I'm confused, what are all the different types of subscriber? =
167
- There are basically only 2 types of subscriber. Public Subscribers and Registered Subscribers.
168
-
169
- Public Subscribers have provided their email address for email notification of your new posts. When they enter there address on your site they are sent an email asking them to confirm their request and added to a list of Unconfirmed Subscribers. Once they complete their request by clicking on the link in their email they will become Confirmed Subscribers. They will receive a limited email notification when new post is made or periodically (unless that post is assigned to one of the excluded categories you defined). These Public Subscribers will receive a plaintext email with an excerpt of the post: either the excerpt you created when making the post, the portion of text before a <!--more--> tag (if present), or the first 50 words or so of the post.
170
-
171
- Registered Users have registered with your WordPress blog (provided you have enabled this in the core WordPress settings). Registered users of the blog can elect to receive email notifications for specific categories (unless Digest email are select, then it is an opt in or out decision). The Subscribe2->Your Subscriptions menu item will also allow them greater control to select the delivery format (plaintext or HTML), amount of message (excerpt or full post), and the categories to which they want to subscribe. You, the blog owner, have the option (Subscribe2->Settings) to allow registered users to subscribe to your excluded categories or not.
172
-
173
- **Note** You can send HTML emails to Public Subscribers with the paid [Subscribe2 HTML version](http://semperplugins.com/plugins/subscribe2-html/) of the plugin.
174
-
175
- = Can I put the form elsewhere? (header, footer, sidebar without the widget) =
176
- The simple answer is yes you can but this is not supported so you need to figure out any problems that are caused by doing this on your own. Read <a href="http://subscribe2.wordpress.com/2006/09/19/sidebar-without-a-widget/">here</a> for the basic approach.
177
-
178
- = I'd like to be able to collect more information from users when they subscribe, can I? =
179
- Get them to register with your blog rather than using the Subscribe2 form. Additional fields would require much more intensive form processing, checking and entry into the database and since you won't then be able to easily use this information to personalise emails there really isn't any point in collecting this data.
180
-
181
- = How do I use the Subscribe2 shortcode? =
182
- In version 6.1 of Subscribe2 the new standard WordPress shortcode [subscribe2] was introduced. By default, it behaves same as old Subscribe2 token, `<--subscribe2-->`, which means that it will show the same Subscribe2 output in your chosen page in WordPress or in the Widget.
183
-
184
- But it also has advanced options, which are related to form. The default form contains two buttons for subscribing and unsubscribing. You may, for example, only want form that handles unsubscribing, so the shortcode accepts a **hide** parameter to hide one of the buttons.
185
-
186
- If you use the shortcode [subscribe2 hide="subscribe"] then the button for subscribing will be hidden and similarly if you use [subscribe2 hide="unsubscribe"], only button for subscribing will be shown.
187
-
188
- The new shortcode also accepts two further attributes, these are **id** and **url**. To understand these parameters you need to understand that Subscribe2 returns a user to the default WordPress Page on your site where you use the shortcode or token however in some circumstances you may want to override this behaviour. If you specify a WordPress page id using the id parameter or a full URL using the url parameter then the user would be returned to the alternative page.
189
-
190
- There are many scenarios in which to use new options, but here is an example:
191
-
192
- * Two separate WordPress pages, "Subscribe" that shows only Subscribe button, and "Unsubscribe", that shows only Unsubscribe button. Both pages also have text that should help users in use of form.
193
- * In the widget, show only Subscribe button and post form content to page "Subscribe"
194
- * In the Subscribe2 email template for new post, add text "You can unsubscribe on a following page:" which is followed with link to "Unsubscribe" page
195
-
196
- = I can't find or insert the Subscribe2 token or shortcode, help! =
197
- If, for some reason the Subscribe2 button does not appear in your browser window try refreshing your browser and cache (Shift and Reload in Firefox). If this still fails then insert the token manually. In the Rich Text Editor (TinyMCE) make sure you switch to the "code" view and type in [subscribe2] or <!--subscribe2-->.
198
-
199
- = My digest email didn't send, how can I resend it? =
200
- If for some reason you wish to resend the last digest email you should find a Resend Digest button on the Subscribe2->Settings page under the Email Settings tab. If the button is not there then you are either in per-post mode or there isn't a previous digest to re-send.
201
-
202
- In per post mode, to resend edit the post you want to re-send and change the status to draft and save, then publish the post again.
203
-
204
- = I would really like Registered users to have the Subscription page themed like my site, is this possible? =
205
- Yes, it is. There is a small extension to Subscribe2 that delivers exactly this functionality. It is available from [Theme Tailors](http://stiofan.themetailors.com/store/products/tt-subscribe2-front-end-plugin/) for just $5.
206
-
207
- = I'd like to change the length of the excerpt included in the email notification. Can I do that? =
208
- Yes, you can. There is a filter in Subscribe2 that allow you to change from the default of approximately 55 words. An example of the filter code you need would look like this:
209
-
210
- `function my_excerpt() {
211
- // return whatever number of words you want the excerpt length to be
212
- return 30;
213
- }
214
- add_filter('s2_excerpt_length', 'my_excerpt');`
215
-
216
- = How do I make use of the support for Custom Post Types =
217
- In a plugin file for your site or perhaps functions.php in your theme add the following code where 'my_post_type' is change to the name of your custom post type.
218
-
219
- `function my_post_types($types) {
220
- $types[] = 'my_post_type';
221
- return $types;
222
- }
223
- add_filter('s2_post_types', 'my_post_types');`
224
-
225
- = How can I make use of the support for Custom Taxonomies =
226
- In a plugin file for your site or perhaps functions.php in your theme add the following code where 'my_
227
- taxonomy_type' is change to the name of your custom taxonomy type.
228
-
229
- `function my_taxonomy_types($taxonomies) {
230
- $taxonomies[] = 'my_taxonomy_type';
231
- return $taxonomies;
232
- }
233
- add_filter('s2_taxonomies', 'my_taxonomy_types');`
234
-
235
- = I want to personalise the message displayed when someone subscribes or unsubscribes, how do I do that? =
236
- There is a filter for both of these in Subscribe2 from version 9.0 and upwards. To use it you need to create a little filter code plugin, an example is below:
237
-
238
- `function subscribe_change($message) {
239
- $message .= "<p>A warm welcome to our blog. We hope you enjoy our emails.</p>";
240
- return $message;
241
- }
242
- add_filter('s2_subscribe_confirmed', 'subscribe_change');
243
-
244
- function unsubscribe_change($message) {
245
- $message .= "<p>We're sorry to see you leave, come back anytime.</p>";
246
- return $message;
247
- }
248
- add_filter('s2_unsubscribe_confirmed', 'unsubscribe_change');`
249
-
250
- = How do I make use of the new option to AJAXify the form? =
251
- The first thing you will need to do is visit the options page and enable the AJAX setting where it says "Enable AJAX style subscription form?", this will load the necessary javascript onto your WordPress site.
252
-
253
- Next you need to decide if you want the link to be on a WordPress page or in your Sidebar with the Widget.
254
-
255
- For a WordPress page you use the normal Subscribe2 token but add a 'link' parameter with the text you'd like your users to click, so something like:
256
-
257
- `[subscribe2 link="Click Here to Subscribe"]`
258
-
259
- For Sidebar users, visit the Widgets page and look in the Subscribe2 Widget, there is a new option at the bottom called "Show as link". If you choose this a link will be placed in your sidebar that displays the form when clicked.
260
-
261
- In either case, if your end users have javascript disabled in their browser the link will sinply take them through to the subscription page you are recommended to create at step 7 of the install instructions.
262
-
263
- The final thing to mention is the styling of the form. The CSS taken from the jQuery-UI libraries and there are several to choose from. I quite link darkness-ui and that is the styling used by default. But what if you want to change this?
264
-
265
- Well, you need to write a little code and provide a link to the Google API or Microsoft CDN hosted CSS theme you prefer. The example below changes the theme from ui-darkness to ui-lightness. More choice are detailed on the [jQuery release blog](http://blog.jqueryui.com/2011/08/jquery-ui-1-8-16/) where the them names are listed and linked to the address you'll need.
266
-
267
- `function custom_ajax_css() {
268
- return "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/ui-lightness/jquery-ui.css";
269
- }
270
- add_filter('s2_jqueryui_css', 'custom_ajax_css');`
271
-
272
- = I want to change the kinds of users who can access the Subscribe2 menus. Is that possible? =
273
- Yes, it is possible with a little bit for code either in a custom plugin or your functions.php file in your theme. You use the add_filter() command that is part of WordPress to change the [capability](http://codex.wordpress.org/Roles_and_Capabilities#Capabilities) that allows access to each of the Subscribe2 menus.
274
-
275
- `function s2_admin_changes( $capability, $menu ) {
276
- // $capability is the core WordPress capability to allow admin page access
277
- // $menu is the title of the page:
278
- // 'user' for access to personal subscription settings
279
- // 'manage' to allow access to the user management screen
280
- // 'settings' to allow access to the plugin settings
281
- // 'send' for access to the Send Email page
282
-
283
- // identify the menu you are changing capability for first
284
- // then return a new capability
285
- if ( $menu == 'send' ) {
286
- return 'read';
287
- }
288
-
289
- return $capability;
290
- }
291
-
292
- add_filter('s2_capability', 's2_admin_changes', 10, 2);`
293
-
294
- = I want to change the Administrator users that get notifications of new subscriptions and unsubscriptions, how do I do that? =
295
- In Subscribe2->Settings you can turn off email notifications to Administrator level users when a Public Subscriber joins or leaves but what if you still want an email but to different people? Subscribe2 has a filter that allows you to add and remove users immediately before sending like this:
296
-
297
- `function my_admin_filter($recipients = array(), $email) {
298
- // $recipients is an array of admin email addresses
299
- // $email will be 'subscribe' or 'unsubscribe'
300
- if ($email == 'subscribe') {
301
- foreach ($recipients as $key => $email) {
302
- if ( $email == 'admin@mysite.com') {
303
- unset($recipients[$key]);
304
- }
305
- }
306
- $recipients[] = 'different.user@mysite.com';
307
- }
308
- return $recipients;
309
- }
310
- add_filter('s2_admin_email', 'my_admin_filter', 10, 2);`
311
-
312
- = I want to change the email subject, how do I do that? =
313
- You can change the email subject with the 's2_email_subject' filter. Something like this:
314
-
315
- `function s2_subject_changes($subject) {
316
- return "This is my preferred email subject";
317
- }
318
-
319
- add_filter('s2_email_subject', 's2_subject_changes');`
320
-
321
- = Can I suggest you add X as a feature =
322
- I'm open to suggestions but since the software is written by me for use on my site and then shared for free because others may find it useful as it comes don't expect your suggestion to be implemented unless I'll find it useful.
323
-
324
- = I'd like to be able to send my subscribers notifications in HTML =
325
- By default Public Subscribers get plain text emails and only Registered Subscribers can opt to receive email in HTML format. If you really want HTML for all you need to pay for the [Subscribe2 HTML version](http://semperplugins.com/plugins/subscribe2-html/).
326
-
327
- = Which version should I be using, I'm on WordPress x.x.x? =
328
- WordPress 3.1 and up requires Subscribe2 from the 7.x or 8.x stable branch. The most recent version is hosted via [Wordpress.org](http://wordpress.org/extend/plugins/subscribe2/).
329
-
330
- WordPress 2.8 and up requires Subscribe2 from the 6.x stable branch. The most recent version is [6.5](http://downloads.wordpress.org/plugin/subscribe2.6.5.zip).
331
-
332
- WordPress 2.3.x through to 2.7.x require Subscribe2 from the 4.x or 5.x stable branch. The most recent version is [5.9](http://downloads.wordpress.org/plugin/subscribe2.5.9.zip).
333
-
334
- WordPress 2.1.x and 2.2.x require Subscribe2 from the 3.x stable branch. The most recent version is [3.8](http://downloads.wordpress.org/plugin/subscribe2.3.8.zip).
335
-
336
- WordPress 2.0.x requires Subscribe2 from the 2.x stable branch. The most recent version is [2.22](http://downloads.wordpress.org/plugin/subscribe2.2.22.zip).
337
-
338
- = Why doesn't the form appear in my WordPress page? =
339
- This is usually caused by one of two things. Firstly, it is possible that the form is there but because you haven't logged out of WordPress yourself you are seeing a message about managing your profile instead. Log out of WordPress and it will appear as the subscription form you are probably expecting.
340
-
341
- Secondly, make sure that the token ([subscribe2] or <!--subscribe2-->) is correctly entered in your page with a blank line above and below. The easiest way to do this is to deactivate the plugin, visit your WordPress page and view the source. The token should be contained in the source code of the page. If it is not there you either have not correctly entered the token or you have another plugin that is stripping the token from the page code.
342
 
343
  == Screenshots ==
344
  1. The Subscribe2->Mail Subscribers admin page generated by the plugin.
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=2387904
4
  Tags: posts, subscription, email, subscribe, notify, notification
5
  Requires at least: 3.3
6
+ Tested up to: 3.8
7
+ Stable tag: 9.1
8
  License: GPL3
9
 
10
  Sends a list of subscribers an email notification when new posts are published to your blog
51
  8. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7.
52
 
53
  == Frequently Asked Questions ==
54
+ [Visit FAQ site](http://subscribe2.wordpress.com/support/faqs/)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
  == Screenshots ==
57
  1. The Subscribe2->Mail Subscribers admin page generated by the plugin.
admin/send_email.php CHANGED
@@ -42,16 +42,18 @@ if ( isset($_POST['s2_admin']) && 'mail' == $_POST['s2_admin'] ) {
42
  }
43
 
44
  $uploads = array();
45
- foreach ($_FILES['file']['name'] as $key => $value) {
46
- if ( $_FILES['file']['error'][$key] === 0 ) {
47
- $file = array(
48
- 'name' => $_FILES['file']['name'][$key],
49
- 'type' => $_FILES['file']['type'][$key],
50
- 'tmp_name' => $_FILES['file']['tmp_name'][$key],
51
- 'error' => $_FILES['file']['error'][$key],
52
- 'size' => $_FILES['file']['size'][$key]
53
- );
54
- $uploads[] = wp_handle_upload($file, array('test_form' => false));
 
 
55
  }
56
  }
57
  $attachments = array();
@@ -91,7 +93,9 @@ if ( isset($_POST['s2_admin']) && 'mail' == $_POST['s2_admin'] ) {
91
 
92
  // show our form
93
  echo "<div class=\"wrap\">";
94
- echo "<div id=\"icon-edit\" class=\"icon32\"></div>";
 
 
95
  echo "<h2>" . __('Send an email to subscribers', 'subscribe2') . "</h2>\r\n";
96
  echo "<form method=\"post\" enctype=\"multipart/form-data\">\r\n";
97
  if ( function_exists('wp_nonce_field') ) {
42
  }
43
 
44
  $uploads = array();
45
+ if ( !empty($_FILES) ) {
46
+ foreach ($_FILES['file']['name'] as $key => $value) {
47
+ if ( $_FILES['file']['error'][$key] === 0 ) {
48
+ $file = array(
49
+ 'name' => $_FILES['file']['name'][$key],
50
+ 'type' => $_FILES['file']['type'][$key],
51
+ 'tmp_name' => $_FILES['file']['tmp_name'][$key],
52
+ 'error' => $_FILES['file']['error'][$key],
53
+ 'size' => $_FILES['file']['size'][$key]
54
+ );
55
+ $uploads[] = wp_handle_upload($file, array('test_form' => false));
56
+ }
57
  }
58
  }
59
  $attachments = array();
93
 
94
  // show our form
95
  echo "<div class=\"wrap\">";
96
+ if ( version_compare($GLOBALS['wp_version'], '3.8', '<=') ) {
97
+ echo "<div id=\"icon-edit\" class=\"icon32\"></div>";
98
+ }
99
  echo "<h2>" . __('Send an email to subscribers', 'subscribe2') . "</h2>\r\n";
100
  echo "<form method=\"post\" enctype=\"multipart/form-data\">\r\n";
101
  if ( function_exists('wp_nonce_field') ) {
admin/settings.php CHANGED
@@ -125,7 +125,7 @@ if ( empty($id) ) {
125
  }
126
 
127
  if ( $this->subscribe2_options['email_freq'] != 'never' ) {
128
- $disallowed_keywords = array('{TITLE}', '{PERMALINK}', '{DATE}', '{TIME}', '{LINK}', '{ACTION}');
129
  } else {
130
  $disallowed_keywords = array('{POSTTIME}', '{TABLE}', '{TABLELINKS}', '{COUNT}', '{LINK}', '{ACTION}');
131
  }
@@ -136,7 +136,9 @@ foreach ( $disallowed_keywords as $disallowed_keyword ) {
136
  }
137
  }
138
  if ( $disallowed !== false ) {
139
- echo "<div id=\"keyword_message\" class=\"error\"><p class=\"s2_error\"><strong>$this->disallowed_keywords</strong><br>" . implode($disallowed, ', ') . "</p></div>";
 
 
140
  }
141
 
142
  // send error message if sender email address is off-domain
@@ -156,7 +158,9 @@ $current_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'email';
156
 
157
  // show our form
158
  echo "<div class=\"wrap\">";
159
- echo "<div id=\"icon-options-general\" class=\"icon32\"></div>";
 
 
160
  $tabs = array('email' => __('Email Settings', 'subscribe2'),
161
  'templates' => __('Templates', 'subscribe2'),
162
  'registered' => __('Registered Users', 'subscribe2'),
@@ -261,7 +265,7 @@ switch ($current_tab) {
261
  echo "<p>\r\n";
262
  echo "<table style=\"width: 100%; border-collapse: separate; border-spacing: 5px; *border-collapse: expression('separate', cellSpacing = '5px');\" class=\"editform\">\r\n";
263
  echo "<tr><td style=\"vertical-align: top; height: 350px; min-height: 350px;\">";
264
- echo __('New Post email (must not be empty)', 'subscribe2') . ":<br />\r\n";
265
  echo __('Subject Line', 'subscribe2') . ": ";
266
  echo "<input type=\"text\" name=\"notification_subject\" value=\"" . stripslashes($this->subscribe2_options['notification_subject']) . "\" size=\"45\" />";
267
  echo "<br />\r\n";
@@ -278,6 +282,7 @@ switch ($current_tab) {
278
  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";
279
  echo "<dt><b>{TABLE}</b></dt><dd>" . __("a list of post titles<br />(<i>for digest emails only</i>)", 'subscribe2') . "</dd>\r\n";
280
  echo "<dt><b>{TABLELINKS}</b></dt><dd>" . __("a list of post titles followed by links to the articles<br />(<i>for digest emails only</i>)", 'subscribe2') . "</dd>\r\n";
 
281
  echo "<dt><b>{PERMALINK}</b></dt><dd>" . __("the post's permalink<br />(<i>for per-post emails only</i>)", 'subscribe2') . "</dd>\r\n";
282
  echo "<dt><b>{TINYLINK}</b></dt><dd>" . __("the post's permalink after conversion by TinyURL", 'subscribe2') . "</dd>\r\n";
283
  echo "<dt><b>{DATE}</b></dt><dd>" . __("the date the post was made<br />(<i>for per-post emails only</i>)", "subscribe2") . "</dd>\r\n";
@@ -410,6 +415,7 @@ switch ($current_tab) {
410
  // WordPress page ID where subscribe2 token is used
411
  echo __('Set default Subscribe2 page as', 'subscribe2') . ': ';
412
  echo "<select name=\"s2page\">\r\n";
 
413
  $this->pages_dropdown($this->subscribe2_options['s2page']);
414
  echo "</select>\r\n";
415
 
125
  }
126
 
127
  if ( $this->subscribe2_options['email_freq'] != 'never' ) {
128
+ $disallowed_keywords = array('{TITLE}', '{PERMALINK}', '{DATE}', '{TIME}', '{LINK}', '{ACTION}', '{REFERENCELINKS}');
129
  } else {
130
  $disallowed_keywords = array('{POSTTIME}', '{TABLE}', '{TABLELINKS}', '{COUNT}', '{LINK}', '{ACTION}');
131
  }
136
  }
137
  }
138
  if ( $disallowed !== false ) {
139
+ $disallowed_keywords = __('Your chosen email type (per-post or digest) does not support the following keywords:', 'subscribe2');
140
+ $template_link = "<a href = \"" . admin_url('admin.php?page=s2_settings&tab=templates') . "\">" . __('Modify your template', 'subscribe2') . "</a>";
141
+ echo "<div id=\"keyword_message\" class=\"error\"><p class=\"s2_error\"><strong>$disallowed_keywords</strong><br />" . implode($disallowed, ', ') . "<br />" . $template_link . "</p></div>";
142
  }
143
 
144
  // send error message if sender email address is off-domain
158
 
159
  // show our form
160
  echo "<div class=\"wrap\">";
161
+ if ( version_compare($GLOBALS['wp_version'], '3.8', '<=') ) {
162
+ echo "<div id=\"icon-options-general\" class=\"icon32\"></div>";
163
+ }
164
  $tabs = array('email' => __('Email Settings', 'subscribe2'),
165
  'templates' => __('Templates', 'subscribe2'),
166
  'registered' => __('Registered Users', 'subscribe2'),
265
  echo "<p>\r\n";
266
  echo "<table style=\"width: 100%; border-collapse: separate; border-spacing: 5px; *border-collapse: expression('separate', cellSpacing = '5px');\" class=\"editform\">\r\n";
267
  echo "<tr><td style=\"vertical-align: top; height: 350px; min-height: 350px;\">";
268
+ echo __('Notification email (must not be empty)', 'subscribe2') . ":<br />\r\n";
269
  echo __('Subject Line', 'subscribe2') . ": ";
270
  echo "<input type=\"text\" name=\"notification_subject\" value=\"" . stripslashes($this->subscribe2_options['notification_subject']) . "\" size=\"45\" />";
271
  echo "<br />\r\n";
282
  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";
283
  echo "<dt><b>{TABLE}</b></dt><dd>" . __("a list of post titles<br />(<i>for digest emails only</i>)", 'subscribe2') . "</dd>\r\n";
284
  echo "<dt><b>{TABLELINKS}</b></dt><dd>" . __("a list of post titles followed by links to the articles<br />(<i>for digest emails only</i>)", 'subscribe2') . "</dd>\r\n";
285
+ echo "<dt><b>{REFERENCELINKS}</b></dt><dd>" . __("a reference style list of links at the end of the email with corresponding numbers in the content<br />(<i>for the full content plain text per-post email only</i>)", 'subscribe2') . "</dd>\r\n";
286
  echo "<dt><b>{PERMALINK}</b></dt><dd>" . __("the post's permalink<br />(<i>for per-post emails only</i>)", 'subscribe2') . "</dd>\r\n";
287
  echo "<dt><b>{TINYLINK}</b></dt><dd>" . __("the post's permalink after conversion by TinyURL", 'subscribe2') . "</dd>\r\n";
288
  echo "<dt><b>{DATE}</b></dt><dd>" . __("the date the post was made<br />(<i>for per-post emails only</i>)", "subscribe2") . "</dd>\r\n";
415
  // WordPress page ID where subscribe2 token is used
416
  echo __('Set default Subscribe2 page as', 'subscribe2') . ': ';
417
  echo "<select name=\"s2page\">\r\n";
418
+ echo "<option value=\"0\">" . __('Select a page', 'subscribe2') . "</option>\r\n";
419
  $this->pages_dropdown($this->subscribe2_options['s2page']);
420
  echo "</select>\r\n";
421
 
admin/subscribers.php CHANGED
@@ -12,19 +12,25 @@ $current_tab = isset( $_GET['tab'] ) ? esc_attr($_GET['tab']) : 'public';
12
  if ( isset($_POST['s2_admin']) ) {
13
  check_admin_referer('bulk-subscribers');
14
  if ( !empty($_POST['addresses']) ) {
15
- $sub_error = '';
 
16
  $unsub_error = '';
 
17
  foreach ( preg_split("|[\s,]+|", $_POST['addresses']) as $email ) {
18
  $email = $this->sanitize_email($email);
19
- if ( is_email($email) && $_POST['subscribe'] ) {
20
  if ( $this->is_public($email) !== false ) {
21
- ('' == $sub_error) ? $sub_error = "$email" : $sub_error .= ", $email";
 
 
 
 
22
  continue;
23
  }
24
  $this->add($email, true);
25
  $message = "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Address(es) subscribed!', 'subscribe2') . "</strong></p></div>";
26
- } elseif ( is_email($email) && $_POST['unsubscribe'] ) {
27
- if ( $this->is_public($email) === false ) {
28
  ('' == $unsub_error) ? $unsub_error = "$email" : $unsub_error .= ", $email";
29
  continue;
30
  }
@@ -32,13 +38,18 @@ if ( isset($_POST['s2_admin']) ) {
32
  $message = "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Address(es) unsubscribed!', 'subscribe2') . "</strong></p></div>";
33
  }
34
  }
35
- if ( $sub_error != '' ) {
36
- echo "<div id=\"message\" class=\"error\"><p><strong>" . __('Some emails were not processed, the following were already subscribed' , 'subscribe2') . ":<br />$sub_error</strong></p></div>";
 
 
 
37
  }
38
  if ( $unsub_error != '' ) {
39
  echo "<div id=\"message\" class=\"error\"><p><strong>" . __('Some emails were not processed, the following were not in the database' , 'subscribe2') . ":<br />$unsub_error</strong></p></div>";
40
  }
41
- echo $message;
 
 
42
  $_POST['what'] = 'confirmed';
43
  } elseif ( (isset($_POST['action']) && $_POST['action'] === 'delete') || (isset($_POST['action2']) && $_POST['action2'] === 'delete') ) {
44
  if ( $current_tab === 'public' ) {
@@ -57,7 +68,7 @@ if ( isset($_POST['s2_admin']) ) {
57
  continue;
58
  } else {
59
  $users_deleted = __('User(s) deleted! Any posts made by these users were assigned to you', 'subscribe2');
60
- //wp_delete_user($user->$id, $current_user->ID);
61
  }
62
  }
63
  echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . $users_deleted_error . $users_deleted . "</strong></p></div>";
@@ -169,7 +180,9 @@ $S2ListTable->prepare_items();
169
 
170
  // show our form
171
  echo "<div class=\"wrap\">";
172
- echo "<div id=\"icon-tools\" class=\"icon32\"></div>";
 
 
173
  $tabs = array('public' => __('Public Subscribers', 'subscribe2'), 'registered' => __('Registered Subscribers', 'subscribe2'));
174
  echo "<h2 class=\"nav-tab-wrapper\">";
175
  foreach ( $tabs as $tab_key => $tab_caption ) {
12
  if ( isset($_POST['s2_admin']) ) {
13
  check_admin_referer('bulk-subscribers');
14
  if ( !empty($_POST['addresses']) ) {
15
+ $reg_sub_error = '';
16
+ $pub_sub_error = '';
17
  $unsub_error = '';
18
+ $message = '';
19
  foreach ( preg_split("|[\s,]+|", $_POST['addresses']) as $email ) {
20
  $email = $this->sanitize_email($email);
21
+ if ( is_email($email) && isset($_POST['subscribe']) ) {
22
  if ( $this->is_public($email) !== false ) {
23
+ ('' == $pub_sub_error) ? $pub_sub_error = "$email" : $pub_sub_error .= ", $email";
24
+ continue;
25
+ }
26
+ if ( $this->is_registered($email) ) {
27
+ ('' == $reg_sub_error) ? $reg_sub_error = "$email" : $reg_sub_error .= ", $email";
28
  continue;
29
  }
30
  $this->add($email, true);
31
  $message = "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Address(es) subscribed!', 'subscribe2') . "</strong></p></div>";
32
+ } elseif ( is_email($email) && isset($_POST['unsubscribe']) ) {
33
+ if ( $this->is_public($email) === false || $this->is_registered($email) ) {
34
  ('' == $unsub_error) ? $unsub_error = "$email" : $unsub_error .= ", $email";
35
  continue;
36
  }
38
  $message = "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Address(es) unsubscribed!', 'subscribe2') . "</strong></p></div>";
39
  }
40
  }
41
+ if ( $reg_sub_error != '' ) {
42
+ echo "<div id=\"message\" class=\"error\"><p><strong>" . __('Some emails were not processed, the following are already Registered Subscribers' , 'subscribe2') . ":<br />$reg_sub_error</strong></p></div>";
43
+ }
44
+ if ( $pub_sub_error != '' ) {
45
+ echo "<div id=\"message\" class=\"error\"><p><strong>" . __('Some emails were not processed, the following are already Public Subscribers' , 'subscribe2') . ":<br />$pub_sub_error</strong></p></div>";
46
  }
47
  if ( $unsub_error != '' ) {
48
  echo "<div id=\"message\" class=\"error\"><p><strong>" . __('Some emails were not processed, the following were not in the database' , 'subscribe2') . ":<br />$unsub_error</strong></p></div>";
49
  }
50
+ if ( $message != '' ) {
51
+ echo $message;
52
+ }
53
  $_POST['what'] = 'confirmed';
54
  } elseif ( (isset($_POST['action']) && $_POST['action'] === 'delete') || (isset($_POST['action2']) && $_POST['action2'] === 'delete') ) {
55
  if ( $current_tab === 'public' ) {
68
  continue;
69
  } else {
70
  $users_deleted = __('User(s) deleted! Any posts made by these users were assigned to you', 'subscribe2');
71
+ wp_delete_user($user->$id, $current_user->ID);
72
  }
73
  }
74
  echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . $users_deleted_error . $users_deleted . "</strong></p></div>";
180
 
181
  // show our form
182
  echo "<div class=\"wrap\">";
183
+ if ( version_compare($GLOBALS['wp_version'], '3.8', '<=') ) {
184
+ echo "<div id=\"icon-tools\" class=\"icon32\"></div>";
185
+ }
186
  $tabs = array('public' => __('Public Subscribers', 'subscribe2'), 'registered' => __('Registered Subscribers', 'subscribe2'));
187
  echo "<h2 class=\"nav-tab-wrapper\">";
188
  foreach ( $tabs as $tab_key => $tab_caption ) {
admin/your_subscriptions.php CHANGED
@@ -92,7 +92,9 @@ if ( isset($_POST['s2_admin']) && 'user' == $_POST['s2_admin'] ) {
92
 
93
  // show our form
94
  echo "<div class=\"wrap\">";
95
- echo "<div id=\"icon-users\" class=\"icon32\"></div>";
 
 
96
  echo "<h2>" . __('Notification Settings', 'subscribe2') . "</h2>\r\n";
97
  if ( isset($_GET['email']) ) {
98
  $user = get_userdata($user_ID);
@@ -223,6 +225,7 @@ if ( $this->s2_mu && !isset($_GET['email']) ) {
223
  restore_current_blog();
224
  }
225
 
 
226
  if ( !empty($blogs_subscribed) ) {
227
  ksort($blogs_subscribed);
228
  echo "<h2>" . __('Subscribed Blogs', 'subscribe2') . "</h2>\r\n";
@@ -264,6 +267,7 @@ if ( $this->s2_mu && !isset($_GET['email']) ) {
264
  }
265
  echo "</ul>\r\n";
266
  }
 
267
  }
268
 
269
  echo "</div>\r\n";
92
 
93
  // show our form
94
  echo "<div class=\"wrap\">";
95
+ if ( version_compare($GLOBALS['wp_version'], '3.8', '<=') ) {
96
+ echo "<div id=\"icon-users\" class=\"icon32\"></div>";
97
+ }
98
  echo "<h2>" . __('Notification Settings', 'subscribe2') . "</h2>\r\n";
99
  if ( isset($_GET['email']) ) {
100
  $user = get_userdata($user_ID);
225
  restore_current_blog();
226
  }
227
 
228
+ echo "<div class=\"s2_admin\" id=\"s2_mu_sites\">\r\n";
229
  if ( !empty($blogs_subscribed) ) {
230
  ksort($blogs_subscribed);
231
  echo "<h2>" . __('Subscribed Blogs', 'subscribe2') . "</h2>\r\n";
267
  }
268
  echo "</ul>\r\n";
269
  }
270
+ echo "</div>\r\n";
271
  }
272
 
273
  echo "</div>\r\n";
classes/class-s2-admin.php CHANGED
@@ -234,7 +234,7 @@ class s2_admin extends s2class {
234
  if ( stripos($_SERVER['REQUEST_URI'], 'widgets.php' ) !== false ) {
235
  wp_enqueue_style('farbtastic');
236
  wp_enqueue_script('farbtastic');
237
- wp_register_script('s2_colorpicker', S2URL . 'include/s2_colorpicker' . $this->script_debug . '.js', array('farbtastic'), '1.1'); //my js
238
  wp_enqueue_script('s2_colorpicker');
239
  }
240
  } // end widget_s2_counter_css_and_js()
@@ -319,6 +319,54 @@ class s2_admin extends s2class {
319
  }
320
  } // end signup_ip()
321
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
322
  /**
323
  Display a table of categories with checkboxes
324
  Optionally pre-select those categories specified
@@ -673,7 +721,6 @@ class s2_admin extends s2class {
673
  $pages = get_pages();
674
  if ( empty($pages) ) { return; }
675
 
676
- $option = "<option value=\"0\">" . __('Select a page', 'subscribe2') . "</option>\r\n";
677
  foreach ( $pages as $page ) {
678
  $option .= "<option value=\"" . $page->ID . "\"";
679
  if ( $page->ID == $s2page ) {
234
  if ( stripos($_SERVER['REQUEST_URI'], 'widgets.php' ) !== false ) {
235
  wp_enqueue_style('farbtastic');
236
  wp_enqueue_script('farbtastic');
237
+ wp_register_script('s2_colorpicker', S2URL . 'include/s2_colorpicker' . $this->script_debug . '.js', array('farbtastic'), '1.2');
238
  wp_enqueue_script('s2_colorpicker');
239
  }
240
  } // end widget_s2_counter_css_and_js()
319
  }
320
  } // end signup_ip()
321
 
322
+ /**
323
+ Export subscriber emails and other details to CSV
324
+ */
325
+ function prepare_export( $subscribers ) {
326
+ if ( empty($subscribers) ) { return; }
327
+ $subscribers = explode(",\r\n", $subscribers);
328
+ natcasesort($subscribers);
329
+
330
+ $exportcsv = _x('User Email,User Type,User Name,Confirm Date,IP', 'Comma Separated Column Header names for CSV Export' , 'subscribe2');
331
+ $all_cats = $this->all_cats(false, 'ID');
332
+
333
+ foreach ($all_cats as $cat) {
334
+ $exportcsv .= "," . html_entity_decode($cat->cat_name, ENT_QUOTES);
335
+ $cat_ids[] = $cat->term_id;
336
+ }
337
+ $exportcsv .= "\r\n";
338
+
339
+ if ( !function_exists('get_userdata') ) {
340
+ require_once(ABSPATH . WPINC . '/pluggable.php');
341
+ }
342
+
343
+ foreach ( $subscribers as $subscriber ) {
344
+ if ( $this->is_registered($subscriber) ) {
345
+ $user_ID = $this->get_user_id( $subscriber );
346
+ $user_info = get_userdata( $user_ID );
347
+
348
+ $cats = explode(',', get_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), true));
349
+ $subscribed_cats = '';
350
+ foreach ( $cat_ids as $cat ) {
351
+ (in_array($cat, $cats)) ? $subscribed_cats .= ",Yes" : $subscribed_cats .= ",No";
352
+ }
353
+
354
+ $exportcsv .= $subscriber . ',';
355
+ $exportcsv .= __('Registered User', 'subscribe2');
356
+ $exportcsv .= ',' . $user_info->display_name;
357
+ $exportcsv .= ',,' . $subscribed_cats . "\r\n";
358
+ } else {
359
+ if ( $this->is_public($subscriber) === '1' ) {
360
+ $exportcsv .= $subscriber . ',' . __('Confirmed Public Subscriber', 'subscribe2') . ',,' . $this->signup_date($subscriber) . ',' . $this->signup_ip($subscriber) . "\r\n";
361
+ } elseif ( $this->is_public($subscriber) === '0' ) {
362
+ $exportcsv .= $subscriber . ',' . __('Unconfirmed Public Subscriber', 'subscribe2') . ',,' . $this->signup_date($subscriber) . ',' . $this->signup_ip($subscriber) . "\r\n";
363
+ }
364
+ }
365
+ }
366
+
367
+ return $exportcsv;
368
+ } // end prepare_export()
369
+
370
  /**
371
  Display a table of categories with checkboxes
372
  Optionally pre-select those categories specified
721
  $pages = get_pages();
722
  if ( empty($pages) ) { return; }
723
 
 
724
  foreach ( $pages as $page ) {
725
  $option .= "<option value=\"" . $page->ID . "\"";
726
  if ( $page->ID == $s2page ) {
classes/class-s2-core.php CHANGED
@@ -41,9 +41,7 @@ class s2class {
41
 
42
  $this->error = "<p class=\"s2_error\">" . __('Sorry, there seems to be an error on the server. Please try again later.', 'subscribe2') . "</p>";
43
 
44
- $this->no_page = __('You must to create a WordPress page for this plugin to work correctly.', 'subscribe2');
45
-
46
- $this->disallowed_keywords = __('Your chosen email type (per-post or digest) does not support the following keywords:', 'subscribe2');
47
 
48
  $this->mail_sent = "<p class=\"s2_message\">" . __('Message sent!', 'subscribe2') . "</p>";
49
 
@@ -536,13 +534,33 @@ class s2class {
536
  $mailtext = stripslashes($this->substitute($mailtext));
537
 
538
  $plaintext = $post->post_content;
539
- if ( function_exists('strip_shortcodes') ) {
540
- $plaintext = strip_shortcodes($plaintext);
541
- }
542
  $plaintext = preg_replace('|<s[^>]*>(.*)<\/s>|Ui','', $plaintext);
543
  $plaintext = preg_replace('|<strike[^>]*>(.*)<\/strike>|Ui','', $plaintext);
544
  $plaintext = preg_replace('|<del[^>]*>(.*)<\/del>|Ui','', $plaintext);
545
- $plaintext = trim(strip_tags($plaintext));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
546
 
547
  $gallid = '[gallery id="' . $post->ID . '"';
548
  $content = str_replace('[gallery', $gallid, $post->post_content);
@@ -559,17 +577,16 @@ class s2class {
559
  $content = apply_filters('the_content', $content);
560
  $content = str_replace("]]>", "]]&gt", $content);
561
 
562
- $excerpt = $post->post_excerpt;
563
  if ( '' == $excerpt ) {
564
  // no excerpt, is there a <!--more--> ?
565
- if ( false !== strpos($plaintext, '<!--more-->') ) {
566
- list($excerpt, $more) = explode('<!--more-->', $plaintext, 2);
567
- // strip leading and trailing whitespace
568
- $excerpt = strip_tags($excerpt);
569
- $excerpt = trim($excerpt);
570
  } else {
571
  // no <!--more-->, so grab the first 55 words
572
- $excerpt = strip_tags($plaintext);
573
  $words = explode(' ', $excerpt, $this->excerpt_length + 1);
574
  if (count($words) > $this->excerpt_length) {
575
  array_pop($words);
@@ -578,7 +595,7 @@ class s2class {
578
  }
579
  }
580
  }
581
- $html_excerpt = $post->post_excerpt;
582
  if ( '' == $html_excerpt ) {
583
  // no excerpt, is there a <!--more--> ?
584
  if ( false !== strpos($content, '<!--more-->') ) {
@@ -626,26 +643,26 @@ class s2class {
626
  // Registered Subscribers first
627
  // first we send plaintext summary emails
628
  $recipients = $this->get_registered("cats=$post_cats_string&format=excerpt&author=$post->post_author");
629
- $recipients = apply_filters('s2_send_plain_excerpt_suscribers', $recipients, $post->ID);
630
  $this->mail($recipients, $subject, $plain_excerpt_body);
631
 
632
  // next we send plaintext full content emails
633
  $recipients = $this->get_registered("cats=$post_cats_string&format=post&author=$post->post_author");
634
- $recipients = apply_filters('s2_send_plain_fullcontent_suscribers', $recipients, $post->ID);
635
  $this->mail($recipients, $subject, $plain_body);
636
 
637
  // next we send html excerpt content emails
638
  $recipients = $this->get_registered("cats=$post_cats_string&format=html_excerpt&author=$post->post_author");
639
- $recipients = apply_filters('s2_send_html_excerpt_suscribers', $recipients, $post->ID);
640
  $this->mail($recipients, $subject, $html_excerpt_body, 'html');
641
 
642
  // next we send html full content emails
643
  $recipients = $this->get_registered("cats=$post_cats_string&format=html&author=$post->post_author");
644
- $recipients = apply_filters('s2_send_html_fullcontent_suscribers', $recipients, $post->ID);
645
  $this->mail($recipients, $subject, $html_body, 'html');
646
 
647
  // and finally we send to Public Subscribers
648
- $recipients = apply_filters('s2_send_public_suscribers', $public, $post->ID);
649
  $this->mail($recipients, $subject, $plain_excerpt_body, 'text');
650
  }
651
  } // end publish()
@@ -683,7 +700,8 @@ class s2class {
683
  $body = $this->substitute(stripslashes($this->subscribe2_options['remind_email']));
684
  $subject = $this->substitute(stripslashes($this->subscribe2_options['remind_subject']));
685
  } else {
686
- $body = $this->substitute(stripslashes($this->subscribe2_options['confirm_email']));
 
687
  if ( 'add' == $what ) {
688
  $body = str_replace("{ACTION}", $this->subscribe, $body);
689
  $subject = str_replace("{ACTION}", $this->subscribe, $this->subscribe2_options['confirm_subject']);
@@ -1137,53 +1155,6 @@ class s2class {
1137
  return $wpdb->prepare('%s', $data);
1138
  } // end prepare_in_data()
1139
 
1140
- /**
1141
- Export subscriber emails and other details to CSV
1142
- */
1143
- function prepare_export( $subscribers ) {
1144
- $subscribers = explode(",\r\n", $subscribers);
1145
- natcasesort($subscribers);
1146
-
1147
- $exportcsv = "User Email,User Type,User Name";
1148
- $all_cats = $this->all_cats(false, 'ID');
1149
-
1150
- foreach ($all_cats as $cat) {
1151
- $exportcsv .= "," . $cat->cat_name;
1152
- $cat_ids[] = $cat->term_id;
1153
- }
1154
- $exportcsv .= "\r\n";
1155
-
1156
- if ( !function_exists('get_userdata') ) {
1157
- require_once(ABSPATH . WPINC . '/pluggable.php');
1158
- }
1159
-
1160
- foreach ( $subscribers as $subscriber ) {
1161
- if ( $this->is_registered($subscriber) ) {
1162
- $user_ID = $this->get_user_id( $subscriber );
1163
- $user_info = get_userdata( $user_ID );
1164
-
1165
- $cats = explode(',', get_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), true));
1166
- $subscribed_cats = '';
1167
- foreach ( $cat_ids as $cat ) {
1168
- (in_array($cat, $cats)) ? $subscribed_cats .= ",Yes" : $subscribed_cats .= ",No";
1169
- }
1170
-
1171
- $exportcsv .= $subscriber . ',';
1172
- $exportcsv .= __('Registered User', 'subscribe2');
1173
- $exportcsv .= ',' . $user_info->display_name;
1174
- $exportcsv .= $subscribed_cats . "\r\n";
1175
- } else {
1176
- if ( $this->is_public($subscriber) === '1' ) {
1177
- $exportcsv .= $subscriber . ',' . __('Confirmed Public Subscriber', 'subscribe2') . "\r\n";
1178
- } elseif ( $this->is_public($subscriber) === '0' ) {
1179
- $exportcsv .= $subscriber . ',' . __('Unconfirmed Public Subscriber', 'subscribe2') . "\r\n";
1180
- }
1181
- }
1182
- }
1183
-
1184
- return $exportcsv;
1185
- } // end prepare_export()
1186
-
1187
  /**
1188
  Filter for usermeta table key names to adjust them if needed for WPMU blogs
1189
  */
@@ -1230,7 +1201,7 @@ class s2class {
1230
  function register_post($user_ID = 0) {
1231
  global $_POST;
1232
  if ( 0 == $user_ID ) { return; }
1233
- if ( 'yes' == $this->subscribe2_options['autosub'] || ( 'on' == $_POST['reg_subscribe'] && 'wpreg' == $this->subscribe2_options['autosub'] ) ) {
1234
  $this->register($user_ID, true);
1235
  } else {
1236
  $this->register($user_ID, false);
@@ -1245,7 +1216,7 @@ class s2class {
1245
  if ( is_user_logged_in() ) {
1246
  echo $this->profile;
1247
  } else {
1248
- echo "<p style=\"width: auto;\"><label><input type=\"checkbox\" name=\"s2_comment_request\" value=\"1\" " . checked($this->subscribe2_options['comment_def'], 'yes', false) . "/>" . __('Check here to Subscribe to notifications for new posts', 'subscribe2') . "</label></p>";
1249
  }
1250
  } // end s2_comment_meta_form()
1251
 
@@ -1261,6 +1232,7 @@ class s2class {
1261
  break;
1262
  case '1':
1263
  // Approved so add
 
1264
  $is_public = $this->is_public($comment->comment_author_email);
1265
  if ( $is_public == 0 ) {
1266
  $this->toggle($comment->comment_author_email);
@@ -1334,9 +1306,10 @@ class s2class {
1334
  /**
1335
  Add a weekly event to cron
1336
  */
1337
- function add_weekly_sched($sched) {
1338
- $sched['weekly'] = array('interval' => 604800, 'display' => __('Weekly', 'subscribe2'));
1339
- return $sched;
 
1340
  } // end add_weekly_sched()
1341
 
1342
  /**
@@ -1394,14 +1367,16 @@ class s2class {
1394
  }
1395
  } else {
1396
  // we are sending a preview
 
1397
  $posts = get_posts('numberposts=1');
1398
  }
1399
 
1400
  // Collect sticky posts if desired
1401
  if ( $this->subscribe2_options['stickies'] == 'yes' ) {
1402
- $stickies = get_posts(array('post__in' => get_option('sticky_posts')));
1403
- if ( !empty($stickies) ) {
1404
- $posts = array_merge((array)$stickies, (array)$posts);
 
1405
  }
1406
  }
1407
 
@@ -1507,20 +1482,16 @@ class s2class {
1507
  $message_post .= "\r\n";
1508
  $message_posttime .= "\r\n";
1509
 
1510
- ( !empty($post->post_excerpt) ) ? $excerpt = $post->post_excerpt : $excerpt = '';
1511
  if ( '' == $excerpt ) {
1512
  // no excerpt, is there a <!--more--> ?
1513
  if ( false !== strpos($post->post_content, '<!--more-->') ) {
1514
  list($excerpt, $more) = explode('<!--more-->', $post->post_content, 2);
1515
  $excerpt = strip_tags($excerpt);
1516
- if ( function_exists('strip_shortcodes') ) {
1517
- $excerpt = strip_shortcodes($excerpt);
1518
- }
1519
  } else {
1520
  $excerpt = strip_tags($post->post_content);
1521
- if ( function_exists('strip_shortcodes') ) {
1522
- $excerpt = strip_shortcodes($excerpt);
1523
- }
1524
  $words = explode(' ', $excerpt, $this->excerpt_length + 1);
1525
  if ( count($words) > $this->excerpt_length ) {
1526
  array_pop($words);
@@ -1661,17 +1632,15 @@ class s2class {
1661
  if ( $this->subscribe2_options['email_freq'] != 'never' ) {
1662
  add_action('s2_digest_cron', array(&$this, 'subscribe2_cron'));
1663
  } else {
1664
- add_action('new_to_publish', array(&$this, 'publish'));
1665
- add_action('draft_to_publish', array(&$this, 'publish'));
1666
- add_action('auto-draft_to_publish', array(&$this, 'publish'));
1667
- add_action('pending_to_publish', array(&$this, 'publish'));
1668
- add_action('private_to_publish', array(&$this, 'publish'));
1669
- add_action('future_to_publish', array(&$this, 'publish'));
1670
  if ( $this->subscribe2_options['private'] == 'yes' ) {
1671
- add_action('new_to_private', array(&$this, 'publish'));
1672
- add_action('draft_to_private', array(&$this, 'publish'));
1673
- add_action('auto-draft_to_private', array(&$this, 'publish'));
1674
- add_action('pending_to_private', array(&$this, 'publish'));
 
 
 
1675
  }
1676
  }
1677
  // add actions for comment subscribers
41
 
42
  $this->error = "<p class=\"s2_error\">" . __('Sorry, there seems to be an error on the server. Please try again later.', 'subscribe2') . "</p>";
43
 
44
+ $this->no_page = __('You must create a WordPress page for this plugin to work correctly.', 'subscribe2');
 
 
45
 
46
  $this->mail_sent = "<p class=\"s2_message\">" . __('Message sent!', 'subscribe2') . "</p>";
47
 
534
  $mailtext = stripslashes($this->substitute($mailtext));
535
 
536
  $plaintext = $post->post_content;
537
+ $plaintext = strip_shortcodes($plaintext);
538
+
 
539
  $plaintext = preg_replace('|<s[^>]*>(.*)<\/s>|Ui','', $plaintext);
540
  $plaintext = preg_replace('|<strike[^>]*>(.*)<\/strike>|Ui','', $plaintext);
541
  $plaintext = preg_replace('|<del[^>]*>(.*)<\/del>|Ui','', $plaintext);
542
+ $excerpttext = $plaintext;
543
+
544
+ if ( strstr($mailtext, "{REFERENCELINKS}") ) {
545
+ $mailtext = str_replace("{REFERENCELINKS}", '', $mailtext);
546
+ $plaintext_links = '';
547
+ $i = 0;
548
+ while ( preg_match('|<a([^>]*)>(.*)<\/a>|Ui', $plaintext, $matches) ) {
549
+ if ( preg_match('|href="([^"]*)"|', $matches[1], $link_matches) ){
550
+ $plaintext_links .= sprintf( "[%d] %s\r\n", ++$i, $link_matches[1] );
551
+ $link_replacement = sprintf( "%s [%d]", $matches[2], $i );
552
+ } else {
553
+ $link_replacement = $matches[2];
554
+ }
555
+ $plaintext = preg_replace('|<a[^>]*>(.*)<\/a>|Ui', $link_replacement, $plaintext, 1);
556
+ }
557
+ }
558
+
559
+ $plaintext = trim(strip_tags($plaintext));
560
+
561
+ if ( strstr($mailtext, "{REFERENCELINKS}") && $plaintext_links != '' ) {
562
+ $plaintext .= "\r\n\r\n" . trim($plaintext_links);
563
+ }
564
 
565
  $gallid = '[gallery id="' . $post->ID . '"';
566
  $content = str_replace('[gallery', $gallid, $post->post_content);
577
  $content = apply_filters('the_content', $content);
578
  $content = str_replace("]]>", "]]&gt", $content);
579
 
580
+ $excerpt = trim($post->post_excerpt);
581
  if ( '' == $excerpt ) {
582
  // no excerpt, is there a <!--more--> ?
583
+ if ( false !== strpos($excerpttext, '<!--more-->') ) {
584
+ list($excerpt, $more) = explode('<!--more-->', $excerpttext, 2);
585
+ // strip tags and trailing whitespace
586
+ $excerpt = trim(strip_tags($excerpt));
 
587
  } else {
588
  // no <!--more-->, so grab the first 55 words
589
+ $excerpt = trim(strip_tags($excerpttext));
590
  $words = explode(' ', $excerpt, $this->excerpt_length + 1);
591
  if (count($words) > $this->excerpt_length) {
592
  array_pop($words);
595
  }
596
  }
597
  }
598
+ $html_excerpt = trim($post->post_excerpt);
599
  if ( '' == $html_excerpt ) {
600
  // no excerpt, is there a <!--more--> ?
601
  if ( false !== strpos($content, '<!--more-->') ) {
643
  // Registered Subscribers first
644
  // first we send plaintext summary emails
645
  $recipients = $this->get_registered("cats=$post_cats_string&format=excerpt&author=$post->post_author");
646
+ $recipients = apply_filters('s2_send_plain_excerpt_subscribers', $recipients, $post->ID);
647
  $this->mail($recipients, $subject, $plain_excerpt_body);
648
 
649
  // next we send plaintext full content emails
650
  $recipients = $this->get_registered("cats=$post_cats_string&format=post&author=$post->post_author");
651
+ $recipients = apply_filters('s2_send_plain_fullcontent_subscribers', $recipients, $post->ID);
652
  $this->mail($recipients, $subject, $plain_body);
653
 
654
  // next we send html excerpt content emails
655
  $recipients = $this->get_registered("cats=$post_cats_string&format=html_excerpt&author=$post->post_author");
656
+ $recipients = apply_filters('s2_send_html_excerpt_subscribers', $recipients, $post->ID);
657
  $this->mail($recipients, $subject, $html_excerpt_body, 'html');
658
 
659
  // next we send html full content emails
660
  $recipients = $this->get_registered("cats=$post_cats_string&format=html&author=$post->post_author");
661
+ $recipients = apply_filters('s2_send_html_fullcontent_subscribers', $recipients, $post->ID);
662
  $this->mail($recipients, $subject, $html_body, 'html');
663
 
664
  // and finally we send to Public Subscribers
665
+ $recipients = apply_filters('s2_send_public_subscribers', $public, $post->ID);
666
  $this->mail($recipients, $subject, $plain_excerpt_body, 'text');
667
  }
668
  } // end publish()
700
  $body = $this->substitute(stripslashes($this->subscribe2_options['remind_email']));
701
  $subject = $this->substitute(stripslashes($this->subscribe2_options['remind_subject']));
702
  } else {
703
+ $body = apply_filters('s2_confirm_email', stripslashes($this->subscribe2_options['confirm_email']), $what);
704
+ $body = $this->substitute($body);
705
  if ( 'add' == $what ) {
706
  $body = str_replace("{ACTION}", $this->subscribe, $body);
707
  $subject = str_replace("{ACTION}", $this->subscribe, $this->subscribe2_options['confirm_subject']);
1155
  return $wpdb->prepare('%s', $data);
1156
  } // end prepare_in_data()
1157
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1158
  /**
1159
  Filter for usermeta table key names to adjust them if needed for WPMU blogs
1160
  */
1201
  function register_post($user_ID = 0) {
1202
  global $_POST;
1203
  if ( 0 == $user_ID ) { return; }
1204
+ if ( 'yes' == $this->subscribe2_options['autosub'] || ( isset($_POST['reg_subscribe']) && 'on' == $_POST['reg_subscribe'] && 'wpreg' == $this->subscribe2_options['autosub'] ) ) {
1205
  $this->register($user_ID, true);
1206
  } else {
1207
  $this->register($user_ID, false);
1216
  if ( is_user_logged_in() ) {
1217
  echo $this->profile;
1218
  } else {
1219
+ echo "<p style=\"width: auto;\"><label><input type=\"checkbox\" name=\"s2_comment_request\" value=\"1\" " . checked($this->subscribe2_options['comment_def'], 'yes', false) . "/> " . __('Check here to Subscribe to notifications for new posts', 'subscribe2') . "</label></p>";
1220
  }
1221
  } // end s2_comment_meta_form()
1222
 
1232
  break;
1233
  case '1':
1234
  // Approved so add
1235
+ $comment = get_comment($comment_ID);
1236
  $is_public = $this->is_public($comment->comment_author_email);
1237
  if ( $is_public == 0 ) {
1238
  $this->toggle($comment->comment_author_email);
1306
  /**
1307
  Add a weekly event to cron
1308
  */
1309
+ function add_weekly_sched($scheds) {
1310
+ $scheds['weekly'] = array('interval' => 604800, 'display' => __('Weekly', 'subscribe2'));
1311
+
1312
+ return $scheds;
1313
  } // end add_weekly_sched()
1314
 
1315
  /**
1367
  }
1368
  } else {
1369
  // we are sending a preview
1370
+ $now = $prev = $last = current_time('mysql');
1371
  $posts = get_posts('numberposts=1');
1372
  }
1373
 
1374
  // Collect sticky posts if desired
1375
  if ( $this->subscribe2_options['stickies'] == 'yes' ) {
1376
+ $sticky_ids = get_option('sticky_posts');
1377
+ if ( !empty($sticky_ids) ) {
1378
+ $sticky_posts = get_posts( array('post__in' => $sticky_ids) );
1379
+ $posts = array_merge((array)$sticky_posts, (array)$posts);
1380
  }
1381
  }
1382
 
1482
  $message_post .= "\r\n";
1483
  $message_posttime .= "\r\n";
1484
 
1485
+ ( !empty($post->post_excerpt) ) ? $excerpt = trim($post->post_excerpt) : $excerpt = '';
1486
  if ( '' == $excerpt ) {
1487
  // no excerpt, is there a <!--more--> ?
1488
  if ( false !== strpos($post->post_content, '<!--more-->') ) {
1489
  list($excerpt, $more) = explode('<!--more-->', $post->post_content, 2);
1490
  $excerpt = strip_tags($excerpt);
1491
+ $excerpt = strip_shortcodes($excerpt);
 
 
1492
  } else {
1493
  $excerpt = strip_tags($post->post_content);
1494
+ $excerpt = strip_shortcodes($excerpt);
 
 
1495
  $words = explode(' ', $excerpt, $this->excerpt_length + 1);
1496
  if ( count($words) > $this->excerpt_length ) {
1497
  array_pop($words);
1632
  if ( $this->subscribe2_options['email_freq'] != 'never' ) {
1633
  add_action('s2_digest_cron', array(&$this, 'subscribe2_cron'));
1634
  } else {
1635
+ $statuses = apply_filters('s2_post_statuses', array('new', 'draft', 'auto-draft', 'pending'));
 
 
 
 
 
1636
  if ( $this->subscribe2_options['private'] == 'yes' ) {
1637
+ foreach ( $statuses as $status ) {
1638
+ add_action("{$status}_to_private", array(&$this, 'publish'));
1639
+ }
1640
+ }
1641
+ array_push($statuses, 'private', 'future');
1642
+ foreach ( $statuses as $status ) {
1643
+ add_action("{$status}_to_publish", array(&$this, 'publish'));
1644
  }
1645
  }
1646
  // add actions for comment subscribers
classes/class-s2-frontend.php CHANGED
@@ -6,9 +6,8 @@ class s2_frontend extends s2class {
6
  */
7
  function shortcode($atts) {
8
  extract(shortcode_atts(array(
9
- 'hide' => strtolower(''),
10
  'id' => '',
11
- 'url' => '',
12
  'nojs' => 'false',
13
  'noantispam' => 'false',
14
  'link' => '',
@@ -18,7 +17,7 @@ class s2_frontend extends s2class {
18
 
19
  // if link is true return a link to the page with the ajax class
20
  if ( $link !== '' && !is_user_logged_in() ) {
21
- $hide_id = ($hide === '') ? "": " id=\"" . $hide . "\"";
22
  $this->s2form = "<a href=\"" . get_permalink($this->subscribe2_options['s2page']) . "\" class=\"s2popup\"" . $hide_id . ">" . $link . "</a>\r\n";
23
  return $this->s2form;
24
  }
@@ -28,9 +27,9 @@ class s2_frontend extends s2class {
28
  $subscribe_button_value = apply_filters('s2_subscribe_button', __('Subscribe', 'subscribe2'));
29
 
30
  // if a button is hidden, show only other
31
- if ( $hide == 'subscribe' ) {
32
  $this->input_form_action = "<input type=\"submit\" name=\"unsubscribe\" value=\"" . esc_attr($unsubscribe_button_value) . "\" />";
33
- } elseif ( $hide == 'unsubscribe' ) {
34
  $this->input_form_action = "<input type=\"submit\" name=\"subscribe\" value=\"" . esc_attr($subscribe_button_value) . "\" />";
35
  } else {
36
  // both form input actions
@@ -52,7 +51,7 @@ class s2_frontend extends s2class {
52
  // allow remote setting of email in form
53
  if ( isset($_REQUEST['email']) && is_email($_REQUEST['email']) ) {
54
  $value = $this->sanitize_email($_REQUEST['email']);
55
- } elseif ( $nojs == 'true' ) {
56
  $value = '';
57
  } else {
58
  $value = __('Enter email address...', 'subscribe2');
@@ -60,26 +59,26 @@ class s2_frontend extends s2class {
60
 
61
  // if wrap is true add paragraph html tags
62
  $wrap_text = '';
63
- if ( $wrap == 'true' ) {
64
  $wrap_text = '</p><p>';
65
  }
66
 
67
  // deploy some anti-spam measures
68
  $antispam_text = '';
69
- if ( $noantispam != 'true' ) {
70
  $antispam_text = "<span style=\"display:none !important\">";
71
  $antispam_text .= "<label for=\"name\">Leave Blank:</label><input type=\"text\" id=\"name\" name=\"name\" />";
72
- $antispam_text .= "<label for=\"uri\">Don't Change:</label><input type=\"text\" id=\"uri\" name=\"uri\" value=\"http://\" />";
73
  $antispam_text .= "</span>";
74
  }
75
 
76
  // build default form
77
- if ( $nojs == 'true' ) {
78
  $this->form = "<form method=\"post\"" . $action . "><input type=\"hidden\" name=\"ip\" value=\"" . $_SERVER['REMOTE_ADDR'] . "\" />" . $antispam_text . "<p><label for=\"s2email\">" . __('Your email:', 'subscribe2') . "</label><br /><input type=\"text\" name=\"email\" id=\"s2email\" value=\"" . $value . "\" size=\"" . $size . "\" />" . $wrap_text . $this->input_form_action . "</p></form>";
79
  } else {
80
  $this->form = "<form method=\"post\"" . $action . "><input type=\"hidden\" name=\"ip\" value=\"" . $_SERVER['REMOTE_ADDR'] . "\" />" . $antispam_text . "<p><label for=\"s2email\">" . __('Your email:', 'subscribe2') . "</label><br /><input type=\"text\" name=\"email\" id=\"s2email\" value=\"" . $value . "\" size=\"" . $size . "\" onfocus=\"if (this.value == '" . $value . "') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '" . $value . "';}\" />" . $wrap_text . $this->input_form_action . "</p></form>\r\n";
81
  }
82
- $this->s2form = $this->form;
83
 
84
  global $user_ID;
85
  get_currentuserinfo();
@@ -300,7 +299,11 @@ class s2_frontend extends s2class {
300
  function add_ajax() {
301
  // enqueue the jQuery script we need and let WordPress handle the dependencies
302
  wp_enqueue_script('jquery-ui-dialog');
303
- wp_register_style('jquery-ui-style', apply_filters('s2_jqueryui_css', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/ui-darkness/jquery-ui.css'));
 
 
 
 
304
  wp_enqueue_style('jquery-ui-style');
305
  } // end add_ajax()
306
 
6
  */
7
  function shortcode($atts) {
8
  extract(shortcode_atts(array(
9
+ 'hide' => '',
10
  'id' => '',
 
11
  'nojs' => 'false',
12
  'noantispam' => 'false',
13
  'link' => '',
17
 
18
  // if link is true return a link to the page with the ajax class
19
  if ( $link !== '' && !is_user_logged_in() ) {
20
+ $hide_id = ($hide === '') ? "": " id=\"" . strtolower($hide) . "\"";
21
  $this->s2form = "<a href=\"" . get_permalink($this->subscribe2_options['s2page']) . "\" class=\"s2popup\"" . $hide_id . ">" . $link . "</a>\r\n";
22
  return $this->s2form;
23
  }
27
  $subscribe_button_value = apply_filters('s2_subscribe_button', __('Subscribe', 'subscribe2'));
28
 
29
  // if a button is hidden, show only other
30
+ if ( strtolower($hide) == 'subscribe' ) {
31
  $this->input_form_action = "<input type=\"submit\" name=\"unsubscribe\" value=\"" . esc_attr($unsubscribe_button_value) . "\" />";
32
+ } elseif ( strtolower($hide) == 'unsubscribe' ) {
33
  $this->input_form_action = "<input type=\"submit\" name=\"subscribe\" value=\"" . esc_attr($subscribe_button_value) . "\" />";
34
  } else {
35
  // both form input actions
51
  // allow remote setting of email in form
52
  if ( isset($_REQUEST['email']) && is_email($_REQUEST['email']) ) {
53
  $value = $this->sanitize_email($_REQUEST['email']);
54
+ } elseif ( strtolower($nojs) == 'true' ) {
55
  $value = '';
56
  } else {
57
  $value = __('Enter email address...', 'subscribe2');
59
 
60
  // if wrap is true add paragraph html tags
61
  $wrap_text = '';
62
+ if ( strtolower($wrap) == 'true' ) {
63
  $wrap_text = '</p><p>';
64
  }
65
 
66
  // deploy some anti-spam measures
67
  $antispam_text = '';
68
+ if ( strtolower($noantispam) != 'true' ) {
69
  $antispam_text = "<span style=\"display:none !important\">";
70
  $antispam_text .= "<label for=\"name\">Leave Blank:</label><input type=\"text\" id=\"name\" name=\"name\" />";
71
+ $antispam_text .= "<label for=\"uri\">Do Not Change:</label><input type=\"text\" id=\"uri\" name=\"uri\" value=\"http://\" />";
72
  $antispam_text .= "</span>";
73
  }
74
 
75
  // build default form
76
+ if ( strtolower($nojs) == 'true' ) {
77
  $this->form = "<form method=\"post\"" . $action . "><input type=\"hidden\" name=\"ip\" value=\"" . $_SERVER['REMOTE_ADDR'] . "\" />" . $antispam_text . "<p><label for=\"s2email\">" . __('Your email:', 'subscribe2') . "</label><br /><input type=\"text\" name=\"email\" id=\"s2email\" value=\"" . $value . "\" size=\"" . $size . "\" />" . $wrap_text . $this->input_form_action . "</p></form>";
78
  } else {
79
  $this->form = "<form method=\"post\"" . $action . "><input type=\"hidden\" name=\"ip\" value=\"" . $_SERVER['REMOTE_ADDR'] . "\" />" . $antispam_text . "<p><label for=\"s2email\">" . __('Your email:', 'subscribe2') . "</label><br /><input type=\"text\" name=\"email\" id=\"s2email\" value=\"" . $value . "\" size=\"" . $size . "\" onfocus=\"if (this.value == '" . $value . "') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '" . $value . "';}\" />" . $wrap_text . $this->input_form_action . "</p></form>\r\n";
80
  }
81
+ $this->s2form = apply_filters('s2_form', $this->form);
82
 
83
  global $user_ID;
84
  get_currentuserinfo();
299
  function add_ajax() {
300
  // enqueue the jQuery script we need and let WordPress handle the dependencies
301
  wp_enqueue_script('jquery-ui-dialog');
302
+ $css = 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/ui-darkness/jquery-ui.css';
303
+ if ( is_ssl() ) {
304
+ $css = str_replace('http:', 'https:', $css);
305
+ }
306
+ wp_register_style('jquery-ui-style', apply_filters('s2_jqueryui_css', $css));
307
  wp_enqueue_style('jquery-ui-style');
308
  } // end add_ajax()
309
 
include/options.php CHANGED
@@ -15,7 +15,7 @@ if (!isset($this->subscribe2_options['wpregdef'])) {
15
  } // option to check registration form box by default
16
 
17
  if (!isset($this->subscribe2_options['autoformat'])) {
18
- $this->subscribe2_options['autoformat'] = "text";
19
  } // option for default auto-subscription email format
20
 
21
  if (!isset($this->subscribe2_options['show_autosub'])) {
15
  } // option to check registration form box by default
16
 
17
  if (!isset($this->subscribe2_options['autoformat'])) {
18
+ $this->subscribe2_options['autoformat'] = "post";
19
  } // option for default auto-subscription email format
20
 
21
  if (!isset($this->subscribe2_options['show_autosub'])) {
include/s2_button.js CHANGED
@@ -1,2 +1,3 @@
 
1
  // version 2.0 - original version for WordPress versions 3.3 and greater
2
- QTags.addButton('Subscribe2', 'Subscribe2', '[subscribe2]');
1
+ /* global QTags */
2
  // version 2.0 - original version for WordPress versions 3.3 and greater
3
+ QTags.addButton( 'Subscribe2', 'Subscribe2', '[subscribe2]' );
include/s2_checkbox.js CHANGED
@@ -2,36 +2,38 @@
2
  // version 1.1 - Updated with function fixes and for WordPress 3.2 / jQuery 1.6
3
  // version 1.2 - Update to work when DISABLED is specified for changes in version 8.5
4
  // version 1.3 - Update for Subscribe2 9.0 to remove unecessary code now WordPress 3.3 is minimum requirement
5
- jQuery(document).ready(function () {
6
  // function to check or uncheck all when 'checkall' box it toggled
7
- jQuery('input[name="checkall"]').click(function () {
8
  var checked_status = this.checked;
9
- jQuery('input[class="' + this.value + '"]').each(function () {
10
- if (jQuery(this).prop('disabled') === false) {
11
  this.checked = checked_status;
12
  }
13
  });
14
  });
15
  // function to check or uncheck 'checkall' box when individual boxes are toggled
16
- jQuery('input[class^="checkall"]').click(function () {
17
  var checked_status = true;
18
- jQuery('input[class="' + this.className + '"]').each(function () {
19
- if ((this.checked === true) && (checked_status === true)) {
20
  checked_status = true;
21
  } else {
22
  checked_status = false;
23
  }
24
- jQuery('input[value="' + this.className + '"]').prop('checked', checked_status);
 
25
  });
26
  });
27
  // function to check or uncheck 'checkall' box when page is loaded
28
  var checked_status = true;
29
- jQuery('input[class^="checkall"]').each(function () {
30
- if ((this.checked === true) && (checked_status === true)) {
31
  checked_status = true;
32
  } else {
33
  checked_status = false;
34
  }
35
- jQuery('input[value="' + this.className + '"]').prop('checked', checked_status);
 
36
  });
37
  });
2
  // version 1.1 - Updated with function fixes and for WordPress 3.2 / jQuery 1.6
3
  // version 1.2 - Update to work when DISABLED is specified for changes in version 8.5
4
  // version 1.3 - Update for Subscribe2 9.0 to remove unecessary code now WordPress 3.3 is minimum requirement
5
+ jQuery( document ).ready(function () {
6
  // function to check or uncheck all when 'checkall' box it toggled
7
+ jQuery( 'input[name="checkall"]' ).click(function () {
8
  var checked_status = this.checked;
9
+ jQuery( 'input[class="' + this.value + '"]' ).each(function () {
10
+ if ( false === jQuery( this ).prop( 'disabled' ) ) {
11
  this.checked = checked_status;
12
  }
13
  });
14
  });
15
  // function to check or uncheck 'checkall' box when individual boxes are toggled
16
+ jQuery( 'input[class^="checkall"]' ).click(function () {
17
  var checked_status = true;
18
+ jQuery( 'input[class="' + this.className + '"]' ).each(function () {
19
+ if ( ( true === this.checked ) && ( true === checked_status ) ) {
20
  checked_status = true;
21
  } else {
22
  checked_status = false;
23
  }
24
+ jQuery( 'input[value="' + this.className + '"]' )
25
+ .prop( 'checked', checked_status );
26
  });
27
  });
28
  // function to check or uncheck 'checkall' box when page is loaded
29
  var checked_status = true;
30
+ jQuery( 'input[class^="checkall"]' ).each(function () {
31
+ if ( ( true === this.checked ) && ( true === checked_status ) ) {
32
  checked_status = true;
33
  } else {
34
  checked_status = false;
35
  }
36
+ jQuery( 'input[value="' + this.className + '"]' )
37
+ .prop( 'checked', checked_status );
38
  });
39
  });
include/s2_checkbox.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(){jQuery('input[name="checkall"]').click(function(){var checked_status=this.checked;jQuery('input[class="'+this.value+'"]').each(function(){if(jQuery(this).prop('disabled')===false){this.checked=checked_status}})});jQuery('input[class^="checkall"]').click(function(){var checked_status=true;jQuery('input[class="'+this.className+'"]').each(function(){if((this.checked===true)&&(checked_status===true)){checked_status=true}else{checked_status=false}jQuery('input[value="'+this.className+'"]').prop('checked',checked_status)})});var checked_status=true;jQuery('input[class^="checkall"]').each(function(){if((this.checked===true)&&(checked_status===true)){checked_status=true}else{checked_status=false}jQuery('input[value="'+this.className+'"]').prop('checked',checked_status)})});
1
+ jQuery(document).ready(function(){jQuery('input[name="checkall"]').click(function(){var checked_status=this.checked;jQuery('input[class="'+this.value+'"]').each(function(){if(false===jQuery(this).prop('disabled')){this.checked=checked_status}})});jQuery('input[class^="checkall"]').click(function(){var checked_status=true;jQuery('input[class="'+this.className+'"]').each(function(){if((true===this.checked)&&(true===checked_status)){checked_status=true}else{checked_status=false}jQuery('input[value="'+this.className+'"]').prop('checked',checked_status)})});var checked_status=true;jQuery('input[class^="checkall"]').each(function(){if((true===this.checked)&&(true===checked_status)){checked_status=true}else{checked_status=false}jQuery('input[value="'+this.className+'"]').prop('checked',checked_status)})});
include/s2_colorpicker.js CHANGED
@@ -1,27 +1,31 @@
1
  // version 1.0 - original version
2
  // version 1.1 - Update for Subscribe2 9.0 to remove unecessary code now WordPress 3.3 is minimum requirement
3
- jQuery(document).ready(function () {
4
- jQuery(document).on('focus', '.colorpickerField', function () {
5
- if (jQuery(this).is('.s2_initialised') || this.id.search('__i__') !== -1) {
 
6
  return; // exit early, already initialized or not activated
7
  }
8
- jQuery(this).addClass('s2_initialised');
9
  var picker,
10
- field = jQuery(this).attr('id').substr(0, 20);
11
- jQuery('.s2_colorpicker').each(function () {
12
- if (jQuery(this).attr('id').search(field) !== -1) {
13
- picker = jQuery(this).attr('id');
14
  return false; // stop looping
15
  }
16
  });
17
- jQuery(this).on('focusin', function (event) {
18
- jQuery('.s2_colorpicker').hide();
19
- jQuery.farbtastic('#' + picker).linkTo(this);
20
- jQuery('#' + picker).slideDown();
21
  });
22
- jQuery(this).on('focusout', function (event) {
23
- jQuery('#' + picker).slideUp();
24
  });
25
- jQuery(this).trigger('focus');
26
  });
27
- });
 
 
 
1
  // version 1.0 - original version
2
  // version 1.1 - Update for Subscribe2 9.0 to remove unecessary code now WordPress 3.3 is minimum requirement
3
+ // version 1.2 - Initialise the colour fields on page load so they are the correct colour
4
+ jQuery( document ).ready(function () {
5
+ jQuery( document ).on( 'focus', '.colorpickerField', function () {
6
+ if ( jQuery( this ).is( '.s2_initialised' ) || -1 !== this.id.search( '__i__' ) ) {
7
  return; // exit early, already initialized or not activated
8
  }
9
+ jQuery( this ).addClass( 's2_initialised' );
10
  var picker,
11
+ field = this.id.substr( 0, 20 );
12
+ jQuery( '.s2_colorpicker' ).each(function () {
13
+ if ( -1 !== this.id.search( field ) ) {
14
+ picker = this.id;
15
  return false; // stop looping
16
  }
17
  });
18
+ jQuery( this ).on( 'focusin', function () {
19
+ jQuery( '.s2_colorpicker' ).slideUp();
20
+ jQuery.farbtastic( '#' + picker ).linkTo( this );
21
+ jQuery( '#' + picker ).slideDown();
22
  });
23
+ jQuery( this ).on( 'focusout', function () {
24
+ jQuery( '#' + picker ).slideUp();
25
  });
26
+ jQuery( this ).trigger( 'focus' );
27
  });
28
+ jQuery( '.colorpickerField' ).each(function () {
29
+ jQuery.farbtastic( '#' + this.id ).linkTo( this );
30
+ });
31
+ });
include/s2_colorpicker.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(){jQuery(document).on('focus','.colorpickerField',function(){if(jQuery(this).is('.s2_initialised')||this.id.search('__i__')!==-1){return}jQuery(this).addClass('s2_initialised');var picker,field=jQuery(this).attr('id').substr(0,20);jQuery('.s2_colorpicker').each(function(){if(jQuery(this).attr('id').search(field)!==-1){picker=jQuery(this).attr('id');return false}});jQuery(this).on('focusin',function(event){jQuery('.s2_colorpicker').hide();jQuery.farbtastic('#'+picker).linkTo(this);jQuery('#'+picker).slideDown()});jQuery(this).on('focusout',function(event){jQuery('#'+picker).slideUp()});jQuery(this).trigger('focus')})});
1
+ jQuery(document).ready(function(){jQuery(document).on('focus','.colorpickerField',function(){if(jQuery(this).is('.s2_initialised')||-1!==this.id.search('__i__')){return}jQuery(this).addClass('s2_initialised');var picker,field=this.id.substr(0,20);jQuery('.s2_colorpicker').each(function(){if(-1!==this.id.search(field)){picker=this.id;return false}});jQuery(this).on('focusin',function(){jQuery('.s2_colorpicker').slideUp();jQuery.farbtastic('#'+picker).linkTo(this);jQuery('#'+picker).slideDown()});jQuery(this).on('focusout',function(){jQuery('#'+picker).slideUp()});jQuery(this).trigger('focus')});jQuery('.colorpickerField').each(function(){jQuery.farbtastic('#'+this.id).linkTo(this)})});
include/s2_date_time.js CHANGED
@@ -1,6 +1,6 @@
1
  // Version 1.0 - original version
2
- jQuery(document).ready(function() {
3
- jQuery('#s2datepicker').datepicker({
4
  dateFormat : 'MM d, yy'
5
  });
6
  });
1
  // Version 1.0 - original version
2
+ jQuery( document ).ready(function() {
3
+ jQuery( '#s2datepicker' ).datepicker({
4
  dateFormat : 'MM d, yy'
5
  });
6
  });
include/s2_edit.js CHANGED
@@ -1,56 +1,59 @@
 
1
  // Version 1.0 - original version
2
  // Version 1.1 - updated for Subscribe2 8.6
3
  // Version 1.2 - updated for Subscribe2 9.0
4
- jQuery(document).ready(function () {
5
  // hide our span before page loads
6
- jQuery('#s2bcclimit_2').hide();
7
- jQuery('#s2entries_2').hide();
8
- jQuery('#s2cron_2').hide();
9
  });
10
 
11
  //show span on clicking the edit link
12
- function s2_show(id) {
13
- jQuery('#s2' + id + '_2').show();
14
- jQuery('#s2' + id + '_1').hide();
15
  return false;
16
  }
17
 
18
  // hide span on clicking the hide link
19
- function s2_hide(id) {
20
- jQuery('#s2' + id + '_1').show();
21
- jQuery('#s2' + id + '_2').hide();
22
  return false;
23
  }
24
 
25
- function s2_update(id) {
26
- var input = jQuery('input[name="' + id + '"]').val();
27
- jQuery('#s2' + id).html(input);
28
- s2_hide(id);
29
  }
30
 
31
- function s2_revert(id) {
32
- var option = jQuery('#js' + id).val();
33
- jQuery('input[name="' + id + '"]').val(option);
34
- jQuery('#s2' + id).html(option);
35
- s2_hide(id);
36
  }
37
 
38
- function s2_cron_update(id) {
39
- var date = jQuery('input[name="' + id + 'date"]').val();
40
- jQuery('#s2' + id + 'date').html(date);
41
- var time = jQuery('select[name="' + id + 'time"] option:selected').html();
42
- jQuery('#s2' + id + 'time').html(time);
43
- s2_hide(id);
 
44
  }
45
 
46
- function s2_cron_revert(id) {
47
- var date = jQuery('#js' + id + 'date').val();
48
- jQuery('input[name="' + id + 'date"]').val(date);
49
- jQuery('#s2' + id + 'date').html(date);
50
- var time = jQuery('#js' + id + 'time').val();
51
- jQuery('[name='+ id + 'time] option').filter(function() {
52
- return (this.text == time);
53
- }).prop('selected', true).parent().focus();
54
- jQuery('#s2' + id + 'time').html(time);
55
- s2_hide(id);
 
56
  }
1
+ /* exported s2_show, s2_hide, s2_update, s2_revert, s2_cron_update, s2_cron_revert */
2
  // Version 1.0 - original version
3
  // Version 1.1 - updated for Subscribe2 8.6
4
  // Version 1.2 - updated for Subscribe2 9.0
5
+ jQuery( document ).ready(function () {
6
  // hide our span before page loads
7
+ jQuery( '#s2bcclimit_2' ).hide();
8
+ jQuery( '#s2entries_2' ).hide();
9
+ jQuery( '#s2cron_2' ).hide();
10
  });
11
 
12
  //show span on clicking the edit link
13
+ function s2_show( id ) {
14
+ jQuery( '#s2' + id + '_2' ).show();
15
+ jQuery( '#s2' + id + '_1' ).hide();
16
  return false;
17
  }
18
 
19
  // hide span on clicking the hide link
20
+ function s2_hide( id ) {
21
+ jQuery( '#s2' + id + '_1' ).show();
22
+ jQuery( '#s2' + id + '_2' ).hide();
23
  return false;
24
  }
25
 
26
+ function s2_update( id ) {
27
+ var input = jQuery( 'input[name="' + id + '"]' ).val();
28
+ jQuery( '#s2' + id ).html( input );
29
+ s2_hide( id );
30
  }
31
 
32
+ function s2_revert( id ) {
33
+ var option = jQuery( '#js' + id ).val();
34
+ jQuery( 'input[name="' + id + '"]' ).val( option );
35
+ jQuery( '#s2' + id ).html( option );
36
+ s2_hide( id );
37
  }
38
 
39
+ function s2_cron_update( id ) {
40
+ var date, time;
41
+ date = jQuery( 'input[name="' + id + 'date"]' ).val();
42
+ jQuery( '#s2' + id + 'date' ).html( date );
43
+ time = jQuery( 'select[name="' + id + 'time"] option:selected' ).html();
44
+ jQuery( '#s2' + id + 'time' ).html( time );
45
+ s2_hide( id );
46
  }
47
 
48
+ function s2_cron_revert( id ) {
49
+ var date, time;
50
+ date = jQuery( '#js' + id + 'date' ).val();
51
+ jQuery( 'input[name="' + id + 'date"]' ).val( date );
52
+ jQuery( '#s2' + id + 'date' ).html( date );
53
+ time = jQuery( '#js' + id + 'time' ).val();
54
+ jQuery( '[name='+ id + 'time] option' ).filter(function() {
55
+ return ( this.text == time );
56
+ }).prop( 'selected', true ).parent().focus();
57
+ jQuery( '#s2' + id + 'time' ).html( time );
58
+ s2_hide( id );
59
  }
include/s2_edit.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(){jQuery('#s2bcclimit_2').hide();jQuery('#s2entries_2').hide();jQuery('#s2cron_2').hide()});function s2_show(id){jQuery('#s2'+id+'_2').show();jQuery('#s2'+id+'_1').hide();return false}function s2_hide(id){jQuery('#s2'+id+'_1').show();jQuery('#s2'+id+'_2').hide();return false}function s2_update(id){var input=jQuery('input[name="'+id+'"]').val();jQuery('#s2'+id).html(input);s2_hide(id)}function s2_revert(id){var option=jQuery('#js'+id).val();jQuery('input[name="'+id+'"]').val(option);jQuery('#s2'+id).html(option);s2_hide(id)}function s2_cron_update(id){var date=jQuery('input[name="'+id+'date"]').val();jQuery('#s2'+id+'date').html(date);var time=jQuery('select[name="'+id+'time"] option:selected').html();jQuery('#s2'+id+'time').html(time);s2_hide(id)}function s2_cron_revert(id){var date=jQuery('#js'+id+'date').val();jQuery('input[name="'+id+'date"]').val(date);jQuery('#s2'+id+'date').html(date);var time=jQuery('#js'+id+'time').val();jQuery('[name='+id+'time] option').filter(function(){return(this.text==time)}).prop('selected',true).parent().focus();jQuery('#s2'+id+'time').html(time);s2_hide(id)}
1
+ jQuery(document).ready(function(){jQuery('#s2bcclimit_2').hide();jQuery('#s2entries_2').hide();jQuery('#s2cron_2').hide()});function s2_show(id){jQuery('#s2'+id+'_2').show();jQuery('#s2'+id+'_1').hide();return false}function s2_hide(id){jQuery('#s2'+id+'_1').show();jQuery('#s2'+id+'_2').hide();return false}function s2_update(id){var input=jQuery('input[name="'+id+'"]').val();jQuery('#s2'+id).html(input);s2_hide(id)}function s2_revert(id){var option=jQuery('#js'+id).val();jQuery('input[name="'+id+'"]').val(option);jQuery('#s2'+id).html(option);s2_hide(id)}function s2_cron_update(id){var date,time;date=jQuery('input[name="'+id+'date"]').val();jQuery('#s2'+id+'date').html(date);time=jQuery('select[name="'+id+'time"] option:selected').html();jQuery('#s2'+id+'time').html(time);s2_hide(id)}function s2_cron_revert(id){var date,time;date=jQuery('#js'+id+'date').val();jQuery('input[name="'+id+'date"]').val(date);jQuery('#s2'+id+'date').html(date);time=jQuery('#js'+id+'time').val();jQuery('[name='+id+'time] option').filter(function(){return(this.text==time)}).prop('selected',true).parent().focus();jQuery('#s2'+id+'time').html(time);s2_hide(id)}
include/widget.php CHANGED
@@ -119,7 +119,7 @@ class S2_Form_widget extends WP_Widget {
119
  echo "<br /><label for=\"" . $this->get_field_id('hidebutton') . "subscribe\"><input id=\"" . $this->get_field_id('hidebutton') . "subscribe\" name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"subscribe\"". checked('subscribe', $hidebutton, false) . "/> " . __('Hide Subscribe button', 'subscribe2') . "</label>\r\n";
120
  echo "<br /><label for=\"" . $this->get_field_id('hidebutton') . "unsubscribe\"><input id=\"" . $this->get_field_id('hidebutton') . "unsubscribe\" name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"unsubscribe\"". checked('unsubscribe', $hidebutton, false) . "/> " . __('Hide Unsubscribe button', 'subscribe2') . "</label>\r\n";
121
  if ( '1' == $mysubscribe2->subscribe2_options['ajax'] ) {
122
- echo "<br /><label for=\"" . $this->get_field_id('hidebutton') . "ajax\"><input id=\"" . $this->get_field_id('hidebutton') . "ajax\" name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"link\"". checked('link', $hidebutton, false) . "/>" . __('Show as link', 'subscribe2') . "</label>\r\n";
123
  }
124
  echo "</p>\r\n";
125
  echo "<p><label for=\"" . $this->get_field_id('postto') . "\">" . __('Post form content to page', 'subscribe2') . ":\r\n";
119
  echo "<br /><label for=\"" . $this->get_field_id('hidebutton') . "subscribe\"><input id=\"" . $this->get_field_id('hidebutton') . "subscribe\" name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"subscribe\"". checked('subscribe', $hidebutton, false) . "/> " . __('Hide Subscribe button', 'subscribe2') . "</label>\r\n";
120
  echo "<br /><label for=\"" . $this->get_field_id('hidebutton') . "unsubscribe\"><input id=\"" . $this->get_field_id('hidebutton') . "unsubscribe\" name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"unsubscribe\"". checked('unsubscribe', $hidebutton, false) . "/> " . __('Hide Unsubscribe button', 'subscribe2') . "</label>\r\n";
121
  if ( '1' == $mysubscribe2->subscribe2_options['ajax'] ) {
122
+ echo "<br /><label for=\"" . $this->get_field_id('hidebutton') . "ajax\"><input id=\"" . $this->get_field_id('hidebutton') . "ajax\" name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"link\"". checked('link', $hidebutton, false) . "/> " . __('Show as link', 'subscribe2') . "</label>\r\n";
123
  }
124
  echo "</p>\r\n";
125
  echo "<p><label for=\"" . $this->get_field_id('postto') . "\">" . __('Post form content to page', 'subscribe2') . ":\r\n";
subscribe2.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Subscribe2
4
  Plugin URI: http://subscribe2.wordpress.com
5
  Description: Notifies an email list when new entries are posted.
6
- Version: 9.0
7
  Author: Matthew Robinson
8
  Author URI: http://subscribe2.wordpress.com
9
  Licence: GPL3
@@ -55,7 +55,7 @@ if ( is_plugin_active_for_network(plugin_basename(__FILE__)) ) {
55
 
56
  // our version number. Don't touch this or any line below
57
  // unless you know exactly what you are doing
58
- define( 'S2VERSION', '9.0' );
59
  define( 'S2PATH', trailingslashit(dirname(__FILE__)) );
60
  define( 'S2DIR', trailingslashit(dirname(plugin_basename(__FILE__))) );
61
  define( 'S2URL', plugin_dir_url(dirname(__FILE__)) . S2DIR );
3
  Plugin Name: Subscribe2
4
  Plugin URI: http://subscribe2.wordpress.com
5
  Description: Notifies an email list when new entries are posted.
6
+ Version: 9.1
7
  Author: Matthew Robinson
8
  Author URI: http://subscribe2.wordpress.com
9
  Licence: GPL3
55
 
56
  // our version number. Don't touch this or any line below
57
  // unless you know exactly what you are doing
58
+ define( 'S2VERSION', '9.1' );
59
  define( 'S2PATH', trailingslashit(dirname(__FILE__)) );
60
  define( 'S2DIR', trailingslashit(dirname(plugin_basename(__FILE__))) );
61
  define( 'S2URL', plugin_dir_url(dirname(__FILE__)) . S2DIR );
subscribe2.pot CHANGED
@@ -1,54 +1,54 @@
1
- # Copyright (C) 2013 Subscribe2
2
  # This file is distributed under the same license as the Subscribe2 package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Subscribe2 9.0\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/Subscribe2\n"
7
- "POT-Creation-Date: 2013-09-25 20:38:47+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
- #: admin/send_email.php:69
16
  msgid "Your email was empty"
17
  msgstr ""
18
 
19
- #: admin/send_email.php:76
20
  msgid "Check your settings and check with your hosting provider"
21
  msgstr ""
22
 
23
- #: admin/send_email.php:81
24
  msgid "Preview message sent!"
25
  msgstr ""
26
 
27
- #: admin/send_email.php:95
28
  msgid "Send an email to subscribers"
29
  msgstr ""
30
 
31
- #: admin/send_email.php:103
32
  msgid "A message from"
33
  msgstr ""
34
 
35
- #: admin/send_email.php:108
36
  msgid "Subject"
37
  msgstr ""
38
 
39
- #: admin/send_email.php:111
40
  msgid "Add More Files"
41
  msgstr ""
42
 
43
- #: admin/send_email.php:113
44
  msgid "Recipients:"
45
  msgstr ""
46
 
47
- #: admin/send_email.php:116
48
  msgid "Preview"
49
  msgstr ""
50
 
51
- #: admin/send_email.php:116
52
  msgid "Send"
53
  msgstr ""
54
 
@@ -66,592 +66,620 @@ msgstr ""
66
  msgid "Attempt made to resend the Digest Notification email"
67
  msgstr ""
68
 
69
- #: admin/settings.php:151
 
 
 
 
 
 
 
 
 
 
70
  msgid ""
71
  "You appear to be sending notifications from an email address from a "
72
  "different domain name to your blog, this may result in failed emails"
73
  msgstr ""
74
 
75
- #: admin/settings.php:160 classes/class-s2-admin.php:81
76
  msgid "Email Settings"
77
  msgstr ""
78
 
79
- #: admin/settings.php:161 classes/class-s2-admin.php:89
80
  msgid "Templates"
81
  msgstr ""
82
 
83
- #: admin/settings.php:162 classes/class-s2-admin.php:96
84
  msgid "Registered Users"
85
  msgstr ""
86
 
87
- #: admin/settings.php:163 classes/class-s2-admin.php:103
88
  msgid "Appearance"
89
  msgstr ""
90
 
91
- #: admin/settings.php:164 classes/class-s2-admin.php:110
92
  msgid "Miscellaneous"
93
  msgstr ""
94
 
95
- #: admin/settings.php:185
96
  msgid ""
97
  "Restrict the number of <strong>recipients per email</strong> to (0 for "
98
  "unlimited)"
99
  msgstr ""
100
 
101
- #: admin/settings.php:187 admin/settings.php:419
102
- #: classes/class-s2-admin.php:644 classes/class-s2-list-table.php:36
103
  msgid "Edit"
104
  msgstr ""
105
 
106
- #: admin/settings.php:190 admin/settings.php:422
107
- #: classes/class-s2-admin.php:658
108
  msgid "Update"
109
  msgstr ""
110
 
111
- #: admin/settings.php:191 admin/settings.php:423
112
- #: classes/class-s2-admin.php:659
113
  msgid "Revert"
114
  msgstr ""
115
 
116
- #: admin/settings.php:193
117
  msgid "Send Admins notifications for new"
118
  msgstr ""
119
 
120
- #: admin/settings.php:195
121
  msgid "Subscriptions"
122
  msgstr ""
123
 
124
- #: admin/settings.php:197
125
  msgid "Unsubscriptions"
126
  msgstr ""
127
 
128
- #: admin/settings.php:199
129
  msgid "Both"
130
  msgstr ""
131
 
132
- #: admin/settings.php:201
133
  msgid "Neither"
134
  msgstr ""
135
 
136
- #: admin/settings.php:203
137
  msgid "Include theme CSS stylesheet in HTML notifications"
138
  msgstr ""
139
 
140
- #: admin/settings.php:205 admin/settings.php:211 admin/settings.php:225
141
- #: admin/settings.php:230 admin/settings.php:235 admin/settings.php:355
142
- #: admin/settings.php:360 admin/settings.php:374 admin/settings.php:381
143
- #: admin/settings.php:393 admin/settings.php:398 admin/subscribers.php:268
144
- #: admin/your_subscriptions.php:121 admin/your_subscriptions.php:162
145
  msgid "Yes"
146
  msgstr ""
147
 
148
- #: admin/settings.php:207 admin/settings.php:213 admin/settings.php:227
149
- #: admin/settings.php:232 admin/settings.php:237 admin/settings.php:352
150
- #: admin/settings.php:357 admin/settings.php:362 admin/settings.php:376
151
- #: admin/settings.php:383 admin/settings.php:390 admin/settings.php:395
152
- #: admin/settings.php:400 admin/subscribers.php:270
153
- #: admin/your_subscriptions.php:123 admin/your_subscriptions.php:166
154
  msgid "No"
155
  msgstr ""
156
 
157
- #: admin/settings.php:209
158
  msgid "Send Emails for Pages"
159
  msgstr ""
160
 
161
- #: admin/settings.php:217
162
  msgid ""
163
  "Subscribe2 will send email notifications for the following custom post types"
164
  msgstr ""
165
 
166
- #: admin/settings.php:223
167
  msgid "Send Emails for Password Protected Posts"
168
  msgstr ""
169
 
170
- #: admin/settings.php:228
171
  msgid "Send Emails for Private Posts"
172
  msgstr ""
173
 
174
- #: admin/settings.php:233
175
  msgid "Include Sticky Posts at the top of all Digest Notifications"
176
  msgstr ""
177
 
178
- #: admin/settings.php:238
179
  msgid "Send Email From"
180
  msgstr ""
181
 
182
- #: admin/settings.php:243
183
  msgid "Send Emails"
184
  msgstr ""
185
 
186
- #: admin/settings.php:245
187
  msgid "For digest notifications, date order for posts is"
188
  msgstr ""
189
 
190
- #: admin/settings.php:247
191
  msgid "Descending"
192
  msgstr ""
193
 
194
- #: admin/settings.php:249
195
  msgid "Ascending"
196
  msgstr ""
197
 
198
- #: admin/settings.php:251
199
  msgid "Add Tracking Parameters to the Permalink"
200
  msgstr ""
201
 
202
- #: admin/settings.php:253
203
  msgid ""
204
  "eg. utm_source=subscribe2&amp;utm_medium=email&amp;"
205
  "utm_campaign=postnotify&amp;utm_id={ID}&amp;utm_title={TITLE}"
206
  msgstr ""
207
 
208
- #: admin/settings.php:264
209
- msgid "New Post email (must not be empty)"
210
  msgstr ""
211
 
212
- #: admin/settings.php:265 admin/settings.php:295 admin/settings.php:300
213
  msgid "Subject Line"
214
  msgstr ""
215
 
216
- #: admin/settings.php:270
217
  msgid "Send Email Preview"
218
  msgstr ""
219
 
220
- #: admin/settings.php:271
221
  msgid "Message substitutions"
222
  msgstr ""
223
 
224
- #: admin/settings.php:273
225
  msgid ""
226
  "IF THE FOLLOWING KEYWORDS ARE ALSO IN YOUR POST THEY WILL BE SUBSTITUTED"
227
  msgstr ""
228
 
229
- #: admin/settings.php:276
230
  msgid "the post's title<br />(<i>for per-post emails only</i>)"
231
  msgstr ""
232
 
233
- #: admin/settings.php:277
234
  msgid ""
235
  "the excerpt or the entire post<br />(<i>based on the subscriber's "
236
  "preferences</i>)"
237
  msgstr ""
238
 
239
- #: admin/settings.php:278
240
  msgid ""
241
  "the excerpt of the post and the time it was posted<br />(<i>for digest "
242
  "emails only</i>)"
243
  msgstr ""
244
 
245
- #: admin/settings.php:279
246
  msgid "a list of post titles<br />(<i>for digest emails only</i>)"
247
  msgstr ""
248
 
249
- #: admin/settings.php:280
250
  msgid ""
251
  "a list of post titles followed by links to the articles<br />(<i>for digest "
252
  "emails only</i>)"
253
  msgstr ""
254
 
255
- #: admin/settings.php:281
 
 
 
 
 
 
 
256
  msgid "the post's permalink<br />(<i>for per-post emails only</i>)"
257
  msgstr ""
258
 
259
- #: admin/settings.php:282
260
  msgid "the post's permalink after conversion by TinyURL"
261
  msgstr ""
262
 
263
- #: admin/settings.php:283
264
  msgid "the date the post was made<br />(<i>for per-post emails only</i>)"
265
  msgstr ""
266
 
267
- #: admin/settings.php:284
268
  msgid "the time the post was made<br />(<i>for per-post emails only</i>)"
269
  msgstr ""
270
 
271
- #: admin/settings.php:285
272
  msgid "the admin or post author's name"
273
  msgstr ""
274
 
275
- #: admin/settings.php:286
276
  msgid "the admin or post author's email"
277
  msgstr ""
278
 
279
- #: admin/settings.php:287
280
  msgid "the post author's name"
281
  msgstr ""
282
 
283
- #: admin/settings.php:288
284
  msgid ""
285
  "the generated link to confirm a request<br />(<i>only used in the "
286
  "confirmation email template</i>)"
287
  msgstr ""
288
 
289
- #: admin/settings.php:289
290
  msgid ""
291
  "Action performed by LINK in confirmation email<br />(<i>only used in the "
292
  "confirmation email template</i>)"
293
  msgstr ""
294
 
295
- #: admin/settings.php:290
296
  msgid "the post's assigned categories"
297
  msgstr ""
298
 
299
- #: admin/settings.php:291
300
  msgid "the post's assigned Tags"
301
  msgstr ""
302
 
303
- #: admin/settings.php:292
304
  msgid ""
305
  "the number of posts included in the digest email<br />(<i>for digest emails "
306
  "only</i>)"
307
  msgstr ""
308
 
309
- #: admin/settings.php:294
310
  msgid "Subscribe / Unsubscribe confirmation email"
311
  msgstr ""
312
 
313
- #: admin/settings.php:299
314
  msgid "Reminder email to Unconfirmed Subscribers"
315
  msgstr ""
316
 
317
- #: admin/settings.php:311
318
  msgid "Compulsory Categories"
319
  msgstr ""
320
 
321
- #: admin/settings.php:313
322
  msgid ""
323
  "Compulsory categories will be checked by default for Registered Subscribers"
324
  msgstr ""
325
 
326
- #: admin/settings.php:320
327
  msgid "Excluded Categories"
328
  msgstr ""
329
 
330
- #: admin/settings.php:322
331
  msgid ""
332
  "Posts assigned to any Excluded Category do not generate notifications and "
333
  "are not included in digest notifications"
334
  msgstr ""
335
 
336
- #: admin/settings.php:326
337
  msgid "Allow registered users to subscribe to excluded categories?"
338
  msgstr ""
339
 
340
- #: admin/settings.php:334
341
  msgid "Excluded Formats"
342
  msgstr ""
343
 
344
- #: admin/settings.php:336
345
  msgid ""
346
  "Posts assigned to any Excluded Format do not generate notifications and are "
347
  "not included in digest notifications"
348
  msgstr ""
349
 
350
- #: admin/settings.php:344
351
  msgid "Auto-Subscribe"
352
  msgstr ""
353
 
354
- #: admin/settings.php:346
355
  msgid "Subscribe new users registering with your blog"
356
  msgstr ""
357
 
358
- #: admin/settings.php:348
359
  msgid "Automatically"
360
  msgstr ""
361
 
362
- #: admin/settings.php:350
363
  msgid "Display option on Registration Form"
364
  msgstr ""
365
 
366
- #: admin/settings.php:353
367
  msgid "Auto-subscribe includes any excluded categories"
368
  msgstr ""
369
 
370
- #: admin/settings.php:358
371
  msgid "Registration Form option is checked by default"
372
  msgstr ""
373
 
374
- #: admin/settings.php:363
375
  msgid "Auto-subscribe users to receive email as"
376
  msgstr ""
377
 
378
- #: admin/settings.php:365 admin/subscribers.php:258
379
- #: admin/your_subscriptions.php:110
380
  msgid "HTML - Full"
381
  msgstr ""
382
 
383
- #: admin/settings.php:367 admin/subscribers.php:259
384
- #: admin/your_subscriptions.php:112
385
  msgid "HTML - Excerpt"
386
  msgstr ""
387
 
388
- #: admin/settings.php:369 admin/subscribers.php:260
389
- #: admin/your_subscriptions.php:114
390
  msgid "Plain Text - Full"
391
  msgstr ""
392
 
393
- #: admin/settings.php:371 admin/subscribers.php:261
394
- #: admin/your_subscriptions.php:116
395
  msgid "Plain Text - Excerpt"
396
  msgstr ""
397
 
398
- #: admin/settings.php:372
399
  msgid "Registered Users have the option to auto-subscribe to new categories"
400
  msgstr ""
401
 
402
- #: admin/settings.php:378
403
  msgid "New categories are immediately excluded"
404
  msgstr ""
405
 
406
- #: admin/settings.php:379
407
  msgid ""
408
  "Option for Registered Users to auto-subscribe to new categories is checked "
409
  "by default"
410
  msgstr ""
411
 
412
- #: admin/settings.php:384
413
  msgid "Display checkbox to allow subscriptions from the comment form"
414
  msgstr ""
415
 
416
- #: admin/settings.php:386
417
  msgid "Before the Comment Submit button"
418
  msgstr ""
419
 
420
- #: admin/settings.php:388
421
  msgid "After the Comment Submit button"
422
  msgstr ""
423
 
424
- #: admin/settings.php:391
425
  msgid "Comment form checkbox is checked by default"
426
  msgstr ""
427
 
428
- #: admin/settings.php:396
429
  msgid "Show one-click subscription on profile page"
430
  msgstr ""
431
 
432
- #: admin/settings.php:411
433
  msgid "Set default Subscribe2 page as"
434
  msgstr ""
435
 
436
- #: admin/settings.php:417
 
 
 
 
437
  msgid "Set the number of Subscribers displayed per page"
438
  msgstr ""
439
 
440
- #: admin/settings.php:427
441
  msgid "Show a link to your subscription page in \"meta\"?"
442
  msgstr ""
443
 
444
- #: admin/settings.php:431
445
  msgid "Show the Subscribe2 button on the Write toolbar?"
446
  msgstr ""
447
 
448
- #: admin/settings.php:435
449
  msgid "Enable AJAX style subscription form?"
450
  msgstr ""
451
 
452
- #: admin/settings.php:439
453
  msgid "Enable Subscribe2 Widget?"
454
  msgstr ""
455
 
456
- #: admin/settings.php:443
457
  msgid "Enable Subscribe2 Counter Widget?"
458
  msgstr ""
459
 
460
- #: admin/settings.php:447
461
  msgid "Disable email notifications is checked by default on authoring pages?"
462
  msgstr ""
463
 
464
- #: admin/settings.php:455
465
  msgid "Barred Domains"
466
  msgstr ""
467
 
468
- #: admin/settings.php:457
469
  msgid ""
470
  "Enter domains to bar from public subscriptions: <br /> (Use a new line for "
471
  "each entry and omit the \"@\" symbol, for example email.com)"
472
  msgstr ""
473
 
474
- #: admin/settings.php:460
475
  msgid "Links"
476
  msgstr ""
477
 
478
- #: admin/settings.php:461
479
  msgid "Plugin Site"
480
  msgstr ""
481
 
482
- #: admin/settings.php:462 classes/class-s2-admin.php:162
483
  msgid "Translation Files"
484
  msgstr ""
485
 
486
- #: admin/settings.php:463
487
  msgid "Plugin Forum"
488
  msgstr ""
489
 
490
- #: admin/settings.php:464
491
  msgid "Plugin Blog"
492
  msgstr ""
493
 
494
- #: admin/settings.php:465
495
  msgid "Make a donation via PayPal"
496
  msgstr ""
497
 
498
- #: admin/settings.php:471
499
  msgid "Submit"
500
  msgstr ""
501
 
502
- #: admin/settings.php:475
503
  msgid "Reset to Default Settings"
504
  msgstr ""
505
 
506
- #: admin/settings.php:476
507
  msgid ""
508
  "Use this to reset all options to their defaults. This <strong><em>will not</"
509
  "em></strong> modify your list of subscribers."
510
  msgstr ""
511
 
512
- #: admin/settings.php:478
513
  msgid "RESET"
514
  msgstr ""
515
 
516
- #: admin/subscribers.php:25
517
  msgid "Address(es) subscribed!"
518
  msgstr ""
519
 
520
- #: admin/subscribers.php:32
521
  msgid "Address(es) unsubscribed!"
522
  msgstr ""
523
 
524
- #: admin/subscribers.php:36
525
- msgid "Some emails were not processed, the following were already subscribed"
 
 
526
  msgstr ""
527
 
528
- #: admin/subscribers.php:39
529
- msgid "Some emails were not processed, the following were not in the database"
 
530
  msgstr ""
531
 
532
  #: admin/subscribers.php:48
 
 
 
 
533
  msgid "Address(es) deleted!"
534
  msgstr ""
535
 
536
- #: admin/subscribers.php:56
537
  msgid "Delete failed! You cannot delete some or all of these users"
538
  msgstr ""
539
 
540
- #: admin/subscribers.php:59
541
  msgid "User(s) deleted! Any posts made by these users were assigned to you"
542
  msgstr ""
543
 
544
- #: admin/subscribers.php:71
545
  msgid "Status changed!"
546
  msgstr ""
547
 
548
- #: admin/subscribers.php:74
549
  msgid "Reminder Email(s) Sent!"
550
  msgstr ""
551
 
552
- #: admin/subscribers.php:77
553
  msgid "Registered Users Subscribed!"
554
  msgstr ""
555
 
556
- #: admin/subscribers.php:80
557
  msgid "Registered Users Unsubscribed!"
558
  msgstr ""
559
 
560
- #: admin/subscribers.php:83
561
  msgid "Format updated for Selected Registered Users!"
562
  msgstr ""
563
 
564
- #: admin/subscribers.php:86
565
  msgid "Digest Subscription updated for Selected Registered Users!"
566
  msgstr ""
567
 
568
- #: admin/subscribers.php:173 classes/class-s2-admin.php:60
569
- #: classes/class-s2-admin.php:490
570
  msgid "Public Subscribers"
571
  msgstr ""
572
 
573
- #: admin/subscribers.php:173 classes/class-s2-admin.php:65
574
- #: classes/class-s2-admin.php:494
575
  msgid "Registered Subscribers"
576
  msgstr ""
577
 
578
- #: admin/subscribers.php:185 admin/subscribers.php:207
579
  msgid "Add/Remove Subscribers"
580
  msgstr ""
581
 
582
- #: admin/subscribers.php:186
583
  msgid "Enter addresses, one per line or comma-separated"
584
  msgstr ""
585
 
586
- #: admin/subscribers.php:189 admin/subscribers.php:253
587
- #: admin/your_subscriptions.php:260 classes/class-s2-frontend.php:28
588
  msgid "Subscribe"
589
  msgstr ""
590
 
591
- #: admin/subscribers.php:190 admin/subscribers.php:254
592
- #: admin/your_subscriptions.php:239 classes/class-s2-frontend.php:27
593
  msgid "Unsubscribe"
594
  msgstr ""
595
 
596
- #: admin/subscribers.php:195 admin/subscribers.php:214
597
  msgid "Current Subscribers"
598
  msgstr ""
599
 
600
- #: admin/subscribers.php:208
601
  msgid "Add Registered User"
602
  msgstr ""
603
 
604
- #: admin/subscribers.php:223
605
  msgid "Filter"
606
  msgstr ""
607
 
608
- #: admin/subscribers.php:227
609
  msgid "Send Reminder Email"
610
  msgstr ""
611
 
612
- #: admin/subscribers.php:234
613
  msgid "Save Emails to CSV File"
614
  msgstr ""
615
 
616
- #: admin/subscribers.php:241
617
  msgid "Search"
618
  msgstr ""
619
 
620
- #: admin/subscribers.php:248
621
  msgid "Bulk Management"
622
  msgstr ""
623
 
624
- #: admin/subscribers.php:250 admin/subscribers.php:264
625
  msgid ""
626
  "Preferences for Registered Users selected in the filter above can be changed "
627
  "using this section."
628
  msgstr ""
629
 
630
- #: admin/subscribers.php:251 admin/subscribers.php:265
631
  msgid "Consider User Privacy as changes cannot be undone"
632
  msgstr ""
633
 
634
- #: admin/subscribers.php:252
635
  msgid "Action to perform"
636
  msgstr ""
637
 
638
- #: admin/subscribers.php:256
639
  msgid "Bulk Update Categories"
640
  msgstr ""
641
 
642
- #: admin/subscribers.php:257
643
  msgid "Send email as"
644
  msgstr ""
645
 
646
- #: admin/subscribers.php:262
647
  msgid "Bulk Update Format"
648
  msgstr ""
649
 
650
- #: admin/subscribers.php:266
651
  msgid "Subscribe Selected Users to recieve a periodic digest notification"
652
  msgstr ""
653
 
654
- #: admin/subscribers.php:271
655
  msgid "Bulk Update Digest Subscription"
656
  msgstr ""
657
 
@@ -659,79 +687,79 @@ msgstr ""
659
  msgid "Subscription preferences updated."
660
  msgstr ""
661
 
662
- #: admin/your_subscriptions.php:96
663
  msgid "Notification Settings"
664
  msgstr ""
665
 
666
- #: admin/your_subscriptions.php:99
667
  msgid "Editing Subscribe2 preferences for user"
668
  msgstr ""
669
 
670
- #: admin/your_subscriptions.php:108
671
  msgid "Receive email as"
672
  msgstr ""
673
 
674
- #: admin/your_subscriptions.php:119
675
  msgid "Automatically subscribe me to newly created categories"
676
  msgstr ""
677
 
678
- #: admin/your_subscriptions.php:129
679
  msgid "One Click Subscription / Unsubscription"
680
  msgstr ""
681
 
682
- #: admin/your_subscriptions.php:130
683
  msgid "Subscribe to All"
684
  msgstr ""
685
 
686
- #: admin/your_subscriptions.php:131
687
  msgid "Unsubscribe from All"
688
  msgstr ""
689
 
690
- #: admin/your_subscriptions.php:141
691
  msgid "Unsubscribe me from this blog"
692
  msgstr ""
693
 
694
- #: admin/your_subscriptions.php:145
695
  msgid "Subscribe to all categories"
696
  msgstr ""
697
 
698
- #: admin/your_subscriptions.php:147
699
  msgid "Subscribed Categories on"
700
  msgstr ""
701
 
702
- #: admin/your_subscriptions.php:149
703
  msgid "Subscribed Categories"
704
  msgstr ""
705
 
706
- #: admin/your_subscriptions.php:156
707
  msgid "Receive periodic summaries of new posts?"
708
  msgstr ""
709
 
710
- #: admin/your_subscriptions.php:172
711
  msgid "Do not send notifications for post made by these authors"
712
  msgstr ""
713
 
714
- #: admin/your_subscriptions.php:178
715
  msgid "Update Preferences"
716
  msgstr ""
717
 
718
- #: admin/your_subscriptions.php:228
719
  msgid "Subscribed Blogs"
720
  msgstr ""
721
 
722
- #: admin/your_subscriptions.php:233 admin/your_subscriptions.php:254
723
  msgid "Viewing Settings Now"
724
  msgstr ""
725
 
726
- #: admin/your_subscriptions.php:237 admin/your_subscriptions.php:258
727
  msgid "View Settings"
728
  msgstr ""
729
 
730
- #: admin/your_subscriptions.php:249
731
  msgid "Subscribe to new blogs"
732
  msgstr ""
733
 
734
- #. #-#-#-#-# Subscribe2.pot (Subscribe2 9.0) #-#-#-#-#
735
  #. Plugin Name of the plugin/theme
736
  #: classes/class-s2-admin.php:8 include/widget.php:17
737
  msgid "Subscribe2"
@@ -944,78 +972,91 @@ msgid ""
944
  "Check here to disable sending of an email notification for this post/page"
945
  msgstr ""
946
 
947
- #: classes/class-s2-admin.php:340 classes/class-s2-admin.php:397
948
- #: classes/class-s2-admin.php:437
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
949
  msgid "Select / Unselect All"
950
  msgstr ""
951
 
952
- #: classes/class-s2-admin.php:489
953
  msgid "All Users and Subscribers"
954
  msgstr ""
955
 
956
- #: classes/class-s2-admin.php:491
957
  msgid "Confirmed"
958
  msgstr ""
959
 
960
- #: classes/class-s2-admin.php:492
961
  msgid "Unconfirmed"
962
  msgstr ""
963
 
964
- #: classes/class-s2-admin.php:493
965
  msgid "All Registered Users"
966
  msgstr ""
967
 
968
- #: classes/class-s2-admin.php:589
969
  msgid "Post Author"
970
  msgstr ""
971
 
972
- #: classes/class-s2-admin.php:613
973
  msgid ""
974
  "The WordPress cron functions may be disabled on this server. Digest "
975
  "notifications may not work."
976
  msgstr ""
977
 
978
- #: classes/class-s2-admin.php:618
979
  msgid "For each Post"
980
  msgstr ""
981
 
982
- #: classes/class-s2-admin.php:635
983
  msgid "Current UTC time is"
984
  msgstr ""
985
 
986
- #: classes/class-s2-admin.php:637
987
  msgid "Current blog time is"
988
  msgstr ""
989
 
990
- #: classes/class-s2-admin.php:639
991
  msgid "Next email notification will be sent when your blog time is after"
992
  msgstr ""
993
 
994
- #: classes/class-s2-admin.php:661
995
  msgid "Attempt to resend the last Digest Notification email"
996
  msgstr ""
997
 
998
- #: classes/class-s2-admin.php:662
999
  msgid "Resend Digest"
1000
  msgstr ""
1001
 
1002
- #: classes/class-s2-admin.php:676
1003
- msgid "Select a page"
1004
- msgstr ""
1005
-
1006
- #: classes/class-s2-admin.php:901
1007
  msgid "Email subscription"
1008
  msgstr ""
1009
 
1010
- #: classes/class-s2-admin.php:903
1011
  msgid "Subscribe / Unsubscribe"
1012
  msgstr ""
1013
 
1014
- #: classes/class-s2-admin.php:904
1015
  msgid "Receive notifications"
1016
  msgstr ""
1017
 
1018
- #: classes/class-s2-admin.php:905
1019
  msgid ""
1020
  "Check if you want to receive email notification when new posts are published"
1021
  msgstr ""
@@ -1064,158 +1105,140 @@ msgid ""
1064
  msgstr ""
1065
 
1066
  #: classes/class-s2-core.php:44
1067
- msgid "You must to create a WordPress page for this plugin to work correctly."
1068
  msgstr ""
1069
 
1070
  #: classes/class-s2-core.php:46
1071
- msgid ""
1072
- "Your chosen email type (per-post or digest) does not support the following "
1073
- "keywords:"
1074
- msgstr ""
1075
-
1076
- #: classes/class-s2-core.php:48
1077
  msgid "Message sent!"
1078
  msgstr ""
1079
 
1080
- #: classes/class-s2-core.php:50
1081
  msgid "Message failed!"
1082
  msgstr ""
1083
 
1084
- #: classes/class-s2-core.php:53
1085
  msgid "No such email address is registered."
1086
  msgstr ""
1087
 
1088
- #: classes/class-s2-core.php:55
1089
  msgid "You have successfully subscribed!"
1090
  msgstr ""
1091
 
1092
- #: classes/class-s2-core.php:57
1093
  msgid "You have successfully unsubscribed."
1094
  msgstr ""
1095
 
1096
- #: classes/class-s2-core.php:59
1097
  msgid "subscribe"
1098
  msgstr ""
1099
 
1100
- #: classes/class-s2-core.php:61
1101
  msgid "unsubscribe"
1102
  msgstr ""
1103
 
1104
- #: classes/class-s2-core.php:64
1105
  msgid "Options saved!"
1106
  msgstr ""
1107
 
1108
- #: classes/class-s2-core.php:65
1109
  msgid "Options reset!"
1110
  msgstr ""
1111
 
1112
- #: classes/class-s2-core.php:617
1113
  msgid "Plain Text Excerpt Preview"
1114
  msgstr ""
1115
 
1116
- #: classes/class-s2-core.php:619
1117
  msgid "Plain Text Full Preview"
1118
  msgstr ""
1119
 
1120
- #: classes/class-s2-core.php:621
1121
  msgid "HTML Excerpt Preview"
1122
  msgstr ""
1123
 
1124
- #: classes/class-s2-core.php:623
1125
  msgid "HTML Full Preview"
1126
  msgstr ""
1127
 
1128
- #: classes/class-s2-core.php:1172
1129
- msgid "Registered User"
1130
- msgstr ""
1131
-
1132
- #: classes/class-s2-core.php:1177
1133
- msgid "Confirmed Public Subscriber"
1134
- msgstr ""
1135
-
1136
- #: classes/class-s2-core.php:1179
1137
- msgid "Unconfirmed Public Subscriber"
1138
- msgstr ""
1139
-
1140
- #: classes/class-s2-core.php:1216
1141
  msgid "Check here to Subscribe to email notifications for new posts"
1142
  msgstr ""
1143
 
1144
- #: classes/class-s2-core.php:1222
1145
  msgid ""
1146
  "By registering with this blog you are also agreeing to receive email "
1147
  "notifications for new posts but you can unsubscribe at anytime"
1148
  msgstr ""
1149
 
1150
- #: classes/class-s2-core.php:1248
1151
  msgid "Check here to Subscribe to notifications for new posts"
1152
  msgstr ""
1153
 
1154
- #: classes/class-s2-core.php:1338
1155
  msgid "Weekly"
1156
  msgstr ""
1157
 
1158
- #: classes/class-s2-core.php:1472 classes/class-s2-core.php:1473
1159
  msgid "Author"
1160
  msgstr ""
1161
 
1162
- #: classes/class-s2-core.php:1479
1163
  msgid "Posted on"
1164
  msgstr ""
1165
 
1166
- #: classes/class-s2-core.php:1497 classes/class-s2-core.php:1498
1167
  msgid "Posted in"
1168
  msgstr ""
1169
 
1170
- #: classes/class-s2-core.php:1503 classes/class-s2-core.php:1504
1171
  msgid "Tagged as"
1172
  msgstr ""
1173
 
1174
- #: classes/class-s2-core.php:1570
1175
  msgid "Digest Email"
1176
  msgstr ""
1177
 
1178
- #: classes/class-s2-core.php:1580
1179
  msgid "Digest Preview"
1180
  msgstr ""
1181
 
1182
- #: classes/class-s2-frontend.php:58
1183
  msgid "Enter email address..."
1184
  msgstr ""
1185
 
1186
- #: classes/class-s2-frontend.php:78 classes/class-s2-frontend.php:80
1187
  msgid "Your email:"
1188
  msgstr ""
1189
 
1190
- #: classes/class-s2-frontend.php:199
1191
  msgid "Subscription Confirmation"
1192
  msgstr ""
1193
 
1194
- #: classes/class-s2-frontend.php:201
1195
  msgid "Unsubscription Confirmation"
1196
  msgstr ""
1197
 
1198
- #: classes/class-s2-frontend.php:240
1199
  msgid "New Subscription"
1200
  msgstr ""
1201
 
1202
- #: classes/class-s2-frontend.php:242
1203
  msgid "subscribed to email notifications!"
1204
  msgstr ""
1205
 
1206
- #: classes/class-s2-frontend.php:264
1207
  msgid "New Unsubscription"
1208
  msgstr ""
1209
 
1210
- #: classes/class-s2-frontend.php:266
1211
  msgid "unsubscribed from email notifications!"
1212
  msgstr ""
1213
 
1214
- #: classes/class-s2-frontend.php:293
1215
  msgid "[Un]Subscribe to Posts"
1216
  msgstr ""
1217
 
1218
- #: classes/class-s2-frontend.php:324 classes/class-s2-frontend.php:326
1219
  msgid "Subscribe to this blog"
1220
  msgstr ""
1221
 
@@ -1454,9 +1477,9 @@ msgid ""
1454
  "a site level"
1455
  msgstr ""
1456
 
1457
- #. #-#-#-#-# Subscribe2.pot (Subscribe2 9.0) #-#-#-#-#
1458
  #. Plugin URI of the plugin/theme
1459
- #. #-#-#-#-# Subscribe2.pot (Subscribe2 9.0) #-#-#-#-#
1460
  #. Author URI of the plugin/theme
1461
  msgid "http://subscribe2.wordpress.com"
1462
  msgstr ""
1
+ # Copyright (C) 2014 Subscribe2
2
  # This file is distributed under the same license as the Subscribe2 package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Subscribe2 9.1\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/Subscribe2\n"
7
+ "POT-Creation-Date: 2014-01-09 19:44:43+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
+ #: admin/send_email.php:71
16
  msgid "Your email was empty"
17
  msgstr ""
18
 
19
+ #: admin/send_email.php:78
20
  msgid "Check your settings and check with your hosting provider"
21
  msgstr ""
22
 
23
+ #: admin/send_email.php:83
24
  msgid "Preview message sent!"
25
  msgstr ""
26
 
27
+ #: admin/send_email.php:99
28
  msgid "Send an email to subscribers"
29
  msgstr ""
30
 
31
+ #: admin/send_email.php:107
32
  msgid "A message from"
33
  msgstr ""
34
 
35
+ #: admin/send_email.php:112
36
  msgid "Subject"
37
  msgstr ""
38
 
39
+ #: admin/send_email.php:115
40
  msgid "Add More Files"
41
  msgstr ""
42
 
43
+ #: admin/send_email.php:117
44
  msgid "Recipients:"
45
  msgstr ""
46
 
47
+ #: admin/send_email.php:120
48
  msgid "Preview"
49
  msgstr ""
50
 
51
+ #: admin/send_email.php:120
52
  msgid "Send"
53
  msgstr ""
54
 
66
  msgid "Attempt made to resend the Digest Notification email"
67
  msgstr ""
68
 
69
+ #: admin/settings.php:139
70
+ msgid ""
71
+ "Your chosen email type (per-post or digest) does not support the following "
72
+ "keywords:"
73
+ msgstr ""
74
+
75
+ #: admin/settings.php:140
76
+ msgid "Modify your template"
77
+ msgstr ""
78
+
79
+ #: admin/settings.php:153
80
  msgid ""
81
  "You appear to be sending notifications from an email address from a "
82
  "different domain name to your blog, this may result in failed emails"
83
  msgstr ""
84
 
85
+ #: admin/settings.php:164 classes/class-s2-admin.php:81
86
  msgid "Email Settings"
87
  msgstr ""
88
 
89
+ #: admin/settings.php:165 classes/class-s2-admin.php:89
90
  msgid "Templates"
91
  msgstr ""
92
 
93
+ #: admin/settings.php:166 classes/class-s2-admin.php:96
94
  msgid "Registered Users"
95
  msgstr ""
96
 
97
+ #: admin/settings.php:167 classes/class-s2-admin.php:103
98
  msgid "Appearance"
99
  msgstr ""
100
 
101
+ #: admin/settings.php:168 classes/class-s2-admin.php:110
102
  msgid "Miscellaneous"
103
  msgstr ""
104
 
105
+ #: admin/settings.php:189
106
  msgid ""
107
  "Restrict the number of <strong>recipients per email</strong> to (0 for "
108
  "unlimited)"
109
  msgstr ""
110
 
111
+ #: admin/settings.php:191 admin/settings.php:425
112
+ #: classes/class-s2-admin.php:692 classes/class-s2-list-table.php:36
113
  msgid "Edit"
114
  msgstr ""
115
 
116
+ #: admin/settings.php:194 admin/settings.php:428
117
+ #: classes/class-s2-admin.php:706
118
  msgid "Update"
119
  msgstr ""
120
 
121
+ #: admin/settings.php:195 admin/settings.php:429
122
+ #: classes/class-s2-admin.php:707
123
  msgid "Revert"
124
  msgstr ""
125
 
126
+ #: admin/settings.php:197
127
  msgid "Send Admins notifications for new"
128
  msgstr ""
129
 
130
+ #: admin/settings.php:199
131
  msgid "Subscriptions"
132
  msgstr ""
133
 
134
+ #: admin/settings.php:201
135
  msgid "Unsubscriptions"
136
  msgstr ""
137
 
138
+ #: admin/settings.php:203
139
  msgid "Both"
140
  msgstr ""
141
 
142
+ #: admin/settings.php:205
143
  msgid "Neither"
144
  msgstr ""
145
 
146
+ #: admin/settings.php:207
147
  msgid "Include theme CSS stylesheet in HTML notifications"
148
  msgstr ""
149
 
150
+ #: admin/settings.php:209 admin/settings.php:215 admin/settings.php:229
151
+ #: admin/settings.php:234 admin/settings.php:239 admin/settings.php:360
152
+ #: admin/settings.php:365 admin/settings.php:379 admin/settings.php:386
153
+ #: admin/settings.php:398 admin/settings.php:403 admin/subscribers.php:281
154
+ #: admin/your_subscriptions.php:123 admin/your_subscriptions.php:164
155
  msgid "Yes"
156
  msgstr ""
157
 
158
+ #: admin/settings.php:211 admin/settings.php:217 admin/settings.php:231
159
+ #: admin/settings.php:236 admin/settings.php:241 admin/settings.php:357
160
+ #: admin/settings.php:362 admin/settings.php:367 admin/settings.php:381
161
+ #: admin/settings.php:388 admin/settings.php:395 admin/settings.php:400
162
+ #: admin/settings.php:405 admin/subscribers.php:283
163
+ #: admin/your_subscriptions.php:125 admin/your_subscriptions.php:168
164
  msgid "No"
165
  msgstr ""
166
 
167
+ #: admin/settings.php:213
168
  msgid "Send Emails for Pages"
169
  msgstr ""
170
 
171
+ #: admin/settings.php:221
172
  msgid ""
173
  "Subscribe2 will send email notifications for the following custom post types"
174
  msgstr ""
175
 
176
+ #: admin/settings.php:227
177
  msgid "Send Emails for Password Protected Posts"
178
  msgstr ""
179
 
180
+ #: admin/settings.php:232
181
  msgid "Send Emails for Private Posts"
182
  msgstr ""
183
 
184
+ #: admin/settings.php:237
185
  msgid "Include Sticky Posts at the top of all Digest Notifications"
186
  msgstr ""
187
 
188
+ #: admin/settings.php:242
189
  msgid "Send Email From"
190
  msgstr ""
191
 
192
+ #: admin/settings.php:247
193
  msgid "Send Emails"
194
  msgstr ""
195
 
196
+ #: admin/settings.php:249
197
  msgid "For digest notifications, date order for posts is"
198
  msgstr ""
199
 
200
+ #: admin/settings.php:251
201
  msgid "Descending"
202
  msgstr ""
203
 
204
+ #: admin/settings.php:253
205
  msgid "Ascending"
206
  msgstr ""
207
 
208
+ #: admin/settings.php:255
209
  msgid "Add Tracking Parameters to the Permalink"
210
  msgstr ""
211
 
212
+ #: admin/settings.php:257
213
  msgid ""
214
  "eg. utm_source=subscribe2&amp;utm_medium=email&amp;"
215
  "utm_campaign=postnotify&amp;utm_id={ID}&amp;utm_title={TITLE}"
216
  msgstr ""
217
 
218
+ #: admin/settings.php:268
219
+ msgid "Notification email (must not be empty)"
220
  msgstr ""
221
 
222
+ #: admin/settings.php:269 admin/settings.php:300 admin/settings.php:305
223
  msgid "Subject Line"
224
  msgstr ""
225
 
226
+ #: admin/settings.php:274
227
  msgid "Send Email Preview"
228
  msgstr ""
229
 
230
+ #: admin/settings.php:275
231
  msgid "Message substitutions"
232
  msgstr ""
233
 
234
+ #: admin/settings.php:277
235
  msgid ""
236
  "IF THE FOLLOWING KEYWORDS ARE ALSO IN YOUR POST THEY WILL BE SUBSTITUTED"
237
  msgstr ""
238
 
239
+ #: admin/settings.php:280
240
  msgid "the post's title<br />(<i>for per-post emails only</i>)"
241
  msgstr ""
242
 
243
+ #: admin/settings.php:281
244
  msgid ""
245
  "the excerpt or the entire post<br />(<i>based on the subscriber's "
246
  "preferences</i>)"
247
  msgstr ""
248
 
249
+ #: admin/settings.php:282
250
  msgid ""
251
  "the excerpt of the post and the time it was posted<br />(<i>for digest "
252
  "emails only</i>)"
253
  msgstr ""
254
 
255
+ #: admin/settings.php:283
256
  msgid "a list of post titles<br />(<i>for digest emails only</i>)"
257
  msgstr ""
258
 
259
+ #: admin/settings.php:284
260
  msgid ""
261
  "a list of post titles followed by links to the articles<br />(<i>for digest "
262
  "emails only</i>)"
263
  msgstr ""
264
 
265
+ #: admin/settings.php:285
266
+ msgid ""
267
+ "a reference style list of links at the end of the email with corresponding "
268
+ "numbers in the content<br />(<i>for the full content plain text per-post "
269
+ "email only</i>)"
270
+ msgstr ""
271
+
272
+ #: admin/settings.php:286
273
  msgid "the post's permalink<br />(<i>for per-post emails only</i>)"
274
  msgstr ""
275
 
276
+ #: admin/settings.php:287
277
  msgid "the post's permalink after conversion by TinyURL"
278
  msgstr ""
279
 
280
+ #: admin/settings.php:288
281
  msgid "the date the post was made<br />(<i>for per-post emails only</i>)"
282
  msgstr ""
283
 
284
+ #: admin/settings.php:289
285
  msgid "the time the post was made<br />(<i>for per-post emails only</i>)"
286
  msgstr ""
287
 
288
+ #: admin/settings.php:290
289
  msgid "the admin or post author's name"
290
  msgstr ""
291
 
292
+ #: admin/settings.php:291
293
  msgid "the admin or post author's email"
294
  msgstr ""
295
 
296
+ #: admin/settings.php:292
297
  msgid "the post author's name"
298
  msgstr ""
299
 
300
+ #: admin/settings.php:293
301
  msgid ""
302
  "the generated link to confirm a request<br />(<i>only used in the "
303
  "confirmation email template</i>)"
304
  msgstr ""
305
 
306
+ #: admin/settings.php:294
307
  msgid ""
308
  "Action performed by LINK in confirmation email<br />(<i>only used in the "
309
  "confirmation email template</i>)"
310
  msgstr ""
311
 
312
+ #: admin/settings.php:295
313
  msgid "the post's assigned categories"
314
  msgstr ""
315
 
316
+ #: admin/settings.php:296
317
  msgid "the post's assigned Tags"
318
  msgstr ""
319
 
320
+ #: admin/settings.php:297
321
  msgid ""
322
  "the number of posts included in the digest email<br />(<i>for digest emails "
323
  "only</i>)"
324
  msgstr ""
325
 
326
+ #: admin/settings.php:299
327
  msgid "Subscribe / Unsubscribe confirmation email"
328
  msgstr ""
329
 
330
+ #: admin/settings.php:304
331
  msgid "Reminder email to Unconfirmed Subscribers"
332
  msgstr ""
333
 
334
+ #: admin/settings.php:316
335
  msgid "Compulsory Categories"
336
  msgstr ""
337
 
338
+ #: admin/settings.php:318
339
  msgid ""
340
  "Compulsory categories will be checked by default for Registered Subscribers"
341
  msgstr ""
342
 
343
+ #: admin/settings.php:325
344
  msgid "Excluded Categories"
345
  msgstr ""
346
 
347
+ #: admin/settings.php:327
348
  msgid ""
349
  "Posts assigned to any Excluded Category do not generate notifications and "
350
  "are not included in digest notifications"
351
  msgstr ""
352
 
353
+ #: admin/settings.php:331
354
  msgid "Allow registered users to subscribe to excluded categories?"
355
  msgstr ""
356
 
357
+ #: admin/settings.php:339
358
  msgid "Excluded Formats"
359
  msgstr ""
360
 
361
+ #: admin/settings.php:341
362
  msgid ""
363
  "Posts assigned to any Excluded Format do not generate notifications and are "
364
  "not included in digest notifications"
365
  msgstr ""
366
 
367
+ #: admin/settings.php:349
368
  msgid "Auto-Subscribe"
369
  msgstr ""
370
 
371
+ #: admin/settings.php:351
372
  msgid "Subscribe new users registering with your blog"
373
  msgstr ""
374
 
375
+ #: admin/settings.php:353
376
  msgid "Automatically"
377
  msgstr ""
378
 
379
+ #: admin/settings.php:355
380
  msgid "Display option on Registration Form"
381
  msgstr ""
382
 
383
+ #: admin/settings.php:358
384
  msgid "Auto-subscribe includes any excluded categories"
385
  msgstr ""
386
 
387
+ #: admin/settings.php:363
388
  msgid "Registration Form option is checked by default"
389
  msgstr ""
390
 
391
+ #: admin/settings.php:368
392
  msgid "Auto-subscribe users to receive email as"
393
  msgstr ""
394
 
395
+ #: admin/settings.php:370 admin/subscribers.php:271
396
+ #: admin/your_subscriptions.php:112
397
  msgid "HTML - Full"
398
  msgstr ""
399
 
400
+ #: admin/settings.php:372 admin/subscribers.php:272
401
+ #: admin/your_subscriptions.php:114
402
  msgid "HTML - Excerpt"
403
  msgstr ""
404
 
405
+ #: admin/settings.php:374 admin/subscribers.php:273
406
+ #: admin/your_subscriptions.php:116
407
  msgid "Plain Text - Full"
408
  msgstr ""
409
 
410
+ #: admin/settings.php:376 admin/subscribers.php:274
411
+ #: admin/your_subscriptions.php:118
412
  msgid "Plain Text - Excerpt"
413
  msgstr ""
414
 
415
+ #: admin/settings.php:377
416
  msgid "Registered Users have the option to auto-subscribe to new categories"
417
  msgstr ""
418
 
419
+ #: admin/settings.php:383
420
  msgid "New categories are immediately excluded"
421
  msgstr ""
422
 
423
+ #: admin/settings.php:384
424
  msgid ""
425
  "Option for Registered Users to auto-subscribe to new categories is checked "
426
  "by default"
427
  msgstr ""
428
 
429
+ #: admin/settings.php:389
430
  msgid "Display checkbox to allow subscriptions from the comment form"
431
  msgstr ""
432
 
433
+ #: admin/settings.php:391
434
  msgid "Before the Comment Submit button"
435
  msgstr ""
436
 
437
+ #: admin/settings.php:393
438
  msgid "After the Comment Submit button"
439
  msgstr ""
440
 
441
+ #: admin/settings.php:396
442
  msgid "Comment form checkbox is checked by default"
443
  msgstr ""
444
 
445
+ #: admin/settings.php:401
446
  msgid "Show one-click subscription on profile page"
447
  msgstr ""
448
 
449
+ #: admin/settings.php:416
450
  msgid "Set default Subscribe2 page as"
451
  msgstr ""
452
 
453
+ #: admin/settings.php:418
454
+ msgid "Select a page"
455
+ msgstr ""
456
+
457
+ #: admin/settings.php:423
458
  msgid "Set the number of Subscribers displayed per page"
459
  msgstr ""
460
 
461
+ #: admin/settings.php:433
462
  msgid "Show a link to your subscription page in \"meta\"?"
463
  msgstr ""
464
 
465
+ #: admin/settings.php:437
466
  msgid "Show the Subscribe2 button on the Write toolbar?"
467
  msgstr ""
468
 
469
+ #: admin/settings.php:441
470
  msgid "Enable AJAX style subscription form?"
471
  msgstr ""
472
 
473
+ #: admin/settings.php:445
474
  msgid "Enable Subscribe2 Widget?"
475
  msgstr ""
476
 
477
+ #: admin/settings.php:449
478
  msgid "Enable Subscribe2 Counter Widget?"
479
  msgstr ""
480
 
481
+ #: admin/settings.php:453
482
  msgid "Disable email notifications is checked by default on authoring pages?"
483
  msgstr ""
484
 
485
+ #: admin/settings.php:461
486
  msgid "Barred Domains"
487
  msgstr ""
488
 
489
+ #: admin/settings.php:463
490
  msgid ""
491
  "Enter domains to bar from public subscriptions: <br /> (Use a new line for "
492
  "each entry and omit the \"@\" symbol, for example email.com)"
493
  msgstr ""
494
 
495
+ #: admin/settings.php:466
496
  msgid "Links"
497
  msgstr ""
498
 
499
+ #: admin/settings.php:467
500
  msgid "Plugin Site"
501
  msgstr ""
502
 
503
+ #: admin/settings.php:468 classes/class-s2-admin.php:162
504
  msgid "Translation Files"
505
  msgstr ""
506
 
507
+ #: admin/settings.php:469
508
  msgid "Plugin Forum"
509
  msgstr ""
510
 
511
+ #: admin/settings.php:470
512
  msgid "Plugin Blog"
513
  msgstr ""
514
 
515
+ #: admin/settings.php:471
516
  msgid "Make a donation via PayPal"
517
  msgstr ""
518
 
519
+ #: admin/settings.php:477
520
  msgid "Submit"
521
  msgstr ""
522
 
523
+ #: admin/settings.php:481
524
  msgid "Reset to Default Settings"
525
  msgstr ""
526
 
527
+ #: admin/settings.php:482
528
  msgid ""
529
  "Use this to reset all options to their defaults. This <strong><em>will not</"
530
  "em></strong> modify your list of subscribers."
531
  msgstr ""
532
 
533
+ #: admin/settings.php:484
534
  msgid "RESET"
535
  msgstr ""
536
 
537
+ #: admin/subscribers.php:31
538
  msgid "Address(es) subscribed!"
539
  msgstr ""
540
 
541
+ #: admin/subscribers.php:38
542
  msgid "Address(es) unsubscribed!"
543
  msgstr ""
544
 
545
+ #: admin/subscribers.php:42
546
+ msgid ""
547
+ "Some emails were not processed, the following are already Registered "
548
+ "Subscribers"
549
  msgstr ""
550
 
551
+ #: admin/subscribers.php:45
552
+ msgid ""
553
+ "Some emails were not processed, the following are already Public Subscribers"
554
  msgstr ""
555
 
556
  #: admin/subscribers.php:48
557
+ msgid "Some emails were not processed, the following were not in the database"
558
+ msgstr ""
559
+
560
+ #: admin/subscribers.php:59
561
  msgid "Address(es) deleted!"
562
  msgstr ""
563
 
564
+ #: admin/subscribers.php:67
565
  msgid "Delete failed! You cannot delete some or all of these users"
566
  msgstr ""
567
 
568
+ #: admin/subscribers.php:70
569
  msgid "User(s) deleted! Any posts made by these users were assigned to you"
570
  msgstr ""
571
 
572
+ #: admin/subscribers.php:82
573
  msgid "Status changed!"
574
  msgstr ""
575
 
576
+ #: admin/subscribers.php:85
577
  msgid "Reminder Email(s) Sent!"
578
  msgstr ""
579
 
580
+ #: admin/subscribers.php:88
581
  msgid "Registered Users Subscribed!"
582
  msgstr ""
583
 
584
+ #: admin/subscribers.php:91
585
  msgid "Registered Users Unsubscribed!"
586
  msgstr ""
587
 
588
+ #: admin/subscribers.php:94
589
  msgid "Format updated for Selected Registered Users!"
590
  msgstr ""
591
 
592
+ #: admin/subscribers.php:97
593
  msgid "Digest Subscription updated for Selected Registered Users!"
594
  msgstr ""
595
 
596
+ #: admin/subscribers.php:186 classes/class-s2-admin.php:60
597
+ #: classes/class-s2-admin.php:538
598
  msgid "Public Subscribers"
599
  msgstr ""
600
 
601
+ #: admin/subscribers.php:186 classes/class-s2-admin.php:65
602
+ #: classes/class-s2-admin.php:542
603
  msgid "Registered Subscribers"
604
  msgstr ""
605
 
606
+ #: admin/subscribers.php:198 admin/subscribers.php:220
607
  msgid "Add/Remove Subscribers"
608
  msgstr ""
609
 
610
+ #: admin/subscribers.php:199
611
  msgid "Enter addresses, one per line or comma-separated"
612
  msgstr ""
613
 
614
+ #: admin/subscribers.php:202 admin/subscribers.php:266
615
+ #: admin/your_subscriptions.php:263 classes/class-s2-frontend.php:27
616
  msgid "Subscribe"
617
  msgstr ""
618
 
619
+ #: admin/subscribers.php:203 admin/subscribers.php:267
620
+ #: admin/your_subscriptions.php:242 classes/class-s2-frontend.php:26
621
  msgid "Unsubscribe"
622
  msgstr ""
623
 
624
+ #: admin/subscribers.php:208 admin/subscribers.php:227
625
  msgid "Current Subscribers"
626
  msgstr ""
627
 
628
+ #: admin/subscribers.php:221
629
  msgid "Add Registered User"
630
  msgstr ""
631
 
632
+ #: admin/subscribers.php:236
633
  msgid "Filter"
634
  msgstr ""
635
 
636
+ #: admin/subscribers.php:240
637
  msgid "Send Reminder Email"
638
  msgstr ""
639
 
640
+ #: admin/subscribers.php:247
641
  msgid "Save Emails to CSV File"
642
  msgstr ""
643
 
644
+ #: admin/subscribers.php:254
645
  msgid "Search"
646
  msgstr ""
647
 
648
+ #: admin/subscribers.php:261
649
  msgid "Bulk Management"
650
  msgstr ""
651
 
652
+ #: admin/subscribers.php:263 admin/subscribers.php:277
653
  msgid ""
654
  "Preferences for Registered Users selected in the filter above can be changed "
655
  "using this section."
656
  msgstr ""
657
 
658
+ #: admin/subscribers.php:264 admin/subscribers.php:278
659
  msgid "Consider User Privacy as changes cannot be undone"
660
  msgstr ""
661
 
662
+ #: admin/subscribers.php:265
663
  msgid "Action to perform"
664
  msgstr ""
665
 
666
+ #: admin/subscribers.php:269
667
  msgid "Bulk Update Categories"
668
  msgstr ""
669
 
670
+ #: admin/subscribers.php:270
671
  msgid "Send email as"
672
  msgstr ""
673
 
674
+ #: admin/subscribers.php:275
675
  msgid "Bulk Update Format"
676
  msgstr ""
677
 
678
+ #: admin/subscribers.php:279
679
  msgid "Subscribe Selected Users to recieve a periodic digest notification"
680
  msgstr ""
681
 
682
+ #: admin/subscribers.php:284
683
  msgid "Bulk Update Digest Subscription"
684
  msgstr ""
685
 
687
  msgid "Subscription preferences updated."
688
  msgstr ""
689
 
690
+ #: admin/your_subscriptions.php:98
691
  msgid "Notification Settings"
692
  msgstr ""
693
 
694
+ #: admin/your_subscriptions.php:101
695
  msgid "Editing Subscribe2 preferences for user"
696
  msgstr ""
697
 
698
+ #: admin/your_subscriptions.php:110
699
  msgid "Receive email as"
700
  msgstr ""
701
 
702
+ #: admin/your_subscriptions.php:121
703
  msgid "Automatically subscribe me to newly created categories"
704
  msgstr ""
705
 
706
+ #: admin/your_subscriptions.php:131
707
  msgid "One Click Subscription / Unsubscription"
708
  msgstr ""
709
 
710
+ #: admin/your_subscriptions.php:132
711
  msgid "Subscribe to All"
712
  msgstr ""
713
 
714
+ #: admin/your_subscriptions.php:133
715
  msgid "Unsubscribe from All"
716
  msgstr ""
717
 
718
+ #: admin/your_subscriptions.php:143
719
  msgid "Unsubscribe me from this blog"
720
  msgstr ""
721
 
722
+ #: admin/your_subscriptions.php:147
723
  msgid "Subscribe to all categories"
724
  msgstr ""
725
 
726
+ #: admin/your_subscriptions.php:149
727
  msgid "Subscribed Categories on"
728
  msgstr ""
729
 
730
+ #: admin/your_subscriptions.php:151
731
  msgid "Subscribed Categories"
732
  msgstr ""
733
 
734
+ #: admin/your_subscriptions.php:158
735
  msgid "Receive periodic summaries of new posts?"
736
  msgstr ""
737
 
738
+ #: admin/your_subscriptions.php:174
739
  msgid "Do not send notifications for post made by these authors"
740
  msgstr ""
741
 
742
+ #: admin/your_subscriptions.php:180
743
  msgid "Update Preferences"
744
  msgstr ""
745
 
746
+ #: admin/your_subscriptions.php:231
747
  msgid "Subscribed Blogs"
748
  msgstr ""
749
 
750
+ #: admin/your_subscriptions.php:236 admin/your_subscriptions.php:257
751
  msgid "Viewing Settings Now"
752
  msgstr ""
753
 
754
+ #: admin/your_subscriptions.php:240 admin/your_subscriptions.php:261
755
  msgid "View Settings"
756
  msgstr ""
757
 
758
+ #: admin/your_subscriptions.php:252
759
  msgid "Subscribe to new blogs"
760
  msgstr ""
761
 
762
+ #. #-#-#-#-# Subscribe2.pot (Subscribe2 9.1) #-#-#-#-#
763
  #. Plugin Name of the plugin/theme
764
  #: classes/class-s2-admin.php:8 include/widget.php:17
765
  msgid "Subscribe2"
972
  "Check here to disable sending of an email notification for this post/page"
973
  msgstr ""
974
 
975
+ #: classes/class-s2-admin.php:330
976
+ msgctxt "Comma Separated Column Header names for CSV Export"
977
+ msgid "User Email,User Type,User Name,Confirm Date,IP"
978
+ msgstr ""
979
+
980
+ #: classes/class-s2-admin.php:355
981
+ msgid "Registered User"
982
+ msgstr ""
983
+
984
+ #: classes/class-s2-admin.php:360
985
+ msgid "Confirmed Public Subscriber"
986
+ msgstr ""
987
+
988
+ #: classes/class-s2-admin.php:362
989
+ msgid "Unconfirmed Public Subscriber"
990
+ msgstr ""
991
+
992
+ #: classes/class-s2-admin.php:388 classes/class-s2-admin.php:445
993
+ #: classes/class-s2-admin.php:485
994
  msgid "Select / Unselect All"
995
  msgstr ""
996
 
997
+ #: classes/class-s2-admin.php:537
998
  msgid "All Users and Subscribers"
999
  msgstr ""
1000
 
1001
+ #: classes/class-s2-admin.php:539
1002
  msgid "Confirmed"
1003
  msgstr ""
1004
 
1005
+ #: classes/class-s2-admin.php:540
1006
  msgid "Unconfirmed"
1007
  msgstr ""
1008
 
1009
+ #: classes/class-s2-admin.php:541
1010
  msgid "All Registered Users"
1011
  msgstr ""
1012
 
1013
+ #: classes/class-s2-admin.php:637
1014
  msgid "Post Author"
1015
  msgstr ""
1016
 
1017
+ #: classes/class-s2-admin.php:661
1018
  msgid ""
1019
  "The WordPress cron functions may be disabled on this server. Digest "
1020
  "notifications may not work."
1021
  msgstr ""
1022
 
1023
+ #: classes/class-s2-admin.php:666
1024
  msgid "For each Post"
1025
  msgstr ""
1026
 
1027
+ #: classes/class-s2-admin.php:683
1028
  msgid "Current UTC time is"
1029
  msgstr ""
1030
 
1031
+ #: classes/class-s2-admin.php:685
1032
  msgid "Current blog time is"
1033
  msgstr ""
1034
 
1035
+ #: classes/class-s2-admin.php:687
1036
  msgid "Next email notification will be sent when your blog time is after"
1037
  msgstr ""
1038
 
1039
+ #: classes/class-s2-admin.php:709
1040
  msgid "Attempt to resend the last Digest Notification email"
1041
  msgstr ""
1042
 
1043
+ #: classes/class-s2-admin.php:710
1044
  msgid "Resend Digest"
1045
  msgstr ""
1046
 
1047
+ #: classes/class-s2-admin.php:948
 
 
 
 
1048
  msgid "Email subscription"
1049
  msgstr ""
1050
 
1051
+ #: classes/class-s2-admin.php:950
1052
  msgid "Subscribe / Unsubscribe"
1053
  msgstr ""
1054
 
1055
+ #: classes/class-s2-admin.php:951
1056
  msgid "Receive notifications"
1057
  msgstr ""
1058
 
1059
+ #: classes/class-s2-admin.php:952
1060
  msgid ""
1061
  "Check if you want to receive email notification when new posts are published"
1062
  msgstr ""
1105
  msgstr ""
1106
 
1107
  #: classes/class-s2-core.php:44
1108
+ msgid "You must create a WordPress page for this plugin to work correctly."
1109
  msgstr ""
1110
 
1111
  #: classes/class-s2-core.php:46
 
 
 
 
 
 
1112
  msgid "Message sent!"
1113
  msgstr ""
1114
 
1115
+ #: classes/class-s2-core.php:48
1116
  msgid "Message failed!"
1117
  msgstr ""
1118
 
1119
+ #: classes/class-s2-core.php:51
1120
  msgid "No such email address is registered."
1121
  msgstr ""
1122
 
1123
+ #: classes/class-s2-core.php:53
1124
  msgid "You have successfully subscribed!"
1125
  msgstr ""
1126
 
1127
+ #: classes/class-s2-core.php:55
1128
  msgid "You have successfully unsubscribed."
1129
  msgstr ""
1130
 
1131
+ #: classes/class-s2-core.php:57
1132
  msgid "subscribe"
1133
  msgstr ""
1134
 
1135
+ #: classes/class-s2-core.php:59
1136
  msgid "unsubscribe"
1137
  msgstr ""
1138
 
1139
+ #: classes/class-s2-core.php:62
1140
  msgid "Options saved!"
1141
  msgstr ""
1142
 
1143
+ #: classes/class-s2-core.php:63
1144
  msgid "Options reset!"
1145
  msgstr ""
1146
 
1147
+ #: classes/class-s2-core.php:634
1148
  msgid "Plain Text Excerpt Preview"
1149
  msgstr ""
1150
 
1151
+ #: classes/class-s2-core.php:636
1152
  msgid "Plain Text Full Preview"
1153
  msgstr ""
1154
 
1155
+ #: classes/class-s2-core.php:638
1156
  msgid "HTML Excerpt Preview"
1157
  msgstr ""
1158
 
1159
+ #: classes/class-s2-core.php:640
1160
  msgid "HTML Full Preview"
1161
  msgstr ""
1162
 
1163
+ #: classes/class-s2-core.php:1187
 
 
 
 
 
 
 
 
 
 
 
 
1164
  msgid "Check here to Subscribe to email notifications for new posts"
1165
  msgstr ""
1166
 
1167
+ #: classes/class-s2-core.php:1193
1168
  msgid ""
1169
  "By registering with this blog you are also agreeing to receive email "
1170
  "notifications for new posts but you can unsubscribe at anytime"
1171
  msgstr ""
1172
 
1173
+ #: classes/class-s2-core.php:1219
1174
  msgid "Check here to Subscribe to notifications for new posts"
1175
  msgstr ""
1176
 
1177
+ #: classes/class-s2-core.php:1312
1178
  msgid "Weekly"
1179
  msgstr ""
1180
 
1181
+ #: classes/class-s2-core.php:1451 classes/class-s2-core.php:1452
1182
  msgid "Author"
1183
  msgstr ""
1184
 
1185
+ #: classes/class-s2-core.php:1458
1186
  msgid "Posted on"
1187
  msgstr ""
1188
 
1189
+ #: classes/class-s2-core.php:1476 classes/class-s2-core.php:1477
1190
  msgid "Posted in"
1191
  msgstr ""
1192
 
1193
+ #: classes/class-s2-core.php:1482 classes/class-s2-core.php:1483
1194
  msgid "Tagged as"
1195
  msgstr ""
1196
 
1197
+ #: classes/class-s2-core.php:1545
1198
  msgid "Digest Email"
1199
  msgstr ""
1200
 
1201
+ #: classes/class-s2-core.php:1555
1202
  msgid "Digest Preview"
1203
  msgstr ""
1204
 
1205
+ #: classes/class-s2-frontend.php:57
1206
  msgid "Enter email address..."
1207
  msgstr ""
1208
 
1209
+ #: classes/class-s2-frontend.php:77 classes/class-s2-frontend.php:79
1210
  msgid "Your email:"
1211
  msgstr ""
1212
 
1213
+ #: classes/class-s2-frontend.php:198
1214
  msgid "Subscription Confirmation"
1215
  msgstr ""
1216
 
1217
+ #: classes/class-s2-frontend.php:200
1218
  msgid "Unsubscription Confirmation"
1219
  msgstr ""
1220
 
1221
+ #: classes/class-s2-frontend.php:239
1222
  msgid "New Subscription"
1223
  msgstr ""
1224
 
1225
+ #: classes/class-s2-frontend.php:241
1226
  msgid "subscribed to email notifications!"
1227
  msgstr ""
1228
 
1229
+ #: classes/class-s2-frontend.php:263
1230
  msgid "New Unsubscription"
1231
  msgstr ""
1232
 
1233
+ #: classes/class-s2-frontend.php:265
1234
  msgid "unsubscribed from email notifications!"
1235
  msgstr ""
1236
 
1237
+ #: classes/class-s2-frontend.php:292
1238
  msgid "[Un]Subscribe to Posts"
1239
  msgstr ""
1240
 
1241
+ #: classes/class-s2-frontend.php:327 classes/class-s2-frontend.php:329
1242
  msgid "Subscribe to this blog"
1243
  msgstr ""
1244
 
1477
  "a site level"
1478
  msgstr ""
1479
 
1480
+ #. #-#-#-#-# Subscribe2.pot (Subscribe2 9.1) #-#-#-#-#
1481
  #. Plugin URI of the plugin/theme
1482
+ #. #-#-#-#-# Subscribe2.pot (Subscribe2 9.1) #-#-#-#-#
1483
  #. Author URI of the plugin/theme
1484
  msgid "http://subscribe2.wordpress.com"
1485
  msgstr ""
tinymce3/editor_plugin.js CHANGED
@@ -1,19 +1,27 @@
 
1
  (function () {
2
- tinymce.create('tinymce.plugins.Subscribe2Plugin', {
3
- init : function (ed, url) {
4
- var pb = '<img src="' + url + '/../include/spacer.gif" class="mceSubscribe2 mceItemNoResize" />',
 
5
  cls = 'mceSubscribe2',
6
  shortcode = '[subscribe2]',
7
  pbreplaced = [],
8
- pbRE = new RegExp(/(\[|<!--)subscribe2.*(\]|-->)/g);
 
 
 
 
 
 
9
 
10
  // Register commands
11
- ed.addCommand('mceSubscribe2', function () {
12
- ed.execCommand('mceInsertContent', 0, pb);
13
  });
14
 
15
  // Register buttons
16
- ed.addButton('subscribe2', {
17
  title : 'Insert Subscribe2 Token',
18
  image : url + '/../include/s2_button.png',
19
  cmd : cls
@@ -21,11 +29,11 @@
21
 
22
  // load the CSS and enable it on the right class
23
  ed.onInit.add(function () {
24
- ed.dom.loadCSS(url + "/css/content.css");
25
 
26
- if (ed.theme.onResolveName) {
27
- ed.theme.onResolveName.add(function (th, o) {
28
- if (o.node.nodeName === 'IMG' && ed.dom.hasClass(o.node, cls)) {
29
  o.name = 'subscribe2';
30
  }
31
  });
@@ -33,43 +41,37 @@
33
  });
34
 
35
  // allow selection of the image placeholder
36
- ed.onClick.add(function (ed, e) {
37
  e = e.target;
38
 
39
- if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls)) {
40
- ed.selection.select(e);
41
  }
42
  });
43
 
44
  // re-enable the CSS when the node changes
45
- ed.onNodeChange.add(function (ed, cm, n) {
46
- cm.setActive('subscribe2', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls));
47
  });
48
 
49
  // create an array of replaced shortcodes so we have additional parameters
50
  // then swap in the graphic
51
- ed.onBeforeSetContent.add(function (ed, o) {
52
- pbreplaced = o.content.match(pbRE);
53
- o.content = o.content.replace(pbRE, pb);
54
  });
55
 
56
  // swap back the array of shortcodes to preserve parameters
57
  // replace any other instances with the default shortcode
58
- ed.onPostProcess.add(function (ed, o) {
59
- if (o.get) {
60
- if ( pbreplaced !== null ) {
61
- var i;
62
  for ( i = 0; i < pbreplaced.length; i++ ) {
63
- o.content = o.content.replace(/<img[^>]+>/, function (im) {
64
- if (im.indexOf('class="mceSubscribe2') !== -1) {
65
- im = pbreplaced[i];
66
- }
67
- return im;
68
- });
69
  }
70
  }
71
- o.content = o.content.replace(/<img[^>]+>/g, function (im) {
72
- if (im.indexOf('class="mceSubscribe2') !== -1) {
73
  im = shortcode;
74
  }
75
  return im;
@@ -84,11 +86,11 @@
84
  author : 'Matthew Robinson',
85
  authorurl : 'http://subscribe2.wordpress.com',
86
  infourl : 'http://subscribe2.wordpress.com',
87
- version : tinymce.majorVersion + "." + tinymce.minorVersion
88
  };
89
  }
90
  });
91
 
92
  // Register plugin
93
- tinymce.PluginManager.add('subscribe2', tinymce.plugins.Subscribe2Plugin);
94
  })();
1
+ /* global tinymce */
2
  (function () {
3
+ tinymce.create( 'tinymce.plugins.Subscribe2Plugin', {
4
+ init : function ( ed, url ) {
5
+ var i = 0,
6
+ pb = '<img src="' + url + '/../include/spacer.gif" class="mceSubscribe2 mceItemNoResize" />',
7
  cls = 'mceSubscribe2',
8
  shortcode = '[subscribe2]',
9
  pbreplaced = [],
10
+ pbRE = new RegExp(/(\[|<!--)subscribe2.*(\]|-->)/g),
11
+ replacer = function ( str ) {
12
+ if ( -1 !== str.indexOf( 'class="mceSubscribe2' ) ) {
13
+ str = pbreplaced[i];
14
+ }
15
+ return str;
16
+ };
17
 
18
  // Register commands
19
+ ed.addCommand( 'mceSubscribe2', function () {
20
+ ed.execCommand( 'mceInsertContent', 0, pb );
21
  });
22
 
23
  // Register buttons
24
+ ed.addButton( 'subscribe2', {
25
  title : 'Insert Subscribe2 Token',
26
  image : url + '/../include/s2_button.png',
27
  cmd : cls
29
 
30
  // load the CSS and enable it on the right class
31
  ed.onInit.add(function () {
32
+ ed.dom.loadCSS( url + '/css/content.css' );
33
 
34
+ if ( ed.theme.onResolveName ) {
35
+ ed.theme.onResolveName.add(function ( th, o ) {
36
+ if ( o.node.nodeName === 'IMG' && ed.dom.hasClass( o.node, cls ) ) {
37
  o.name = 'subscribe2';
38
  }
39
  });
41
  });
42
 
43
  // allow selection of the image placeholder
44
+ ed.onClick.add(function ( ed, e ) {
45
  e = e.target;
46
 
47
+ if ( e.nodeName === 'IMG' && ed.dom.hasClass( e, cls ) ) {
48
+ ed.selection.select( e );
49
  }
50
  });
51
 
52
  // re-enable the CSS when the node changes
53
+ ed.onNodeChange.add(function ( ed, cm, n ) {
54
+ cm.setActive( 'subscribe2', n.nodeName === 'IMG' && ed.dom.hasClass( n, cls ) );
55
  });
56
 
57
  // create an array of replaced shortcodes so we have additional parameters
58
  // then swap in the graphic
59
+ ed.onBeforeSetContent.add(function ( ed, o ) {
60
+ pbreplaced = o.content.match( pbRE );
61
+ o.content = o.content.replace( pbRE, pb );
62
  });
63
 
64
  // swap back the array of shortcodes to preserve parameters
65
  // replace any other instances with the default shortcode
66
+ ed.onPostProcess.add(function ( ed, o ) {
67
+ if ( o.get ) {
68
+ if ( null !== pbreplaced ) {
 
69
  for ( i = 0; i < pbreplaced.length; i++ ) {
70
+ o.content = o.content.replace(/<img[^>]+>/, replacer );
 
 
 
 
 
71
  }
72
  }
73
+ o.content = o.content.replace( /<img[^>]+>/g, function ( im ) {
74
+ if ( -1 !== im.indexOf( 'class="mceSubscribe2' ) ) {
75
  im = shortcode;
76
  }
77
  return im;
86
  author : 'Matthew Robinson',
87
  authorurl : 'http://subscribe2.wordpress.com',
88
  infourl : 'http://subscribe2.wordpress.com',
89
+ version : tinymce.majorVersion + '.' + tinymce.minorVersion
90
  };
91
  }
92
  });
93
 
94
  // Register plugin
95
+ tinymce.PluginManager.add( 'subscribe2', tinymce.plugins.Subscribe2Plugin );
96
  })();
tinymce3/editor_plugin.min.js CHANGED
@@ -1 +1 @@
1
- (function(){tinymce.create('tinymce.plugins.Subscribe2Plugin',{init:function(ed,url){var pb='<img src="'+url+'/../include/spacer.gif" class="mceSubscribe2 mceItemNoResize" />',cls='mceSubscribe2',shortcode='[subscribe2]',pbreplaced=[],pbRE=new RegExp(/(\[|<!--)subscribe2.*(\]|-->)/g);ed.addCommand('mceSubscribe2',function(){ed.execCommand('mceInsertContent',0,pb)});ed.addButton('subscribe2',{title:'Insert Subscribe2 Token',image:url+'/../include/s2_button.png',cmd:cls});ed.onInit.add(function(){ed.dom.loadCSS(url+"/css/content.css");if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.node.nodeName==='IMG'&&ed.dom.hasClass(o.node,cls)){o.name='subscribe2'}})}});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='IMG'&&ed.dom.hasClass(e,cls)){ed.selection.select(e)}});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('subscribe2',n.nodeName==='IMG'&&ed.dom.hasClass(n,cls))});ed.onBeforeSetContent.add(function(ed,o){pbreplaced=o.content.match(pbRE);o.content=o.content.replace(pbRE,pb)});ed.onPostProcess.add(function(ed,o){if(o.get){if(pbreplaced!==null){var i;for(i=0;i<pbreplaced.length;i++){o.content=o.content.replace(/<img[^>]+>/,function(im){if(im.indexOf('class="mceSubscribe2')!==-1){im=pbreplaced[i]}return im})}}o.content=o.content.replace(/<img[^>]+>/g,function(im){if(im.indexOf('class="mceSubscribe2')!==-1){im=shortcode}return im})}})},getInfo:function(){return{longname:'Insert Subscribe2 Token',author:'Matthew Robinson',authorurl:'http://subscribe2.wordpress.com',infourl:'http://subscribe2.wordpress.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add('subscribe2',tinymce.plugins.Subscribe2Plugin)})();
1
+ (function(){tinymce.create('tinymce.plugins.Subscribe2Plugin',{init:function(ed,url){var i=0,pb='<img src="'+url+'/../include/spacer.gif" class="mceSubscribe2 mceItemNoResize" />',cls='mceSubscribe2',shortcode='[subscribe2]',pbreplaced=[],pbRE=new RegExp(/(\[|<!--)subscribe2.*(\]|-->)/g),replacer=function(str){if(-1!==str.indexOf('class="mceSubscribe2')){str=pbreplaced[i]}return str};ed.addCommand('mceSubscribe2',function(){ed.execCommand('mceInsertContent',0,pb)});ed.addButton('subscribe2',{title:'Insert Subscribe2 Token',image:url+'/../include/s2_button.png',cmd:cls});ed.onInit.add(function(){ed.dom.loadCSS(url+'/css/content.css');if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.node.nodeName==='IMG'&&ed.dom.hasClass(o.node,cls)){o.name='subscribe2'}})}});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='IMG'&&ed.dom.hasClass(e,cls)){ed.selection.select(e)}});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('subscribe2',n.nodeName==='IMG'&&ed.dom.hasClass(n,cls))});ed.onBeforeSetContent.add(function(ed,o){pbreplaced=o.content.match(pbRE);o.content=o.content.replace(pbRE,pb)});ed.onPostProcess.add(function(ed,o){if(o.get){if(null!==pbreplaced){for(i=0;i<pbreplaced.length;i++){o.content=o.content.replace(/<img[^>]+>/,replacer)}}o.content=o.content.replace(/<img[^>]+>/g,function(im){if(-1!==im.indexOf('class="mceSubscribe2')){im=shortcode}return im})}})},getInfo:function(){return{longname:'Insert Subscribe2 Token',author:'Matthew Robinson',authorurl:'http://subscribe2.wordpress.com',infourl:'http://subscribe2.wordpress.com',version:tinymce.majorVersion+'.'+tinymce.minorVersion}}});tinymce.PluginManager.add('subscribe2',tinymce.plugins.Subscribe2Plugin)})();