Version Description
Download this release
Release Info
Developer | MattyRob |
Plugin | Subscribe2 |
Version | 4.12 |
Comparing to | |
See all releases |
Code changes from version 4.11 to 4.12
- ReadMe.txt +23 -8
- The WordPress Subscriber User Guide.pdf +0 -0
- counterwidget.php +407 -0
- include/options.php +20 -1
- include/s2_edit.js +1 -0
- subscribe2.php +225 -93
- subscribe2.pot +199 -137
- subscribe2debug.php +0 -75
- subscribe2uninstaller.php +0 -113
- uninstall.php +31 -0
ReadMe.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: MattyRob, Skippy, RavanH
|
|
3 |
Donate link: http://subscribe2.wordpress.com/donate/
|
4 |
Tags: posts, subscription, email
|
5 |
Requires at least: 2.0.x
|
6 |
-
Tested up to: 2.
|
7 |
-
Stable tag: 4.
|
8 |
|
9 |
Sends a list of subscribers an email notification when new posts are published to your blog
|
10 |
|
@@ -28,15 +28,15 @@ Registered users of the blog can elect to receive email notifications for specif
|
|
28 |
|
29 |
1. Copy the entire /subscribe2/ directory into your /wp-content/plugins/ directory.
|
30 |
2. Activate the plugin.
|
31 |
-
3. Click the "
|
32 |
4. Configure the options to taste, including the email template and any categories which should be excluded from notification
|
33 |
5. Click the "Manage" admin menu link, and select "Subscribers".
|
34 |
6. Manually subscribe people as you see fit.
|
35 |
7. Create a WordPress Page (http://codex.wordpress.org/Pages) to display the subscription form. When creating the page, you may click the "S2" button on the QuickBar to automatically insert the subscribe2 token. Or, if you prefer, you may manually insert the subscribe2 token:
|
36 |
<!--subscribe2-->
|
37 |
***Ensure the token is on a line by itself and that it has a blank line above and below.***
|
38 |
-
This token will automatically be replaced by
|
39 |
-
8. In the
|
40 |
|
41 |
== Frequently Asked Questions ==
|
42 |
|
@@ -60,9 +60,7 @@ In the first instance check this with your hosting provider, they have access to
|
|
60 |
|
61 |
Some hosting providers place a restriction on the maximum number of recipients in any one email message. For example, the venerable Dreamhost (http://www.dreamhost.com/) does not allow any message to contain more than 30 recipients.
|
62 |
|
63 |
-
Subscribe2 provides a facility to work around this restriction by sending batches of emails. To enable this feature,
|
64 |
-
define('BCCLIMIT', 0);
|
65 |
-
Change the 0 to the number of allowed outgoing email recipients as set by your host.
|
66 |
|
67 |
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.
|
68 |
|
@@ -85,6 +83,23 @@ If, for some reason the Subscribe2 button does not appear in your browser window
|
|
85 |
|
86 |
== Version History ==
|
87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
Version 4.11 by Matthew Robinson
|
89 |
|
90 |
* Works in WordPress 2.7-almost-beta!
|
3 |
Donate link: http://subscribe2.wordpress.com/donate/
|
4 |
Tags: posts, subscription, email
|
5 |
Requires at least: 2.0.x
|
6 |
+
Tested up to: 2.7
|
7 |
+
Stable tag: 4.12
|
8 |
|
9 |
Sends a list of subscribers an email notification when new posts are published to your blog
|
10 |
|
28 |
|
29 |
1. Copy the entire /subscribe2/ directory into your /wp-content/plugins/ directory.
|
30 |
2. Activate the plugin.
|
31 |
+
3. Click the "Settings" admin menu link, and select "Subscribe2".
|
32 |
4. Configure the options to taste, including the email template and any categories which should be excluded from notification
|
33 |
5. Click the "Manage" admin menu link, and select "Subscribers".
|
34 |
6. Manually subscribe people as you see fit.
|
35 |
7. Create a WordPress Page (http://codex.wordpress.org/Pages) to display the subscription form. When creating the page, you may click the "S2" button on the QuickBar to automatically insert the subscribe2 token. Or, if you prefer, you may manually insert the subscribe2 token:
|
36 |
<!--subscribe2-->
|
37 |
***Ensure the token is on a line by itself and that it has a blank line above and below.***
|
38 |
+
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
|
39 |
+
8. In the WordPress "Settings" area for Subscribe2 define the default page ID in the "Appearance" section to the ID of the WordPress page created in step 8.
|
40 |
|
41 |
== Frequently Asked Questions ==
|
42 |
|
60 |
|
61 |
Some hosting providers place a restriction on the maximum number of recipients in any one email message. For example, the venerable Dreamhost (http://www.dreamhost.com/) does not allow any message to contain more than 30 recipients.
|
62 |
|
63 |
+
Subscribe2 provides a facility to work around this restriction by sending batches of emails. To enable this feature, go to Settings->Subscribe2 and located 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.
|
|
|
|
|
64 |
|
65 |
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.
|
66 |
|
83 |
|
84 |
== Version History ==
|
85 |
|
86 |
+
Version 4.12 by Matthew Robinson
|
87 |
+
|
88 |
+
* Added new option to remove Auto Subscribe option from Users->Your Subscriptions
|
89 |
+
* New POSTTIME token for digest email notifications
|
90 |
+
* Preserve mail after sending from Write->Mail Subscribers
|
91 |
+
* Introduced the Subscriber Counter Widget
|
92 |
+
* Use Rich Text Editor in Write->Mail Subscribers for the Paid HTML version
|
93 |
+
* Per User management in Admin
|
94 |
+
* Added support Uninstall API in WordPress 2.7
|
95 |
+
* Add support for 'Meta Widget' links
|
96 |
+
* Subscribers are sorted alphabetically before sending notifications
|
97 |
+
* Added ability to bulk unsubscribe a list of emails pasted into manage window
|
98 |
+
* Define number of subscribers in Manage window
|
99 |
+
* Added options for admin emails when public users subscribe or unsubscribe
|
100 |
+
* Fixed bug that prevented sending of Reminder emails from Manage->Subscribers
|
101 |
+
* Amended confirmation code so that only one email is sent no matter how many times users click on (un)subscribe links
|
102 |
+
|
103 |
Version 4.11 by Matthew Robinson
|
104 |
|
105 |
* Works in WordPress 2.7-almost-beta!
|
The WordPress Subscriber User Guide.pdf
ADDED
Binary file
|
counterwidget.php
ADDED
@@ -0,0 +1,407 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
Plugin Name: Subscribe2 Counter Widget
|
4 |
+
Version: 4.12
|
5 |
+
Plugin URI: http://subscribe2.wordpress.com
|
6 |
+
Description: Adds a sidebar widget to easily customize and display your Subscribe2 subscribers stats.
|
7 |
+
Author: Matthew Robinson
|
8 |
+
Author URI: http://subscribe2.wordpress.com
|
9 |
+
*/
|
10 |
+
|
11 |
+
// Put functions into one big function we'll call at the plugins_loaded
|
12 |
+
// action. This ensures that all required plugin functions are defined.
|
13 |
+
function widget_s2counter_init() {
|
14 |
+
|
15 |
+
if ( !function_exists('register_sidebar_widget') )
|
16 |
+
return;
|
17 |
+
|
18 |
+
/**
|
19 |
+
Register the Widget
|
20 |
+
*/
|
21 |
+
function widget_s2counter($args) {
|
22 |
+
extract($args);
|
23 |
+
$options = get_option('widget_s2counter');
|
24 |
+
$title = empty($options['title']) ? 'Subscriber Count' : $options['title'];
|
25 |
+
$s2w_bg = $options['s2w_bg'];
|
26 |
+
$s2w_fg = $options['s2w_fg'];
|
27 |
+
$s2w_width = $options['s2w_width'];
|
28 |
+
$s2w_height = $options['s2w_height'];
|
29 |
+
$s2w_font = $options['s2w_font'];
|
30 |
+
echo $before_widget;
|
31 |
+
echo $before_title . $title . $after_title;
|
32 |
+
global $wpdb, $table;
|
33 |
+
if ($s2_mu) {
|
34 |
+
$count['registered'] = $wpdb->get_var("SELECT COUNT(meta_key) FROM $wpdb->usermeta WHERE meta_key='" . $wpdb->prefix . "capabilities'");
|
35 |
+
} else {
|
36 |
+
$count['registered'] = $wpdb->get_var("SELECT COUNT(meta_key) FROM $wpdb->usermeta WHERE meta_key='s2_subscribed'");
|
37 |
+
}
|
38 |
+
$count['confirmed'] = $wpdb->get_var("SELECT COUNT(id) FROM " . $wpdb->prefix . "subscribe2 WHERE active='1'");
|
39 |
+
$count['all'] = ($count['registered'] + $count['confirmed']);
|
40 |
+
echo "<center><div style=\"text-align:center; background-color:" . $s2w_bg . "; color:" . $s2w_fg . "; width:" . $s2w_width . "px; height:" . $s2w_height . "px; font:" . $s2w_font . "pt Verdana, Arial, Helvetica, sans-serif; vertical-align:middle; padding:3px; border:1px solid #444;\">";
|
41 |
+
echo $count['all'];
|
42 |
+
echo "</div></center>";
|
43 |
+
echo $after_widget;
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
Register the optional widget control form
|
48 |
+
*/
|
49 |
+
function widget_s2counter_control() {
|
50 |
+
$options = get_option('widget_s2counter');
|
51 |
+
if ( !is_array($options) )
|
52 |
+
$options = array('title'=>'Subscriber Count',
|
53 |
+
's2w_bg'=>'#E3DACF',
|
54 |
+
's2w_fg'=>'#345797',
|
55 |
+
's2w_width'=>'82',
|
56 |
+
's2w_height'=>'16',
|
57 |
+
's2w_font'=>'11');
|
58 |
+
|
59 |
+
if ( $_POST['s2counter'] ) {
|
60 |
+
// Remember to sanitize and format use input appropriately.
|
61 |
+
$options['title'] = strip_tags(stripslashes($_POST['title']));
|
62 |
+
$options['s2w_bg'] = strip_tags(stripslashes($_POST['s2w_bodyColor']));
|
63 |
+
$options['s2w_fg'] = strip_tags(stripslashes($_POST['s2w_textColor']));
|
64 |
+
$options['s2w_width'] = strip_tags(stripslashes($_POST['width']));
|
65 |
+
$options['s2w_height'] = strip_tags(stripslashes($_POST['height']));
|
66 |
+
$options['s2w_font'] = strip_tags(stripslashes($_POST['font']));
|
67 |
+
update_option('widget_s2counter', $options);
|
68 |
+
}
|
69 |
+
|
70 |
+
// Be sure you format your options to be valid HTML attributes.
|
71 |
+
$s2w_title = htmlspecialchars($options['title'], ENT_QUOTES);
|
72 |
+
$s2w_bg = htmlspecialchars($options['s2w_bg'], ENT_QUOTES);
|
73 |
+
$s2w_fg = htmlspecialchars($options['s2w_fg'], ENT_QUOTES);
|
74 |
+
$s2w_width = htmlspecialchars($options['s2w_width'], ENT_QUOTES);
|
75 |
+
$s2w_height = htmlspecialchars($options['s2w_height'], ENT_QUOTES);
|
76 |
+
$s2w_font = htmlspecialchars($options['s2w_font'], ENT_QUOTES);
|
77 |
+
?>
|
78 |
+
|
79 |
+
<style type="text/css">
|
80 |
+
div.csq { border:none; width:10px; height:10px; background-color:transparent; cursor:pointer; }
|
81 |
+
div#countPreviewDiv { text-align:center; background-color:<?php echo $s2w_bg; ?>; color:<?php echo $s2w_fg; ?>; width:<?php echo $s2w_width; ?>px; height:<?php echo $s2w_height; ?>px; font:<?php echo $s2w_font; ?>pt Verdana, Arial, Helvetica, sans-serif; vertical-align:middle; padding:3px; border:1px solid #444; }
|
82 |
+
</style>
|
83 |
+
|
84 |
+
<script type="text/javascript">
|
85 |
+
function assignColor(theColor) {
|
86 |
+
if (document.getElementById) {
|
87 |
+
var circForm = document.forms['widget-controls'];
|
88 |
+
var re6 = /#[0-9A-Za-z]{6}/;
|
89 |
+
if (!re6.test(theColor)) {
|
90 |
+
return;
|
91 |
+
}
|
92 |
+
bodyFld = circForm.s2w_radioColor[0];
|
93 |
+
txtFld = circForm.s2w_radioColor[1];
|
94 |
+
pv = document.getElementById("countPreviewDiv");
|
95 |
+
if (bodyFld.checked) {
|
96 |
+
circForm.elements['s2w_bodyColor'].value = theColor;
|
97 |
+
pv.style.backgroundColor = theColor;
|
98 |
+
} else {
|
99 |
+
circForm.elements['s2w_textColor'].value = theColor;
|
100 |
+
pv.style.color = theColor;
|
101 |
+
}
|
102 |
+
}
|
103 |
+
}
|
104 |
+
function assignSize(theSize, theStyle) {
|
105 |
+
if (document.getElementById) {
|
106 |
+
var circForm = document.forms['widget-controls'];
|
107 |
+
pv = document.getElementById("countPreviewDiv");
|
108 |
+
if (theStyle == 'width') {
|
109 |
+
pv.style.width = theSize+"px";
|
110 |
+
}
|
111 |
+
if (theStyle == 'height') {
|
112 |
+
pv.style.height = theSize+"px";
|
113 |
+
}
|
114 |
+
if (theStyle == 'font') {
|
115 |
+
pv.style.fontSize = theSize+"pt";
|
116 |
+
}
|
117 |
+
}
|
118 |
+
}
|
119 |
+
</script>
|
120 |
+
|
121 |
+
<div>
|
122 |
+
<fieldset>
|
123 |
+
<legend>Widget Title</legend>
|
124 |
+
<input type="text" name="title" id="title" value="<?php echo $s2w_title; ?>" class="widefat" />
|
125 |
+
</fieldset>
|
126 |
+
|
127 |
+
<fieldset>
|
128 |
+
<legend>Color Scheme:</legend>
|
129 |
+
<table style="border:0; padding:0; margin:0 0 12px 0; border-collapse:collapse;" align="center">
|
130 |
+
<tr>
|
131 |
+
<td style="background-color:#000000;margin:0;padding:0"><a href="javascript:assignColor('#000000')"><div class="csq"></div></a></td>
|
132 |
+
<td style="background-color:#000033;margin:0;padding:0"><a href="javascript:assignColor('#000033')"><div class="csq"></div></a></td>
|
133 |
+
<td style="background-color:#000066;margin:0;padding:0"><a href="javascript:assignColor('#000066')"><div class="csq"></div></a></td>
|
134 |
+
<td style="background-color:#000099;margin:0;padding:0"><a href="javascript:assignColor('#000099')"><div class="csq"></div></a></td>
|
135 |
+
<td style="background-color:#0000CC;margin:0;padding:0"><a href="javascript:assignColor('#0000CC')"><div class="csq"></div></a></td>
|
136 |
+
<td style="background-color:#0000FF;margin:0;padding:0"><a href="javascript:assignColor('#0000FF')"><div class="csq"></div></a></td>
|
137 |
+
<td style="background-color:#006600;margin:0;padding:0"><a href="javascript:assignColor('#006600')"><div class="csq"></div></a></td>
|
138 |
+
<td style="background-color:#006633;margin:0;padding:0"><a href="javascript:assignColor('#006633')"><div class="csq"></div></a></td>
|
139 |
+
<td style="background-color:#006666;margin:0;padding:0"><a href="javascript:assignColor('#006666')"><div class="csq"></div></a></td>
|
140 |
+
<td style="background-color:#006699;margin:0;padding:0"><a href="javascript:assignColor('#006699')"><div class="csq"></div></a></td>
|
141 |
+
<td style="background-color:#0066CC;margin:0;padding:0"><a href="javascript:assignColor('#0066CC')"><div class="csq"></div></a></td>
|
142 |
+
<td style="background-color:#0066FF;margin:0;padding:0"><a href="javascript:assignColor('#0066FF')"><div class="csq"></div></a></td>
|
143 |
+
<td style="background-color:#00CC00;margin:0;padding:0"><a href="javascript:assignColor('#00CC00')"><div class="csq"></div></a></td>
|
144 |
+
<td style="background-color:#00CC33;margin:0;padding:0"><a href="javascript:assignColor('#00CC33')"><div class="csq"></div></a></td>
|
145 |
+
<td style="background-color:#00CC66;margin:0;padding:0"><a href="javascript:assignColor('#00CC66')"><div class="csq"></div></a></td>
|
146 |
+
<td style="background-color:#00CC99;margin:0;padding:0"><a href="javascript:assignColor('#00CC99')"><div class="csq"></div></a></td>
|
147 |
+
<td style="background-color:#00CCCC;margin:0;padding:0"><a href="javascript:assignColor('#00CCCC')"><div class="csq"></div></a></td>
|
148 |
+
<td style="background-color:#00CCFF;margin:0;padding:0"><a href="javascript:assignColor('#00CCFF')"><div class="csq"></div></a></td>
|
149 |
+
</tr>
|
150 |
+
<tr>
|
151 |
+
<td style="background-color:#003300;margin:0;padding:0"><a href="javascript:assignColor('#003300')"><div class="csq"></div></a></td>
|
152 |
+
<td style="background-color:#003333;margin:0;padding:0"><a href="javascript:assignColor('#003333')"><div class="csq"></div></a></td>
|
153 |
+
<td style="background-color:#003366;margin:0;padding:0"><a href="javascript:assignColor('#003366')"><div class="csq"></div></a></td>
|
154 |
+
<td style="background-color:#003399;margin:0;padding:0"><a href="javascript:assignColor('#003399')"><div class="csq"></div></a></td>
|
155 |
+
<td style="background-color:#0033CC;margin:0;padding:0"><a href="javascript:assignColor('#0033CC')"><div class="csq"></div></a></td>
|
156 |
+
<td style="background-color:#0033FF;margin:0;padding:0"><a href="javascript:assignColor('#0033FF')"><div class="csq"></div></a></td>
|
157 |
+
<td style="background-color:#009900;margin:0;padding:0"><a href="javascript:assignColor('#009900')"><div class="csq"></div></a></td>
|
158 |
+
<td style="background-color:#009933;margin:0;padding:0"><a href="javascript:assignColor('#009933')"><div class="csq"></div></a></td>
|
159 |
+
<td style="background-color:#009966;margin:0;padding:0"><a href="javascript:assignColor('#009966')"><div class="csq"></div></a></td>
|
160 |
+
<td style="background-color:#009999;margin:0;padding:0"><a href="javascript:assignColor('#009999')"><div class="csq"></div></a></td>
|
161 |
+
<td style="background-color:#0099CC;margin:0;padding:0"><a href="javascript:assignColor('#0099CC')"><div class="csq"></div></a></td>
|
162 |
+
<td style="background-color:#0099FF;margin:0;padding:0"><a href="javascript:assignColor('#0099FF')"><div class="csq"></div></a></td>
|
163 |
+
<td style="background-color:#00FF00;margin:0;padding:0"><a href="javascript:assignColor('#00FF00')"><div class="csq"></div></a></td>
|
164 |
+
<td style="background-color:#00FF33;margin:0;padding:0"><a href="javascript:assignColor('#00FF33')"><div class="csq"></div></a></td>
|
165 |
+
<td style="background-color:#00FF66;margin:0;padding:0"><a href="javascript:assignColor('#00FF66')"><div class="csq"></div></a></td>
|
166 |
+
<td style="background-color:#00FF99;margin:0;padding:0"><a href="javascript:assignColor('#00FF99')"><div class="csq"></div></a></td>
|
167 |
+
<td style="background-color:#00FFCC;margin:0;padding:0"><a href="javascript:assignColor('#00FFCC')"><div class="csq"></div></a></td>
|
168 |
+
<td style="background-color:#00FFFF;margin:0;padding:0"><a href="javascript:assignColor('#00FFFF')"><div class="csq"></div></a></td>
|
169 |
+
</tr>
|
170 |
+
<tr>
|
171 |
+
<td style="background-color:#330000;margin:0;padding:0"><a href="javascript:assignColor('#330000')"><div class="csq"></div></a></td>
|
172 |
+
<td style="background-color:#330033;margin:0;padding:0"><a href="javascript:assignColor('#330033')"><div class="csq"></div></a></td>
|
173 |
+
<td style="background-color:#330066;margin:0;padding:0"><a href="javascript:assignColor('#330066')"><div class="csq"></div></a></td>
|
174 |
+
<td style="background-color:#330099;margin:0;padding:0"><a href="javascript:assignColor('#330099')"><div class="csq"></div></a></td>
|
175 |
+
<td style="background-color:#3300CC;margin:0;padding:0"><a href="javascript:assignColor('#3300CC')"><div class="csq"></div></a></td>
|
176 |
+
<td style="background-color:#3300FF;margin:0;padding:0"><a href="javascript:assignColor('#3300FF')"><div class="csq"></div></a></td>
|
177 |
+
<td style="background-color:#336600;margin:0;padding:0"><a href="javascript:assignColor('#336600')"><div class="csq"></div></a></td>
|
178 |
+
<td style="background-color:#336633;margin:0;padding:0"><a href="javascript:assignColor('#336633')"><div class="csq"></div></a></td>
|
179 |
+
<td style="background-color:#336666;margin:0;padding:0"><a href="javascript:assignColor('#336666')"><div class="csq"></div></a></td>
|
180 |
+
<td style="background-color:#336699;margin:0;padding:0"><a href="javascript:assignColor('#336699')"><div class="csq"></div></a></td>
|
181 |
+
<td style="background-color:#3366CC;margin:0;padding:0"><a href="javascript:assignColor('#3366CC')"><div class="csq"></div></a></td>
|
182 |
+
<td style="background-color:#3366FF;margin:0;padding:0"><a href="javascript:assignColor('#3366FF')"><div class="csq"></div></a></td>
|
183 |
+
<td style="background-color:#33CC00;margin:0;padding:0"><a href="javascript:assignColor('#33CC00')"><div class="csq"></div></a></td>
|
184 |
+
<td style="background-color:#33CC33;margin:0;padding:0"><a href="javascript:assignColor('#33CC33')"><div class="csq"></div></a></td>
|
185 |
+
<td style="background-color:#33CC66;margin:0;padding:0"><a href="javascript:assignColor('#33CC66')"><div class="csq"></div></a></td>
|
186 |
+
<td style="background-color:#33CC99;margin:0;padding:0"><a href="javascript:assignColor('#33CC99')"><div class="csq"></div></a></td>
|
187 |
+
<td style="background-color:#33CCCC;margin:0;padding:0"><a href="javascript:assignColor('#33CCCC')"><div class="csq"></div></a></td>
|
188 |
+
<td style="background-color:#33CCFF;margin:0;padding:0"><a href="javascript:assignColor('#33CCFF')"><div class="csq"></div></a></td>
|
189 |
+
</tr>
|
190 |
+
<tr>
|
191 |
+
<td style="background-color:#333300;margin:0;padding:0"><a href="javascript:assignColor('#333300')"><div class="csq"></div></a></td>
|
192 |
+
<td style="background-color:#333333;margin:0;padding:0"><a href="javascript:assignColor('#333333')"><div class="csq"></div></a></td>
|
193 |
+
<td style="background-color:#333366;margin:0;padding:0"><a href="javascript:assignColor('#333366')"><div class="csq"></div></a></td>
|
194 |
+
<td style="background-color:#333399;margin:0;padding:0"><a href="javascript:assignColor('#333399')"><div class="csq"></div></a></td>
|
195 |
+
<td style="background-color:#3333CC;margin:0;padding:0"><a href="javascript:assignColor('#3333CC')"><div class="csq"></div></a></td>
|
196 |
+
<td style="background-color:#3333FF;margin:0;padding:0"><a href="javascript:assignColor('#3333FF')"><div class="csq"></div></a></td>
|
197 |
+
<td style="background-color:#339900;margin:0;padding:0"><a href="javascript:assignColor('#339900')"><div class="csq"></div></a></td>
|
198 |
+
<td style="background-color:#339933;margin:0;padding:0"><a href="javascript:assignColor('#339933')"><div class="csq"></div></a></td>
|
199 |
+
<td style="background-color:#339966;margin:0;padding:0"><a href="javascript:assignColor('#339966')"><div class="csq"></div></a></td>
|
200 |
+
<td style="background-color:#339999;margin:0;padding:0"><a href="javascript:assignColor('#339999')"><div class="csq"></div></a></td>
|
201 |
+
<td style="background-color:#3399CC;margin:0;padding:0"><a href="javascript:assignColor('#3399CC')"><div class="csq"></div></a></td>
|
202 |
+
<td style="background-color:#3399FF;margin:0;padding:0"><a href="javascript:assignColor('#3399FF')"><div class="csq"></div></a></td>
|
203 |
+
<td style="background-color:#33FF00;margin:0;padding:0"><a href="javascript:assignColor('#33FF00')"><div class="csq"></div></a></td>
|
204 |
+
<td style="background-color:#33FF33;margin:0;padding:0"><a href="javascript:assignColor('#33FF33')"><div class="csq"></div></a></td>
|
205 |
+
<td style="background-color:#33FF66;margin:0;padding:0"><a href="javascript:assignColor('#33FF66')"><div class="csq"></div></a></td>
|
206 |
+
<td style="background-color:#33FF99;margin:0;padding:0"><a href="javascript:assignColor('#33FF99')"><div class="csq"></div></a></td>
|
207 |
+
<td style="background-color:#33FFCC;margin:0;padding:0"><a href="javascript:assignColor('#33FFCC')"><div class="csq"></div></a></td>
|
208 |
+
<td style="background-color:#33FFFF;margin:0;padding:0"><a href="javascript:assignColor('#33FFFF')"><div class="csq"></div></a></td>
|
209 |
+
</tr>
|
210 |
+
<tr>
|
211 |
+
<td style="background-color:#660000;margin:0;padding:0"><a href="javascript:assignColor('#660000')"><div class="csq"></div></a></td>
|
212 |
+
<td style="background-color:#660033;margin:0;padding:0"><a href="javascript:assignColor('#660033')"><div class="csq"></div></a></td>
|
213 |
+
<td style="background-color:#660066;margin:0;padding:0"><a href="javascript:assignColor('#660066')"><div class="csq"></div></a></td>
|
214 |
+
<td style="background-color:#660099;margin:0;padding:0"><a href="javascript:assignColor('#660099')"><div class="csq"></div></a></td>
|
215 |
+
<td style="background-color:#6600CC;margin:0;padding:0"><a href="javascript:assignColor('#6600CC')"><div class="csq"></div></a></td>
|
216 |
+
<td style="background-color:#6600FF;margin:0;padding:0"><a href="javascript:assignColor('#6600FF')"><div class="csq"></div></a></td>
|
217 |
+
<td style="background-color:#666600;margin:0;padding:0"><a href="javascript:assignColor('#666600')"><div class="csq"></div></a></td>
|
218 |
+
<td style="background-color:#666633;margin:0;padding:0"><a href="javascript:assignColor('#666633')"><div class="csq"></div></a></td>
|
219 |
+
<td style="background-color:#666666;margin:0;padding:0"><a href="javascript:assignColor('#666666')"><div class="csq"></div></a></td>
|
220 |
+
<td style="background-color:#666699;margin:0;padding:0"><a href="javascript:assignColor('#666699')"><div class="csq"></div></a></td>
|
221 |
+
<td style="background-color:#6666CC;margin:0;padding:0"><a href="javascript:assignColor('#6666CC')"><div class="csq"></div></a></td>
|
222 |
+
<td style="background-color:#6666FF;margin:0;padding:0"><a href="javascript:assignColor('#6666FF')"><div class="csq"></div></a></td>
|
223 |
+
<td style="background-color:#66CC00;margin:0;padding:0"><a href="javascript:assignColor('#66CC00')"><div class="csq"></div></a></td>
|
224 |
+
<td style="background-color:#66CC33;margin:0;padding:0"><a href="javascript:assignColor('#66CC33')"><div class="csq"></div></a></td>
|
225 |
+
<td style="background-color:#66CC66;margin:0;padding:0"><a href="javascript:assignColor('#66CC66')"><div class="csq"></div></a></td>
|
226 |
+
<td style="background-color:#66CC99;margin:0;padding:0"><a href="javascript:assignColor('#66CC99')"><div class="csq"></div></a></td>
|
227 |
+
<td style="background-color:#66CCCC;margin:0;padding:0"><a href="javascript:assignColor('#66CCCC')"><div class="csq"></div></a></td>
|
228 |
+
<td style="background-color:#66CCFF;margin:0;padding:0"><a href="javascript:assignColor('#66CCFF')"><div class="csq"></div></a></td>
|
229 |
+
</tr>
|
230 |
+
<tr>
|
231 |
+
<td style="background-color:#663300;margin:0;padding:0"><a href="javascript:assignColor('#663300')"><div class="csq"></div></a></td>
|
232 |
+
<td style="background-color:#663333;margin:0;padding:0"><a href="javascript:assignColor('#663333')"><div class="csq"></div></a></td>
|
233 |
+
<td style="background-color:#663366;margin:0;padding:0"><a href="javascript:assignColor('#663366')"><div class="csq"></div></a></td>
|
234 |
+
<td style="background-color:#663399;margin:0;padding:0"><a href="javascript:assignColor('#663399')"><div class="csq"></div></a></td>
|
235 |
+
<td style="background-color:#6633CC;margin:0;padding:0"><a href="javascript:assignColor('#6633CC')"><div class="csq"></div></a></td>
|
236 |
+
<td style="background-color:#6633FF;margin:0;padding:0"><a href="javascript:assignColor('#6633FF')"><div class="csq"></div></a></td>
|
237 |
+
<td style="background-color:#669900;margin:0;padding:0"><a href="javascript:assignColor('#669900')"><div class="csq"></div></a></td>
|
238 |
+
<td style="background-color:#669933;margin:0;padding:0"><a href="javascript:assignColor('#669933')"><div class="csq"></div></a></td>
|
239 |
+
<td style="background-color:#669966;margin:0;padding:0"><a href="javascript:assignColor('#669966')"><div class="csq"></div></a></td>
|
240 |
+
<td style="background-color:#669999;margin:0;padding:0"><a href="javascript:assignColor('#669999')"><div class="csq"></div></a></td>
|
241 |
+
<td style="background-color:#6699CC;margin:0;padding:0"><a href="javascript:assignColor('#6699CC')"><div class="csq"></div></a></td>
|
242 |
+
<td style="background-color:#6699FF;margin:0;padding:0"><a href="javascript:assignColor('#6699FF')"><div class="csq"></div></a></td>
|
243 |
+
<td style="background-color:#66FF00;margin:0;padding:0"><a href="javascript:assignColor('#66FF00')"><div class="csq"></div></a></td>
|
244 |
+
<td style="background-color:#66FF33;margin:0;padding:0"><a href="javascript:assignColor('#66FF33')"><div class="csq"></div></a></td>
|
245 |
+
<td style="background-color:#66FF66;margin:0;padding:0"><a href="javascript:assignColor('#66FF66')"><div class="csq"></div></a></td>
|
246 |
+
<td style="background-color:#66FF99;margin:0;padding:0"><a href="javascript:assignColor('#66FF99')"><div class="csq"></div></a></td>
|
247 |
+
<td style="background-color:#66FFCC;margin:0;padding:0"><a href="javascript:assignColor('#66FFCC')"><div class="csq"></div></a></td>
|
248 |
+
<td style="background-color:#66FFFF;margin:0;padding:0"><a href="javascript:assignColor('#66FFFF')"><div class="csq"></div></a></td>
|
249 |
+
</tr>
|
250 |
+
<tr>
|
251 |
+
<td style="background-color:#990000;margin:0;padding:0"><a href="javascript:assignColor('#990000')"><div class="csq"></div></a></td>
|
252 |
+
<td style="background-color:#990033;margin:0;padding:0"><a href="javascript:assignColor('#990033')"><div class="csq"></div></a></td>
|
253 |
+
<td style="background-color:#990066;margin:0;padding:0"><a href="javascript:assignColor('#990066')"><div class="csq"></div></a></td>
|
254 |
+
<td style="background-color:#990099;margin:0;padding:0"><a href="javascript:assignColor('#990099')"><div class="csq"></div></a></td>
|
255 |
+
<td style="background-color:#9900CC;margin:0;padding:0"><a href="javascript:assignColor('#9900CC')"><div class="csq"></div></a></td>
|
256 |
+
<td style="background-color:#9900FF;margin:0;padding:0"><a href="javascript:assignColor('#9900FF')"><div class="csq"></div></a></td>
|
257 |
+
<td style="background-color:#996600;margin:0;padding:0"><a href="javascript:assignColor('#996600')"><div class="csq"></div></a></td>
|
258 |
+
<td style="background-color:#996633;margin:0;padding:0"><a href="javascript:assignColor('#996633')"><div class="csq"></div></a></td>
|
259 |
+
<td style="background-color:#996666;margin:0;padding:0"><a href="javascript:assignColor('#996666')"><div class="csq"></div></a></td>
|
260 |
+
<td style="background-color:#996699;margin:0;padding:0"><a href="javascript:assignColor('#996699')"><div class="csq"></div></a></td>
|
261 |
+
<td style="background-color:#9966CC;margin:0;padding:0"><a href="javascript:assignColor('#9966CC')"><div class="csq"></div></a></td>
|
262 |
+
<td style="background-color:#9966FF;margin:0;padding:0"><a href="javascript:assignColor('#9966FF')"><div class="csq"></div></a></td>
|
263 |
+
<td style="background-color:#99CC00;margin:0;padding:0"><a href="javascript:assignColor('#99CC00')"><div class="csq"></div></a></td>
|
264 |
+
<td style="background-color:#99CC33;margin:0;padding:0"><a href="javascript:assignColor('#99CC33')"><div class="csq"></div></a></td>
|
265 |
+
<td style="background-color:#99CC66;margin:0;padding:0"><a href="javascript:assignColor('#99CC66')"><div class="csq"></div></a></td>
|
266 |
+
<td style="background-color:#99CC99;margin:0;padding:0"><a href="javascript:assignColor('#99CC99')"><div class="csq"></div></a></td>
|
267 |
+
<td style="background-color:#99CCCC;margin:0;padding:0"><a href="javascript:assignColor('#99CCCC')"><div class="csq"></div></a></td>
|
268 |
+
<td style="background-color:#99CCFF;margin:0;padding:0"><a href="javascript:assignColor('#99CCFF')"><div class="csq"></div></a></td>
|
269 |
+
</tr>
|
270 |
+
<tr>
|
271 |
+
<td style="background-color:#993300;margin:0;padding:0"><a href="javascript:assignColor('#993300')"><div class="csq"></div></a></td>
|
272 |
+
<td style="background-color:#993333;margin:0;padding:0"><a href="javascript:assignColor('#993333')"><div class="csq"></div></a></td>
|
273 |
+
<td style="background-color:#993366;margin:0;padding:0"><a href="javascript:assignColor('#993366')"><div class="csq"></div></a></td>
|
274 |
+
<td style="background-color:#993399;margin:0;padding:0"><a href="javascript:assignColor('#993399')"><div class="csq"></div></a></td>
|
275 |
+
<td style="background-color:#9933CC;margin:0;padding:0"><a href="javascript:assignColor('#9933CC')"><div class="csq"></div></a></td>
|
276 |
+
<td style="background-color:#9933FF;margin:0;padding:0"><a href="javascript:assignColor('#9933FF')"><div class="csq"></div></a></td>
|
277 |
+
<td style="background-color:#999900;margin:0;padding:0"><a href="javascript:assignColor('#999900')"><div class="csq"></div></a></td>
|
278 |
+
<td style="background-color:#999933;margin:0;padding:0"><a href="javascript:assignColor('#999933')"><div class="csq"></div></a></td>
|
279 |
+
<td style="background-color:#999966;margin:0;padding:0"><a href="javascript:assignColor('#999966')"><div class="csq"></div></a></td>
|
280 |
+
<td style="background-color:#999999;margin:0;padding:0"><a href="javascript:assignColor('#999999')"><div class="csq"></div></a></td>
|
281 |
+
<td style="background-color:#9999CC;margin:0;padding:0"><a href="javascript:assignColor('#9999CC')"><div class="csq"></div></a></td>
|
282 |
+
<td style="background-color:#9999FF;margin:0;padding:0"><a href="javascript:assignColor('#9999FF')"><div class="csq"></div></a></td>
|
283 |
+
<td style="background-color:#99FF00;margin:0;padding:0"><a href="javascript:assignColor('#99FF00')"><div class="csq"></div></a></td>
|
284 |
+
<td style="background-color:#99FF33;margin:0;padding:0"><a href="javascript:assignColor('#99FF33')"><div class="csq"></div></a></td>
|
285 |
+
<td style="background-color:#99FF66;margin:0;padding:0"><a href="javascript:assignColor('#99FF66')"><div class="csq"></div></a></td>
|
286 |
+
<td style="background-color:#99FF99;margin:0;padding:0"><a href="javascript:assignColor('#99FF99')"><div class="csq"></div></a></td>
|
287 |
+
<td style="background-color:#99FFCC;margin:0;padding:0"><a href="javascript:assignColor('#99FFCC')"><div class="csq"></div></a></td>
|
288 |
+
<td style="background-color:#99FFFF;margin:0;padding:0"><a href="javascript:assignColor('#99FFFF')"><div class="csq"></div></a></td>
|
289 |
+
</tr>
|
290 |
+
<tr>
|
291 |
+
<td style="background-color:#CC0000;margin:0;padding:0"><a href="javascript:assignColor('#CC0000')"><div class="csq"></div></a></td>
|
292 |
+
<td style="background-color:#CC0033;margin:0;padding:0"><a href="javascript:assignColor('#CC0033')"><div class="csq"></div></a></td>
|
293 |
+
<td style="background-color:#CC0066;margin:0;padding:0"><a href="javascript:assignColor('#CC0066')"><div class="csq"></div></a></td>
|
294 |
+
<td style="background-color:#CC0099;margin:0;padding:0"><a href="javascript:assignColor('#CC0099')"><div class="csq"></div></a></td>
|
295 |
+
<td style="background-color:#CC00CC;margin:0;padding:0"><a href="javascript:assignColor('#CC00CC')"><div class="csq"></div></a></td>
|
296 |
+
<td style="background-color:#CC00FF;margin:0;padding:0"><a href="javascript:assignColor('#CC00FF')"><div class="csq"></div></a></td>
|
297 |
+
<td style="background-color:#CC6600;margin:0;padding:0"><a href="javascript:assignColor('#CC6600')"><div class="csq"></div></a></td>
|
298 |
+
<td style="background-color:#CC6633;margin:0;padding:0"><a href="javascript:assignColor('#CC6633')"><div class="csq"></div></a></td>
|
299 |
+
<td style="background-color:#CC6666;margin:0;padding:0"><a href="javascript:assignColor('#CC6666')"><div class="csq"></div></a></td>
|
300 |
+
<td style="background-color:#CC6699;margin:0;padding:0"><a href="javascript:assignColor('#CC6699')"><div class="csq"></div></a></td>
|
301 |
+
<td style="background-color:#CC66CC;margin:0;padding:0"><a href="javascript:assignColor('#CC66CC')"><div class="csq"></div></a></td>
|
302 |
+
<td style="background-color:#CC66FF;margin:0;padding:0"><a href="javascript:assignColor('#CC66FF')"><div class="csq"></div></a></td>
|
303 |
+
<td style="background-color:#CCCC00;margin:0;padding:0"><a href="javascript:assignColor('#CCCC00')"><div class="csq"></div></a></td>
|
304 |
+
<td style="background-color:#CCCC33;margin:0;padding:0"><a href="javascript:assignColor('#CCCC33')"><div class="csq"></div></a></td>
|
305 |
+
<td style="background-color:#CCCC66;margin:0;padding:0"><a href="javascript:assignColor('#CCCC66')"><div class="csq"></div></a></td>
|
306 |
+
<td style="background-color:#CCCC99;margin:0;padding:0"><a href="javascript:assignColor('#CCCC99')"><div class="csq"></div></a></td>
|
307 |
+
<td style="background-color:#CCCCCC;margin:0;padding:0"><a href="javascript:assignColor('#CCCCCC')"><div class="csq"></div></a></td>
|
308 |
+
<td style="background-color:#CCCCFF;margin:0;padding:0"><a href="javascript:assignColor('#CCCCFF')"><div class="csq"></div></a></td>
|
309 |
+
</tr>
|
310 |
+
<tr>
|
311 |
+
<td style="background-color:#CC3300;margin:0;padding:0"><a href="javascript:assignColor('#CC3300')"><div class="csq"></div></a></td>
|
312 |
+
<td style="background-color:#CC3333;margin:0;padding:0"><a href="javascript:assignColor('#CC3333')"><div class="csq"></div></a></td>
|
313 |
+
<td style="background-color:#CC3366;margin:0;padding:0"><a href="javascript:assignColor('#CC3366')"><div class="csq"></div></a></td>
|
314 |
+
<td style="background-color:#CC3399;margin:0;padding:0"><a href="javascript:assignColor('#CC3399')"><div class="csq"></div></a></td>
|
315 |
+
<td style="background-color:#CC33CC;margin:0;padding:0"><a href="javascript:assignColor('#CC33CC')"><div class="csq"></div></a></td>
|
316 |
+
<td style="background-color:#CC33FF;margin:0;padding:0"><a href="javascript:assignColor('#CC33FF')"><div class="csq"></div></a></td>
|
317 |
+
<td style="background-color:#CC9900;margin:0;padding:0"><a href="javascript:assignColor('#CC9900')"><div class="csq"></div></a></td>
|
318 |
+
<td style="background-color:#CC9933;margin:0;padding:0"><a href="javascript:assignColor('#CC9933')"><div class="csq"></div></a></td>
|
319 |
+
<td style="background-color:#CC9966;margin:0;padding:0"><a href="javascript:assignColor('#CC9966')"><div class="csq"></div></a></td>
|
320 |
+
<td style="background-color:#CC9999;margin:0;padding:0"><a href="javascript:assignColor('#CC9999')"><div class="csq"></div></a></td>
|
321 |
+
<td style="background-color:#CC99CC;margin:0;padding:0"><a href="javascript:assignColor('#CC99CC')"><div class="csq"></div></a></td>
|
322 |
+
<td style="background-color:#CC99FF;margin:0;padding:0"><a href="javascript:assignColor('#CC99FF')"><div class="csq"></div></a></td>
|
323 |
+
<td style="background-color:#CCFF00;margin:0;padding:0"><a href="javascript:assignColor('#CCFF00')"><div class="csq"></div></a></td>
|
324 |
+
<td style="background-color:#CCFF33;margin:0;padding:0"><a href="javascript:assignColor('#CCFF33')"><div class="csq"></div></a></td>
|
325 |
+
<td style="background-color:#CCFF66;margin:0;padding:0"><a href="javascript:assignColor('#CCFF66')"><div class="csq"></div></a></td>
|
326 |
+
<td style="background-color:#CCFF99;margin:0;padding:0"><a href="javascript:assignColor('#CCFF99')"><div class="csq"></div></a></td>
|
327 |
+
<td style="background-color:#CCFFCC;margin:0;padding:0"><a href="javascript:assignColor('#CCFFCC')"><div class="csq"></div></a></td>
|
328 |
+
<td style="background-color:#CCFFFF;margin:0;padding:0"><a href="javascript:assignColor('#CCFFFF')"><div class="csq"></div></a></td>
|
329 |
+
</tr>
|
330 |
+
<tr>
|
331 |
+
<td style="background-color:#FF0000;margin:0;padding:0"><a href="javascript:assignColor('#FF0000')"><div class="csq"></div></a></td>
|
332 |
+
<td style="background-color:#FF0033;margin:0;padding:0"><a href="javascript:assignColor('#FF0033')"><div class="csq"></div></a></td>
|
333 |
+
<td style="background-color:#FF0066;margin:0;padding:0"><a href="javascript:assignColor('#FF0066')"><div class="csq"></div></a></td>
|
334 |
+
<td style="background-color:#FF0099;margin:0;padding:0"><a href="javascript:assignColor('#FF0099')"><div class="csq"></div></a></td>
|
335 |
+
<td style="background-color:#FF00CC;margin:0;padding:0"><a href="javascript:assignColor('#FF00CC')"><div class="csq"></div></a></td>
|
336 |
+
<td style="background-color:#FF00FF;margin:0;padding:0"><a href="javascript:assignColor('#FF00FF')"><div class="csq"></div></a></td>
|
337 |
+
<td style="background-color:#FF6600;margin:0;padding:0"><a href="javascript:assignColor('#FF6600')"><div class="csq"></div></a></td>
|
338 |
+
<td style="background-color:#FF6633;margin:0;padding:0"><a href="javascript:assignColor('#FF6633')"><div class="csq"></div></a></td>
|
339 |
+
<td style="background-color:#FF6666;margin:0;padding:0"><a href="javascript:assignColor('#FF6666')"><div class="csq"></div></a></td>
|
340 |
+
<td style="background-color:#FF6699;margin:0;padding:0"><a href="javascript:assignColor('#FF6699')"><div class="csq"></div></a></td>
|
341 |
+
<td style="background-color:#FF66CC;margin:0;padding:0"><a href="javascript:assignColor('#FF66CC')"><div class="csq"></div></a></td>
|
342 |
+
<td style="background-color:#FF66FF;margin:0;padding:0"><a href="javascript:assignColor('#FF66FF')"><div class="csq"></div></a></td>
|
343 |
+
<td style="background-color:#FFCC00;margin:0;padding:0"><a href="javascript:assignColor('#FFCC00')"><div class="csq"></div></a></td>
|
344 |
+
<td style="background-color:#FFCC33;margin:0;padding:0"><a href="javascript:assignColor('#FFCC33')"><div class="csq"></div></a></td>
|
345 |
+
<td style="background-color:#FFCC66;margin:0;padding:0"><a href="javascript:assignColor('#FFCC66')"><div class="csq"></div></a></td>
|
346 |
+
<td style="background-color:#FFCC99;margin:0;padding:0"><a href="javascript:assignColor('#FFCC99')"><div class="csq"></div></a></td>
|
347 |
+
<td style="background-color:#FFCCCC;margin:0;padding:0"><a href="javascript:assignColor('#FFCCCC')"><div class="csq"></div></a></td>
|
348 |
+
<td style="background-color:#FFCCFF;margin:0;padding:0"><a href="javascript:assignColor('#FFCCFF')"><div class="csq"></div></a></td>
|
349 |
+
</tr>
|
350 |
+
<tr>
|
351 |
+
<td style="background-color:#FF3300;margin:0;padding:0"><a href="javascript:assignColor('#FF3300')"><div class="csq"></div></a></td>
|
352 |
+
<td style="background-color:#FF3333;margin:0;padding:0"><a href="javascript:assignColor('#FF3333')"><div class="csq"></div></a></td>
|
353 |
+
<td style="background-color:#FF3366;margin:0;padding:0"><a href="javascript:assignColor('#FF3366')"><div class="csq"></div></a></td>
|
354 |
+
<td style="background-color:#FF3399;margin:0;padding:0"><a href="javascript:assignColor('#FF3399')"><div class="csq"></div></a></td>
|
355 |
+
<td style="background-color:#FF33CC;margin:0;padding:0"><a href="javascript:assignColor('#FF33CC')"><div class="csq"></div></a></td>
|
356 |
+
<td style="background-color:#FF33FF;margin:0;padding:0"><a href="javascript:assignColor('#FF33FF')"><div class="csq"></div></a></td>
|
357 |
+
<td style="background-color:#FF9900;margin:0;padding:0"><a href="javascript:assignColor('#FF9900')"><div class="csq"></div></a></td>
|
358 |
+
<td style="background-color:#FF9933;margin:0;padding:0"><a href="javascript:assignColor('#FF9933')"><div class="csq"></div></a></td>
|
359 |
+
<td style="background-color:#FF9966;margin:0;padding:0"><a href="javascript:assignColor('#FF9966')"><div class="csq"></div></a></td>
|
360 |
+
<td style="background-color:#FF9999;margin:0;padding:0"><a href="javascript:assignColor('#FF9999')"><div class="csq"></div></a></td>
|
361 |
+
<td style="background-color:#FF99CC;margin:0;padding:0"><a href="javascript:assignColor('#FF99CC')"><div class="csq"></div></a></td>
|
362 |
+
<td style="background-color:#FF99FF;margin:0;padding:0"><a href="javascript:assignColor('#FF99FF')"><div class="csq"></div></a></td>
|
363 |
+
<td style="background-color:#FFFF00;margin:0;padding:0"><a href="javascript:assignColor('#FFFF00')"><div class="csq"></div></a></td>
|
364 |
+
<td style="background-color:#FFFF33;margin:0;padding:0"><a href="javascript:assignColor('#FFFF33')"><div class="csq"></div></a></td>
|
365 |
+
<td style="background-color:#FFFF66;margin:0;padding:0"><a href="javascript:assignColor('#FFFF66')"><div class="csq"></div></a></td>
|
366 |
+
<td style="background-color:#FFFF99;margin:0;padding:0"><a href="javascript:assignColor('#FFFF99')"><div class="csq"></div></a></td>
|
367 |
+
<td style="background-color:#FFFFCC;margin:0;padding:0"><a href="javascript:assignColor('#FFFFCC')"><div class="csq"></div></a></td>
|
368 |
+
<td style="background-color:#FFFFFF;margin:0;padding:0"><a href="javascript:assignColor('#FFFFFF')"><div class="csq"></div></a></td>
|
369 |
+
</tr>
|
370 |
+
</table>
|
371 |
+
<label for="s2w_radioColor1"><input type="radio" name="s2w_radioColor" value="body" id="s2w_radioColor1" checked="checked" /><input type="text" name="s2w_bodyColor" maxlength="7" value="<?php echo $s2w_bg; ?>" onkeyup="document.forms['widget-controls'].s2w_radioColor[0].checked=true;assignColor(this.value)" style="width:60px;" /> Body</label><br /><br />
|
372 |
+
<label for="s2w_radioColor2"><input type="radio" name="s2w_radioColor" value="text" id="s2w_radioColor2" /><input type="text" name="s2w_textColor" maxlength="7" value="<?php echo $s2w_fg; ?>" onkeyup="document.forms['widget-controls'].s2w_radioColor[1].checked=true;assignColor(this.value)" style="width:60px;" /> Text</label><br />
|
373 |
+
</fieldset>
|
374 |
+
|
375 |
+
<fieldset>
|
376 |
+
<legend>Width, Height and Font Size</legend>
|
377 |
+
<table style="border:0; padding:0; margin:0 0 12px 0; border-collapse:collapse;" align="center">
|
378 |
+
<tr><td>Width</td>
|
379 |
+
<td><input type="text" name="width" id="width" value="<?php echo $s2w_width; ?>" onkeyup="assignSize(this.value, this.name)" /></td></tr>
|
380 |
+
<tr><td>Height</td>
|
381 |
+
<td><input type="text" name="height" id="height" value="<?php echo $s2w_height; ?>" onkeyup="assignSize(this.value, this.name)" /></td></tr>
|
382 |
+
<tr><td>Font</td>
|
383 |
+
<td><input type="text" name="font" id="font" value="<?php echo $s2w_font; ?>" onkeyup="assignSize(this.value, this.name)" /></td></tr>
|
384 |
+
</table>
|
385 |
+
</fieldset>
|
386 |
+
|
387 |
+
<fieldset style="text-align:center;">
|
388 |
+
<legend>Subscriber Counter Button Preview</legend>
|
389 |
+
<center><div id="countPreviewDiv">30</div></center>
|
390 |
+
</fieldset>
|
391 |
+
|
392 |
+
<input type="hidden" id="s2counter" name="s2counter" value="1" />
|
393 |
+
|
394 |
+
</div>
|
395 |
+
<?php
|
396 |
+
}
|
397 |
+
|
398 |
+
/**
|
399 |
+
Actually register the Widget into the WordPress Widget API
|
400 |
+
*/
|
401 |
+
register_sidebar_widget('Subscribe2 Counter', 'widget_s2counter');
|
402 |
+
register_widget_control('Subscribe2 Counter', 'widget_s2counter_control');
|
403 |
+
}
|
404 |
+
|
405 |
+
// Run our code later in case this loads prior to any required plugins.
|
406 |
+
add_action('plugins_loaded', 'widget_s2counter_init');
|
407 |
+
?>
|
include/options.php
CHANGED
@@ -14,6 +14,10 @@ if (!isset($this->subscribe2_options['autoformat'])) {
|
|
14 |
$this->subscribe2_options['autoformat'] = "text";
|
15 |
} // option for default auto-subscription email format
|
16 |
|
|
|
|
|
|
|
|
|
17 |
if (!isset($this->subscribe2_options['autosub_def'])) {
|
18 |
$this->subscribe2_options['autosub_def'] = "yes";
|
19 |
} // option for user default auto-subscription to new categories
|
@@ -22,10 +26,18 @@ if(!isset($this->subscribe2_options['bcclimit'])) {
|
|
22 |
$this->subscribe2_options['bcclimit'] = 0;
|
23 |
} // option for default bcc limit on email notifications
|
24 |
|
|
|
|
|
|
|
|
|
25 |
if(!isset($this->subscribe2_options['s2page'])) {
|
26 |
$this->subscribe2_options['s2page'] = 0;
|
27 |
} // option for default WordPress page for Subscribe2 to use
|
28 |
|
|
|
|
|
|
|
|
|
29 |
if (!isset($this->subscribe2_options['pages'])) {
|
30 |
$this->subscribe2_options['pages'] = "no";
|
31 |
} // option for sending notifications for WordPress pages
|
@@ -50,11 +62,14 @@ if (!isset($this->subscribe2_options['sender'])) {
|
|
50 |
$this->subscribe2_options['sender'] = "author";
|
51 |
} // option for email notification sender
|
52 |
|
53 |
-
// reg_override : allow registered users to subscribed to excluded cats
|
54 |
if (!isset($this->subscribe2_options['reg_override'])) {
|
55 |
$this->subscribe2_options['reg_override'] = "1";
|
56 |
} // option for excluded categories to be overriden for registered users
|
57 |
|
|
|
|
|
|
|
|
|
58 |
if (!isset($this->subscribe2_options['show_button'])) {
|
59 |
$this->subscribe2_options['show_button'] = "1";
|
60 |
} // option to show Subscribe2 button on Write page
|
@@ -63,6 +78,10 @@ if (!isset($this->subscribe2_options['widget'])) {
|
|
63 |
$this->subscribe2_options['widget'] = "0";
|
64 |
} // option to enable Subscribe2 Widget
|
65 |
|
|
|
|
|
|
|
|
|
66 |
if (!isset($this->subscribe2_options['barred'])) {
|
67 |
$this->subscribe2_options['barred'] = '';
|
68 |
} // option containing domains barred from public registration
|
14 |
$this->subscribe2_options['autoformat'] = "text";
|
15 |
} // option for default auto-subscription email format
|
16 |
|
17 |
+
if (!isset($this->subscribe2_options['show_autosub'])) {
|
18 |
+
$this->subscribe2_options['show_autosub'] = "yes";
|
19 |
+
} // option to display auto-subscription option to registered users
|
20 |
+
|
21 |
if (!isset($this->subscribe2_options['autosub_def'])) {
|
22 |
$this->subscribe2_options['autosub_def'] = "yes";
|
23 |
} // option for user default auto-subscription to new categories
|
26 |
$this->subscribe2_options['bcclimit'] = 0;
|
27 |
} // option for default bcc limit on email notifications
|
28 |
|
29 |
+
if (!isset($this->subscribe2_options['admin_email'])) {
|
30 |
+
$this->subscribe2_options['admin_email'] = "subs";
|
31 |
+
} // option for sending new subscriber notifications to admins
|
32 |
+
|
33 |
if(!isset($this->subscribe2_options['s2page'])) {
|
34 |
$this->subscribe2_options['s2page'] = 0;
|
35 |
} // option for default WordPress page for Subscribe2 to use
|
36 |
|
37 |
+
if (!isset($this->subscribe2_options['pages'])) {
|
38 |
+
$this->subscribe2_options['bcclimit'] = "0";
|
39 |
+
} // option for restricting the number of recipients per email notification
|
40 |
+
|
41 |
if (!isset($this->subscribe2_options['pages'])) {
|
42 |
$this->subscribe2_options['pages'] = "no";
|
43 |
} // option for sending notifications for WordPress pages
|
62 |
$this->subscribe2_options['sender'] = "author";
|
63 |
} // option for email notification sender
|
64 |
|
|
|
65 |
if (!isset($this->subscribe2_options['reg_override'])) {
|
66 |
$this->subscribe2_options['reg_override'] = "1";
|
67 |
} // option for excluded categories to be overriden for registered users
|
68 |
|
69 |
+
if(!isset($this->subscribe2_options['show_meta'])) {
|
70 |
+
$this->subscribe2_options['show_meta'] = "0";
|
71 |
+
} // option to display link to subscribe2 page from 'meta'
|
72 |
+
|
73 |
if (!isset($this->subscribe2_options['show_button'])) {
|
74 |
$this->subscribe2_options['show_button'] = "1";
|
75 |
} // option to show Subscribe2 button on Write page
|
78 |
$this->subscribe2_options['widget'] = "0";
|
79 |
} // option to enable Subscribe2 Widget
|
80 |
|
81 |
+
if (!isset($this->subscribe2_options['entries'])) {
|
82 |
+
$this->subscribe2_options['entries'] = 25;
|
83 |
+
} // option for the number of subscribers displayed on each page
|
84 |
+
|
85 |
if (!isset($this->subscribe2_options['barred'])) {
|
86 |
$this->subscribe2_options['barred'] = '';
|
87 |
} // option containing domains barred from public registration
|
include/s2_edit.js
CHANGED
@@ -2,6 +2,7 @@ jQuery(document).ready(function() {
|
|
2 |
// hide our span before page loads
|
3 |
jQuery('#s2bcc_2').hide();
|
4 |
jQuery('#s2page_2').hide();
|
|
|
5 |
});
|
6 |
|
7 |
//show span on clicking the edit link
|
2 |
// hide our span before page loads
|
3 |
jQuery('#s2bcc_2').hide();
|
4 |
jQuery('#s2page_2').hide();
|
5 |
+
jQuery('#s2entries_2').hide();
|
6 |
});
|
7 |
|
8 |
//show span on clicking the edit link
|
subscribe2.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Subscribe2
|
4 |
Plugin URI: http://subscribe2.wordpress.com
|
5 |
Description: Notifies an email list when new entries are posted.
|
6 |
-
Version: 4.
|
7 |
Author: Matthew Robinson
|
8 |
Author URI: http://subscribe2.wordpress.com
|
9 |
*/
|
@@ -31,7 +31,7 @@ along with Subscribe2. If not, see <http://www.gnu.org/licenses/>.
|
|
31 |
|
32 |
// our version number. Don't touch this or any line below
|
33 |
// unless you know exacly what you are doing
|
34 |
-
define('S2VERSION', '4.
|
35 |
define('S2PATH', trailingslashit(dirname(__FILE__)));
|
36 |
|
37 |
// Pre-2.6 compatibility
|
@@ -117,7 +117,7 @@ class s2class {
|
|
117 |
add_action("admin_print_scripts-$s2options", array(&$this, 'option_form_js'));
|
118 |
add_filter('plugin_action_links', array(&$this, 'plugin_action'), -10, 2);
|
119 |
|
120 |
-
$s2user = add_users_page(__('
|
121 |
add_action("admin_print_scripts-$s2user", array(&$this, 'checkbox_form_js'));
|
122 |
|
123 |
add_submenu_page('post-new.php', __('Mail Subscribers', 'subscribe2'), __('Mail Subscribers', 'subscribe2'), "publish_posts", __FILE__, array(&$this, 'write_menu'));
|
@@ -246,7 +246,7 @@ class s2class {
|
|
246 |
*/
|
247 |
function mail ($recipients = array(), $subject = '', $message = '', $type='text') {
|
248 |
if ( (empty($recipients)) || ('' == $message) ) { return; }
|
249 |
-
|
250 |
// Set sender details
|
251 |
if ('' == $this->myname) {
|
252 |
$admin = $this->get_userdata();
|
@@ -263,7 +263,8 @@ class s2class {
|
|
263 |
// To send HTML mail, the Content-Type header must be set
|
264 |
$headers .= "MIME-Version: 1.0\n";
|
265 |
$headers .= "Content-Type: " . get_bloginfo('html_type') . "; charset=\"". get_bloginfo('charset') . "\"\n";
|
266 |
-
$mailtext = "<html><head><title>" . $subject . "</title
|
|
|
267 |
} else {
|
268 |
$headers .= "MIME-Version: 1.0\n";
|
269 |
$headers .= "Content-Type: text/plain; charset=\"". get_bloginfo('charset') . "\"\n";
|
@@ -277,6 +278,7 @@ class s2class {
|
|
277 |
|
278 |
// Construct BCC headers for sending or send individual emails
|
279 |
$bcc = '';
|
|
|
280 |
if ($this->subscribe2_options['bcclimit'] == 1) {
|
281 |
// BCCLimit is 1 so send individual emails
|
282 |
foreach ($recipients as $recipient) {
|
@@ -670,9 +672,6 @@ class s2class {
|
|
670 |
*/
|
671 |
function remind($emails = '') {
|
672 |
if ('' == $emails) { return false; }
|
673 |
-
|
674 |
-
$admin = $this->get_userdata();
|
675 |
-
$this->myname = $admin->display_name;
|
676 |
|
677 |
$recipients = explode(",", $emails);
|
678 |
if (!is_array($recipients)) { $recipients = (array)$recipients; }
|
@@ -719,19 +718,34 @@ class s2class {
|
|
719 |
return $this->no_such_email;
|
720 |
}
|
721 |
|
|
|
|
|
|
|
722 |
if ('1' == $action) {
|
723 |
// make this subscription active
|
724 |
-
$this->activate();
|
725 |
$this->message = $this->added;
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
|
|
|
|
|
|
|
|
|
|
730 |
$this->filtered = 1;
|
731 |
} elseif ('0' == $action) {
|
732 |
// remove this subscriber
|
733 |
-
$this->delete();
|
734 |
$this->message = $this->deleted;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
735 |
$this->filtered = 1;
|
736 |
}
|
737 |
|
@@ -1095,8 +1109,10 @@ class s2class {
|
|
1095 |
check_admin_referer('subscribe2-manage_subscribers' . $s2nonce);
|
1096 |
if ($_POST['addresses']) {
|
1097 |
foreach (preg_split ("/[\s,]+/", $_POST['addresses']) as $email) {
|
1098 |
-
|
1099 |
$this->activate($email);
|
|
|
|
|
1100 |
}
|
1101 |
}
|
1102 |
$_POST['what'] = 'confirmed';
|
@@ -1232,11 +1248,11 @@ class s2class {
|
|
1232 |
// Displays a page number strip - adapted from code in Akismet
|
1233 |
$args['what'] = $what;
|
1234 |
$total_subscribers = count($subscribers);
|
1235 |
-
$total_pages = ceil($total_subscribers /
|
1236 |
$strip = '';
|
1237 |
if ( $page > 1 ) {
|
1238 |
$args['s2page'] = $page - 1;
|
1239 |
-
$strip .= '<a class="prev" href="' . clean_url(add_query_arg(
|
1240 |
}
|
1241 |
if ( $total_pages > 1 ) {
|
1242 |
for ( $page_num = 1; $page_num <= $total_pages; $page_num++ ) {
|
@@ -1254,26 +1270,28 @@ class s2class {
|
|
1254 |
}
|
1255 |
}
|
1256 |
}
|
1257 |
-
if ( ( $page ) *
|
1258 |
$args['s2page'] = $page + 1;
|
1259 |
$strip .= "<a class=\"next\" href=\"" . clean_url(add_query_arg($args)) . "\">". __('Next Page', 'subscribe2') . " »</a>\n";
|
1260 |
}
|
1261 |
}
|
1262 |
|
1263 |
// show our form
|
1264 |
-
echo "<form method=\"post\" action=\"\">\r\n";
|
1265 |
echo "<div class=\"wrap\">";
|
1266 |
-
echo "<h2>" . __('
|
|
|
1267 |
if (function_exists('wp_nonce_field')) {
|
1268 |
wp_nonce_field('subscribe2-manage_subscribers' . $s2nonce);
|
1269 |
}
|
|
|
1270 |
echo "<p>" . __('Enter addresses, one per line or comma-separated', 'subscribe2') . "<br />\r\n";
|
1271 |
echo "<textarea rows=\"2\" cols=\"80\" name=\"addresses\"></textarea></p>\r\n";
|
1272 |
echo "<input type=\"hidden\" name=\"s2_admin\" />\r\n";
|
1273 |
-
echo "<p class=\"submit\"><input type=\"submit\" name=\"subscribe\" value=\"" . __('Subscribe', 'subscribe2') . "\"
|
|
|
1274 |
|
1275 |
// subscriber lists
|
1276 |
-
echo "<h2>" . __('Subscribers', 'subscribe2') . "</h2>\r\n";
|
1277 |
echo "<br />";
|
1278 |
$this->display_subscriber_dropdown($what, __('Filter', 'subscribe2'));
|
1279 |
// show the selected subscribers
|
@@ -1288,7 +1306,7 @@ class s2class {
|
|
1288 |
echo "<input type=\"submit\" name=\"csv\" value=\"" . __('Save Emails to CSV File', 'subscribe2') . "\" class=\"button\" /></td></tr></table>\r\n";
|
1289 |
if ($reminderform) {
|
1290 |
echo "<input type=\"hidden\" name=\"reminderemails\" value=\"" . $reminderemails . "\" />\r\n";
|
1291 |
-
echo "<p class=\"submit\" align=\"right\" style=\"border-top:none;\"><input type=\"submit\" name=\"
|
1292 |
}
|
1293 |
echo "<table width=\"100%\"><tr><td valign=\"bottom\">" . $strip . "</td>\r\n";
|
1294 |
echo "<td align=\"right\"><p class=\"submit\" align=\"right\" style=\"border-top: none;\"><input type=\"submit\" name=\"process\" value=\"" . __('Process', 'subscribe2') . "\" /></p>\r\n";
|
@@ -1297,7 +1315,7 @@ class s2class {
|
|
1297 |
|
1298 |
echo "<table cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">";
|
1299 |
if (!empty($subscribers)) {
|
1300 |
-
$subscriber_chunks = array_chunk($subscribers,
|
1301 |
$chunk = $page - 1;
|
1302 |
$subscribers = $subscriber_chunks[$chunk];
|
1303 |
echo "<tr class=\"$alternate\">\r\n";
|
@@ -1323,6 +1341,9 @@ class s2class {
|
|
1323 |
echo " align=\"left\" colspan=\"4\">";
|
1324 |
}
|
1325 |
echo "<a href=\"mailto:" . $subscriber . "\">" . $subscriber . "</a>\r\n";
|
|
|
|
|
|
|
1326 |
if (in_array($subscriber, $unconfirmed) || in_array($subscriber, $confirmed) ) {
|
1327 |
echo "(" . $this->signup_date($subscriber) . ")</td>\r\n";
|
1328 |
echo "<td align=\"center\">\r\n";
|
@@ -1387,28 +1408,12 @@ class s2class {
|
|
1387 |
$this->reset();
|
1388 |
echo "<div id=\"message\" class=\"updated fade\"><p><strong>$this->options_reset</strong></p></div>";
|
1389 |
} elseif ($_POST['submit']) {
|
1390 |
-
// excluded categories
|
1391 |
-
if (!empty($_POST['category'])) {
|
1392 |
-
$exclude_cats = implode(',', $_POST['category']);
|
1393 |
-
} else {
|
1394 |
-
$exclude_cats = '';
|
1395 |
-
}
|
1396 |
-
$this->subscribe2_options['exclude'] = $exclude_cats;
|
1397 |
-
// allow override?
|
1398 |
-
(isset($_POST['reg_override'])) ? $override = '1' : $override = '0';
|
1399 |
-
$this->subscribe2_options['reg_override'] = $override;
|
1400 |
-
|
1401 |
-
// show button?
|
1402 |
-
($_POST['show_button'] == '1') ? $showbutton = '1' : $showbutton = '0';
|
1403 |
-
$this->subscribe2_options['show_button'] = $showbutton;
|
1404 |
-
|
1405 |
-
// show widget in Presentation->Widgets
|
1406 |
-
($_POST['widget'] == '1') ? $showwidget = '1' : $showwidget = '0';
|
1407 |
-
$this->subscribe2_options['widget'] = $showwidget;
|
1408 |
-
|
1409 |
// BCClimit
|
1410 |
-
$
|
1411 |
-
|
|
|
|
|
|
|
1412 |
|
1413 |
// send as author or admin?
|
1414 |
$sender = 'author';
|
@@ -1455,10 +1460,44 @@ class s2class {
|
|
1455 |
$this->subscribe2_options['confirm_email'] = $_POST['confirm_email'];
|
1456 |
$this->subscribe2_options['remind_email'] = $_POST['remind_email'];
|
1457 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1458 |
//automatic subscription
|
1459 |
$this->subscribe2_options['autosub'] = $_POST['autosub'];
|
1460 |
$this->subscribe2_options['wpregdef'] = $_POST['wpregdef'];
|
1461 |
$this->subscribe2_options['autoformat'] = $_POST['autoformat'];
|
|
|
1462 |
$this->subscribe2_options['autosub_def'] = $_POST['autosub_def'];
|
1463 |
|
1464 |
//barred domains
|
@@ -1470,31 +1509,48 @@ class s2class {
|
|
1470 |
}
|
1471 |
// show our form
|
1472 |
echo "<div class=\"wrap\">";
|
|
|
1473 |
echo "<form method=\"post\" action=\"\">\r\n";
|
1474 |
if (function_exists('wp_nonce_field')) {
|
1475 |
wp_nonce_field('subscribe2-options_subscribers' . $s2nonce);
|
1476 |
}
|
1477 |
echo "<input type=\"hidden\" name=\"s2_admin\" value=\"options\" />\r\n";
|
1478 |
-
echo "<h2>" . __('Delivery Options', 'subscribe2') . ":</h2>\r\n";
|
1479 |
-
echo "<p>";
|
1480 |
echo "<input type=\"hidden\" id=\"jsbcc\" value=\"" . $this->subscribe2_options['bcclimit'] . "\" />";
|
1481 |
echo "<input type=\"hidden\" id=\"jspage\" value=\"" . $this->subscribe2_options['s2page'] . "\" />";
|
|
|
1482 |
|
|
|
|
|
|
|
1483 |
echo __('Restrict the number of recpients per email to (0 for unlimited)', 'subscribe2') . ': ';
|
1484 |
echo "<span id=\"s2bcc_1\"><span id=\"s2bcc\" style=\"background-color: #FFFBCC\">" . $this->subscribe2_options['bcclimit'] . "</span> ";
|
1485 |
-
echo "<a href=\"#\" onclick=\"s2_show('bcc')
|
1486 |
echo "<span id=\"s2bcc_2\">\r\n";
|
1487 |
echo "<input type=\"text\" name=\"bcc\" value=\"" . $this->subscribe2_options['bcclimit'] . "\" size=\"3\" />\r\n";
|
1488 |
-
echo "<a href=\"#\" onclick=\"s2_update('bcc');\">". __('Update', 'subscribe2') . "</a>\n";
|
1489 |
-
echo "<a href=\"#\" onclick=\"s2_revert('bcc');\">". __('Revert', 'subscribe2') . "</a></span>\n";
|
1490 |
|
1491 |
-
echo "<br /><br />" . __('
|
1492 |
-
echo "<
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
echo "
|
1497 |
-
echo "<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1498 |
|
1499 |
echo "<br /><br />" . __('Send Emails for Pages', 'subscribe2') . ': ';
|
1500 |
echo "<input type=\"radio\" name=\"pages\" value=\"yes\"";
|
@@ -1545,6 +1601,8 @@ class s2class {
|
|
1545 |
$this->display_digest_choices();
|
1546 |
}
|
1547 |
echo "</p>";
|
|
|
|
|
1548 |
echo "<h2>" . __('Email Templates', 'subscribe2') . "</h2>\r\n";
|
1549 |
echo"<br />";
|
1550 |
echo "<table width=\"100%\" cellspacing=\"2\" cellpadding=\"1\" class=\"editform\">\r\n";
|
@@ -1559,6 +1617,7 @@ class s2class {
|
|
1559 |
echo "<dt><b>BLOGLINK</b></dt><dd>" . get_bloginfo('url') . "</dd>\r\n";
|
1560 |
echo "<dt><b>TITLE</b></dt><dd>" . __("the post's title<br />(<i>for per-post emails only</i>)", 'subscribe2') . "</dd>\r\n";
|
1561 |
echo "<dt><b>POST</b></dt><dd>" . __("the excerpt or the entire post<br />(<i>based on the subscriber's preferences</i>)", 'subscribe2') . "</dd>\r\n";
|
|
|
1562 |
echo "<dt><b>TABLE</b></dt><dd>" . __("a list of post titles<br />(<i>for digest emails only</i>)", 'subscribe2') . "</dd>\r\n";
|
1563 |
echo "<dt><b>PERMALINK</b></dt><dd>" . __("the post's permalink<br />(<i>for per-post emails only</i>)", 'subscribe2') . "</dd>\r\n";
|
1564 |
echo "<dt><b>MYNAME</b></dt><dd>" . __("the admin or post author's name", 'subscribe2') . "</dd>\r\n";
|
@@ -1585,10 +1644,37 @@ class s2class {
|
|
1585 |
echo " checked=\"checked\"";
|
1586 |
}
|
1587 |
echo " /> " . __('Allow registered users to subscribe to excluded categories?', 'subscribe2') . "</center><br />\r\n";
|
1588 |
-
|
1589 |
-
//
|
1590 |
-
echo "<h2>" . __('
|
1591 |
echo"<p>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1592 |
echo "<input type=\"checkbox\" name=\"show_button\" value=\"1\"";
|
1593 |
if ('1' == $this->subscribe2_options['show_button']) {
|
1594 |
echo " checked=\"checked\"";
|
@@ -1649,6 +1735,17 @@ class s2class {
|
|
1649 |
echo "checked=\"checked\" ";
|
1650 |
}
|
1651 |
echo "/> " . __('Plain Text - Excerpt', 'subscribe2') . " <br /><br />";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1652 |
echo __('Auto Subscribe me to new categories is checked by default', 'subscribe2') . ": <br />\r\n";
|
1653 |
echo "<input type=\"radio\" name=\"autosub_def\" value=\"yes\"";
|
1654 |
if ('yes' == $this->subscribe2_options['autosub_def']) {
|
@@ -1691,7 +1788,12 @@ class s2class {
|
|
1691 |
function user_menu() {
|
1692 |
global $user_ID, $s2nonce, $wp_version, $wpmu_version;
|
1693 |
|
1694 |
-
|
|
|
|
|
|
|
|
|
|
|
1695 |
|
1696 |
// was anything POSTed?
|
1697 |
if ( (isset($_POST['s2_admin'])) && ('user' == $_POST['s2_admin']) ) {
|
@@ -1773,6 +1875,10 @@ class s2class {
|
|
1773 |
// show our form
|
1774 |
echo "<div class=\"wrap\">";
|
1775 |
echo "<h2>" . __('Notification Settings', 'subscribe2') . "</h2>\r\n";
|
|
|
|
|
|
|
|
|
1776 |
echo "<form method=\"post\" action=\"\">";
|
1777 |
echo "<p>";
|
1778 |
if (function_exists('wp_nonce_field')) {
|
@@ -1802,18 +1908,20 @@ class s2class {
|
|
1802 |
echo " /> " . $value . " ";
|
1803 |
}
|
1804 |
echo "<br /><span style=\"color: red;line-height: 300%;\">" . __('Note: HTML format will always deliver the full post', 'subscribe2') . ".</span><br />\r\n";
|
1805 |
-
|
1806 |
-
|
1807 |
-
|
1808 |
-
|
1809 |
-
|
1810 |
-
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
|
|
|
|
|
|
|
|
1814 |
}
|
1815 |
-
echo "/> " . __('No', 'subscribe2') . "<br /><br />";
|
1816 |
-
echo "</p>";
|
1817 |
|
1818 |
// subscribed categories
|
1819 |
echo "<h2>" . __('Subscribed Categories', 'subscribe2') . "</h2>\r\n";
|
@@ -1869,7 +1977,7 @@ class s2class {
|
|
1869 |
$recipients = $this->get_registered();
|
1870 |
}
|
1871 |
$subject = stripslashes(strip_tags($_POST['subject']));
|
1872 |
-
$body = stripslashes($_POST['
|
1873 |
$status = $this->mail($recipients, $subject, $body, 'text');
|
1874 |
if ($status) {
|
1875 |
$message = $this->mail_sent;
|
@@ -1883,14 +1991,18 @@ class s2class {
|
|
1883 |
echo "<div id=\"message\" class=\"updated\"><strong><p>" . $message . "</p></strong></div>\r\n";
|
1884 |
}
|
1885 |
// show our form
|
1886 |
-
echo "<div class=\"wrap\"><h2>" . __('Send email to
|
1887 |
echo "<form method=\"post\" action=\"\">\r\n";
|
1888 |
-
echo "<p>";
|
1889 |
if (function_exists('wp_nonce_field')) {
|
1890 |
wp_nonce_field('subscribe2-write_subscribers' . $s2nonce);
|
1891 |
}
|
1892 |
-
|
1893 |
-
|
|
|
|
|
|
|
|
|
|
|
1894 |
echo "<br /><br />\r\n";
|
1895 |
echo __('Recipients: ', 'subscribe2');
|
1896 |
$this->display_subscriber_dropdown('registered', false, array('all'));
|
@@ -2125,7 +2237,7 @@ class s2class {
|
|
2125 |
Display our form; also handles (un)subscribe requests
|
2126 |
*/
|
2127 |
function filter($content = '') {
|
2128 |
-
if ( ('' == $content) || (
|
2129 |
$this->s2form = $this->form;
|
2130 |
|
2131 |
global $user_ID;
|
@@ -2161,7 +2273,7 @@ class s2class {
|
|
2161 |
$this->add();
|
2162 |
$status = $this->send_confirm('add');
|
2163 |
// set a variable to denote that we've already run, and shouldn't run again
|
2164 |
-
$this->filtered = 1;
|
2165 |
if ($status) {
|
2166 |
$this->s2form = $this->confirmation_sent;
|
2167 |
} else {
|
@@ -2222,7 +2334,6 @@ class s2class {
|
|
2222 |
*/
|
2223 |
function title_filter($title) {
|
2224 |
// don't interfere if we've already done our thing
|
2225 |
-
if (1 == $this->filtered) { return; }
|
2226 |
if (in_the_loop()) {
|
2227 |
return __('Subscription Confirmation', 'subscribe2');
|
2228 |
} else {
|
@@ -2279,9 +2390,23 @@ class s2class {
|
|
2279 |
}
|
2280 |
}
|
2281 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2282 |
function plugin_action($links, $file) {
|
2283 |
-
if ($file == plugin_basename(dirname(__FILE__).'/subscribe2.php'))
|
2284 |
-
$
|
|
|
|
|
2285 |
return $links;
|
2286 |
}
|
2287 |
|
@@ -2401,7 +2526,7 @@ class s2class {
|
|
2401 |
$check = true;
|
2402 |
}
|
2403 |
}
|
2404 |
-
//is the current post set by the user to
|
2405 |
// not generate a notification email?
|
2406 |
$s2mail = get_post_meta($post->ID, 's2mail', true);
|
2407 |
if (strtolower(trim($s2mail)) == 'no') {
|
@@ -2418,9 +2543,11 @@ class s2class {
|
|
2418 |
continue;
|
2419 |
}
|
2420 |
$table .= $post->post_title . "\r\n";
|
2421 |
-
$
|
2422 |
-
$
|
2423 |
-
$
|
|
|
|
|
2424 |
$excerpt = $post->post_excerpt;
|
2425 |
if ('' == $excerpt) {
|
2426 |
// no excerpt, is there a <!--more--> ?
|
@@ -2445,11 +2572,12 @@ class s2class {
|
|
2445 |
}
|
2446 |
}
|
2447 |
}
|
2448 |
-
$
|
|
|
2449 |
}
|
2450 |
|
2451 |
//sanity check - don't send a mail if the content is empty
|
2452 |
-
if (!$
|
2453 |
return;
|
2454 |
}
|
2455 |
|
@@ -2468,7 +2596,8 @@ class s2class {
|
|
2468 |
$recipients = array_merge((array)$public, (array)$registered);
|
2469 |
$mailtext = $this->substitute(stripslashes($this->subscribe2_options['mailtext']));
|
2470 |
$mailtext = str_replace("TABLE", $table, $mailtext);
|
2471 |
-
$mailtext = str_replace("
|
|
|
2472 |
$this->mail($recipients, $subject, $mailtext);
|
2473 |
} // end subscribe2_cron
|
2474 |
|
@@ -2524,11 +2653,16 @@ class s2class {
|
|
2524 |
|
2525 |
//add regular actions and filters
|
2526 |
add_action('admin_menu', array(&$this, 'admin_menu'));
|
2527 |
-
add_filter('ozh_adminmenu_icon', array(&$this, 'ozh_s2_icon'));
|
2528 |
add_action('create_category', array(&$this, 'autosub_new_category'));
|
2529 |
add_filter('the_content', array(&$this, 'filter'), 10);
|
2530 |
add_filter('cron_schedules', array(&$this, 'add_weekly_sched'));
|
2531 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2532 |
// add action to display editor buttons if option is enabled
|
2533 |
if ('1' == $this->subscribe2_options['show_button']) {
|
2534 |
add_action('edit_page_form', array(&$this, 's2_edit_form'));
|
@@ -2537,9 +2671,7 @@ class s2class {
|
|
2537 |
|
2538 |
// add actions for automatic subscription based on option settings
|
2539 |
add_action('register_form', array(&$this, 'register_form'));
|
2540 |
-
|
2541 |
-
add_action('user_register', array(&$this, 'register'));
|
2542 |
-
}
|
2543 |
if ('wpreg' == $this->subscribe2_options['autosub']) {
|
2544 |
add_action('register_post', array(&$this, 'register_post'));
|
2545 |
}
|
3 |
Plugin Name: Subscribe2
|
4 |
Plugin URI: http://subscribe2.wordpress.com
|
5 |
Description: Notifies an email list when new entries are posted.
|
6 |
+
Version: 4.12
|
7 |
Author: Matthew Robinson
|
8 |
Author URI: http://subscribe2.wordpress.com
|
9 |
*/
|
31 |
|
32 |
// our version number. Don't touch this or any line below
|
33 |
// unless you know exacly what you are doing
|
34 |
+
define('S2VERSION', '4.12');
|
35 |
define('S2PATH', trailingslashit(dirname(__FILE__)));
|
36 |
|
37 |
// Pre-2.6 compatibility
|
117 |
add_action("admin_print_scripts-$s2options", array(&$this, 'option_form_js'));
|
118 |
add_filter('plugin_action_links', array(&$this, 'plugin_action'), -10, 2);
|
119 |
|
120 |
+
$s2user = add_users_page(__('Subscriptions', 'subscribe2'), __('Subscriptions', 'subscribe2'), "read", __FILE__, array(&$this, 'user_menu'));
|
121 |
add_action("admin_print_scripts-$s2user", array(&$this, 'checkbox_form_js'));
|
122 |
|
123 |
add_submenu_page('post-new.php', __('Mail Subscribers', 'subscribe2'), __('Mail Subscribers', 'subscribe2'), "publish_posts", __FILE__, array(&$this, 'write_menu'));
|
246 |
*/
|
247 |
function mail ($recipients = array(), $subject = '', $message = '', $type='text') {
|
248 |
if ( (empty($recipients)) || ('' == $message) ) { return; }
|
249 |
+
|
250 |
// Set sender details
|
251 |
if ('' == $this->myname) {
|
252 |
$admin = $this->get_userdata();
|
263 |
// To send HTML mail, the Content-Type header must be set
|
264 |
$headers .= "MIME-Version: 1.0\n";
|
265 |
$headers .= "Content-Type: " . get_bloginfo('html_type') . "; charset=\"". get_bloginfo('charset') . "\"\n";
|
266 |
+
$mailtext = "<html><head><title>" . $subject . "</title><link rel=\"stylesheet\" href=\"" . get_bloginfo('stylesheet_url') . "\"
|
267 |
+
type=\"text/css\" media=\"screen\" /></head><body>" . $message . "</body></html>";
|
268 |
} else {
|
269 |
$headers .= "MIME-Version: 1.0\n";
|
270 |
$headers .= "Content-Type: text/plain; charset=\"". get_bloginfo('charset') . "\"\n";
|
278 |
|
279 |
// Construct BCC headers for sending or send individual emails
|
280 |
$bcc = '';
|
281 |
+
natcasesort($recipients);
|
282 |
if ($this->subscribe2_options['bcclimit'] == 1) {
|
283 |
// BCCLimit is 1 so send individual emails
|
284 |
foreach ($recipients as $recipient) {
|
672 |
*/
|
673 |
function remind($emails = '') {
|
674 |
if ('' == $emails) { return false; }
|
|
|
|
|
|
|
675 |
|
676 |
$recipients = explode(",", $emails);
|
677 |
if (!is_array($recipients)) { $recipients = (array)$recipients; }
|
718 |
return $this->no_such_email;
|
719 |
}
|
720 |
|
721 |
+
// get current status of email so messages are only sent once per emailed link
|
722 |
+
$current = $this->is_public($this->email);
|
723 |
+
|
724 |
if ('1' == $action) {
|
725 |
// make this subscription active
|
|
|
726 |
$this->message = $this->added;
|
727 |
+
if ('1' != $current) {
|
728 |
+
$this->activate();
|
729 |
+
if ( ($this->subscribe2_options['admin_email'] == 'subs') || ($this->subscribe2_options['admin_email'] == 'both') ) {
|
730 |
+
$subject = '[' . get_option('blogname') . '] ' . __('New subscription', 'subscribe2');
|
731 |
+
$message = $this->email . " " . __('subscribed to email notifications!', 'subscribe2');
|
732 |
+
$recipients = $wpdb->get_col("SELECT DISTINCT(user_email) FROM $wpdb->users INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key='" . $wpdb->prefix . "user_level' AND $wpdb->usermeta.meta_value='10'");
|
733 |
+
$this->mail($recipients, $subject, $message);
|
734 |
+
}
|
735 |
+
}
|
736 |
$this->filtered = 1;
|
737 |
} elseif ('0' == $action) {
|
738 |
// remove this subscriber
|
|
|
739 |
$this->message = $this->deleted;
|
740 |
+
if ('0' != $current) {
|
741 |
+
$this->delete();
|
742 |
+
if ( ($this->subscribe2_options['admin_email'] == 'unsubs') || ($this->subscribe2_options['admin_email'] == 'both') ) {
|
743 |
+
$subject = '[' . get_option('blogname') . '] ' . __('New Unsubscription', 'subscribe2');
|
744 |
+
$message = $this->email . " " . __('unsubscribed from email notifications!', 'subscribe2');
|
745 |
+
$recipients = $wpdb->get_col("SELECT DISTINCT(user_email) FROM $wpdb->users INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key='" . $wpdb->prefix . "user_level' AND $wpdb->usermeta.meta_value='10'");
|
746 |
+
$this->mail($recipients, $subject, $message);
|
747 |
+
}
|
748 |
+
}
|
749 |
$this->filtered = 1;
|
750 |
}
|
751 |
|
1109 |
check_admin_referer('subscribe2-manage_subscribers' . $s2nonce);
|
1110 |
if ($_POST['addresses']) {
|
1111 |
foreach (preg_split ("/[\s,]+/", $_POST['addresses']) as $email) {
|
1112 |
+
if ( (is_email($email)) && ($_POST['subscribe']) ) {
|
1113 |
$this->activate($email);
|
1114 |
+
} elseif ( (is_email($email)) && ($_POST['unsubscribe']) ) {
|
1115 |
+
$this->delete($email);
|
1116 |
}
|
1117 |
}
|
1118 |
$_POST['what'] = 'confirmed';
|
1248 |
// Displays a page number strip - adapted from code in Akismet
|
1249 |
$args['what'] = $what;
|
1250 |
$total_subscribers = count($subscribers);
|
1251 |
+
$total_pages = ceil($total_subscribers / $this->subscribe2_options['entries']);
|
1252 |
$strip = '';
|
1253 |
if ( $page > 1 ) {
|
1254 |
$args['s2page'] = $page - 1;
|
1255 |
+
$strip .= '<a class="prev" href="' . clean_url(add_query_arg($args)) . '">« '. __('Previous Page', 'subscribe2') .'</a>' . "\n";
|
1256 |
}
|
1257 |
if ( $total_pages > 1 ) {
|
1258 |
for ( $page_num = 1; $page_num <= $total_pages; $page_num++ ) {
|
1270 |
}
|
1271 |
}
|
1272 |
}
|
1273 |
+
if ( ( $page ) * $this->subscribe2_options['entries'] < $total_subscribers ) {
|
1274 |
$args['s2page'] = $page + 1;
|
1275 |
$strip .= "<a class=\"next\" href=\"" . clean_url(add_query_arg($args)) . "\">". __('Next Page', 'subscribe2') . " »</a>\n";
|
1276 |
}
|
1277 |
}
|
1278 |
|
1279 |
// show our form
|
|
|
1280 |
echo "<div class=\"wrap\">";
|
1281 |
+
echo "<h2>" . __('Manage Subscribers', 'subscribe2') . "</h2>\r\n";
|
1282 |
+
echo "<form method=\"post\" action=\"\">\r\n";
|
1283 |
if (function_exists('wp_nonce_field')) {
|
1284 |
wp_nonce_field('subscribe2-manage_subscribers' . $s2nonce);
|
1285 |
}
|
1286 |
+
echo "<h2>" . __('Add/Remove Subscribers', 'subscribe2') . "</h2>\r\n";
|
1287 |
echo "<p>" . __('Enter addresses, one per line or comma-separated', 'subscribe2') . "<br />\r\n";
|
1288 |
echo "<textarea rows=\"2\" cols=\"80\" name=\"addresses\"></textarea></p>\r\n";
|
1289 |
echo "<input type=\"hidden\" name=\"s2_admin\" />\r\n";
|
1290 |
+
echo "<p class=\"submit\" style=\"border-top: none;\"><input type=\"submit\" name=\"subscribe\" value=\"" . __('Subscribe', 'subscribe2') . "\" />";
|
1291 |
+
echo " <input type=\"submit\" name=\"unsubscribe\" value=\"" . __('Unsubscribe', 'subscribe2') . "\" /></p>\r\n";
|
1292 |
|
1293 |
// subscriber lists
|
1294 |
+
echo "<h2>" . __('Current Subscribers', 'subscribe2') . "</h2>\r\n";
|
1295 |
echo "<br />";
|
1296 |
$this->display_subscriber_dropdown($what, __('Filter', 'subscribe2'));
|
1297 |
// show the selected subscribers
|
1306 |
echo "<input type=\"submit\" name=\"csv\" value=\"" . __('Save Emails to CSV File', 'subscribe2') . "\" class=\"button\" /></td></tr></table>\r\n";
|
1307 |
if ($reminderform) {
|
1308 |
echo "<input type=\"hidden\" name=\"reminderemails\" value=\"" . $reminderemails . "\" />\r\n";
|
1309 |
+
echo "<p class=\"submit\" align=\"right\" style=\"border-top:none;\"><input type=\"submit\" name=\"remind\" value=\"" . __('Send Reminder Email', 'subscribe2') . "\" /></p>\r\n";
|
1310 |
}
|
1311 |
echo "<table width=\"100%\"><tr><td valign=\"bottom\">" . $strip . "</td>\r\n";
|
1312 |
echo "<td align=\"right\"><p class=\"submit\" align=\"right\" style=\"border-top: none;\"><input type=\"submit\" name=\"process\" value=\"" . __('Process', 'subscribe2') . "\" /></p>\r\n";
|
1315 |
|
1316 |
echo "<table cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">";
|
1317 |
if (!empty($subscribers)) {
|
1318 |
+
$subscriber_chunks = array_chunk($subscribers, $this->subscribe2_options['entries']);
|
1319 |
$chunk = $page - 1;
|
1320 |
$subscribers = $subscriber_chunks[$chunk];
|
1321 |
echo "<tr class=\"$alternate\">\r\n";
|
1341 |
echo " align=\"left\" colspan=\"4\">";
|
1342 |
}
|
1343 |
echo "<a href=\"mailto:" . $subscriber . "\">" . $subscriber . "</a>\r\n";
|
1344 |
+
if (in_array($subscriber, $registered)) {
|
1345 |
+
echo "(<a href=\"" . get_option('home') . "/wp-admin/users.php?page=subscribe2/subscribe2.php&email=$subscriber\">" . __('edit', 'subscribe2') . "</a>)\r\n";
|
1346 |
+
}
|
1347 |
if (in_array($subscriber, $unconfirmed) || in_array($subscriber, $confirmed) ) {
|
1348 |
echo "(" . $this->signup_date($subscriber) . ")</td>\r\n";
|
1349 |
echo "<td align=\"center\">\r\n";
|
1408 |
$this->reset();
|
1409 |
echo "<div id=\"message\" class=\"updated fade\"><p><strong>$this->options_reset</strong></p></div>";
|
1410 |
} elseif ($_POST['submit']) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1411 |
// BCClimit
|
1412 |
+
if ( (is_numeric($_POST['bcc'])) && ($_POST['bcc'] >= 0) ) {
|
1413 |
+
$this->subscribe2_options['bcclimit'] = $_POST['bcc'];
|
1414 |
+
}
|
1415 |
+
// admin_email
|
1416 |
+
$this->subscribe2_options['admin_email'] = $_POST['admin_email'];
|
1417 |
|
1418 |
// send as author or admin?
|
1419 |
$sender = 'author';
|
1460 |
$this->subscribe2_options['confirm_email'] = $_POST['confirm_email'];
|
1461 |
$this->subscribe2_options['remind_email'] = $_POST['remind_email'];
|
1462 |
|
1463 |
+
// excluded categories
|
1464 |
+
if (!empty($_POST['category'])) {
|
1465 |
+
$exclude_cats = implode(',', $_POST['category']);
|
1466 |
+
} else {
|
1467 |
+
$exclude_cats = '';
|
1468 |
+
}
|
1469 |
+
$this->subscribe2_options['exclude'] = $exclude_cats;
|
1470 |
+
// allow override?
|
1471 |
+
(isset($_POST['reg_override'])) ? $override = '1' : $override = '0';
|
1472 |
+
$this->subscribe2_options['reg_override'] = $override;
|
1473 |
+
|
1474 |
+
// default WordPress page where Subscribe2 token is placed
|
1475 |
+
if ( (is_numeric($_POST['page'])) && ($_POST['page'] >= 0) ) {
|
1476 |
+
$this->subscribe2_options['s2page'] = $_POST['page'];
|
1477 |
+
}
|
1478 |
+
|
1479 |
+
// Number of subscriber per page
|
1480 |
+
if ( (is_numeric($_POST['entries'])) && ($_POST['entries'] > 0) ) {
|
1481 |
+
$this->subscribe2_options['entries'] =$_POST['entries'];
|
1482 |
+
}
|
1483 |
+
|
1484 |
+
// show meta link?
|
1485 |
+
($_POST['show_meta'] == '1') ? $showmeta = '1' : $showmeta = '0';
|
1486 |
+
$this->subscribe2_options['show_meta'] = $showmeta;
|
1487 |
+
|
1488 |
+
// show button?
|
1489 |
+
($_POST['show_button'] == '1') ? $showbutton = '1' : $showbutton = '0';
|
1490 |
+
$this->subscribe2_options['show_button'] = $showbutton;
|
1491 |
+
|
1492 |
+
// show widget in Presentation->Widgets
|
1493 |
+
($_POST['widget'] == '1') ? $showwidget = '1' : $showwidget = '0';
|
1494 |
+
$this->subscribe2_options['widget'] = $showwidget;
|
1495 |
+
|
1496 |
//automatic subscription
|
1497 |
$this->subscribe2_options['autosub'] = $_POST['autosub'];
|
1498 |
$this->subscribe2_options['wpregdef'] = $_POST['wpregdef'];
|
1499 |
$this->subscribe2_options['autoformat'] = $_POST['autoformat'];
|
1500 |
+
$this->subscribe2_options['show_autosub'] = $_POST['show_autosub'];
|
1501 |
$this->subscribe2_options['autosub_def'] = $_POST['autosub_def'];
|
1502 |
|
1503 |
//barred domains
|
1509 |
}
|
1510 |
// show our form
|
1511 |
echo "<div class=\"wrap\">";
|
1512 |
+
echo "<h2>" . __('Subscribe2 Settings', 'subscribe2') . "</h2>\r\n";
|
1513 |
echo "<form method=\"post\" action=\"\">\r\n";
|
1514 |
if (function_exists('wp_nonce_field')) {
|
1515 |
wp_nonce_field('subscribe2-options_subscribers' . $s2nonce);
|
1516 |
}
|
1517 |
echo "<input type=\"hidden\" name=\"s2_admin\" value=\"options\" />\r\n";
|
|
|
|
|
1518 |
echo "<input type=\"hidden\" id=\"jsbcc\" value=\"" . $this->subscribe2_options['bcclimit'] . "\" />";
|
1519 |
echo "<input type=\"hidden\" id=\"jspage\" value=\"" . $this->subscribe2_options['s2page'] . "\" />";
|
1520 |
+
echo "<input type=\"hidden\" id=\"jsentries\" value=\"" . $this->subscribe2_options['entries'] . "\" />";
|
1521 |
|
1522 |
+
// settings for outgoing emails
|
1523 |
+
echo "<h2>" . __('Notification Settings', 'subscribe2') . "</h2>\r\n";
|
1524 |
+
echo "<p>";
|
1525 |
echo __('Restrict the number of recpients per email to (0 for unlimited)', 'subscribe2') . ': ';
|
1526 |
echo "<span id=\"s2bcc_1\"><span id=\"s2bcc\" style=\"background-color: #FFFBCC\">" . $this->subscribe2_options['bcclimit'] . "</span> ";
|
1527 |
+
echo "<a href=\"#\" onclick=\"s2_show('bcc'); return false;\">" . __('Edit', 'subscribe2') . "</a></span>\n";
|
1528 |
echo "<span id=\"s2bcc_2\">\r\n";
|
1529 |
echo "<input type=\"text\" name=\"bcc\" value=\"" . $this->subscribe2_options['bcclimit'] . "\" size=\"3\" />\r\n";
|
1530 |
+
echo "<a href=\"#\" onclick=\"s2_update('bcc'); return false;\">". __('Update', 'subscribe2') . "</a>\n";
|
1531 |
+
echo "<a href=\"#\" onclick=\"s2_revert('bcc'); return false;\">". __('Revert', 'subscribe2') . "</a></span>\n";
|
1532 |
|
1533 |
+
echo "<br /><br />" . __('Send Admins notifications for new', 'subscribe2') . ': ';
|
1534 |
+
echo "<input type=\"radio\" name=\"admin_email\" value=\"subs\"";
|
1535 |
+
if ('subs' == $this->subscribe2_options['admin_email']) {
|
1536 |
+
echo " checked=\"checked\"";
|
1537 |
+
}
|
1538 |
+
echo " /> " . __('Subscriptions', 'subscribe2') . " ";
|
1539 |
+
echo "<input type=\"radio\" name=\"admin_email\" value=\"unsubs\"";
|
1540 |
+
if ('unsubs' == $this->subscribe2_options['admin_email']) {
|
1541 |
+
echo " checked=\"checked\"";
|
1542 |
+
}
|
1543 |
+
echo " /> " . __('Unsubscriptions', 'subscribe2') . " ";
|
1544 |
+
echo "<input type=\"radio\" name=\"admin_email\" value=\"both\"";
|
1545 |
+
if ('both' == $this->subscribe2_options['admin_email']) {
|
1546 |
+
echo " checked=\"checked\"";
|
1547 |
+
}
|
1548 |
+
echo " /> " . __('Both', 'subscribe2') . " ";
|
1549 |
+
echo "<input type=\"radio\" name=\"admin_email\" value=\"none\"";
|
1550 |
+
if ('none' == $this->subscribe2_options['admin_email']) {
|
1551 |
+
echo " checked=\"checked\"";
|
1552 |
+
}
|
1553 |
+
echo " /> " . __('Neither', 'subscribe2');
|
1554 |
|
1555 |
echo "<br /><br />" . __('Send Emails for Pages', 'subscribe2') . ': ';
|
1556 |
echo "<input type=\"radio\" name=\"pages\" value=\"yes\"";
|
1601 |
$this->display_digest_choices();
|
1602 |
}
|
1603 |
echo "</p>";
|
1604 |
+
|
1605 |
+
// email templates
|
1606 |
echo "<h2>" . __('Email Templates', 'subscribe2') . "</h2>\r\n";
|
1607 |
echo"<br />";
|
1608 |
echo "<table width=\"100%\" cellspacing=\"2\" cellpadding=\"1\" class=\"editform\">\r\n";
|
1617 |
echo "<dt><b>BLOGLINK</b></dt><dd>" . get_bloginfo('url') . "</dd>\r\n";
|
1618 |
echo "<dt><b>TITLE</b></dt><dd>" . __("the post's title<br />(<i>for per-post emails only</i>)", 'subscribe2') . "</dd>\r\n";
|
1619 |
echo "<dt><b>POST</b></dt><dd>" . __("the excerpt or the entire post<br />(<i>based on the subscriber's preferences</i>)", 'subscribe2') . "</dd>\r\n";
|
1620 |
+
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";
|
1621 |
echo "<dt><b>TABLE</b></dt><dd>" . __("a list of post titles<br />(<i>for digest emails only</i>)", 'subscribe2') . "</dd>\r\n";
|
1622 |
echo "<dt><b>PERMALINK</b></dt><dd>" . __("the post's permalink<br />(<i>for per-post emails only</i>)", 'subscribe2') . "</dd>\r\n";
|
1623 |
echo "<dt><b>MYNAME</b></dt><dd>" . __("the admin or post author's name", 'subscribe2') . "</dd>\r\n";
|
1644 |
echo " checked=\"checked\"";
|
1645 |
}
|
1646 |
echo " /> " . __('Allow registered users to subscribe to excluded categories?', 'subscribe2') . "</center><br />\r\n";
|
1647 |
+
|
1648 |
+
// Appearance options
|
1649 |
+
echo "<h2>" . __('Appearance', 'subscribe2') . "</h2>\r\n";
|
1650 |
echo"<p>";
|
1651 |
+
|
1652 |
+
// WordPress page ID where subscribe2 token is used
|
1653 |
+
echo __('Set default Subscribe2 page as ID', 'subscribe2') . ': ';
|
1654 |
+
echo "<span id=\"s2page_1\"><span id=\"s2page\" style=\"background-color: #FFFBCC\">" . $this->subscribe2_options['s2page'] . "</span> ";
|
1655 |
+
echo "<a href=\"#\" onclick=\"s2_show('page'); return false;\">" . __('Edit', 'subscribe2') . "</a></span>\n";
|
1656 |
+
echo "<span id=\"s2page_2\">\r\n";
|
1657 |
+
echo "<input type=\"text\" name=\"page\" value=\"" . $this->subscribe2_options['s2page'] . "\" size=\"3\" />\r\n";
|
1658 |
+
echo "<a href=\"#\" onclick=\"s2_update('page'); return false;\">". __('Update', 'subscribe2') . "</a>\n";
|
1659 |
+
echo "<a href=\"#\" onclick=\"s2_revert('page'); return false;\">". __('Revert', 'subscribe2') . "</a></span>\n";
|
1660 |
+
|
1661 |
+
// Number of subscribers per page
|
1662 |
+
echo "<br /><br />" . __('Set the number of Subscribers displayed per page', 'subscribe2') . ': ';
|
1663 |
+
echo "<span id=\"s2entries_1\"><span id=\"s2entries\" style=\"background-color: #FFFBCC\">" . $this->subscribe2_options['entries'] . "</span> ";
|
1664 |
+
echo "<a href=\"#\" onclick=\"s2_show('entries'); return false;\">" . __('Edit', 'subscribe2') . "</a></span>\n";
|
1665 |
+
echo "<span id=\"s2entries_2\">\r\n";
|
1666 |
+
echo "<input type=\"text\" name=\"entries\" value=\"" . $this->subscribe2_options['entries'] . "\" size=\"3\" />\r\n";
|
1667 |
+
echo "<a href=\"#\" onclick=\"s2_update('entries'); return false;\">". __('Update', 'subscribe2') . "</a>\n";
|
1668 |
+
echo "<a href=\"#\" onclick=\"s2_revert('entries'); return false;\">". __('Revert', 'subscribe2') . "</a></span>\n";
|
1669 |
+
|
1670 |
+
// show link to WordPress page in meta
|
1671 |
+
echo "<br /><br /><input type=\"checkbox\" name=\"show_meta\" value=\"1\"";
|
1672 |
+
if ('1' == $this->subscribe2_options['show_meta']) {
|
1673 |
+
echo " checked=\"checked\"";
|
1674 |
+
}
|
1675 |
+
echo " /> " . __('Show a link to your subscription page in "meta"?', 'subscribe2') . "<br /><br />\r\n";
|
1676 |
+
|
1677 |
+
// show QuickTag button
|
1678 |
echo "<input type=\"checkbox\" name=\"show_button\" value=\"1\"";
|
1679 |
if ('1' == $this->subscribe2_options['show_button']) {
|
1680 |
echo " checked=\"checked\"";
|
1735 |
echo "checked=\"checked\" ";
|
1736 |
}
|
1737 |
echo "/> " . __('Plain Text - Excerpt', 'subscribe2') . " <br /><br />";
|
1738 |
+
echo __('Show Auto Subscribe option on Users page', 'subscribe2') . ": <br />\r\n";
|
1739 |
+
echo "<input type=\"radio\" name=\"show_autosub\" value=\"yes\"";
|
1740 |
+
if ('yes' == $this->subscribe2_options['show_autosub']) {
|
1741 |
+
echo " checked=\"checked\"";
|
1742 |
+
}
|
1743 |
+
echo " />" . __('Yes', 'subscribe2') . " ";
|
1744 |
+
echo "<input type=\"radio\" name=\"show_autosub\" value=\"no\"";
|
1745 |
+
if ('no' == $this->subscribe2_options['show_autosub']) {
|
1746 |
+
echo " checked=\"checked\"";
|
1747 |
+
}
|
1748 |
+
echo " />" . __('No', 'subscribe2') . "<br /><br />";
|
1749 |
echo __('Auto Subscribe me to new categories is checked by default', 'subscribe2') . ": <br />\r\n";
|
1750 |
echo "<input type=\"radio\" name=\"autosub_def\" value=\"yes\"";
|
1751 |
if ('yes' == $this->subscribe2_options['autosub_def']) {
|
1788 |
function user_menu() {
|
1789 |
global $user_ID, $s2nonce, $wp_version, $wpmu_version;
|
1790 |
|
1791 |
+
if (isset($_GET['email'])) {
|
1792 |
+
global $wpdb;
|
1793 |
+
$user_ID = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_email = '" . $_GET['email'] . "'");
|
1794 |
+
} else {
|
1795 |
+
get_currentuserinfo();
|
1796 |
+
}
|
1797 |
|
1798 |
// was anything POSTed?
|
1799 |
if ( (isset($_POST['s2_admin'])) && ('user' == $_POST['s2_admin']) ) {
|
1875 |
// show our form
|
1876 |
echo "<div class=\"wrap\">";
|
1877 |
echo "<h2>" . __('Notification Settings', 'subscribe2') . "</h2>\r\n";
|
1878 |
+
if (isset($_GET['email'])) {
|
1879 |
+
$user = get_userdata($user_ID);
|
1880 |
+
echo "<span style=\"color: red;line-height: 300%;\">" . __('Editing Subscribe2 preferences for user', 'subscribe2') . ": " . $user->display_name . "</span>";
|
1881 |
+
}
|
1882 |
echo "<form method=\"post\" action=\"\">";
|
1883 |
echo "<p>";
|
1884 |
if (function_exists('wp_nonce_field')) {
|
1908 |
echo " /> " . $value . " ";
|
1909 |
}
|
1910 |
echo "<br /><span style=\"color: red;line-height: 300%;\">" . __('Note: HTML format will always deliver the full post', 'subscribe2') . ".</span><br />\r\n";
|
1911 |
+
if ($this->subscribe2_options['show_autosub'] == 'yes') {
|
1912 |
+
echo __('Automatically subscribe me to newly created categories', 'subscribe2') . ': ';
|
1913 |
+
echo "<input type=\"radio\" name=\"new_category\" value=\"yes\" ";
|
1914 |
+
if ('yes' == get_usermeta($user_ID, 's2_autosub')) {
|
1915 |
+
echo "checked=\"checked\" ";
|
1916 |
+
}
|
1917 |
+
echo "/> " . __('Yes', 'subscribe2') . " ";
|
1918 |
+
echo "<input type=\"radio\" name=\"new_category\" value=\"no\" ";
|
1919 |
+
if ('no' == get_usermeta($user_ID, 's2_autosub')) {
|
1920 |
+
echo "checked=\"checked\" ";
|
1921 |
+
}
|
1922 |
+
echo "/> " . __('No', 'subscribe2') . "<br /><br />";
|
1923 |
+
echo "</p>";
|
1924 |
}
|
|
|
|
|
1925 |
|
1926 |
// subscribed categories
|
1927 |
echo "<h2>" . __('Subscribed Categories', 'subscribe2') . "</h2>\r\n";
|
1977 |
$recipients = $this->get_registered();
|
1978 |
}
|
1979 |
$subject = stripslashes(strip_tags($_POST['subject']));
|
1980 |
+
$body = stripslashes($_POST['content']);
|
1981 |
$status = $this->mail($recipients, $subject, $body, 'text');
|
1982 |
if ($status) {
|
1983 |
$message = $this->mail_sent;
|
1991 |
echo "<div id=\"message\" class=\"updated\"><strong><p>" . $message . "</p></strong></div>\r\n";
|
1992 |
}
|
1993 |
// show our form
|
1994 |
+
echo "<div class=\"wrap\"><h2>" . __('Send an email to subscribers', 'subscribe2') . "</h2>\r\n";
|
1995 |
echo "<form method=\"post\" action=\"\">\r\n";
|
|
|
1996 |
if (function_exists('wp_nonce_field')) {
|
1997 |
wp_nonce_field('subscribe2-write_subscribers' . $s2nonce);
|
1998 |
}
|
1999 |
+
if (isset($_POST['subject'])) {
|
2000 |
+
$subject = $_POST['subject'];
|
2001 |
+
} else {
|
2002 |
+
$subject = __('A message from ', 'subscribe2') . get_option('blogname');
|
2003 |
+
}
|
2004 |
+
echo "<p>" . __('Subject', 'subscribe2') . ": <input type=\"text\" size=\"69\" name=\"subject\" value=\"" . $subject . "\" /> <br /><br />";
|
2005 |
+
echo "<textarea rows=\"12\" cols=\"75\" name=\"content\">" . $body . "</textarea>";
|
2006 |
echo "<br /><br />\r\n";
|
2007 |
echo __('Recipients: ', 'subscribe2');
|
2008 |
$this->display_subscriber_dropdown('registered', false, array('all'));
|
2237 |
Display our form; also handles (un)subscribe requests
|
2238 |
*/
|
2239 |
function filter($content = '') {
|
2240 |
+
if ( ('' == $content) || (!strstr($content, '<!--subscribe2-->')) ) { return $content; }
|
2241 |
$this->s2form = $this->form;
|
2242 |
|
2243 |
global $user_ID;
|
2273 |
$this->add();
|
2274 |
$status = $this->send_confirm('add');
|
2275 |
// set a variable to denote that we've already run, and shouldn't run again
|
2276 |
+
$this->filtered = 1;
|
2277 |
if ($status) {
|
2278 |
$this->s2form = $this->confirmation_sent;
|
2279 |
} else {
|
2334 |
*/
|
2335 |
function title_filter($title) {
|
2336 |
// don't interfere if we've already done our thing
|
|
|
2337 |
if (in_the_loop()) {
|
2338 |
return __('Subscription Confirmation', 'subscribe2');
|
2339 |
} else {
|
2390 |
}
|
2391 |
}
|
2392 |
|
2393 |
+
/**
|
2394 |
+
Add hook for Minimeta Widget plugin
|
2395 |
+
*/
|
2396 |
+
function add_minimeta() {
|
2397 |
+
if ($this->subscribe2_options['s2page'] != 0) {
|
2398 |
+
echo "<li><a href=\"" . get_option('siteurl') . "/?page_id=" . $this->subscribe2_options['s2page'] . "\">" . __('[Un]Subscribe to Posts', 'subscribe2') . "</a></li>\r\n";
|
2399 |
+
}
|
2400 |
+
}
|
2401 |
+
|
2402 |
+
/**
|
2403 |
+
Adds a link directly to the settings page from the plugin page
|
2404 |
+
*/
|
2405 |
function plugin_action($links, $file) {
|
2406 |
+
if ($file == plugin_basename(dirname(__FILE__).'/subscribe2.php')) {
|
2407 |
+
$s2link[] = "<a href='options-general.php?page=subscribe2/subscribe2.php'><b>" . __('Settings', 'subscribe2') . "</b></a>";
|
2408 |
+
$links = array_merge($s2link, $links);
|
2409 |
+
}
|
2410 |
return $links;
|
2411 |
}
|
2412 |
|
2526 |
$check = true;
|
2527 |
}
|
2528 |
}
|
2529 |
+
// is the current post set by the user to
|
2530 |
// not generate a notification email?
|
2531 |
$s2mail = get_post_meta($post->ID, 's2mail', true);
|
2532 |
if (strtolower(trim($s2mail)) == 'no') {
|
2543 |
continue;
|
2544 |
}
|
2545 |
$table .= $post->post_title . "\r\n";
|
2546 |
+
$message_posttime .= $post->post_title . "\r\n";
|
2547 |
+
$message_posttime .= __('Posted on', 'subscribe2') . ": " . mysql2date($datetime, $post->post_date) . "\r\n";
|
2548 |
+
$message_posttime .= get_permalink($post->ID) . "\r\n";
|
2549 |
+
$message_post .= $post->post_title . "\r\n";
|
2550 |
+
$message_post .= get_permalink($post->ID) . "\r\n";
|
2551 |
$excerpt = $post->post_excerpt;
|
2552 |
if ('' == $excerpt) {
|
2553 |
// no excerpt, is there a <!--more--> ?
|
2572 |
}
|
2573 |
}
|
2574 |
}
|
2575 |
+
$message_post .= $excerpt . "\r\n\r\n";
|
2576 |
+
$message_posttime .= $excerpt . "\r\n\r\n";
|
2577 |
}
|
2578 |
|
2579 |
//sanity check - don't send a mail if the content is empty
|
2580 |
+
if (!$message_post && !$message_posttime && !$table) {
|
2581 |
return;
|
2582 |
}
|
2583 |
|
2596 |
$recipients = array_merge((array)$public, (array)$registered);
|
2597 |
$mailtext = $this->substitute(stripslashes($this->subscribe2_options['mailtext']));
|
2598 |
$mailtext = str_replace("TABLE", $table, $mailtext);
|
2599 |
+
$mailtext = str_replace("POSTTIME", $message_posttime, $mailtext);
|
2600 |
+
$mailtext = str_replace("POST", $message_post, $mailtext);
|
2601 |
$this->mail($recipients, $subject, $mailtext);
|
2602 |
} // end subscribe2_cron
|
2603 |
|
2653 |
|
2654 |
//add regular actions and filters
|
2655 |
add_action('admin_menu', array(&$this, 'admin_menu'));
|
|
|
2656 |
add_action('create_category', array(&$this, 'autosub_new_category'));
|
2657 |
add_filter('the_content', array(&$this, 'filter'), 10);
|
2658 |
add_filter('cron_schedules', array(&$this, 'add_weekly_sched'));
|
2659 |
|
2660 |
+
// add actions for other plugins
|
2661 |
+
if ('1' == $this->subscribe2_options['show_meta']) {
|
2662 |
+
add_action('wp_meta', array(&$this, 'add_minimeta'), 0);
|
2663 |
+
}
|
2664 |
+
add_filter('ozh_adminmenu_icon', array(&$this, 'ozh_s2_icon'));
|
2665 |
+
|
2666 |
// add action to display editor buttons if option is enabled
|
2667 |
if ('1' == $this->subscribe2_options['show_button']) {
|
2668 |
add_action('edit_page_form', array(&$this, 's2_edit_form'));
|
2671 |
|
2672 |
// add actions for automatic subscription based on option settings
|
2673 |
add_action('register_form', array(&$this, 'register_form'));
|
2674 |
+
add_action('user_register', array(&$this, 'register'));
|
|
|
|
|
2675 |
if ('wpreg' == $this->subscribe2_options['autosub']) {
|
2676 |
add_action('register_post', array(&$this, 'register_post'));
|
2677 |
}
|
subscribe2.pot
CHANGED
@@ -8,7 +8,7 @@ msgid ""
|
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: PACKAGE VERSION\n"
|
10 |
"Report-Msgid-Bugs-To: \n"
|
11 |
-
"POT-Creation-Date: 2008-
|
12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
@@ -72,15 +72,15 @@ msgstr ""
|
|
72 |
msgid "Your email:"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: subscribe2.php:85 subscribe2.php:
|
76 |
msgid "Subscribe"
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: subscribe2.php:85 subscribe2.php:
|
80 |
msgid "Unsubscribe"
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: subscribe2.php:85 subscribe2.php:
|
84 |
msgid "Send"
|
85 |
msgstr ""
|
86 |
|
@@ -120,7 +120,7 @@ msgstr ""
|
|
120 |
msgid "Options reset!"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: subscribe2.php:112
|
124 |
msgid "Subscribers"
|
125 |
msgstr ""
|
126 |
|
@@ -128,12 +128,12 @@ msgstr ""
|
|
128 |
msgid "Subscribe2 Options"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: subscribe2.php:115 subscribe2.php:
|
132 |
msgid "Subscribe2"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: subscribe2.php:120
|
136 |
-
msgid "
|
137 |
msgstr ""
|
138 |
|
139 |
#: subscribe2.php:123
|
@@ -144,481 +144,543 @@ msgstr ""
|
|
144 |
msgid "Once Weekly"
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: subscribe2.php:
|
148 |
-
msgid "New
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: subscribe2.php:
|
152 |
msgid "subscribed to email notifications!"
|
153 |
msgstr ""
|
154 |
|
155 |
-
#: subscribe2.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
msgid "Address(es) subscribed!"
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: subscribe2.php:
|
160 |
msgid "Address(es) deleted!"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: subscribe2.php:
|
164 |
msgid "Status changed!"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: subscribe2.php:
|
168 |
msgid "Reminder Email(s) Sent!"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: subscribe2.php:
|
172 |
msgid "Registered Users Subscribed!"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: subscribe2.php:
|
176 |
msgid "Registered Users Unsubscribed!"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: subscribe2.php:
|
180 |
msgid "Previous Page"
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: subscribe2.php:
|
184 |
msgid "Next Page"
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: subscribe2.php:
|
188 |
-
msgid "
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: subscribe2.php:
|
|
|
|
|
|
|
|
|
192 |
msgid "Enter addresses, one per line or comma-separated"
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: subscribe2.php:
|
|
|
|
|
|
|
|
|
196 |
msgid "Filter"
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: subscribe2.php:
|
200 |
msgid ""
|
201 |
"Registered on the left, confirmed in the middle, unconfirmed on the right"
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: subscribe2.php:
|
205 |
msgid "Search Subscribers"
|
206 |
msgstr ""
|
207 |
|
208 |
-
#: subscribe2.php:
|
209 |
msgid "Save Emails to CSV File"
|
210 |
msgstr ""
|
211 |
|
212 |
-
#: subscribe2.php:
|
213 |
msgid "Send Reminder Email"
|
214 |
msgstr ""
|
215 |
|
216 |
-
#: subscribe2.php:
|
217 |
msgid "Process"
|
218 |
msgstr ""
|
219 |
|
220 |
-
#: subscribe2.php:
|
221 |
msgid "Confirm this email address"
|
222 |
msgstr ""
|
223 |
|
224 |
-
#: subscribe2.php:
|
225 |
msgid "Unconfirm this email address"
|
226 |
msgstr ""
|
227 |
|
228 |
-
#: subscribe2.php:
|
229 |
msgid "Delete this email address"
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: subscribe2.php:
|
233 |
msgid "Select / Unselect All"
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: subscribe2.php:
|
|
|
|
|
|
|
|
|
237 |
msgid "No matching subscribers found"
|
238 |
msgstr ""
|
239 |
|
240 |
-
#: subscribe2.php:
|
241 |
msgid "NONE"
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: subscribe2.php:
|
245 |
msgid "Categories"
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: subscribe2.php:
|
249 |
msgid ""
|
250 |
"Existing Registered Users can be automatically (un)subscribed to categories "
|
251 |
"using this section."
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: subscribe2.php:
|
255 |
msgid "Consider User Privacy as changes cannot be undone"
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: subscribe2.php:
|
259 |
msgid "Action to perform"
|
260 |
msgstr ""
|
261 |
|
262 |
-
#: subscribe2.php:
|
263 |
msgid "Submit"
|
264 |
msgstr ""
|
265 |
|
266 |
-
#: subscribe2.php:
|
267 |
-
msgid "
|
|
|
|
|
|
|
|
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: subscribe2.php:
|
271 |
msgid "Restrict the number of recpients per email to (0 for unlimited)"
|
272 |
msgstr ""
|
273 |
|
274 |
-
#: subscribe2.php:
|
275 |
msgid "Edit"
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: subscribe2.php:
|
279 |
msgid "Update"
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: subscribe2.php:
|
283 |
msgid "Revert"
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: subscribe2.php:
|
287 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: subscribe2.php:
|
291 |
msgid "Send Emails for Pages"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: subscribe2.php:
|
295 |
-
#: subscribe2.php:
|
296 |
-
#: subscribe2.php:
|
297 |
msgid "Yes"
|
298 |
msgstr ""
|
299 |
|
300 |
-
#: subscribe2.php:
|
301 |
-
#: subscribe2.php:
|
302 |
-
#: subscribe2.php:
|
303 |
msgid "No"
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: subscribe2.php:
|
307 |
msgid "Send Emails for Password Protected Posts"
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: subscribe2.php:
|
311 |
msgid "Send Emails for Private Posts"
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: subscribe2.php:
|
315 |
msgid "Send Email From"
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: subscribe2.php:
|
319 |
msgid "Author of the post"
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: subscribe2.php:
|
323 |
msgid "Blog Admin"
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: subscribe2.php:
|
327 |
msgid "Send Email as Digest"
|
328 |
msgstr ""
|
329 |
|
330 |
-
#: subscribe2.php:
|
331 |
msgid "Email Templates"
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: subscribe2.php:
|
335 |
msgid "New Post email (must not be empty)"
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: subscribe2.php:
|
339 |
msgid "Message substitions"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: subscribe2.php:
|
343 |
msgid "the post's title<br />(<i>for per-post emails only</i>)"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: subscribe2.php:
|
347 |
msgid ""
|
348 |
"the excerpt or the entire post<br />(<i>based on the subscriber's "
|
349 |
"preferences</i>)"
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: subscribe2.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
msgid "a list of post titles<br />(<i>for digest emails only</i>)"
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: subscribe2.php:
|
357 |
msgid "the post's permalink<br />(<i>for per-post emails only</i>)"
|
358 |
msgstr ""
|
359 |
|
360 |
-
#: subscribe2.php:
|
361 |
msgid "the admin or post author's name"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: subscribe2.php:
|
365 |
msgid "the admin or post author's email"
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: subscribe2.php:
|
369 |
msgid "the post author's name"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: subscribe2.php:
|
373 |
msgid ""
|
374 |
"the generated link to confirm a request<br />(<i>only used in the "
|
375 |
"confirmation email template</i>)"
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: subscribe2.php:
|
379 |
msgid ""
|
380 |
"Action performed by LINK in confirmation email<br />(<i>only used in the "
|
381 |
"confirmation email template</i>)"
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: subscribe2.php:
|
385 |
msgid "Subscribe / Unsubscribe confirmation email"
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: subscribe2.php:
|
389 |
msgid "Reminder email to Unconfirmed Subscribers"
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: subscribe2.php:
|
393 |
msgid "Excluded Categories"
|
394 |
msgstr ""
|
395 |
|
396 |
-
#: subscribe2.php:
|
397 |
msgid ""
|
398 |
"Posts assigned to any Excluded Category do not generate notifications and "
|
399 |
"are not included in digest notifications"
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: subscribe2.php:
|
403 |
msgid "Allow registered users to subscribe to excluded categories?"
|
404 |
msgstr ""
|
405 |
|
406 |
-
#: subscribe2.php:
|
407 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
408 |
msgstr ""
|
409 |
|
410 |
-
#: subscribe2.php:
|
411 |
msgid "Show the Subscribe2 button on the Write toolbar?"
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: subscribe2.php:
|
415 |
msgid "Enable Subscribe2 Widget?"
|
416 |
msgstr ""
|
417 |
|
418 |
-
#: subscribe2.php:
|
419 |
msgid "Auto Subscribe"
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: subscribe2.php:
|
423 |
msgid "Subscribe new users registering with your blog"
|
424 |
msgstr ""
|
425 |
|
426 |
-
#: subscribe2.php:
|
427 |
msgid "Automatically"
|
428 |
msgstr ""
|
429 |
|
430 |
-
#: subscribe2.php:
|
431 |
msgid "Display option on Registration Form"
|
432 |
msgstr ""
|
433 |
|
434 |
-
#: subscribe2.php:
|
435 |
msgid "Registration Form option is checked by default"
|
436 |
msgstr ""
|
437 |
|
438 |
-
#: subscribe2.php:
|
439 |
msgid "Auto-subscribe users to receive email as"
|
440 |
msgstr ""
|
441 |
|
442 |
-
#: subscribe2.php:
|
443 |
msgid "HTML"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: subscribe2.php:
|
447 |
msgid "Plain Text - Full"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: subscribe2.php:
|
451 |
msgid "Plain Text - Excerpt"
|
452 |
msgstr ""
|
453 |
|
454 |
-
#: subscribe2.php:
|
|
|
|
|
|
|
|
|
455 |
msgid "Auto Subscribe me to new categories is checked by default"
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: subscribe2.php:
|
459 |
msgid "Barred Domains"
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: subscribe2.php:
|
463 |
msgid ""
|
464 |
"Enter domains to bar from public subscriptions: <br /> (Use a new line for "
|
465 |
"each entry and omit the \"@\" symbol, for example email.com)"
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: subscribe2.php:
|
469 |
msgid "Reset Default"
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: subscribe2.php:
|
473 |
msgid ""
|
474 |
"Use this to reset all options to their defaults. This <strong><em>will not</"
|
475 |
"em></strong> modify your list of subscribers."
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: subscribe2.php:
|
479 |
msgid "RESET"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: subscribe2.php:
|
483 |
msgid "Subscription preferences updated."
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: subscribe2.php:
|
487 |
-
msgid "
|
488 |
msgstr ""
|
489 |
|
490 |
-
#: subscribe2.php:
|
491 |
msgid "Receive email as"
|
492 |
msgstr ""
|
493 |
|
494 |
-
#: subscribe2.php:
|
495 |
msgid "Plain Text"
|
496 |
msgstr ""
|
497 |
|
498 |
-
#: subscribe2.php:
|
499 |
msgid "Email contains"
|
500 |
msgstr ""
|
501 |
|
502 |
-
#: subscribe2.php:
|
503 |
msgid "Excerpt Only"
|
504 |
msgstr ""
|
505 |
|
506 |
-
#: subscribe2.php:
|
507 |
msgid "Full Post"
|
508 |
msgstr ""
|
509 |
|
510 |
-
#: subscribe2.php:
|
511 |
msgid "Note: HTML format will always deliver the full post"
|
512 |
msgstr ""
|
513 |
|
514 |
-
#: subscribe2.php:
|
515 |
msgid "Automatically subscribe me to newly created categories"
|
516 |
msgstr ""
|
517 |
|
518 |
-
#: subscribe2.php:
|
519 |
msgid "Subscribed Categories"
|
520 |
msgstr ""
|
521 |
|
522 |
-
#: subscribe2.php:
|
523 |
msgid "Receive daily summary of new posts?"
|
524 |
msgstr ""
|
525 |
|
526 |
-
#: subscribe2.php:
|
527 |
msgid "Update Preferences"
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: subscribe2.php:
|
531 |
-
msgid "Send email to
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: subscribe2.php:
|
535 |
-
msgid "
|
536 |
msgstr ""
|
537 |
|
538 |
-
#: subscribe2.php:
|
539 |
-
msgid "
|
540 |
msgstr ""
|
541 |
|
542 |
-
#: subscribe2.php:
|
543 |
msgid "Recipients: "
|
544 |
msgstr ""
|
545 |
|
546 |
-
#: subscribe2.php:
|
547 |
msgid "All Subscribers"
|
548 |
msgstr ""
|
549 |
|
550 |
-
#: subscribe2.php:
|
551 |
msgid "Public Subscribers"
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: subscribe2.php:
|
555 |
msgid "Confirmed"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: subscribe2.php:
|
559 |
msgid "Unconfirmed"
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: subscribe2.php:
|
563 |
msgid "Registered Users"
|
564 |
msgstr ""
|
565 |
|
566 |
-
#: subscribe2.php:
|
567 |
msgid "Per Post Email"
|
568 |
msgstr ""
|
569 |
|
570 |
-
#: subscribe2.php:
|
571 |
msgid "Send Digest Notification at"
|
572 |
msgstr ""
|
573 |
|
574 |
-
#: subscribe2.php:
|
575 |
msgid ""
|
576 |
"This option will work for digest notification sent daily or less frequently"
|
577 |
msgstr ""
|
578 |
|
579 |
-
#: subscribe2.php:
|
580 |
msgid "Current UTC time is"
|
581 |
msgstr ""
|
582 |
|
583 |
-
#: subscribe2.php:
|
584 |
msgid "Current blog time is"
|
585 |
msgstr ""
|
586 |
|
587 |
-
#: subscribe2.php:
|
588 |
msgid "Next email notification will be sent when your blog time is after"
|
589 |
msgstr ""
|
590 |
|
591 |
-
#: subscribe2.php:
|
592 |
msgid "Check here to Subscribe to email notifications for new posts"
|
593 |
msgstr ""
|
594 |
|
595 |
-
#: subscribe2.php:
|
596 |
msgid ""
|
597 |
"By registering with this blog you are also agreeing to receive email "
|
598 |
"notifications for new posts but you can unsubscribe at anytime"
|
599 |
msgstr ""
|
600 |
|
601 |
-
#: subscribe2.php:
|
602 |
msgid "Subscription Confirmation"
|
603 |
msgstr ""
|
604 |
|
605 |
-
#: subscribe2.php:
|
606 |
msgid "Title:"
|
607 |
msgstr ""
|
608 |
|
609 |
-
#: subscribe2.php:
|
|
|
|
|
|
|
|
|
610 |
msgid "Settings"
|
611 |
msgstr ""
|
612 |
|
613 |
-
#: subscribe2.php:
|
614 |
msgid "Posted on"
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: subscribe2.php:
|
618 |
msgid "Digest Email"
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: include/options.php:
|
622 |
msgid ""
|
623 |
"BLOGNAME has posted a new item, 'TITLE'\n"
|
624 |
"\n"
|
@@ -634,7 +696,7 @@ msgid ""
|
|
634 |
"EMAIL"
|
635 |
msgstr ""
|
636 |
|
637 |
-
#: include/options.php:
|
638 |
msgid ""
|
639 |
"BLOGNAME has received a request to ACTION for this email address. To "
|
640 |
"complete your request please click on the link below:\n"
|
@@ -647,7 +709,7 @@ msgid ""
|
|
647 |
"MYNAME."
|
648 |
msgstr ""
|
649 |
|
650 |
-
#: include/options.php:
|
651 |
msgid ""
|
652 |
"This email address was subscribed for notifications at BLOGNAME (BLOGLINK) "
|
653 |
"but the subscription remains incomplete.\n"
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: PACKAGE VERSION\n"
|
10 |
"Report-Msgid-Bugs-To: \n"
|
11 |
+
"POT-Creation-Date: 2008-12-11 19:21+0000\n"
|
12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
72 |
msgid "Your email:"
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: subscribe2.php:85 subscribe2.php:1290 subscribe2.php:1386
|
76 |
msgid "Subscribe"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: subscribe2.php:85 subscribe2.php:1291 subscribe2.php:1387
|
80 |
msgid "Unsubscribe"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: subscribe2.php:85 subscribe2.php:2011
|
84 |
msgid "Send"
|
85 |
msgstr ""
|
86 |
|
120 |
msgid "Options reset!"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: subscribe2.php:112
|
124 |
msgid "Subscribers"
|
125 |
msgstr ""
|
126 |
|
128 |
msgid "Subscribe2 Options"
|
129 |
msgstr ""
|
130 |
|
131 |
+
#: subscribe2.php:115 subscribe2.php:2352 subscribe2.php:2435
|
132 |
msgid "Subscribe2"
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: subscribe2.php:120 subscribe2.php:1538
|
136 |
+
msgid "Subscriptions"
|
137 |
msgstr ""
|
138 |
|
139 |
#: subscribe2.php:123
|
144 |
msgid "Once Weekly"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: subscribe2.php:730
|
148 |
+
msgid "New subscription"
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: subscribe2.php:731
|
152 |
msgid "subscribed to email notifications!"
|
153 |
msgstr ""
|
154 |
|
155 |
+
#: subscribe2.php:743
|
156 |
+
msgid "New Unsubscription"
|
157 |
+
msgstr ""
|
158 |
+
|
159 |
+
#: subscribe2.php:744
|
160 |
+
msgid "unsubscribed from email notifications!"
|
161 |
+
msgstr ""
|
162 |
+
|
163 |
+
#: subscribe2.php:1119
|
164 |
msgid "Address(es) subscribed!"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: subscribe2.php:1125
|
168 |
msgid "Address(es) deleted!"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: subscribe2.php:1131 subscribe2.php:1137
|
172 |
msgid "Status changed!"
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: subscribe2.php:1151
|
176 |
msgid "Reminder Email(s) Sent!"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: subscribe2.php:1154
|
180 |
msgid "Registered Users Subscribed!"
|
181 |
msgstr ""
|
182 |
|
183 |
+
#: subscribe2.php:1157
|
184 |
msgid "Registered Users Unsubscribed!"
|
185 |
msgstr ""
|
186 |
|
187 |
+
#: subscribe2.php:1255
|
188 |
msgid "Previous Page"
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: subscribe2.php:1275
|
192 |
msgid "Next Page"
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: subscribe2.php:1281
|
196 |
+
msgid "Manage Subscribers"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: subscribe2.php:1286
|
200 |
+
msgid "Add/Remove Subscribers"
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: subscribe2.php:1287
|
204 |
msgid "Enter addresses, one per line or comma-separated"
|
205 |
msgstr ""
|
206 |
|
207 |
+
#: subscribe2.php:1294
|
208 |
+
msgid "Current Subscribers"
|
209 |
+
msgstr ""
|
210 |
+
|
211 |
+
#: subscribe2.php:1296
|
212 |
msgid "Filter"
|
213 |
msgstr ""
|
214 |
|
215 |
+
#: subscribe2.php:1300
|
216 |
msgid ""
|
217 |
"Registered on the left, confirmed in the middle, unconfirmed on the right"
|
218 |
msgstr ""
|
219 |
|
220 |
+
#: subscribe2.php:1304
|
221 |
msgid "Search Subscribers"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: subscribe2.php:1306
|
225 |
msgid "Save Emails to CSV File"
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: subscribe2.php:1309
|
229 |
msgid "Send Reminder Email"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: subscribe2.php:1312 subscribe2.php:1375
|
233 |
msgid "Process"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: subscribe2.php:1324 subscribe2.php:1354
|
237 |
msgid "Confirm this email address"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: subscribe2.php:1326 subscribe2.php:1352
|
241 |
msgid "Unconfirm this email address"
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: subscribe2.php:1328 subscribe2.php:1359
|
245 |
msgid "Delete this email address"
|
246 |
msgstr ""
|
247 |
|
248 |
+
#: subscribe2.php:1329 subscribe2.php:2070
|
249 |
msgid "Select / Unselect All"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: subscribe2.php:1345
|
253 |
+
msgid "edit"
|
254 |
+
msgstr ""
|
255 |
+
|
256 |
+
#: subscribe2.php:1367
|
257 |
msgid "No matching subscribers found"
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: subscribe2.php:1369
|
261 |
msgid "NONE"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: subscribe2.php:1380
|
265 |
msgid "Categories"
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: subscribe2.php:1382
|
269 |
msgid ""
|
270 |
"Existing Registered Users can be automatically (un)subscribed to categories "
|
271 |
"using this section."
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: subscribe2.php:1383
|
275 |
msgid "Consider User Privacy as changes cannot be undone"
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: subscribe2.php:1385
|
279 |
msgid "Action to perform"
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: subscribe2.php:1390 subscribe2.php:1770
|
283 |
msgid "Submit"
|
284 |
msgstr ""
|
285 |
|
286 |
+
#: subscribe2.php:1512
|
287 |
+
msgid "Subscribe2 Settings"
|
288 |
+
msgstr ""
|
289 |
+
|
290 |
+
#: subscribe2.php:1523 subscribe2.php:1877
|
291 |
+
msgid "Notification Settings"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: subscribe2.php:1525
|
295 |
msgid "Restrict the number of recpients per email to (0 for unlimited)"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: subscribe2.php:1527 subscribe2.php:1655 subscribe2.php:1664
|
299 |
msgid "Edit"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: subscribe2.php:1530 subscribe2.php:1658 subscribe2.php:1667
|
303 |
msgid "Update"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: subscribe2.php:1531 subscribe2.php:1659 subscribe2.php:1668
|
307 |
msgid "Revert"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: subscribe2.php:1533
|
311 |
+
msgid "Send Admins notifications for new"
|
312 |
+
msgstr ""
|
313 |
+
|
314 |
+
#: subscribe2.php:1543
|
315 |
+
msgid "Unsubscriptions"
|
316 |
+
msgstr ""
|
317 |
+
|
318 |
+
#: subscribe2.php:1548
|
319 |
+
msgid "Both"
|
320 |
+
msgstr ""
|
321 |
+
|
322 |
+
#: subscribe2.php:1553
|
323 |
+
msgid "Neither"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: subscribe2.php:1555
|
327 |
msgid "Send Emails for Pages"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: subscribe2.php:1560 subscribe2.php:1571 subscribe2.php:1582
|
331 |
+
#: subscribe2.php:1716 subscribe2.php:1743 subscribe2.php:1754
|
332 |
+
#: subscribe2.php:1917 subscribe2.php:1938
|
333 |
msgid "Yes"
|
334 |
msgstr ""
|
335 |
|
336 |
+
#: subscribe2.php:1565 subscribe2.php:1576 subscribe2.php:1587
|
337 |
+
#: subscribe2.php:1710 subscribe2.php:1721 subscribe2.php:1748
|
338 |
+
#: subscribe2.php:1759 subscribe2.php:1922 subscribe2.php:1942
|
339 |
msgid "No"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: subscribe2.php:1566
|
343 |
msgid "Send Emails for Password Protected Posts"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: subscribe2.php:1577
|
347 |
msgid "Send Emails for Private Posts"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: subscribe2.php:1588
|
351 |
msgid "Send Email From"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: subscribe2.php:1593
|
355 |
msgid "Author of the post"
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: subscribe2.php:1598
|
359 |
msgid "Blog Admin"
|
360 |
msgstr ""
|
361 |
|
362 |
+
#: subscribe2.php:1600
|
363 |
msgid "Send Email as Digest"
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: subscribe2.php:1606
|
367 |
msgid "Email Templates"
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: subscribe2.php:1610
|
371 |
msgid "New Post email (must not be empty)"
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: subscribe2.php:1614
|
375 |
msgid "Message substitions"
|
376 |
msgstr ""
|
377 |
|
378 |
+
#: subscribe2.php:1618
|
379 |
msgid "the post's title<br />(<i>for per-post emails only</i>)"
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: subscribe2.php:1619
|
383 |
msgid ""
|
384 |
"the excerpt or the entire post<br />(<i>based on the subscriber's "
|
385 |
"preferences</i>)"
|
386 |
msgstr ""
|
387 |
|
388 |
+
#: subscribe2.php:1620
|
389 |
+
msgid ""
|
390 |
+
"the excerpt of the post and the time it was posted<br />(<i>for digest "
|
391 |
+
"emails only</i>)"
|
392 |
+
msgstr ""
|
393 |
+
|
394 |
+
#: subscribe2.php:1621
|
395 |
msgid "a list of post titles<br />(<i>for digest emails only</i>)"
|
396 |
msgstr ""
|
397 |
|
398 |
+
#: subscribe2.php:1622
|
399 |
msgid "the post's permalink<br />(<i>for per-post emails only</i>)"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: subscribe2.php:1623
|
403 |
msgid "the admin or post author's name"
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: subscribe2.php:1624
|
407 |
msgid "the admin or post author's email"
|
408 |
msgstr ""
|
409 |
|
410 |
+
#: subscribe2.php:1625
|
411 |
msgid "the post author's name"
|
412 |
msgstr ""
|
413 |
|
414 |
+
#: subscribe2.php:1626
|
415 |
msgid ""
|
416 |
"the generated link to confirm a request<br />(<i>only used in the "
|
417 |
"confirmation email template</i>)"
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: subscribe2.php:1627
|
421 |
msgid ""
|
422 |
"Action performed by LINK in confirmation email<br />(<i>only used in the "
|
423 |
"confirmation email template</i>)"
|
424 |
msgstr ""
|
425 |
|
426 |
+
#: subscribe2.php:1629
|
427 |
msgid "Subscribe / Unsubscribe confirmation email"
|
428 |
msgstr ""
|
429 |
|
430 |
+
#: subscribe2.php:1632
|
431 |
msgid "Reminder email to Unconfirmed Subscribers"
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: subscribe2.php:1637
|
435 |
msgid "Excluded Categories"
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: subscribe2.php:1639
|
439 |
msgid ""
|
440 |
"Posts assigned to any Excluded Category do not generate notifications and "
|
441 |
"are not included in digest notifications"
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: subscribe2.php:1646
|
445 |
msgid "Allow registered users to subscribe to excluded categories?"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: subscribe2.php:1649
|
449 |
+
msgid "Appearance"
|
450 |
+
msgstr ""
|
451 |
+
|
452 |
+
#: subscribe2.php:1653
|
453 |
+
msgid "Set default Subscribe2 page as ID"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: subscribe2.php:1662
|
457 |
+
msgid "Set the number of Subscribers displayed per page"
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: subscribe2.php:1675
|
461 |
+
msgid "Show a link to your subscription page in \"meta\"?"
|
462 |
msgstr ""
|
463 |
|
464 |
+
#: subscribe2.php:1682
|
465 |
msgid "Show the Subscribe2 button on the Write toolbar?"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: subscribe2.php:1689
|
469 |
msgid "Enable Subscribe2 Widget?"
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: subscribe2.php:1693
|
473 |
msgid "Auto Subscribe"
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: subscribe2.php:1695
|
477 |
msgid "Subscribe new users registering with your blog"
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: subscribe2.php:1700
|
481 |
msgid "Automatically"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: subscribe2.php:1705
|
485 |
msgid "Display option on Registration Form"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: subscribe2.php:1711
|
489 |
msgid "Registration Form option is checked by default"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: subscribe2.php:1722
|
493 |
msgid "Auto-subscribe users to receive email as"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: subscribe2.php:1727 subscribe2.php:1894
|
497 |
msgid "HTML"
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: subscribe2.php:1732
|
501 |
msgid "Plain Text - Full"
|
502 |
msgstr ""
|
503 |
|
504 |
+
#: subscribe2.php:1737
|
505 |
msgid "Plain Text - Excerpt"
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: subscribe2.php:1738
|
509 |
+
msgid "Show Auto Subscribe option on Users page"
|
510 |
+
msgstr ""
|
511 |
+
|
512 |
+
#: subscribe2.php:1749
|
513 |
msgid "Auto Subscribe me to new categories is checked by default"
|
514 |
msgstr ""
|
515 |
|
516 |
+
#: subscribe2.php:1763
|
517 |
msgid "Barred Domains"
|
518 |
msgstr ""
|
519 |
|
520 |
+
#: subscribe2.php:1765
|
521 |
msgid ""
|
522 |
"Enter domains to bar from public subscriptions: <br /> (Use a new line for "
|
523 |
"each entry and omit the \"@\" symbol, for example email.com)"
|
524 |
msgstr ""
|
525 |
|
526 |
+
#: subscribe2.php:1773
|
527 |
msgid "Reset Default"
|
528 |
msgstr ""
|
529 |
|
530 |
+
#: subscribe2.php:1774
|
531 |
msgid ""
|
532 |
"Use this to reset all options to their defaults. This <strong><em>will not</"
|
533 |
"em></strong> modify your list of subscribers."
|
534 |
msgstr ""
|
535 |
|
536 |
+
#: subscribe2.php:1776
|
537 |
msgid "RESET"
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: subscribe2.php:1807
|
541 |
msgid "Subscription preferences updated."
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: subscribe2.php:1880
|
545 |
+
msgid "Editing Subscribe2 preferences for user"
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: subscribe2.php:1889
|
549 |
msgid "Receive email as"
|
550 |
msgstr ""
|
551 |
|
552 |
+
#: subscribe2.php:1899
|
553 |
msgid "Plain Text"
|
554 |
msgstr ""
|
555 |
|
556 |
+
#: subscribe2.php:1901
|
557 |
msgid "Email contains"
|
558 |
msgstr ""
|
559 |
|
560 |
+
#: subscribe2.php:1902
|
561 |
msgid "Excerpt Only"
|
562 |
msgstr ""
|
563 |
|
564 |
+
#: subscribe2.php:1902
|
565 |
msgid "Full Post"
|
566 |
msgstr ""
|
567 |
|
568 |
+
#: subscribe2.php:1910
|
569 |
msgid "Note: HTML format will always deliver the full post"
|
570 |
msgstr ""
|
571 |
|
572 |
+
#: subscribe2.php:1912
|
573 |
msgid "Automatically subscribe me to newly created categories"
|
574 |
msgstr ""
|
575 |
|
576 |
+
#: subscribe2.php:1927
|
577 |
msgid "Subscribed Categories"
|
578 |
msgstr ""
|
579 |
|
580 |
+
#: subscribe2.php:1932
|
581 |
msgid "Receive daily summary of new posts?"
|
582 |
msgstr ""
|
583 |
|
584 |
+
#: subscribe2.php:1948
|
585 |
msgid "Update Preferences"
|
586 |
msgstr ""
|
587 |
|
588 |
+
#: subscribe2.php:1994
|
589 |
+
msgid "Send an email to subscribers"
|
590 |
msgstr ""
|
591 |
|
592 |
+
#: subscribe2.php:2002
|
593 |
+
msgid "A message from "
|
594 |
msgstr ""
|
595 |
|
596 |
+
#: subscribe2.php:2004
|
597 |
+
msgid "Subject"
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: subscribe2.php:2007
|
601 |
msgid "Recipients: "
|
602 |
msgstr ""
|
603 |
|
604 |
+
#: subscribe2.php:2088
|
605 |
msgid "All Subscribers"
|
606 |
msgstr ""
|
607 |
|
608 |
+
#: subscribe2.php:2089
|
609 |
msgid "Public Subscribers"
|
610 |
msgstr ""
|
611 |
|
612 |
+
#: subscribe2.php:2090
|
613 |
msgid "Confirmed"
|
614 |
msgstr ""
|
615 |
|
616 |
+
#: subscribe2.php:2091
|
617 |
msgid "Unconfirmed"
|
618 |
msgstr ""
|
619 |
|
620 |
+
#: subscribe2.php:2092
|
621 |
msgid "Registered Users"
|
622 |
msgstr ""
|
623 |
|
624 |
+
#: subscribe2.php:2156
|
625 |
msgid "Per Post Email"
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: subscribe2.php:2171
|
629 |
msgid "Send Digest Notification at"
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: subscribe2.php:2183
|
633 |
msgid ""
|
634 |
"This option will work for digest notification sent daily or less frequently"
|
635 |
msgstr ""
|
636 |
|
637 |
+
#: subscribe2.php:2186
|
638 |
msgid "Current UTC time is"
|
639 |
msgstr ""
|
640 |
|
641 |
+
#: subscribe2.php:2188
|
642 |
msgid "Current blog time is"
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: subscribe2.php:2190
|
646 |
msgid "Next email notification will be sent when your blog time is after"
|
647 |
msgstr ""
|
648 |
|
649 |
+
#: subscribe2.php:2203
|
650 |
msgid "Check here to Subscribe to email notifications for new posts"
|
651 |
msgstr ""
|
652 |
|
653 |
+
#: subscribe2.php:2212
|
654 |
msgid ""
|
655 |
"By registering with this blog you are also agreeing to receive email "
|
656 |
"notifications for new posts but you can unsubscribe at anytime"
|
657 |
msgstr ""
|
658 |
|
659 |
+
#: subscribe2.php:2338
|
660 |
msgid "Subscription Confirmation"
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: subscribe2.php:2375
|
664 |
msgid "Title:"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: subscribe2.php:2398
|
668 |
+
msgid "[Un]Subscribe to Posts"
|
669 |
+
msgstr ""
|
670 |
+
|
671 |
+
#: subscribe2.php:2407
|
672 |
msgid "Settings"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: subscribe2.php:2547
|
676 |
msgid "Posted on"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: subscribe2.php:2592
|
680 |
msgid "Digest Email"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: include/options.php:90
|
684 |
msgid ""
|
685 |
"BLOGNAME has posted a new item, 'TITLE'\n"
|
686 |
"\n"
|
696 |
"EMAIL"
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: include/options.php:94
|
700 |
msgid ""
|
701 |
"BLOGNAME has received a request to ACTION for this email address. To "
|
702 |
"complete your request please click on the link below:\n"
|
709 |
"MYNAME."
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: include/options.php:98
|
713 |
msgid ""
|
714 |
"This email address was subscribed for notifications at BLOGNAME (BLOGLINK) "
|
715 |
"but the subscription remains incomplete.\n"
|
subscribe2debug.php
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
Plugin Name: Subscribe2 Debug
|
4 |
-
Plugin URI: http://subscribe2.wordpress.com
|
5 |
-
Description: Produces Debug Information for the Subscribe2 plugin.
|
6 |
-
Version: 4.11
|
7 |
-
Author: Matthew Robinson
|
8 |
-
Author URI: http://subscribe2.wordpress.com
|
9 |
-
*/
|
10 |
-
|
11 |
-
/*
|
12 |
-
Copyright (C) 2006-8 Matthew Robinson
|
13 |
-
Based on the Original Subscribe2 plugin by
|
14 |
-
Copyright (C) 2005 Scott Merrill (skippy@skippy.net)
|
15 |
-
|
16 |
-
This file is part of Subscribe2.
|
17 |
-
|
18 |
-
Subscribe2 is free software: you can redistribute it and/or modify
|
19 |
-
it under the terms of the GNU General Public License as published by
|
20 |
-
the Free Software Foundation, either version 3 of the License, or
|
21 |
-
(at your option) any later version.
|
22 |
-
|
23 |
-
Subscribe2 is distributed in the hope that it will be useful,
|
24 |
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
25 |
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
26 |
-
GNU General Public License for more details.
|
27 |
-
|
28 |
-
You should have received a copy of the GNU General Public License
|
29 |
-
along with Subscribe2. If not, see <http://www.gnu.org/licenses/>.
|
30 |
-
*/
|
31 |
-
|
32 |
-
function add_debug_page() {
|
33 |
-
add_menu_page('Subscribe2 Debug', 'Subscribe2 Debug', 1, __FILE__, 'debug_menu');
|
34 |
-
}
|
35 |
-
add_action('admin_menu', 'add_debug_page');
|
36 |
-
|
37 |
-
function debug_menu() {
|
38 |
-
global $wp_filter;
|
39 |
-
echo "<div class=\"wrap\">";
|
40 |
-
$datetime = get_option('date_format') . ' @ ' . get_option('time_format');
|
41 |
-
echo "<p>Current Server time is: \r\n";
|
42 |
-
echo "<strong>" . gmdate($datetime, current_time('timestamp', 1)) . "</strong></p>\r\n";
|
43 |
-
echo "<p>Current Blog time is: \r\n";
|
44 |
-
echo "<strong>" . gmdate($datetime, current_time('timestamp')) . "</strong></p>\r\n";
|
45 |
-
echo "<p>Current Blog offset is: \r\n";
|
46 |
-
echo get_option('gmt_offset') . "\r\n";
|
47 |
-
echo "<pre>";
|
48 |
-
cron_jobs();
|
49 |
-
echo "</pre>";
|
50 |
-
echo "Current Subscribe 2 Options are:";
|
51 |
-
echo "<pre>";
|
52 |
-
print_r(get_option('subscribe2_options'));
|
53 |
-
echo "</pre>";
|
54 |
-
echo "</div>";
|
55 |
-
include(ABSPATH . 'wp-admin/admin-footer.php');
|
56 |
-
// just to be sure
|
57 |
-
die;
|
58 |
-
}
|
59 |
-
|
60 |
-
function cron_jobs() {
|
61 |
-
$datetime = get_option('date_format') . ' @ ' . get_option('time_format');
|
62 |
-
$jobs = _get_cron_array();
|
63 |
-
if (empty($jobs)) {
|
64 |
-
echo "No cron jobs scheduled";
|
65 |
-
} else {
|
66 |
-
foreach ( $jobs as $job => $tasks ) {
|
67 |
-
echo "Anytime after " . gmdate($datetime,$job) . " ";
|
68 |
-
foreach ($tasks as $procname => $task) {
|
69 |
-
echo $procname . " will execute\r\n";
|
70 |
-
}
|
71 |
-
}
|
72 |
-
}
|
73 |
-
return;
|
74 |
-
}
|
75 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subscribe2uninstaller.php
DELETED
@@ -1,113 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
Plugin Name: Subscribe2 Uninstaller
|
4 |
-
Plugin URI: http://subscribe2.wordpress.com
|
5 |
-
Description: Uninstalls the Subscribe2 plugin from Manage->S2 Uninstaller.
|
6 |
-
Version: 4.11
|
7 |
-
Author: Matthew Robinson
|
8 |
-
Author URI: http://subscribe2.wordpress.com
|
9 |
-
*/
|
10 |
-
|
11 |
-
/*
|
12 |
-
Copyright (C) 2006-8 Matthew Robinson
|
13 |
-
Based on the Original Subscribe2 plugin by
|
14 |
-
Copyright (C) 2005 Scott Merrill (skippy@skippy.net)
|
15 |
-
|
16 |
-
This file is part of Subscribe2.
|
17 |
-
|
18 |
-
Subscribe2 is free software: you can redistribute it and/or modify
|
19 |
-
it under the terms of the GNU General Public License as published by
|
20 |
-
the Free Software Foundation, either version 3 of the License, or
|
21 |
-
(at your option) any later version.
|
22 |
-
|
23 |
-
Subscribe2 is distributed in the hope that it will be useful,
|
24 |
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
25 |
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
26 |
-
GNU General Public License for more details.
|
27 |
-
|
28 |
-
You should have received a copy of the GNU General Public License
|
29 |
-
along with Subscribe2. If not, see <http://www.gnu.org/licenses/>.
|
30 |
-
*/
|
31 |
-
|
32 |
-
$mys2uninst = new s2uninst;
|
33 |
-
$mys2uninst->s2uninst_init();
|
34 |
-
|
35 |
-
class s2uninst {
|
36 |
-
function manage_page() {
|
37 |
-
global $s2nonce;
|
38 |
-
|
39 |
-
if (isset($_POST['s2_uninst'])) {
|
40 |
-
check_admin_referer('s2uninst-uninstaller' . $s2nonce);
|
41 |
-
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Subscribe2 has been uninstalled.', 's2uninst') . "</strong></p></div>\n";
|
42 |
-
$this->uninstall();
|
43 |
-
}
|
44 |
-
|
45 |
-
echo "<div class=\"wrap\">";
|
46 |
-
echo "<h2>" . __('Subscribe2 Uninstaller', 's2uninst') . "</h2>\r\n";
|
47 |
-
if (class_exists('s2class')) {
|
48 |
-
echo "<p>" . __('The Subscribe2 plugin is still active on your system. Please deactivate the plugin before completing the uninstall process.', 's2uninst') . "</p>\r\n";
|
49 |
-
echo "<p>" . __('You can deactivate the plugin by using the ', 's2uninst') . "<a href=\"" . get_option('siteurl') . "/wp-admin/plugins.php\">" . __('WordPress Plugin Page', 's2uninst') . "</a>.</p>";
|
50 |
-
echo "</div>\r\n";
|
51 |
-
include(ABSPATH . 'wp-admin/admin-footer.php');
|
52 |
-
// just to be sure
|
53 |
-
die;
|
54 |
-
} else {
|
55 |
-
echo "<form method=\"post\" action=\"\">";
|
56 |
-
if (function_exists('wp_nonce_field')) {
|
57 |
-
wp_nonce_field('s2uninst-uninstaller' . $s2nonce);
|
58 |
-
}
|
59 |
-
echo "<p>" . __('Clicking on UNINSTALL will remove the following items from your WordPress install (these were installed by Subscribe2).', 's2uninst') . "</p>\r\n";
|
60 |
-
echo "<ul>\r\n";
|
61 |
-
echo "<li>" . __('Options Table Entries', 's2uninst') . "</li>\r\n";
|
62 |
-
echo "<li>" . __('Usermeta Table Entries', 's2uninst') . "</li>\r\n";
|
63 |
-
echo "<li>" . __('Subscribe2 Table', 's2uninst') . "</li>\r\n";
|
64 |
-
echo "<li>" . __('Events Schedules by Subscribe2', 's2uninst') . "</li>\r\n";
|
65 |
-
echo "</ul>\r\n";
|
66 |
-
echo "<p align=\"center\"><span class=\"submit\">\r\n";
|
67 |
-
echo "<input type=\"hidden\" name=\"s2_uninst\" value=\"RESET\" />\r\n";
|
68 |
-
echo "<input type=\"submit\" id=\"deletepost\" name=\"submit\" value=\"" . __('UNINSTALL', 's2uninst') . "\" />\r\n";
|
69 |
-
echo "</span></p></form></div>\r\n";
|
70 |
-
include(ABSPATH . 'wp-admin/admin-footer.php');
|
71 |
-
// just to be sure
|
72 |
-
die;
|
73 |
-
}
|
74 |
-
}
|
75 |
-
|
76 |
-
function uninstall() {
|
77 |
-
global $wpdb, $table_prefix;
|
78 |
-
// get name of subscribe2 table
|
79 |
-
$this->public = $table_prefix . "subscribe2";
|
80 |
-
// delete entry from wp_options table
|
81 |
-
delete_option('subscribe2_options');
|
82 |
-
// delete legacy entry from wp-options table
|
83 |
-
delete_option('s2_future_posts');
|
84 |
-
// remove and scheduled events
|
85 |
-
wp_clear_scheduled_hook('s2_digest_cron');
|
86 |
-
// delete usermeta data for registered users
|
87 |
-
$users = $wpdb->get_col("SELECT ID FROM $wpdb->users");
|
88 |
-
if (!empty($users)) {
|
89 |
-
foreach ($users as $user) {
|
90 |
-
$cats = explode(',', get_usermeta($user, 's2_subscribed'));
|
91 |
-
if ($cats) {
|
92 |
-
foreach ($cats as $cat) {
|
93 |
-
delete_usermeta($user, "s2_cat" . $cat);
|
94 |
-
}
|
95 |
-
}
|
96 |
-
delete_usermeta($user, 's2_subscribed');
|
97 |
-
}
|
98 |
-
}
|
99 |
-
// drop the subscribe2 table
|
100 |
-
$sql = "DROP TABLE IF EXISTS `" . $this->public . "`";
|
101 |
-
mysql_query($sql);
|
102 |
-
}
|
103 |
-
|
104 |
-
function s2uninst_init() {
|
105 |
-
load_plugin_textdomain('s2uninst', 'wp-content/plugins/');
|
106 |
-
add_action('admin_menu', array(&$this, 's2uninst_page'));
|
107 |
-
}
|
108 |
-
|
109 |
-
function s2uninst_page() {
|
110 |
-
add_management_page(__('S2 Uninstaller', 's2uninst'), __('S2 Uninstaller', 's2uninst'), "manage_options", __FILE__, array(&$this, 'manage_page'));
|
111 |
-
}
|
112 |
-
}
|
113 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uninstall.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if(!defined( 'ABSPATH') && !defined('WP_UNINSTALL_PLUGIN')) {
|
3 |
+
exit();
|
4 |
+
} else {
|
5 |
+
global $wpdb, $table_prefix;
|
6 |
+
// get name of subscribe2 table
|
7 |
+
$public = $table_prefix . "subscribe2";
|
8 |
+
// delete entry from wp_options table
|
9 |
+
delete_option('subscribe2_options');
|
10 |
+
// delete legacy entry from wp-options table
|
11 |
+
delete_option('s2_future_posts');
|
12 |
+
// remove and scheduled events
|
13 |
+
wp_clear_scheduled_hook('s2_digest_cron');
|
14 |
+
// delete usermeta data for registered users
|
15 |
+
$users = $wpdb->get_col("SELECT ID FROM $wpdb->users");
|
16 |
+
if (!empty($users)) {
|
17 |
+
foreach ($users as $user) {
|
18 |
+
$cats = explode(',', get_usermeta($user, 's2_subscribed'));
|
19 |
+
if ($cats) {
|
20 |
+
foreach ($cats as $cat) {
|
21 |
+
delete_usermeta($user, "s2_cat" . $cat);
|
22 |
+
}
|
23 |
+
}
|
24 |
+
delete_usermeta($user, 's2_subscribed');
|
25 |
+
}
|
26 |
+
}
|
27 |
+
// drop the subscribe2 table
|
28 |
+
$sql = "DROP TABLE IF EXISTS `" . $public . "`";
|
29 |
+
mysql_query($sql);
|
30 |
+
}
|
31 |
+
?>
|