Version Description
(2015-09-08) = * Remove mbstring admin message. Added fallback if mbstring is not installed * More explanation for signature regex * Add 1 minute schedule to supplement new external cron recommendation * Updates to support upcoming Language Packs feature for plugins * Moved important warning to admin notices * New filter postie_category_default
Download this release
Release Info
Developer | WayneAllen |
Plugin | Postie |
Version | 1.7.8 |
Comparing to | |
See all releases |
Code changes from version 1.7.6 to 1.7.8
- config_form.php +133 -133
- docs/Changes.txt +11 -0
- docs/Postie.txt +4 -2
- languages/makepot.cmd +0 -1
- postie-functions.php +54 -81
- postie.php +32 -19
- readme.txt +15 -2
config_form.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<div class="wrap">
|
2 |
<div style="float:right; width: 220px; border: 1px solid darkgrey; padding:2px;border-radius:10px;margin-left: 10px;" >
|
3 |
-
<p class="" style="text-align:center;font-weight: bolder; margin-top: 0px; margin-bottom: 2px;"><?php _e("Please Donate, Every $ Helps!",
|
4 |
-
<p style="margin-top: 0;margin-bottom: 2px;"><?php _e("Your generous donation allows me to continue developing Postie for the WordPress community.",
|
5 |
<form style="" action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
6 |
<input type="hidden" name="cmd" value="_s-xclick">
|
7 |
<input type="hidden" name="hosted_button_id" value="HPK99BJ88V4C2">
|
@@ -14,10 +14,10 @@
|
|
14 |
<a style='text-decoration:none' href='admin.php?page=postie-settings'>
|
15 |
<?php
|
16 |
echo '<img src="' . plugins_url('images/mail.png', __FILE__) . '" alt="postie" />';
|
17 |
-
_e('Postie Settings',
|
18 |
?>
|
19 |
</a>
|
20 |
-
<span class="description">(v<?php _e(POSTIE_VERSION,
|
21 |
</h2>
|
22 |
|
23 |
<?php
|
@@ -37,12 +37,12 @@
|
|
37 |
exit;
|
38 |
break;
|
39 |
case "runpostie":
|
40 |
-
EchoInfo(__("Checking for mail manually",
|
41 |
postie_get_mail();
|
42 |
exit;
|
43 |
break;
|
44 |
case "runpostie-debug":
|
45 |
-
EchoInfo(__("Checking for mail manually with debug output",
|
46 |
if (!defined('POSTIE_DEBUG')) {
|
47 |
define('POSTIE_DEBUG', true);
|
48 |
}
|
@@ -71,7 +71,7 @@
|
|
71 |
}
|
72 |
extract($config);
|
73 |
if (!isset($maxemails)) {
|
74 |
-
EchoInfo(__("New setting: maxemails",
|
75 |
$maxemails = 0;
|
76 |
}
|
77 |
if (!isset($category_match)) {
|
@@ -82,27 +82,27 @@
|
|
82 |
wp_clear_scheduled_hook('check_postie_hook');
|
83 |
}
|
84 |
|
85 |
-
$messages[1] = __("Configuration successfully updated!",
|
86 |
-
$messages[2] = __("Error - unable to save configuration",
|
87 |
?>
|
88 |
<?php if (isset($_GET['message'])) : ?>
|
89 |
-
<div class="updated"><p><?php _e($messages[$_GET['message']],
|
90 |
<?php endif; ?>
|
91 |
|
92 |
<form name="postie-options" method='post'>
|
93 |
<input type="hidden" name="action" value="runpostie" />
|
94 |
-
<input name="Submit" value="<?php _e("Run Postie",
|
95 |
-
<?php _e("(To run the check mail script manually)",
|
96 |
</form>
|
97 |
<form name="postie-options" method='post'>
|
98 |
<input type="hidden" name="action" value="runpostie-debug" />
|
99 |
-
<input name="Submit" value="<?php _e("Run Postie (Debug)",
|
100 |
-
<?php _e("(To run the check mail script manually with full debug output)",
|
101 |
</form>
|
102 |
<form name="postie-options" method="post">
|
103 |
<input type="hidden" name="action" value="test" />
|
104 |
-
<input name="Submit" value="<?php _e("Test Config",
|
105 |
-
<?php _e("this will check your configuration options",
|
106 |
</form>
|
107 |
|
108 |
<form name="postie-options" method="post" action='options.php' autocomplete="off">
|
@@ -115,20 +115,20 @@
|
|
115 |
<div id="simpleTabs">
|
116 |
<div class="simpleTabs-nav">
|
117 |
<ul>
|
118 |
-
<li id="simpleTabs-nav-1"><?php _e('Mailserver',
|
119 |
-
<li id="simpleTabs-nav-2"><?php _e('User',
|
120 |
-
<li id="simpleTabs-nav-3"><?php _e('Message',
|
121 |
-
<li id="simpleTabs-nav-4"><?php _e('Image',
|
122 |
-
<li id="simpleTabs-nav-5"><?php _e('Video and Audio',
|
123 |
-
<li id="simpleTabs-nav-6"><?php _e('Attachments',
|
124 |
-
<li id="simpleTabs-nav-7"><?php _e('Support',
|
125 |
</ul>
|
126 |
</div>
|
127 |
<div id="simpleTabs-content-1" class="simpleTabs-content">
|
128 |
<table class='form-table'>
|
129 |
|
130 |
<tr>
|
131 |
-
<th scope="row"><lable for="postie-settings-input_protocol"><?php _e('Mail Protocol',
|
132 |
<td>
|
133 |
<select name='postie-settings[input_protocol]' id='postie-settings-input_protocol'>
|
134 |
<option value="pop3" <?php echo (($input_protocol == "pop3") ? " selected='selected' " : "") ?>>POP3</option>
|
@@ -144,45 +144,45 @@
|
|
144 |
</td>
|
145 |
</tr>
|
146 |
|
147 |
-
<?php echo BuildBooleanSelect(__("Use Transport Layer Security (TLS)",
|
148 |
|
149 |
<tr>
|
150 |
-
<th scope="row"><label for="postie-settings-mail_server_port"><?php _e('Port',
|
151 |
<td valign="top">
|
152 |
<input name='postie-settings[mail_server_port]' style="width: 70px;" type="number" min="0" id='postie-settings-mail_server_port' value="<?php echo esc_attr($mail_server_port); ?>" size="6" />
|
153 |
-
<p class='description'><?php _e("Standard Ports:",
|
154 |
-
<?php _e("POP3",
|
155 |
-
<?php _e("IMAP",
|
156 |
-
<?php _e("IMAP-SSL",
|
157 |
-
<?php _e("POP3-SSL",
|
158 |
</p>
|
159 |
</td>
|
160 |
</tr>
|
161 |
<tr valign="top">
|
162 |
-
<th scope="row"><?php _e('Mail Server',
|
163 |
<td><input name='postie-settings[mail_server]' type="text" id='postie-settings-mail_server' value="<?php echo esc_attr($mail_server); ?>" size="40" />
|
164 |
</td>
|
165 |
</tr>
|
166 |
<tr valign="top">
|
167 |
-
<th scope="row"><?php _e('Mail Userid',
|
168 |
<td><input name='postie-settings[mail_userid]' type="text" id='postie-settings-mail_userid' autocomplete='off' value="<?php echo esc_attr($mail_userid); ?>" size="40" /></td>
|
169 |
</tr>
|
170 |
<tr valign="top">
|
171 |
-
<th scope="row"><?php _e('Mail Password',
|
172 |
<td>
|
173 |
<input name='postie-settings[mail_password]' type="password" id='postie-settings-mail_password' autocomplete='off' value="<?php echo esc_attr($mail_password); ?>" size="40" />
|
174 |
</td>
|
175 |
</tr>
|
176 |
<tr>
|
177 |
-
<th scope="row"><?php _e('Postie Time Correction',
|
178 |
<td><input style="width: 70px;" name='postie-settings[time_offset]' type="number" step="0.5" id='postie-settings-time_offset' size="2" value="<?php echo esc_attr($time_offset); ?>" />
|
179 |
-
<?php _e('hours',
|
180 |
-
<p class='description'><?php _e("Should be the same as your normal offset, but this lets you adjust it in cases where that doesn't work.",
|
181 |
</td>
|
182 |
</tr>
|
183 |
<tr>
|
184 |
<th>
|
185 |
-
<?php _e('Check for mail every',
|
186 |
</th>
|
187 |
<td>
|
188 |
<select name='postie-settings[interval]' id='postie-settings-interval'>
|
@@ -190,47 +190,47 @@
|
|
190 |
if ($interval == "weekly") {
|
191 |
echo "selected='selected'";
|
192 |
}
|
193 |
-
?>><?php _e('Once weekly',
|
194 |
<option value="daily"<?php
|
195 |
if ($interval == "daily") {
|
196 |
echo "selected='selected'";
|
197 |
}
|
198 |
-
?>><?php _e('daily',
|
199 |
<option value="hourly" <?php
|
200 |
if ($interval == "hourly") {
|
201 |
echo "selected='selected'";
|
202 |
}
|
203 |
-
?>><?php _e('hourly',
|
204 |
<option value="twiceperhour" <?php
|
205 |
if ($interval == "twiceperhour") {
|
206 |
echo "selected='selected'";
|
207 |
}
|
208 |
-
?>><?php _e('twice per hour',
|
209 |
<option value="tenminutes" <?php
|
210 |
if ($interval == "tenminutes") {
|
211 |
echo "selected='selected'";
|
212 |
}
|
213 |
-
?>><?php _e('every ten minutes',
|
214 |
<option value="fiveminutes" <?php
|
215 |
if ($interval == "fiveminutes") {
|
216 |
echo "selected='selected'";
|
217 |
}
|
218 |
-
?>><?php _e('every five minutes',
|
219 |
<option value="manual" <?php
|
220 |
if ($interval == "manual") {
|
221 |
echo "selected='selected'";
|
222 |
}
|
223 |
-
?>><?php _e('check manually',
|
224 |
</select>
|
225 |
</td>
|
226 |
</tr>
|
227 |
<tr>
|
228 |
<th>
|
229 |
-
<?php _e('Maximum number of emails to process',
|
230 |
</th>
|
231 |
<td>
|
232 |
<select name='postie-settings[maxemails]' id='postie-settings-maxemails'>
|
233 |
-
<option value="0" <?php if ($maxemails == '0') echo "selected='selected'" ?>><?php _e('All',
|
234 |
<option value="1" <?php if ($maxemails == '1') echo "selected='selected'" ?>>1</option>
|
235 |
<option value="2" <?php if ($maxemails == '2') echo "selected='selected'" ?>>2</option>
|
236 |
<option value="5" <?php if ($maxemails == '5') echo "selected='selected'" ?>>5</option>
|
@@ -240,19 +240,19 @@
|
|
240 |
</select>
|
241 |
</td>
|
242 |
</tr>
|
243 |
-
<?php echo BuildBooleanSelect(__("Delete email after posting",
|
244 |
-
<?php echo BuildTextArea(__("Allowed SMTP servers",
|
245 |
</table>
|
246 |
</div>
|
247 |
|
248 |
<div id="simpleTabs-content-2" class="simpleTabs-content">
|
249 |
<table class='form-table'>
|
250 |
|
251 |
-
<?php echo BuildBooleanSelect(__("Allow Anyone To Post Via Email",
|
252 |
-
<?php echo BuildBooleanSelect(__("Force User Login",
|
253 |
<tr>
|
254 |
<th scope="row">
|
255 |
-
<?php _e('Roles That Can Post',
|
256 |
</th>
|
257 |
<td>
|
258 |
<table class="checkbox-table">
|
@@ -280,15 +280,15 @@
|
|
280 |
}
|
281 |
}
|
282 |
?>
|
283 |
-
<p class='description'><?php _e("This allows you to grant access to other users to post if they have the proper access level. Administrators can always post.",
|
284 |
|
285 |
</table>
|
286 |
</td>
|
287 |
</tr>
|
288 |
|
289 |
-
<?php echo BuildTextArea(__("Authorized Addresses",
|
290 |
<tr>
|
291 |
-
<th scope="row"><?php _e('Default Poster',
|
292 |
<td>
|
293 |
<select name='postie-settings[admin_username]' id='postie-settings[admin_username]'>
|
294 |
<?php
|
@@ -305,7 +305,7 @@
|
|
305 |
}
|
306 |
?>
|
307 |
</select>
|
308 |
-
<p class='description'><?php _e("This will be the poster if you allow posting from emails that are not a registered blog user.",
|
309 |
</td>
|
310 |
</tr>
|
311 |
</table>
|
@@ -314,7 +314,7 @@
|
|
314 |
<div id = "simpleTabs-content-3" class = "simpleTabs-content">
|
315 |
<table class = 'form-table'>
|
316 |
<tr>
|
317 |
-
<th scope="row"><?php _e('Preferred Text Type',
|
318 |
<td>
|
319 |
<select name='postie-settings[prefer_text_type]' id='postie-settings-prefer_text_type'>
|
320 |
<?php printf('<option value="plain" %s>plain</option>', ($prefer_text_type == "plain") ? "selected" : "") ?>
|
@@ -323,7 +323,7 @@
|
|
323 |
</td>
|
324 |
</tr>
|
325 |
<tr valign = "top">
|
326 |
-
<th scope = "row"><?php _e('Default category',
|
327 |
<td>
|
328 |
<?php
|
329 |
$defaultCat = $default_post_category;
|
@@ -331,20 +331,20 @@
|
|
331 |
wp_dropdown_categories($args);
|
332 |
?>
|
333 |
</tr>
|
334 |
-
<?php echo BuildBooleanSelect(__("Match short category",
|
335 |
|
336 |
<tr valign="top">
|
337 |
<th scope="row">
|
338 |
-
<?php _e('Default tag(s)',
|
339 |
</th>
|
340 |
<td>
|
341 |
<input type='text' name='postie-settings[default_post_tags]' id='postie-settings-default_post_tags' value='<?php echo esc_attr($default_post_tags) ?>' />
|
342 |
-
<p class='description'><?php _e('separated by commas',
|
343 |
</td>
|
344 |
</tr>
|
345 |
|
346 |
<tr>
|
347 |
-
<th scope="row"><?php _e('Default Post Status',
|
348 |
<td>
|
349 |
<select name='postie-settings[post_status]' id='postie-settings-post_status'>
|
350 |
<?php
|
@@ -364,7 +364,7 @@
|
|
364 |
</tr>
|
365 |
|
366 |
<tr>
|
367 |
-
<th scope="row"><?php _e('Default Post Format',
|
368 |
<td>
|
369 |
<select name='postie-settings[post_format]' id='postie-settings-post_format'>
|
370 |
<?php
|
@@ -388,7 +388,7 @@
|
|
388 |
</tr>
|
389 |
|
390 |
<tr>
|
391 |
-
<th scope="row"><?php _e('Default Post Type',
|
392 |
<td>
|
393 |
<select name='postie-settings[post_type]' id='postie-settings-post_type'>
|
394 |
<?php
|
@@ -407,65 +407,65 @@
|
|
407 |
</tr>
|
408 |
|
409 |
<tr>
|
410 |
-
<th scope="row"><?php _e('Default Title',
|
411 |
<td>
|
412 |
<input name='postie-settings[default_title]' type="text" id='postie-settings-default_title' value="<?php echo esc_attr($default_title); ?>" size="50" /><br />
|
413 |
</td>
|
414 |
</tr>
|
415 |
|
416 |
-
<?php echo BuildBooleanSelect(__("Treat Replies As",
|
417 |
-
<?php echo BuildBooleanSelect(__("Forward Rejected Mail",
|
418 |
-
<?php echo BuildBooleanSelect(__("Allow Subject In Mail",
|
419 |
-
<?php echo BuildBooleanSelect(__("Allow HTML In Mail Subject",
|
420 |
-
<?php echo BuildBooleanSelect(__("Allow HTML In Mail Body",
|
421 |
<tr>
|
422 |
-
<th scope="row"><?php _e('Text for Message Start',
|
423 |
<td>
|
424 |
<input name='postie-settings[message_start]' type="text" id='postie-settings-message_start' value="<?php echo esc_attr($message_start); ?>" size="50" /><br />
|
425 |
-
<p class='description'><?php _e('Remove all text from the beginning of the message up to the point where this is found.',
|
426 |
</td>
|
427 |
</tr>
|
428 |
<tr>
|
429 |
-
<th scope="row"><?php _e('Text for Message End',
|
430 |
<td>
|
431 |
<input name='postie-settings[message_end]' type="text" id='postie-settings-message_end' value="<?php echo esc_attr($message_end); ?>" size="50" /><br />
|
432 |
-
<p class='description'><?php _e('Remove all text from the point this is found to the end of the message.',
|
433 |
</td>
|
434 |
</tr>
|
435 |
|
436 |
<?php
|
437 |
-
echo BuildBooleanSelect(__("Filter newlines",
|
438 |
-
echo BuildBooleanSelect(__("Replace newline characters with html line breaks (<br />)",
|
439 |
-
echo BuildBooleanSelect(__("Return rejected mail to sender",
|
440 |
?>
|
441 |
<tr>
|
442 |
<th>
|
443 |
-
<?php _e("Send post confirmation email to",
|
444 |
</th>
|
445 |
<td>
|
446 |
<select name='postie-settings[confirmation_email]' id='postie-settings-confirmation_email'>
|
447 |
-
<option value="sender" <?php echo($confirmation_email == "sender") ? "selected" : "" ?>><?php _e('sender',
|
448 |
-
<option value="admin" <?php echo ($confirmation_email == "admin") ? "selected" : "" ?>><?php _e('administrator',
|
449 |
-
<option value="both" <?php echo ($confirmation_email == "both") ? "selected" : "" ?>><?php _e('sender and administrator',
|
450 |
-
<option value="" <?php echo ($confirmation_email == "") ? "selected" : "" ?>><?php _e('none',
|
451 |
</select>
|
452 |
</td>
|
453 |
</tr>
|
454 |
|
455 |
<?php
|
456 |
-
echo BuildBooleanSelect(__("Automatically convert urls to links",
|
457 |
?>
|
458 |
<tr>
|
459 |
-
<th scope="row"><?php _e('Encoding for pages and feeds',
|
460 |
<td>
|
461 |
<input name='postie-settings[message_encoding]' type="text" id='postie-settings-message_encoding' value="<?php echo esc_attr($message_encoding); ?>" size="10" />
|
462 |
-
<p class='description'><?php _e('The character set for your blog.',
|
463 |
-
<p class='description'>UTF-8 <?php _e("should handle ISO-8859-1 as well",
|
464 |
</td>
|
465 |
</tr>
|
466 |
-
<?php echo BuildBooleanSelect(__("Decode Quoted Printable Data",
|
467 |
-
<?php echo BuildBooleanSelect(__("Drop The Signature From Mail",
|
468 |
-
<?php echo BuildTextArea(__("Signature Patterns",
|
469 |
</table>
|
470 |
</div>
|
471 |
|
@@ -473,23 +473,23 @@
|
|
473 |
<table class='form-table'>
|
474 |
|
475 |
<?php
|
476 |
-
echo BuildBooleanSelect(__("Use First Image as Featured Image",
|
477 |
-
echo BuildBooleanSelect(__("Include Featured Image in Post",
|
478 |
-
echo BuildBooleanSelect(__("Automatically insert image gallery",
|
479 |
-
echo BuildSelect(__("Gallery Link Type",
|
480 |
-
echo BuildBooleanSelect(__("Image Location",
|
481 |
-
echo BuildBooleanSelect(__("Generate Thumbnails",
|
482 |
-
echo BuildBooleanSelect(__("Start Image Count At",
|
483 |
?>
|
484 |
<tr>
|
485 |
-
<th scope="row"><?php _e('Image Place Holder Tag',
|
486 |
<td>
|
487 |
<input name='postie-settings[image_placeholder]' type="text" id='postie-settings-image_placeholder' value="<?php echo esc_attr($image_placeholder); ?>" size="50" /><br />
|
488 |
-
<p class='description'><?php _e("For use in 'plain' messages. The code for inserting an image. I.e. put \"#img1# in your email where you want the first image to show. See also \"Start Image Count At\"",
|
489 |
</td>
|
490 |
</tr>
|
491 |
<tr>
|
492 |
-
<th scope="row"><?php _e('Image Template',
|
493 |
<td>
|
494 |
<input type='hidden' id='postie-settings-selected_imagetemplate' name='postie-settings[selected_imagetemplate]'
|
495 |
value="<?php echo esc_attr($selected_imagetemplate) ?>" />
|
@@ -515,10 +515,10 @@
|
|
515 |
}
|
516 |
?>
|
517 |
</select>
|
518 |
-
<p class='description'><?php _e('Choose a default template, then customize to your liking in the text box',
|
519 |
-
<p class='description'><?php _e('Note that this template are only used if the "Preferred Text Type" setting is set to "plain"',
|
520 |
-
<p class='description'><?php _e('Sizes for thumbnail, medium, and large images can be chosen in the <a href="options-media.php">Media Settings</a>. The samples here use the default sizes, and will not reflect the sizes you have chosen.',
|
521 |
-
<div style="margin-top: 10px; font-weight: bold;"><?php _e('Preview',
|
522 |
<div id='imageTemplatePreview'></div>
|
523 |
<textarea onchange='changeStyle("imageTemplatePreview", "postie-settings-imagetemplate", "imagetemplateselect",
|
524 |
"postie-settings-selected_imagetemplate", "smiling.jpg", true);' cols='70' rows='7' id='postie-settings-imagetemplate' name='postie-settings[imagetemplate]'>
|
@@ -563,10 +563,10 @@
|
|
563 |
<div id="simpleTabs-content-5" class="simpleTabs-content">
|
564 |
<table class='form-table'>
|
565 |
<?php
|
566 |
-
echo BuildBooleanSelect(__("Use shortcode for embedding video (youtube or vimeo)",
|
567 |
?>
|
568 |
<tr>
|
569 |
-
<th scope='row'><?php _e('Video template 1',
|
570 |
<?php $templateDir = get_option('siteurl') . '/' . PLUGINDIR . '/postie/templates'; ?>
|
571 |
<td>
|
572 |
<input type='hidden' id='postie-settings-selected_video1template' name='postie-settings[selected_video1template]'
|
@@ -592,10 +592,10 @@
|
|
592 |
}
|
593 |
?>
|
594 |
</select>
|
595 |
-
<p class='description'><?php _e('Choose a default template, then customize to your liking in the text box',
|
596 |
-
<p class='description'><?php _e('Note that this template are only used if the "Preferred Text Type" setting is set to "plain"',
|
597 |
|
598 |
-
<div style="margin-top: 10px; font-weight: bold;"><?php _e('Preview',
|
599 |
<div id='video1TemplatePreview'></div>
|
600 |
<textarea onchange="changeStyle('video1TemplatePreview', 'postie-settings-video1template',
|
601 |
'video1templateselect', 'postie-settings-selected_video1template', 'hi.mp4', true);" cols='70' rows='7' id='postie-settings-video1template'
|
@@ -603,17 +603,17 @@
|
|
603 |
</td>
|
604 |
</tr>
|
605 |
<tr>
|
606 |
-
<th scope="row"><?php _e('Video 1 file extensions',
|
607 |
<td>
|
608 |
<br/><input name='postie-settings[video1types]' type="text" id='postie-settings-video1types'
|
609 |
value="<?php if ($video1types != '') echo esc_attr($video1types); ?>" size="40" />
|
610 |
<p class='description'>
|
611 |
-
<?php _e('Use video template 1 for files with these extensions (separated by commas)',
|
612 |
</td>
|
613 |
</tr>
|
614 |
<tr><td colspan="2"><hr /></td></tr>
|
615 |
<tr>
|
616 |
-
<th scope='row'><?php _e('Video template 2',
|
617 |
<td>
|
618 |
<input type='hidden' id='postie-settings-selected_video2template' name='postie-settings[selected_video2template]'
|
619 |
value="<?php echo esc_attr($selected_video2template) ?>" />
|
@@ -638,10 +638,10 @@
|
|
638 |
}
|
639 |
?>
|
640 |
</select>
|
641 |
-
<p class='description'><?php _e('Choose a default template, then customize to your liking in the text box',
|
642 |
-
<p class='description'><?php _e('Note that this template are only used if the "Preferred Text Type" setting is set to "plain"',
|
643 |
|
644 |
-
<div style="margin-top: 10px; font-weight: bold;"><?php _e('Preview',
|
645 |
<div id='video2TemplatePreview'></div>
|
646 |
<textarea onchange="changeStyle('video2TemplatePreview', 'postie-settings-video2template',
|
647 |
'video2templateselect', 'postie-settings-selected_video2template', 'hi.flv', true);" cols='70' rows='7' id='postie-settings-video2template'
|
@@ -651,17 +651,17 @@
|
|
651 |
</td>
|
652 |
</tr>
|
653 |
<tr>
|
654 |
-
<th scope="row"><?php _e('Video 2 file extensions',
|
655 |
<td>
|
656 |
<br/><input name='postie-settings[video2types]' type="text" id='postie-settings-video2types'
|
657 |
value="<?php if ($video2types != '') echo esc_attr($video2types); ?>" size="40" />
|
658 |
<p class='description'>
|
659 |
-
<?php _e('Use video template 2 for files with these extensions (separated by commas)',
|
660 |
</td>
|
661 |
</tr>
|
662 |
<tr><td colspan="2"><hr /></td></tr>
|
663 |
<tr>
|
664 |
-
<th scope='row'><?php _e('Audio template',
|
665 |
<td>
|
666 |
<input type='hidden' id='postie-settings-selected_audiotemplate' name='postie-settings[selected_audiotemplate]'
|
667 |
value="<?php echo esc_attr($selected_audiotemplate) ?>" />
|
@@ -687,10 +687,10 @@
|
|
687 |
}
|
688 |
?>
|
689 |
</select>
|
690 |
-
<p class='description'><?php _e('Choose a default template, then customize to your liking in the text box',
|
691 |
-
<p class='description'><?php _e('Note that this template are only used if the "Preferred Text Type" setting is set to "plain"',
|
692 |
|
693 |
-
<div style="margin-top: 10px; font-weight: bold;"><?php _e('Preview',
|
694 |
<div id='audioTemplatePreview'></div>
|
695 |
<textarea onchange="changeStyle('audioTemplatePreview', 'postie-settings-audiotemplate',
|
696 |
'audiotemplateselect', 'postie-settings-selected_audiotemplate', 'funky.mp3', true);" cols='70' rows='7' id='postie-settings-audiotemplate'
|
@@ -698,10 +698,10 @@
|
|
698 |
</td>
|
699 |
</tr>
|
700 |
<tr>
|
701 |
-
<th scope="row"><?php _e('Audio file extensions',
|
702 |
<td>
|
703 |
<input name='postie-settings[audiotypes]' type="text" id='postie-settings-audiotypes' value="<?php echo esc_attr($audiotypes); ?>" size="40" />
|
704 |
-
<p class='description'><?php _e('Use the audio template for files with these extensions (separated by commas)',
|
705 |
</td>
|
706 |
</tr>
|
707 |
</table>
|
@@ -713,11 +713,11 @@
|
|
713 |
|
714 |
<div id="simpleTabs-content-6" class="simpleTabs-content">
|
715 |
<table class='form-table'>
|
716 |
-
<?php echo BuildTextArea(__("Supported MIME Types",
|
717 |
-
<?php echo BuildTextArea(__("Banned File Names",
|
718 |
|
719 |
<tr>
|
720 |
-
<th scope='row'><?php _e('Attachment icon set',
|
721 |
<td>
|
722 |
<input type='hidden' id='postie-settings-icon_set' name='postie-settings[icon_set]'
|
723 |
value="<?php echo esc_attr($icon_set) ?>" />
|
@@ -746,7 +746,7 @@
|
|
746 |
</td>
|
747 |
</tr>
|
748 |
<tr>
|
749 |
-
<th scope='row'><?php _e('Attachment icon size (in pixels)',
|
750 |
<td>
|
751 |
<input type='hidden' id='postie-settings-icon_size' name='postie-settings[icon_size]'
|
752 |
value="<?php echo esc_attr($icon_size) ?>" />
|
@@ -769,7 +769,7 @@
|
|
769 |
</td>
|
770 |
</tr>
|
771 |
<tr>
|
772 |
-
<th scope='row'><?php _e('Attachment template',
|
773 |
</th>
|
774 |
<td>
|
775 |
<input type='hidden' id='postie-settings-selected_generaltemplate' name='postie-settings[selected_generaltemplate]'
|
@@ -795,11 +795,11 @@
|
|
795 |
}
|
796 |
?>
|
797 |
</select>
|
798 |
-
<p class='description'><?php _e('Choose a default template, then customize to your liking in the text box',
|
799 |
-
<p class='description'><?php _e('Note that this template are only used if the "Preferred Text Type" setting is set to "plain"',
|
800 |
|
801 |
<div style="margin-top: 10px; font-weight: bold;">
|
802 |
-
<?php _e('Preview',
|
803 |
</div>
|
804 |
<div id='generalTemplatePreview'></div>
|
805 |
<textarea onchange="changeStyle('generalTemplatePreview', 'postie-settings-generaltemplate', 'generaltemplateselect', 'postie-settings-selected_generaltemplate', 'interesting_document.doc', true);"
|
@@ -808,7 +808,7 @@
|
|
808 |
name='postie-settings[generaltemplate]'><?php echo esc_attr($generaltemplate) ?></textarea>
|
809 |
</td>
|
810 |
</tr>
|
811 |
-
<?php echo BuildBooleanSelect(__("Use custom image field for attachments",
|
812 |
</table>
|
813 |
</div>
|
814 |
<div id="simpleTabs-content-7" class="simpleTabs-content">
|
@@ -838,8 +838,8 @@
|
|
838 |
</form>
|
839 |
<form id="postie-options" name="postie-options" method="post">
|
840 |
<input type="hidden" name="action" value="reset" />
|
841 |
-
<input name="Submit" value="<?php _e("Reset Settings To Defaults",
|
842 |
-
<span> <?php _e('(Your Mail server settings will be retained)',
|
843 |
</form>
|
844 |
</div>
|
845 |
|
1 |
<div class="wrap">
|
2 |
<div style="float:right; width: 220px; border: 1px solid darkgrey; padding:2px;border-radius:10px;margin-left: 10px;" >
|
3 |
+
<p class="" style="text-align:center;font-weight: bolder; margin-top: 0px; margin-bottom: 2px;"><?php _e("Please Donate, Every $ Helps!", POSTIE_SLUG); ?></p>
|
4 |
+
<p style="margin-top: 0;margin-bottom: 2px;"><?php _e("Your generous donation allows me to continue developing Postie for the WordPress community.", POSTIE_SLUG); ?></p>
|
5 |
<form style="" action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
6 |
<input type="hidden" name="cmd" value="_s-xclick">
|
7 |
<input type="hidden" name="hosted_button_id" value="HPK99BJ88V4C2">
|
14 |
<a style='text-decoration:none' href='admin.php?page=postie-settings'>
|
15 |
<?php
|
16 |
echo '<img src="' . plugins_url('images/mail.png', __FILE__) . '" alt="postie" />';
|
17 |
+
_e('Postie Settings', POSTIE_SLUG);
|
18 |
?>
|
19 |
</a>
|
20 |
+
<span class="description">(v<?php _e(POSTIE_VERSION, POSTIE_SLUG); ?>)</span>
|
21 |
</h2>
|
22 |
|
23 |
<?php
|
37 |
exit;
|
38 |
break;
|
39 |
case "runpostie":
|
40 |
+
EchoInfo(__("Checking for mail manually", POSTIE_SLUG));
|
41 |
postie_get_mail();
|
42 |
exit;
|
43 |
break;
|
44 |
case "runpostie-debug":
|
45 |
+
EchoInfo(__("Checking for mail manually with debug output", POSTIE_SLUG));
|
46 |
if (!defined('POSTIE_DEBUG')) {
|
47 |
define('POSTIE_DEBUG', true);
|
48 |
}
|
71 |
}
|
72 |
extract($config);
|
73 |
if (!isset($maxemails)) {
|
74 |
+
EchoInfo(__("New setting: maxemails", POSTIE_SLUG));
|
75 |
$maxemails = 0;
|
76 |
}
|
77 |
if (!isset($category_match)) {
|
82 |
wp_clear_scheduled_hook('check_postie_hook');
|
83 |
}
|
84 |
|
85 |
+
$messages[1] = __("Configuration successfully updated!", POSTIE_SLUG);
|
86 |
+
$messages[2] = __("Error - unable to save configuration", POSTIE_SLUG);
|
87 |
?>
|
88 |
<?php if (isset($_GET['message'])) : ?>
|
89 |
+
<div class="updated"><p><?php _e($messages[$_GET['message']], POSTIE_SLUG); ?></p></div>
|
90 |
<?php endif; ?>
|
91 |
|
92 |
<form name="postie-options" method='post'>
|
93 |
<input type="hidden" name="action" value="runpostie" />
|
94 |
+
<input name="Submit" value="<?php _e("Run Postie", POSTIE_SLUG); ?> »" type="submit" class='button'>
|
95 |
+
<?php _e("(To run the check mail script manually)", POSTIE_SLUG); ?>
|
96 |
</form>
|
97 |
<form name="postie-options" method='post'>
|
98 |
<input type="hidden" name="action" value="runpostie-debug" />
|
99 |
+
<input name="Submit" value="<?php _e("Run Postie (Debug)", POSTIE_SLUG); ?> »" type="submit" class='button'>
|
100 |
+
<?php _e("(To run the check mail script manually with full debug output)", POSTIE_SLUG); ?>
|
101 |
</form>
|
102 |
<form name="postie-options" method="post">
|
103 |
<input type="hidden" name="action" value="test" />
|
104 |
+
<input name="Submit" value="<?php _e("Test Config", POSTIE_SLUG); ?>»" type="submit" class='button'>
|
105 |
+
<?php _e("this will check your configuration options", POSTIE_SLUG); ?>
|
106 |
</form>
|
107 |
|
108 |
<form name="postie-options" method="post" action='options.php' autocomplete="off">
|
115 |
<div id="simpleTabs">
|
116 |
<div class="simpleTabs-nav">
|
117 |
<ul>
|
118 |
+
<li id="simpleTabs-nav-1"><?php _e('Mailserver', POSTIE_SLUG) ?></li>
|
119 |
+
<li id="simpleTabs-nav-2"><?php _e('User', POSTIE_SLUG) ?></li>
|
120 |
+
<li id="simpleTabs-nav-3"><?php _e('Message', POSTIE_SLUG) ?></li>
|
121 |
+
<li id="simpleTabs-nav-4"><?php _e('Image', POSTIE_SLUG) ?></li>
|
122 |
+
<li id="simpleTabs-nav-5"><?php _e('Video and Audio', POSTIE_SLUG) ?></li>
|
123 |
+
<li id="simpleTabs-nav-6"><?php _e('Attachments', POSTIE_SLUG) ?></li>
|
124 |
+
<li id="simpleTabs-nav-7"><?php _e('Support', POSTIE_SLUG) ?></li>
|
125 |
</ul>
|
126 |
</div>
|
127 |
<div id="simpleTabs-content-1" class="simpleTabs-content">
|
128 |
<table class='form-table'>
|
129 |
|
130 |
<tr>
|
131 |
+
<th scope="row"><lable for="postie-settings-input_protocol"><?php _e('Mail Protocol', POSTIE_SLUG) ?></lable></th>
|
132 |
<td>
|
133 |
<select name='postie-settings[input_protocol]' id='postie-settings-input_protocol'>
|
134 |
<option value="pop3" <?php echo (($input_protocol == "pop3") ? " selected='selected' " : "") ?>>POP3</option>
|
144 |
</td>
|
145 |
</tr>
|
146 |
|
147 |
+
<?php echo BuildBooleanSelect(__("Use Transport Layer Security (TLS)", POSTIE_SLUG), 'postie-settings[email_tls]', $email_tls, __("Choose Yes if your server requires TLS", POSTIE_SLUG)); ?>
|
148 |
|
149 |
<tr>
|
150 |
+
<th scope="row"><label for="postie-settings-mail_server_port"><?php _e('Port', POSTIE_SLUG) ?></label></th>
|
151 |
<td valign="top">
|
152 |
<input name='postie-settings[mail_server_port]' style="width: 70px;" type="number" min="0" id='postie-settings-mail_server_port' value="<?php echo esc_attr($mail_server_port); ?>" size="6" />
|
153 |
+
<p class='description'><?php _e("Standard Ports:", POSTIE_SLUG); ?><br />
|
154 |
+
<?php _e("POP3", POSTIE_SLUG); ?> - 110<br />
|
155 |
+
<?php _e("IMAP", POSTIE_SLUG); ?> - 143<br />
|
156 |
+
<?php _e("IMAP-SSL", POSTIE_SLUG); ?>- 993 <br />
|
157 |
+
<?php _e("POP3-SSL", POSTIE_SLUG); ?> - 995 <br />
|
158 |
</p>
|
159 |
</td>
|
160 |
</tr>
|
161 |
<tr valign="top">
|
162 |
+
<th scope="row"><?php _e('Mail Server', POSTIE_SLUG) ?></th>
|
163 |
<td><input name='postie-settings[mail_server]' type="text" id='postie-settings-mail_server' value="<?php echo esc_attr($mail_server); ?>" size="40" />
|
164 |
</td>
|
165 |
</tr>
|
166 |
<tr valign="top">
|
167 |
+
<th scope="row"><?php _e('Mail Userid', POSTIE_SLUG) ?></th>
|
168 |
<td><input name='postie-settings[mail_userid]' type="text" id='postie-settings-mail_userid' autocomplete='off' value="<?php echo esc_attr($mail_userid); ?>" size="40" /></td>
|
169 |
</tr>
|
170 |
<tr valign="top">
|
171 |
+
<th scope="row"><?php _e('Mail Password', POSTIE_SLUG) ?></th>
|
172 |
<td>
|
173 |
<input name='postie-settings[mail_password]' type="password" id='postie-settings-mail_password' autocomplete='off' value="<?php echo esc_attr($mail_password); ?>" size="40" />
|
174 |
</td>
|
175 |
</tr>
|
176 |
<tr>
|
177 |
+
<th scope="row"><?php _e('Postie Time Correction', POSTIE_SLUG) ?></th>
|
178 |
<td><input style="width: 70px;" name='postie-settings[time_offset]' type="number" step="0.5" id='postie-settings-time_offset' size="2" value="<?php echo esc_attr($time_offset); ?>" />
|
179 |
+
<?php _e('hours', POSTIE_SLUG) ?>
|
180 |
+
<p class='description'><?php _e("Should be the same as your normal offset, but this lets you adjust it in cases where that doesn't work.", POSTIE_SLUG); ?></p>
|
181 |
</td>
|
182 |
</tr>
|
183 |
<tr>
|
184 |
<th>
|
185 |
+
<?php _e('Check for mail every', POSTIE_SLUG) ?>:
|
186 |
</th>
|
187 |
<td>
|
188 |
<select name='postie-settings[interval]' id='postie-settings-interval'>
|
190 |
if ($interval == "weekly") {
|
191 |
echo "selected='selected'";
|
192 |
}
|
193 |
+
?>><?php _e('Once weekly', POSTIE_SLUG) ?></option>
|
194 |
<option value="daily"<?php
|
195 |
if ($interval == "daily") {
|
196 |
echo "selected='selected'";
|
197 |
}
|
198 |
+
?>><?php _e('daily', POSTIE_SLUG) ?></option>
|
199 |
<option value="hourly" <?php
|
200 |
if ($interval == "hourly") {
|
201 |
echo "selected='selected'";
|
202 |
}
|
203 |
+
?>><?php _e('hourly', POSTIE_SLUG) ?></option>
|
204 |
<option value="twiceperhour" <?php
|
205 |
if ($interval == "twiceperhour") {
|
206 |
echo "selected='selected'";
|
207 |
}
|
208 |
+
?>><?php _e('twice per hour', POSTIE_SLUG) ?></option>
|
209 |
<option value="tenminutes" <?php
|
210 |
if ($interval == "tenminutes") {
|
211 |
echo "selected='selected'";
|
212 |
}
|
213 |
+
?>><?php _e('every ten minutes', POSTIE_SLUG) ?></option>
|
214 |
<option value="fiveminutes" <?php
|
215 |
if ($interval == "fiveminutes") {
|
216 |
echo "selected='selected'";
|
217 |
}
|
218 |
+
?>><?php _e('every five minutes', POSTIE_SLUG) ?></option>
|
219 |
<option value="manual" <?php
|
220 |
if ($interval == "manual") {
|
221 |
echo "selected='selected'";
|
222 |
}
|
223 |
+
?>><?php _e('check manually', POSTIE_SLUG) ?></option>
|
224 |
</select>
|
225 |
</td>
|
226 |
</tr>
|
227 |
<tr>
|
228 |
<th>
|
229 |
+
<?php _e('Maximum number of emails to process', POSTIE_SLUG); ?>
|
230 |
</th>
|
231 |
<td>
|
232 |
<select name='postie-settings[maxemails]' id='postie-settings-maxemails'>
|
233 |
+
<option value="0" <?php if ($maxemails == '0') echo "selected='selected'" ?>><?php _e('All', POSTIE_SLUG); ?></option>
|
234 |
<option value="1" <?php if ($maxemails == '1') echo "selected='selected'" ?>>1</option>
|
235 |
<option value="2" <?php if ($maxemails == '2') echo "selected='selected'" ?>>2</option>
|
236 |
<option value="5" <?php if ($maxemails == '5') echo "selected='selected'" ?>>5</option>
|
240 |
</select>
|
241 |
</td>
|
242 |
</tr>
|
243 |
+
<?php echo BuildBooleanSelect(__("Delete email after posting", POSTIE_SLUG), 'postie-settings[delete_mail_after_processing]', $delete_mail_after_processing, __("Only set to no for testing purposes", POSTIE_SLUG)); ?>
|
244 |
+
<?php echo BuildTextArea(__("Allowed SMTP servers", POSTIE_SLUG), "postie-settings[smtp]", $smtp, __("Only allow messages which have been sent throught the following SMTP servers. Put each server on a separate line. Leave blank to allow any SMTP server.", POSTIE_SLUG)); ?>
|
245 |
</table>
|
246 |
</div>
|
247 |
|
248 |
<div id="simpleTabs-content-2" class="simpleTabs-content">
|
249 |
<table class='form-table'>
|
250 |
|
251 |
+
<?php echo BuildBooleanSelect(__("Allow Anyone To Post Via Email", POSTIE_SLUG), "postie-settings[turn_authorization_off]", $turn_authorization_off, __("Changing this to yes <b style='color: red'>is not recommended</b> - anything that gets sent in will automatically be posted.", POSTIE_SLUG)); ?>
|
252 |
+
<?php echo BuildBooleanSelect(__("Force User Login", POSTIE_SLUG), "postie-settings[force_user_login]", $force_user_login, __("Changing this to yes will cause Postie to try and login as the 'from' user if they exist. This should be set to 'Yes' if you use custom taxonomies in the subject line.", POSTIE_SLUG)); ?>
|
253 |
<tr>
|
254 |
<th scope="row">
|
255 |
+
<?php _e('Roles That Can Post', POSTIE_SLUG) ?><br />
|
256 |
</th>
|
257 |
<td>
|
258 |
<table class="checkbox-table">
|
280 |
}
|
281 |
}
|
282 |
?>
|
283 |
+
<p class='description'><?php _e("This allows you to grant access to other users to post if they have the proper access level. Administrators can always post.", POSTIE_SLUG); ?></p>
|
284 |
|
285 |
</table>
|
286 |
</td>
|
287 |
</tr>
|
288 |
|
289 |
+
<?php echo BuildTextArea(__("Authorized Addresses", POSTIE_SLUG), "postie-settings[authorized_addresses]", $authorized_addresses, __("Put each email address on a single line. Posts from emails in this list will be treated as if they came from the admin. If you would prefer to have users post under their own name - create a WordPress user with the correct access level.", POSTIE_SLUG)); ?>
|
290 |
<tr>
|
291 |
+
<th scope="row"><?php _e('Default Poster', POSTIE_SLUG) ?></th>
|
292 |
<td>
|
293 |
<select name='postie-settings[admin_username]' id='postie-settings[admin_username]'>
|
294 |
<?php
|
305 |
}
|
306 |
?>
|
307 |
</select>
|
308 |
+
<p class='description'><?php _e("This will be the poster if you allow posting from emails that are not a registered blog user.", POSTIE_SLUG); ?></p>
|
309 |
</td>
|
310 |
</tr>
|
311 |
</table>
|
314 |
<div id = "simpleTabs-content-3" class = "simpleTabs-content">
|
315 |
<table class = 'form-table'>
|
316 |
<tr>
|
317 |
+
<th scope="row"><?php _e('Preferred Text Type', POSTIE_SLUG) ?> </th>
|
318 |
<td>
|
319 |
<select name='postie-settings[prefer_text_type]' id='postie-settings-prefer_text_type'>
|
320 |
<?php printf('<option value="plain" %s>plain</option>', ($prefer_text_type == "plain") ? "selected" : "") ?>
|
323 |
</td>
|
324 |
</tr>
|
325 |
<tr valign = "top">
|
326 |
+
<th scope = "row"><?php _e('Default category', POSTIE_SLUG) ?></th>
|
327 |
<td>
|
328 |
<?php
|
329 |
$defaultCat = $default_post_category;
|
331 |
wp_dropdown_categories($args);
|
332 |
?>
|
333 |
</tr>
|
334 |
+
<?php echo BuildBooleanSelect(__("Match short category", POSTIE_SLUG), "postie-settings[category_match]", $category_match, __("Try to match categories using 'starts with logic' otherwise only do exact matches.<br />Note that custom taxonomies will not be found if this setting is 'No'", POSTIE_SLUG)); ?>
|
335 |
|
336 |
<tr valign="top">
|
337 |
<th scope="row">
|
338 |
+
<?php _e('Default tag(s)', POSTIE_SLUG) ?><br />
|
339 |
</th>
|
340 |
<td>
|
341 |
<input type='text' name='postie-settings[default_post_tags]' id='postie-settings-default_post_tags' value='<?php echo esc_attr($default_post_tags) ?>' />
|
342 |
+
<p class='description'><?php _e('separated by commas', POSTIE_SLUG) ?></p>
|
343 |
</td>
|
344 |
</tr>
|
345 |
|
346 |
<tr>
|
347 |
+
<th scope="row"><?php _e('Default Post Status', POSTIE_SLUG) ?> </th>
|
348 |
<td>
|
349 |
<select name='postie-settings[post_status]' id='postie-settings-post_status'>
|
350 |
<?php
|
364 |
</tr>
|
365 |
|
366 |
<tr>
|
367 |
+
<th scope="row"><?php _e('Default Post Format', POSTIE_SLUG) ?> </th>
|
368 |
<td>
|
369 |
<select name='postie-settings[post_format]' id='postie-settings-post_format'>
|
370 |
<?php
|
388 |
</tr>
|
389 |
|
390 |
<tr>
|
391 |
+
<th scope="row"><?php _e('Default Post Type', POSTIE_SLUG) ?> </th>
|
392 |
<td>
|
393 |
<select name='postie-settings[post_type]' id='postie-settings-post_type'>
|
394 |
<?php
|
407 |
</tr>
|
408 |
|
409 |
<tr>
|
410 |
+
<th scope="row"><?php _e('Default Title', POSTIE_SLUG) ?> </th>
|
411 |
<td>
|
412 |
<input name='postie-settings[default_title]' type="text" id='postie-settings-default_title' value="<?php echo esc_attr($default_title); ?>" size="50" /><br />
|
413 |
</td>
|
414 |
</tr>
|
415 |
|
416 |
+
<?php echo BuildBooleanSelect(__("Treat Replies As", POSTIE_SLUG), "postie-settings[reply_as_comment]", $reply_as_comment, "", array("comments", "new posts")); ?>
|
417 |
+
<?php echo BuildBooleanSelect(__("Forward Rejected Mail", POSTIE_SLUG), "postie-settings[forward_rejected_mail]", $forward_rejected_mail); ?>
|
418 |
+
<?php echo BuildBooleanSelect(__("Allow Subject In Mail", POSTIE_SLUG), "postie-settings[allow_subject_in_mail]", $allow_subject_in_mail, "Enclose the subject between '#' on the very first line. E.g. #this is my subject#"); ?>
|
419 |
+
<?php echo BuildBooleanSelect(__("Allow HTML In Mail Subject", POSTIE_SLUG), "postie-settings[allow_html_in_subject]", $allow_html_in_subject); ?>
|
420 |
+
<?php echo BuildBooleanSelect(__("Allow HTML In Mail Body", POSTIE_SLUG), "postie-settings[allow_html_in_body]", $allow_html_in_body); ?>
|
421 |
<tr>
|
422 |
+
<th scope="row"><?php _e('Text for Message Start', POSTIE_SLUG) ?> </th>
|
423 |
<td>
|
424 |
<input name='postie-settings[message_start]' type="text" id='postie-settings-message_start' value="<?php echo esc_attr($message_start); ?>" size="50" /><br />
|
425 |
+
<p class='description'><?php _e('Remove all text from the beginning of the message up to the point where this is found.', POSTIE_SLUG) ?></p>
|
426 |
</td>
|
427 |
</tr>
|
428 |
<tr>
|
429 |
+
<th scope="row"><?php _e('Text for Message End', POSTIE_SLUG) ?> </th>
|
430 |
<td>
|
431 |
<input name='postie-settings[message_end]' type="text" id='postie-settings-message_end' value="<?php echo esc_attr($message_end); ?>" size="50" /><br />
|
432 |
+
<p class='description'><?php _e('Remove all text from the point this is found to the end of the message.', POSTIE_SLUG) ?></p>
|
433 |
</td>
|
434 |
</tr>
|
435 |
|
436 |
<?php
|
437 |
+
echo BuildBooleanSelect(__("Filter newlines", POSTIE_SLUG), "postie-settings[filternewlines]", $filternewlines, __("Whether to strip newlines from plain text. Set to no if using markdown or textitle syntax", POSTIE_SLUG));
|
438 |
+
echo BuildBooleanSelect(__("Replace newline characters with html line breaks (<br />)", POSTIE_SLUG), "postie-settings[convertnewline]", $convertnewline, __("Filter newlines must be turned on for this option to take effect", POSTIE_SLUG));
|
439 |
+
echo BuildBooleanSelect(__("Return rejected mail to sender", POSTIE_SLUG), "postie-settings[return_to_sender]", $return_to_sender);
|
440 |
?>
|
441 |
<tr>
|
442 |
<th>
|
443 |
+
<?php _e("Send post confirmation email to", POSTIE_SLUG) ?>:
|
444 |
</th>
|
445 |
<td>
|
446 |
<select name='postie-settings[confirmation_email]' id='postie-settings-confirmation_email'>
|
447 |
+
<option value="sender" <?php echo($confirmation_email == "sender") ? "selected" : "" ?>><?php _e('sender', POSTIE_SLUG) ?></option>
|
448 |
+
<option value="admin" <?php echo ($confirmation_email == "admin") ? "selected" : "" ?>><?php _e('administrator', POSTIE_SLUG) ?></option>
|
449 |
+
<option value="both" <?php echo ($confirmation_email == "both") ? "selected" : "" ?>><?php _e('sender and administrator', POSTIE_SLUG) ?></option>
|
450 |
+
<option value="" <?php echo ($confirmation_email == "") ? "selected" : "" ?>><?php _e('none', POSTIE_SLUG) ?></option>
|
451 |
</select>
|
452 |
</td>
|
453 |
</tr>
|
454 |
|
455 |
<?php
|
456 |
+
echo BuildBooleanSelect(__("Automatically convert urls to links", POSTIE_SLUG), "postie-settings[converturls]", $converturls);
|
457 |
?>
|
458 |
<tr>
|
459 |
+
<th scope="row"><?php _e('Encoding for pages and feeds', POSTIE_SLUG) ?> </th>
|
460 |
<td>
|
461 |
<input name='postie-settings[message_encoding]' type="text" id='postie-settings-message_encoding' value="<?php echo esc_attr($message_encoding); ?>" size="10" />
|
462 |
+
<p class='description'><?php _e('The character set for your blog.', POSTIE_SLUG) ?></p>
|
463 |
+
<p class='description'>UTF-8 <?php _e("should handle ISO-8859-1 as well", POSTIE_SLUG); ?></p>
|
464 |
</td>
|
465 |
</tr>
|
466 |
+
<?php echo BuildBooleanSelect(__("Decode Quoted Printable Data", POSTIE_SLUG), "postie-settings[message_dequote]", $message_dequote); ?>
|
467 |
+
<?php echo BuildBooleanSelect(__("Drop The Signature From Mail", POSTIE_SLUG), "postie-settings[drop_signature]", $drop_signature, __("Really only works with 'plain' format.")); ?>
|
468 |
+
<?php echo BuildTextArea(__("Signature Patterns", POSTIE_SLUG), "postie-settings[sig_pattern_list]", $sig_pattern_list, __("Really only works with 'plain' format. Put each pattern on a separate line. Patterns are <a href='http://regex101.com/' target='_blank'>regular expressions</a> and are put inside /^{pattern}$/i", POSTIE_SLUG)); ?>
|
469 |
</table>
|
470 |
</div>
|
471 |
|
473 |
<table class='form-table'>
|
474 |
|
475 |
<?php
|
476 |
+
echo BuildBooleanSelect(__("Use First Image as Featured Image", POSTIE_SLUG), "postie-settings[featured_image]", $featured_image, __("If any images are attached, the first one will be the featured image for the post", POSTIE_SLUG));
|
477 |
+
echo BuildBooleanSelect(__("Include Featured Image in Post", POSTIE_SLUG), "postie-settings[include_featured_image]", $include_featured_image, __("Should the featured image be included in the post", POSTIE_SLUG));
|
478 |
+
echo BuildBooleanSelect(__("Automatically insert image gallery", POSTIE_SLUG), "postie-settings[auto_gallery]", $auto_gallery, __("If any images are attached, they will automatically be inserted as a gallery", POSTIE_SLUG));
|
479 |
+
echo BuildSelect(__("Gallery Link Type", POSTIE_SLUG), "postie-settings[auto_gallery_link]", $auto_gallery_link, array('Default', 'Post', 'File', 'None'), "Select the type of link the gallery should use");
|
480 |
+
echo BuildBooleanSelect(__("Image Location", POSTIE_SLUG), "postie-settings[images_append]", $images_append, __("Location of attachments if using 'plain' format. Before or After content.", POSTIE_SLUG), array('After', 'Before'));
|
481 |
+
echo BuildBooleanSelect(__("Generate Thumbnails", POSTIE_SLUG), "postie-settings[generate_thumbnails]", $generate_thumbnails, __("Some hosts crash during thumbnail generation. Set this to 'No' if you have this issue", POSTIE_SLUG));
|
482 |
+
echo BuildBooleanSelect(__("Start Image Count At", POSTIE_SLUG), "postie-settings[start_image_count_at_zero]", $start_image_count_at_zero, __('For use if using "Image Place Holder Tag" below.', POSTIE_SLUG), array('Start at 0', 'Start at 1'));
|
483 |
?>
|
484 |
<tr>
|
485 |
+
<th scope="row"><?php _e('Image Place Holder Tag', POSTIE_SLUG) ?></th>
|
486 |
<td>
|
487 |
<input name='postie-settings[image_placeholder]' type="text" id='postie-settings-image_placeholder' value="<?php echo esc_attr($image_placeholder); ?>" size="50" /><br />
|
488 |
+
<p class='description'><?php _e("For use in 'plain' messages. The code for inserting an image. I.e. put \"#img1# in your email where you want the first image to show. See also \"Start Image Count At\"", POSTIE_SLUG) ?></p>
|
489 |
</td>
|
490 |
</tr>
|
491 |
<tr>
|
492 |
+
<th scope="row"><?php _e('Image Template', POSTIE_SLUG) ?></th>
|
493 |
<td>
|
494 |
<input type='hidden' id='postie-settings-selected_imagetemplate' name='postie-settings[selected_imagetemplate]'
|
495 |
value="<?php echo esc_attr($selected_imagetemplate) ?>" />
|
515 |
}
|
516 |
?>
|
517 |
</select>
|
518 |
+
<p class='description'><?php _e('Choose a default template, then customize to your liking in the text box', POSTIE_SLUG); ?></p>
|
519 |
+
<p class='description'><?php _e('Note that this template are only used if the "Preferred Text Type" setting is set to "plain"', POSTIE_SLUG); ?></p>
|
520 |
+
<p class='description'><?php _e('Sizes for thumbnail, medium, and large images can be chosen in the <a href="options-media.php">Media Settings</a>. The samples here use the default sizes, and will not reflect the sizes you have chosen.', POSTIE_SLUG); ?></p>
|
521 |
+
<div style="margin-top: 10px; font-weight: bold;"><?php _e('Preview', POSTIE_SLUG); ?></div>
|
522 |
<div id='imageTemplatePreview'></div>
|
523 |
<textarea onchange='changeStyle("imageTemplatePreview", "postie-settings-imagetemplate", "imagetemplateselect",
|
524 |
"postie-settings-selected_imagetemplate", "smiling.jpg", true);' cols='70' rows='7' id='postie-settings-imagetemplate' name='postie-settings[imagetemplate]'>
|
563 |
<div id="simpleTabs-content-5" class="simpleTabs-content">
|
564 |
<table class='form-table'>
|
565 |
<?php
|
566 |
+
echo BuildBooleanSelect(__("Use shortcode for embedding video (youtube or vimeo)", POSTIE_SLUG), "postie-settings[shortcode]", $shortcode, "Only change this value to 'Yes' if you have another plugin that will process the shortcode.");
|
567 |
?>
|
568 |
<tr>
|
569 |
+
<th scope='row'><?php _e('Video template 1', POSTIE_SLUG) ?></th>
|
570 |
<?php $templateDir = get_option('siteurl') . '/' . PLUGINDIR . '/postie/templates'; ?>
|
571 |
<td>
|
572 |
<input type='hidden' id='postie-settings-selected_video1template' name='postie-settings[selected_video1template]'
|
592 |
}
|
593 |
?>
|
594 |
</select>
|
595 |
+
<p class='description'><?php _e('Choose a default template, then customize to your liking in the text box', POSTIE_SLUG) ?></p>
|
596 |
+
<p class='description'><?php _e('Note that this template are only used if the "Preferred Text Type" setting is set to "plain"', POSTIE_SLUG); ?></p>
|
597 |
|
598 |
+
<div style="margin-top: 10px; font-weight: bold;"><?php _e('Preview', POSTIE_SLUG); ?></div>
|
599 |
<div id='video1TemplatePreview'></div>
|
600 |
<textarea onchange="changeStyle('video1TemplatePreview', 'postie-settings-video1template',
|
601 |
'video1templateselect', 'postie-settings-selected_video1template', 'hi.mp4', true);" cols='70' rows='7' id='postie-settings-video1template'
|
603 |
</td>
|
604 |
</tr>
|
605 |
<tr>
|
606 |
+
<th scope="row"><?php _e('Video 1 file extensions', POSTIE_SLUG) ?></th>
|
607 |
<td>
|
608 |
<br/><input name='postie-settings[video1types]' type="text" id='postie-settings-video1types'
|
609 |
value="<?php if ($video1types != '') echo esc_attr($video1types); ?>" size="40" />
|
610 |
<p class='description'>
|
611 |
+
<?php _e('Use video template 1 for files with these extensions (separated by commas)', POSTIE_SLUG) ?></p>
|
612 |
</td>
|
613 |
</tr>
|
614 |
<tr><td colspan="2"><hr /></td></tr>
|
615 |
<tr>
|
616 |
+
<th scope='row'><?php _e('Video template 2', POSTIE_SLUG) ?></th>
|
617 |
<td>
|
618 |
<input type='hidden' id='postie-settings-selected_video2template' name='postie-settings[selected_video2template]'
|
619 |
value="<?php echo esc_attr($selected_video2template) ?>" />
|
638 |
}
|
639 |
?>
|
640 |
</select>
|
641 |
+
<p class='description'><?php _e('Choose a default template, then customize to your liking in the text box', POSTIE_SLUG) ?></p>
|
642 |
+
<p class='description'><?php _e('Note that this template are only used if the "Preferred Text Type" setting is set to "plain"', POSTIE_SLUG); ?></p>
|
643 |
|
644 |
+
<div style="margin-top: 10px; font-weight: bold;"><?php _e('Preview', POSTIE_SLUG); ?></div>
|
645 |
<div id='video2TemplatePreview'></div>
|
646 |
<textarea onchange="changeStyle('video2TemplatePreview', 'postie-settings-video2template',
|
647 |
'video2templateselect', 'postie-settings-selected_video2template', 'hi.flv', true);" cols='70' rows='7' id='postie-settings-video2template'
|
651 |
</td>
|
652 |
</tr>
|
653 |
<tr>
|
654 |
+
<th scope="row"><?php _e('Video 2 file extensions', POSTIE_SLUG) ?></th>
|
655 |
<td>
|
656 |
<br/><input name='postie-settings[video2types]' type="text" id='postie-settings-video2types'
|
657 |
value="<?php if ($video2types != '') echo esc_attr($video2types); ?>" size="40" />
|
658 |
<p class='description'>
|
659 |
+
<?php _e('Use video template 2 for files with these extensions (separated by commas)', POSTIE_SLUG) ?></p>
|
660 |
</td>
|
661 |
</tr>
|
662 |
<tr><td colspan="2"><hr /></td></tr>
|
663 |
<tr>
|
664 |
+
<th scope='row'><?php _e('Audio template', POSTIE_SLUG) ?></th>
|
665 |
<td>
|
666 |
<input type='hidden' id='postie-settings-selected_audiotemplate' name='postie-settings[selected_audiotemplate]'
|
667 |
value="<?php echo esc_attr($selected_audiotemplate) ?>" />
|
687 |
}
|
688 |
?>
|
689 |
</select>
|
690 |
+
<p class='description'><?php _e('Choose a default template, then customize to your liking in the text box', POSTIE_SLUG) ?></p>
|
691 |
+
<p class='description'><?php _e('Note that this template are only used if the "Preferred Text Type" setting is set to "plain"', POSTIE_SLUG); ?></p>
|
692 |
|
693 |
+
<div style="margin-top: 10px; font-weight: bold;"><?php _e('Preview', POSTIE_SLUG); ?></div>
|
694 |
<div id='audioTemplatePreview'></div>
|
695 |
<textarea onchange="changeStyle('audioTemplatePreview', 'postie-settings-audiotemplate',
|
696 |
'audiotemplateselect', 'postie-settings-selected_audiotemplate', 'funky.mp3', true);" cols='70' rows='7' id='postie-settings-audiotemplate'
|
698 |
</td>
|
699 |
</tr>
|
700 |
<tr>
|
701 |
+
<th scope="row"><?php _e('Audio file extensions', POSTIE_SLUG) ?></th>
|
702 |
<td>
|
703 |
<input name='postie-settings[audiotypes]' type="text" id='postie-settings-audiotypes' value="<?php echo esc_attr($audiotypes); ?>" size="40" />
|
704 |
+
<p class='description'><?php _e('Use the audio template for files with these extensions (separated by commas)', POSTIE_SLUG) ?></p>
|
705 |
</td>
|
706 |
</tr>
|
707 |
</table>
|
713 |
|
714 |
<div id="simpleTabs-content-6" class="simpleTabs-content">
|
715 |
<table class='form-table'>
|
716 |
+
<?php echo BuildTextArea(__("Supported MIME Types", POSTIE_SLUG), "postie-settings[supported_file_types]", $supported_file_types, __("Add just the type (not the subtype). Text, Video, Audio, Image and Multipart are always supported. Put each type on a single line", POSTIE_SLUG)); ?>
|
717 |
+
<?php echo BuildTextArea(__("Banned File Names", POSTIE_SLUG), "postie-settings[banned_files_list]", $banned_files_list, __("Put each file name on a single line.Files matching this list will never be posted to your blog. You can use wildcards such as *.xls, or *.* for all files", POSTIE_SLUG)); ?>
|
718 |
|
719 |
<tr>
|
720 |
+
<th scope='row'><?php _e('Attachment icon set', POSTIE_SLUG) ?></th>
|
721 |
<td>
|
722 |
<input type='hidden' id='postie-settings-icon_set' name='postie-settings[icon_set]'
|
723 |
value="<?php echo esc_attr($icon_set) ?>" />
|
746 |
</td>
|
747 |
</tr>
|
748 |
<tr>
|
749 |
+
<th scope='row'><?php _e('Attachment icon size (in pixels)', POSTIE_SLUG) ?></th>
|
750 |
<td>
|
751 |
<input type='hidden' id='postie-settings-icon_size' name='postie-settings[icon_size]'
|
752 |
value="<?php echo esc_attr($icon_size) ?>" />
|
769 |
</td>
|
770 |
</tr>
|
771 |
<tr>
|
772 |
+
<th scope='row'><?php _e('Attachment template', POSTIE_SLUG) ?>:<br />
|
773 |
</th>
|
774 |
<td>
|
775 |
<input type='hidden' id='postie-settings-selected_generaltemplate' name='postie-settings[selected_generaltemplate]'
|
795 |
}
|
796 |
?>
|
797 |
</select>
|
798 |
+
<p class='description'><?php _e('Choose a default template, then customize to your liking in the text box', POSTIE_SLUG) ?></p>
|
799 |
+
<p class='description'><?php _e('Note that this template are only used if the "Preferred Text Type" setting is set to "plain"', POSTIE_SLUG); ?></p>
|
800 |
|
801 |
<div style="margin-top: 10px; font-weight: bold;">
|
802 |
+
<?php _e('Preview', POSTIE_SLUG); ?>
|
803 |
</div>
|
804 |
<div id='generalTemplatePreview'></div>
|
805 |
<textarea onchange="changeStyle('generalTemplatePreview', 'postie-settings-generaltemplate', 'generaltemplateselect', 'postie-settings-selected_generaltemplate', 'interesting_document.doc', true);"
|
808 |
name='postie-settings[generaltemplate]'><?php echo esc_attr($generaltemplate) ?></textarea>
|
809 |
</td>
|
810 |
</tr>
|
811 |
+
<?php echo BuildBooleanSelect(__("Use custom image field for attachments", POSTIE_SLUG), "postie-settings[custom_image_field]", $custom_image_field, __("When set to 'Yes' no attachments will appear in the post (including images, video & sound files). Instead the url to the attachment will be put into a custom field named 'image'. Your theme will need logic to display these attachments", POSTIE_SLUG)); ?>
|
812 |
</table>
|
813 |
</div>
|
814 |
<div id="simpleTabs-content-7" class="simpleTabs-content">
|
838 |
</form>
|
839 |
<form id="postie-options" name="postie-options" method="post">
|
840 |
<input type="hidden" name="action" value="reset" />
|
841 |
+
<input name="Submit" value="<?php _e("Reset Settings To Defaults", POSTIE_SLUG) ?>" type="submit" class='button'>
|
842 |
+
<span> <?php _e('(Your Mail server settings will be retained)', POSTIE_SLUG) ?></span>
|
843 |
</form>
|
844 |
</div>
|
845 |
|
docs/Changes.txt
CHANGED
@@ -27,6 +27,17 @@ All script, style and body tags are stripped from html emails.
|
|
27 |
Attachments are now processed in the order they were attached.
|
28 |
|
29 |
== CHANGELOG ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
= 1.7.6 (2015-08-13) =
|
31 |
* Added setting to control whether the featured image is included in the post or not.
|
32 |
* Added 2 new filters, postie_comment_before and postie_comment_after
|
27 |
Attachments are now processed in the order they were attached.
|
28 |
|
29 |
== CHANGELOG ==
|
30 |
+
= 1.7.8 (2015-09-08) =
|
31 |
+
* Remove mbstring admin message. Added fallback if mbstring is not installed
|
32 |
+
* More explanation for signature regex
|
33 |
+
* Add 1 minute schedule to supplement new external cron recommendation
|
34 |
+
* Updates to support upcoming Language Packs feature for plugins
|
35 |
+
* Moved important warning to admin notices
|
36 |
+
* New filter postie_category_default
|
37 |
+
|
38 |
+
= 1.7.7 (2015-08-24) =
|
39 |
+
* Fixed bug where "To" and "Reply-To" emails were not parsed correctly for postie_filter_email2 filter
|
40 |
+
|
41 |
= 1.7.6 (2015-08-13) =
|
42 |
* Added setting to control whether the featured image is included in the post or not.
|
43 |
* Added 2 new filters, postie_comment_before and postie_comment_after
|
docs/Postie.txt
CHANGED
@@ -5,10 +5,12 @@ Author URI: http://allens-home.com/
|
|
5 |
Plugin URI: http://PostiePlugin.com/
|
6 |
Tags: e-mail, email, post-by-email
|
7 |
Requires at least: 3.3.0
|
8 |
-
Tested up to: 4.
|
9 |
-
Stable tag: 1.7.
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
|
|
|
|
12 |
|
13 |
Postie allows you to create posts via email, including many advanced features not found in WordPress's default Post by Email feature.
|
14 |
|
5 |
Plugin URI: http://PostiePlugin.com/
|
6 |
Tags: e-mail, email, post-by-email
|
7 |
Requires at least: 3.3.0
|
8 |
+
Tested up to: 4.3
|
9 |
+
Stable tag: 1.7.8
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
+
Text Domain: postie
|
13 |
+
Domain Path: /languages
|
14 |
|
15 |
Postie allows you to create posts via email, including many advanced features not found in WordPress's default Post by Email feature.
|
16 |
|
languages/makepot.cmd
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
php.exe ..\util\wp-i18n\makepot.php wp-plugin .. postie.pot
|
|
postie-functions.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
$Id: postie-functions.php
|
4 |
*/
|
5 |
|
6 |
//to turn on debug output add the following line to wp-config.php
|
@@ -28,28 +28,36 @@ if (!function_exists('boolval')) {
|
|
28 |
}
|
29 |
|
30 |
if (!function_exists('mb_str_replace')) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
-
|
33 |
-
|
34 |
-
// Normalize $search and $replace so they are both arrays of the same length
|
35 |
-
$searches = is_array($search) ? array_values($search) : array($search);
|
36 |
-
$replacements = array_pad(is_array($replace) ? array_values($replace) : array($replace), count($searches), '');
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
}
|
43 |
-
} else {
|
44 |
-
// Call mb_str_replace for each subject in array, recursively
|
45 |
-
foreach ($subject as $key => $value) {
|
46 |
-
$subject[$key] = mb_str_replace($search, $replace, $value, $count);
|
47 |
-
}
|
48 |
}
|
49 |
|
50 |
-
return $subject;
|
51 |
}
|
52 |
-
|
53 |
}
|
54 |
|
55 |
function postie_environment() {
|
@@ -61,16 +69,7 @@ function postie_environment() {
|
|
61 |
DebugEcho("Time: " . date('Y-m-d H:i:s', time()) . " GMT");
|
62 |
DebugEcho("Error log: " . ini_get('error_log'));
|
63 |
DebugEcho("TMP dir: " . get_temp_dir());
|
64 |
-
|
65 |
-
if (isMarkdownInstalled()) {
|
66 |
-
EchoInfo("You currently have the Markdown plugin installed. It will cause problems if you send in HTML email. Please turn it off if you intend to send email using HTML.");
|
67 |
-
}
|
68 |
-
|
69 |
-
if (!isPostieInCorrectDirectory()) {
|
70 |
-
EchoInfo("Warning! Postie expects to be in its own directory named postie.");
|
71 |
-
} else {
|
72 |
-
DebugEcho("Postie is in " . plugin_dir_path(__FILE__));
|
73 |
-
}
|
74 |
|
75 |
if (defined('ALTERNATE_WP_CRON') && ALTERNATE_WP_CRON) {
|
76 |
DebugEcho("Alternate cron is enabled");
|
@@ -86,24 +85,6 @@ function postie_environment() {
|
|
86 |
if (defined('WP_CRON_LOCK_TIMEOUT') && WP_CRON_LOCK_TIMEOUT === true) {
|
87 |
DebugEcho("Cron lock timeout is:" . WP_CRON_LOCK_TIMEOUT);
|
88 |
}
|
89 |
-
|
90 |
-
if (HasIconvInstalled()) {
|
91 |
-
DebugEcho("iconv: installed");
|
92 |
-
} else {
|
93 |
-
EchoInfo("Warning! Postie requires that iconv be enabled.");
|
94 |
-
}
|
95 |
-
|
96 |
-
if (function_exists('imap_mime_header_decode')) {
|
97 |
-
DebugEcho("imap: installed");
|
98 |
-
} else {
|
99 |
-
DebugEcho("Warning! Postie requires that imap be enabled if you are using IMAP, IMAP-SSL or POP3-SSL.");
|
100 |
-
}
|
101 |
-
|
102 |
-
if (HasMbStringInstalled()) {
|
103 |
-
DebugEcho("mbstring: installed");
|
104 |
-
} else {
|
105 |
-
EchoInfo("Warning! Postie requires that mbstring be enabled.");
|
106 |
-
}
|
107 |
}
|
108 |
|
109 |
function postie_disable_revisions($restore = false) {
|
@@ -294,7 +275,11 @@ function CreatePost($poster, $mimeDecodedEmail, $post_id, &$is_reply, $config, $
|
|
294 |
DebugEcho("post type: $content");
|
295 |
}
|
296 |
|
297 |
-
$
|
|
|
|
|
|
|
|
|
298 |
if ($fulldebug) {
|
299 |
DebugEcho("post category: $content");
|
300 |
}
|
@@ -1390,12 +1375,12 @@ function ValidatePoster(&$mimeDecodedEmail, $config) {
|
|
1390 |
|
1391 |
$toEmail = '';
|
1392 |
if (isset($mimeDecodedEmail->headers["to"])) {
|
1393 |
-
$toEmail = $mimeDecodedEmail->headers["to"];
|
1394 |
}
|
1395 |
|
1396 |
$replytoEmail = '';
|
1397 |
if (isset($mimeDecodedEmail->headers["reply-to"])) {
|
1398 |
-
$replytoEmail = $mimeDecodedEmail->headers["reply-to"];
|
1399 |
}
|
1400 |
|
1401 |
$from = apply_filters("postie_filter_email2", $from, $toEmail, $replytoEmail);
|
@@ -1828,7 +1813,7 @@ function postie_media_handle_upload($part, $post_id, $poster, $generate_thubnail
|
|
1828 |
$post_data = array();
|
1829 |
$overrides = array('test_form' => false);
|
1830 |
|
1831 |
-
$tmpFile = tempnam(get_temp_dir(),
|
1832 |
if ($tmpFile !== false) {
|
1833 |
$fp = fopen($tmpFile, 'w');
|
1834 |
if ($fp) {
|
@@ -1991,13 +1976,13 @@ function postie_handle_upload(&$file, $overrides = false, $time = null, $mimetyp
|
|
1991 |
|
1992 |
// Courtesy of php.net, the strings that describe the error indicated in $_FILES[{form field}]['error'].
|
1993 |
$upload_error_strings = array(false,
|
1994 |
-
__("The uploaded file exceeds the <code>upload_max_filesize</code> directive in <code>php.ini</code>."),
|
1995 |
-
__("The uploaded file exceeds the <em>MAX_FILE_SIZE</em> directive that was specified in the HTML form."),
|
1996 |
-
__("The uploaded file was only partially uploaded."),
|
1997 |
-
__("No file was uploaded."),
|
1998 |
'',
|
1999 |
-
__("Missing a temporary folder."),
|
2000 |
-
__("Failed to write file to disk."));
|
2001 |
|
2002 |
// Install user overrides. Did we mention that this voids your warranty?
|
2003 |
if (is_array($overrides)) {
|
@@ -2009,11 +1994,11 @@ function postie_handle_upload(&$file, $overrides = false, $time = null, $mimetyp
|
|
2009 |
}
|
2010 |
// A non-empty file will pass this test.
|
2011 |
if (!($file['size'] > 0 )) {
|
2012 |
-
return $upload_error_handler($file, __('File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini.'));
|
2013 |
}
|
2014 |
// A properly uploaded file will pass this test. There should be no reason to override this one.
|
2015 |
if (!file_exists($file['tmp_name'])) {
|
2016 |
-
return $upload_error_handler($file, __('Specified file failed upload test.'));
|
2017 |
}
|
2018 |
|
2019 |
$mimetype = $file['type'];
|
@@ -2031,7 +2016,7 @@ function postie_handle_upload(&$file, $overrides = false, $time = null, $mimetyp
|
|
2031 |
|
2032 |
if ((empty($mimetype) && empty($ext)) && !current_user_can('unfiltered_upload')) {
|
2033 |
DebugEcho("postie_handle_upload: no type/ext & user restricted");
|
2034 |
-
return $upload_error_handler($file, __('File type does not meet security guidelines. Try another.'));
|
2035 |
}
|
2036 |
|
2037 |
// A writable uploads dir will pass this test. Again, there's no point overriding this one.
|
@@ -2054,7 +2039,7 @@ function postie_handle_upload(&$file, $overrides = false, $time = null, $mimetyp
|
|
2054 |
DebugEcho("new file: $new_file");
|
2055 |
//DebugDump($file);
|
2056 |
//DebugDump($uploads);
|
2057 |
-
return $upload_error_handler($file, sprintf(__('The uploaded file could not be moved to %s.'), $uploads['path']));
|
2058 |
} else {
|
2059 |
DebugEcho("upload: rename to $new_file succeeded");
|
2060 |
}
|
@@ -2721,7 +2706,7 @@ function tag_Excerpt(&$content, $config) {
|
|
2721 |
* This function determines the categories ids for the post
|
2722 |
* @return array
|
2723 |
*/
|
2724 |
-
function tag_Categories(&$subject, $
|
2725 |
$original_subject = $subject;
|
2726 |
$found = false;
|
2727 |
$post_categories = array();
|
@@ -2779,7 +2764,7 @@ function tag_Categories(&$subject, $defaultCategory, $category_match, $post_id)
|
|
2779 |
}
|
2780 |
}
|
2781 |
if (!$found) {
|
2782 |
-
$post_categories[] = $
|
2783 |
$subject = $original_subject;
|
2784 |
}
|
2785 |
$subject = trim($subject);
|
@@ -2864,7 +2849,7 @@ function BuildSelect($label, $id, $current_value, $options, $recommendation = NU
|
|
2864 |
|
2865 |
$html.="</th><td><select name='$id' id='$id'>";
|
2866 |
foreach ($options as $value) {
|
2867 |
-
$html.="<option value='$value' " . ($value == $current_value ? "selected='selected'" : "") . ">" . __($value,
|
2868 |
}
|
2869 |
$html.='</select>';
|
2870 |
if (!empty($recommendation)) {
|
@@ -2894,8 +2879,8 @@ function BuildBooleanSelect($label, $id, $current_value, $recommendation = NULL,
|
|
2894 |
|
2895 |
$html.="</th>
|
2896 |
<td><select name='$id' id='$id'>
|
2897 |
-
<option value='1'>" . __($options[0],
|
2898 |
-
<option value='0' " . (!$current_value ? "selected='selected'" : "") . ">" . __($options[1],
|
2899 |
</select>';
|
2900 |
if (!empty($recommendation)) {
|
2901 |
$html.='<p class = "description">' . $recommendation . '</p>';
|
@@ -3358,18 +3343,6 @@ function HasFunctions($function_list, $display = true) {
|
|
3358 |
return true;
|
3359 |
}
|
3360 |
|
3361 |
-
/**
|
3362 |
-
* This function tests to see if postie is its own directory
|
3363 |
-
*/
|
3364 |
-
function isPostieInCorrectDirectory() {
|
3365 |
-
$dir_parts = explode(DIRECTORY_SEPARATOR, dirname(__FILE__));
|
3366 |
-
$last_dir = array_pop($dir_parts);
|
3367 |
-
if ($last_dir != "postie") {
|
3368 |
-
return false;
|
3369 |
-
}
|
3370 |
-
return true;
|
3371 |
-
}
|
3372 |
-
|
3373 |
/**
|
3374 |
* This function looks for markdown which causes problems with postie
|
3375 |
*/
|
@@ -3656,10 +3629,10 @@ function postie_get_mail() {
|
|
3656 |
$emails = FetchMail($config['mail_server'], $config['mail_server_port'], $config['mail_userid'], $config['mail_password'], $config['input_protocol'], $config['time_offset'], $test_email, $config['delete_mail_after_processing'], $config['maxemails'], $config['email_tls']);
|
3657 |
$message = 'Done.';
|
3658 |
|
3659 |
-
EchoInfo(sprintf(__("There are %d messages to process",
|
3660 |
|
3661 |
if (function_exists('memory_get_usage')) {
|
3662 |
-
DebugEcho(__("memory at start of email processing:") . memory_get_usage());
|
3663 |
}
|
3664 |
|
3665 |
DebugDump($config);
|
@@ -3671,11 +3644,11 @@ function postie_get_mail() {
|
|
3671 |
DebugEcho("$message_number: ------------------------------------");
|
3672 |
//sanity check to see if there is any info in the message
|
3673 |
if ($email == NULL) {
|
3674 |
-
$message = __('Dang, message is empty!',
|
3675 |
EchoInfo("$message_number: $message");
|
3676 |
continue;
|
3677 |
} else if ($email == 'already read') {
|
3678 |
-
$message = __("Message is already marked 'read'.",
|
3679 |
EchoInfo("$message_number: $message");
|
3680 |
continue;
|
3681 |
}
|
1 |
<?php
|
2 |
/*
|
3 |
+
$Id: postie-functions.php 1240939 2015-09-08 20:01:51Z WayneAllen $
|
4 |
*/
|
5 |
|
6 |
//to turn on debug output add the following line to wp-config.php
|
28 |
}
|
29 |
|
30 |
if (!function_exists('mb_str_replace')) {
|
31 |
+
if (function_exists('mb_split')) {
|
32 |
+
|
33 |
+
function mb_str_replace($search, $replace, $subject, &$count = 0) {
|
34 |
+
if (!is_array($subject)) {
|
35 |
+
// Normalize $search and $replace so they are both arrays of the same length
|
36 |
+
$searches = is_array($search) ? array_values($search) : array($search);
|
37 |
+
$replacements = array_pad(is_array($replace) ? array_values($replace) : array($replace), count($searches), '');
|
38 |
+
|
39 |
+
foreach ($searches as $key => $search) {
|
40 |
+
$parts = mb_split(preg_quote($search), $subject);
|
41 |
+
$count += count($parts) - 1;
|
42 |
+
$subject = implode($replacements[$key], $parts);
|
43 |
+
}
|
44 |
+
} else {
|
45 |
+
// Call mb_str_replace for each subject in array, recursively
|
46 |
+
foreach ($subject as $key => $value) {
|
47 |
+
$subject[$key] = mb_str_replace($search, $replace, $value, $count);
|
48 |
+
}
|
49 |
+
}
|
50 |
|
51 |
+
return $subject;
|
52 |
+
}
|
|
|
|
|
|
|
53 |
|
54 |
+
} else {
|
55 |
+
|
56 |
+
function mb_str_replace($search, $replace, $subject, &$count = null) {
|
57 |
+
return str_replace($search, $replace, $subject, $count);
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
59 |
|
|
|
60 |
}
|
|
|
61 |
}
|
62 |
|
63 |
function postie_environment() {
|
69 |
DebugEcho("Time: " . date('Y-m-d H:i:s', time()) . " GMT");
|
70 |
DebugEcho("Error log: " . ini_get('error_log'));
|
71 |
DebugEcho("TMP dir: " . get_temp_dir());
|
72 |
+
DebugEcho("Postie is in " . plugin_dir_path(__FILE__));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
|
74 |
if (defined('ALTERNATE_WP_CRON') && ALTERNATE_WP_CRON) {
|
75 |
DebugEcho("Alternate cron is enabled");
|
85 |
if (defined('WP_CRON_LOCK_TIMEOUT') && WP_CRON_LOCK_TIMEOUT === true) {
|
86 |
DebugEcho("Cron lock timeout is:" . WP_CRON_LOCK_TIMEOUT);
|
87 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
89 |
|
90 |
function postie_disable_revisions($restore = false) {
|
275 |
DebugEcho("post type: $content");
|
276 |
}
|
277 |
|
278 |
+
$default_categoryid = $config['default_post_category'];
|
279 |
+
DebugEcho("pre category: $default_categoryid");
|
280 |
+
$default_categoryid = apply_filters('postie_category_default', $default_categoryid);
|
281 |
+
DebugEcho("post postie_category_default $default_categoryid");
|
282 |
+
$post_categories = tag_Categories($subject, $default_categoryid, $config['category_match'], $post_id);
|
283 |
if ($fulldebug) {
|
284 |
DebugEcho("post category: $content");
|
285 |
}
|
1375 |
|
1376 |
$toEmail = '';
|
1377 |
if (isset($mimeDecodedEmail->headers["to"])) {
|
1378 |
+
$toEmail = RemoveExtraCharactersInEmailAddress(trim($mimeDecodedEmail->headers["to"]));
|
1379 |
}
|
1380 |
|
1381 |
$replytoEmail = '';
|
1382 |
if (isset($mimeDecodedEmail->headers["reply-to"])) {
|
1383 |
+
$replytoEmail = RemoveExtraCharactersInEmailAddress(trim($mimeDecodedEmail->headers["reply-to"]));
|
1384 |
}
|
1385 |
|
1386 |
$from = apply_filters("postie_filter_email2", $from, $toEmail, $replytoEmail);
|
1813 |
$post_data = array();
|
1814 |
$overrides = array('test_form' => false);
|
1815 |
|
1816 |
+
$tmpFile = tempnam(get_temp_dir(), POSTIE_SLUG);
|
1817 |
if ($tmpFile !== false) {
|
1818 |
$fp = fopen($tmpFile, 'w');
|
1819 |
if ($fp) {
|
1976 |
|
1977 |
// Courtesy of php.net, the strings that describe the error indicated in $_FILES[{form field}]['error'].
|
1978 |
$upload_error_strings = array(false,
|
1979 |
+
__("The uploaded file exceeds the <code>upload_max_filesize</code> directive in <code>php.ini</code>.", POSTIE_SLUG),
|
1980 |
+
__("The uploaded file exceeds the <em>MAX_FILE_SIZE</em> directive that was specified in the HTML form.", POSTIE_SLUG),
|
1981 |
+
__("The uploaded file was only partially uploaded.", POSTIE_SLUG),
|
1982 |
+
__("No file was uploaded.", POSTIE_SLUG),
|
1983 |
'',
|
1984 |
+
__("Missing a temporary folder.", POSTIE_SLUG),
|
1985 |
+
__("Failed to write file to disk.", POSTIE_SLUG));
|
1986 |
|
1987 |
// Install user overrides. Did we mention that this voids your warranty?
|
1988 |
if (is_array($overrides)) {
|
1994 |
}
|
1995 |
// A non-empty file will pass this test.
|
1996 |
if (!($file['size'] > 0 )) {
|
1997 |
+
return $upload_error_handler($file, __('File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini.', POSTIE_SLUG));
|
1998 |
}
|
1999 |
// A properly uploaded file will pass this test. There should be no reason to override this one.
|
2000 |
if (!file_exists($file['tmp_name'])) {
|
2001 |
+
return $upload_error_handler($file, __('Specified file failed upload test.', POSTIE_SLUG));
|
2002 |
}
|
2003 |
|
2004 |
$mimetype = $file['type'];
|
2016 |
|
2017 |
if ((empty($mimetype) && empty($ext)) && !current_user_can('unfiltered_upload')) {
|
2018 |
DebugEcho("postie_handle_upload: no type/ext & user restricted");
|
2019 |
+
return $upload_error_handler($file, __('File type does not meet security guidelines. Try another.', POSTIE_SLUG));
|
2020 |
}
|
2021 |
|
2022 |
// A writable uploads dir will pass this test. Again, there's no point overriding this one.
|
2039 |
DebugEcho("new file: $new_file");
|
2040 |
//DebugDump($file);
|
2041 |
//DebugDump($uploads);
|
2042 |
+
return $upload_error_handler($file, sprintf(__('The uploaded file could not be moved to %s.', POSTIE_SLUG), $uploads['path']));
|
2043 |
} else {
|
2044 |
DebugEcho("upload: rename to $new_file succeeded");
|
2045 |
}
|
2706 |
* This function determines the categories ids for the post
|
2707 |
* @return array
|
2708 |
*/
|
2709 |
+
function tag_Categories(&$subject, $defaultCategoryId, $category_match, $post_id) {
|
2710 |
$original_subject = $subject;
|
2711 |
$found = false;
|
2712 |
$post_categories = array();
|
2764 |
}
|
2765 |
}
|
2766 |
if (!$found) {
|
2767 |
+
$post_categories[] = $defaultCategoryId;
|
2768 |
$subject = $original_subject;
|
2769 |
}
|
2770 |
$subject = trim($subject);
|
2849 |
|
2850 |
$html.="</th><td><select name='$id' id='$id'>";
|
2851 |
foreach ($options as $value) {
|
2852 |
+
$html.="<option value='$value' " . ($value == $current_value ? "selected='selected'" : "") . ">" . __($value, POSTIE_SLUG) . '</option>';
|
2853 |
}
|
2854 |
$html.='</select>';
|
2855 |
if (!empty($recommendation)) {
|
2879 |
|
2880 |
$html.="</th>
|
2881 |
<td><select name='$id' id='$id'>
|
2882 |
+
<option value='1'>" . __($options[0], POSTIE_SLUG) . "</option>
|
2883 |
+
<option value='0' " . (!$current_value ? "selected='selected'" : "") . ">" . __($options[1], POSTIE_SLUG) . '</option>
|
2884 |
</select>';
|
2885 |
if (!empty($recommendation)) {
|
2886 |
$html.='<p class = "description">' . $recommendation . '</p>';
|
3343 |
return true;
|
3344 |
}
|
3345 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3346 |
/**
|
3347 |
* This function looks for markdown which causes problems with postie
|
3348 |
*/
|
3629 |
$emails = FetchMail($config['mail_server'], $config['mail_server_port'], $config['mail_userid'], $config['mail_password'], $config['input_protocol'], $config['time_offset'], $test_email, $config['delete_mail_after_processing'], $config['maxemails'], $config['email_tls']);
|
3630 |
$message = 'Done.';
|
3631 |
|
3632 |
+
EchoInfo(sprintf(__("There are %d messages to process", POSTIE_SLUG), count($emails)));
|
3633 |
|
3634 |
if (function_exists('memory_get_usage')) {
|
3635 |
+
DebugEcho(__("memory at start of email processing:", POSTIE_SLUG) . memory_get_usage());
|
3636 |
}
|
3637 |
|
3638 |
DebugDump($config);
|
3644 |
DebugEcho("$message_number: ------------------------------------");
|
3645 |
//sanity check to see if there is any info in the message
|
3646 |
if ($email == NULL) {
|
3647 |
+
$message = __('Dang, message is empty!', POSTIE_SLUG);
|
3648 |
EchoInfo("$message_number: $message");
|
3649 |
continue;
|
3650 |
} else if ($email == 'already read') {
|
3651 |
+
$message = __("Message is already marked 'read'.", POSTIE_SLUG);
|
3652 |
EchoInfo("$message_number: $message");
|
3653 |
continue;
|
3654 |
}
|
postie.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Plugin Name: Postie
|
5 |
Plugin URI: http://PostiePlugin.com/
|
6 |
Description: Create posts via email. Signifigantly upgrades the Post by Email features of Word Press.
|
7 |
-
Version: 1.7.
|
8 |
Author: Wayne Allen
|
9 |
Author URI: http://PostiePlugin.com/
|
10 |
License: GPL2
|
@@ -27,13 +27,14 @@
|
|
27 |
*/
|
28 |
|
29 |
/*
|
30 |
-
$Id: postie.php
|
31 |
*/
|
32 |
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "postie-functions.php");
|
33 |
|
34 |
-
define('POSTIE_VERSION', '1.7.
|
35 |
define("POSTIE_ROOT", dirname(__FILE__));
|
36 |
define("POSTIE_URL", WP_PLUGIN_URL . '/' . basename(dirname(__FILE__)));
|
|
|
37 |
|
38 |
//register the hooks early in the page in case some method needs the result of one of them (i.e. cron_schedules)
|
39 |
add_action('init', 'postie_disable_kses_content', 20);
|
@@ -65,7 +66,7 @@ if (is_admin()) {
|
|
65 |
|
66 |
function postie_load_domain() {
|
67 |
$plugin_dir = WP_PLUGIN_DIR . '/' . basename(dirname(__FILE__));
|
68 |
-
load_plugin_textdomain(
|
69 |
}
|
70 |
|
71 |
add_action('init', 'postie_load_domain');
|
@@ -140,7 +141,7 @@ function postie_loadjs_options_page() {
|
|
140 |
|
141 |
function postie_admin_page() {
|
142 |
if (!current_user_can('manage_options')) {
|
143 |
-
wp_die(__('You do not have sufficient permissions to access this page.'));
|
144 |
}
|
145 |
include 'config_form.php';
|
146 |
}
|
@@ -201,8 +202,8 @@ function postie_warnings() {
|
|
201 |
) && !isset($_POST['submit'])) {
|
202 |
|
203 |
function postie_enter_info() {
|
204 |
-
echo "<div id='postie-info-warning' class='updated fade'><p><strong>" . __('Postie is almost ready.',
|
205 |
-
. sprintf(__('You must <a href="%1$s">enter your email settings</a> for it to work.',
|
206 |
. "</p></div> ";
|
207 |
}
|
208 |
|
@@ -214,7 +215,7 @@ function postie_warnings() {
|
|
214 |
|
215 |
function postie_imap_warning() {
|
216 |
echo "<div id='postie-imap-warning' class='error'><p><strong>";
|
217 |
-
echo __('Warning: the IMAP php extension is not installed. Postie can not use IMAP, IMAP-SSL or POP-SSL without this extension.',
|
218 |
echo "</strong></p></div>";
|
219 |
}
|
220 |
|
@@ -224,22 +225,33 @@ function postie_warnings() {
|
|
224 |
|
225 |
function postie_tls_warning() {
|
226 |
echo "<div id='postie-lst-warning' class='error'><p><strong>";
|
227 |
-
echo __('Warning: The POP3 connector does not support TLS.',
|
228 |
echo "</strong></p></div>";
|
229 |
}
|
230 |
|
231 |
add_action('admin_notices', 'postie_tls_warning');
|
232 |
}
|
233 |
|
234 |
-
if (
|
235 |
|
236 |
-
function
|
237 |
-
echo "<div id='postie-
|
238 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
echo "</strong></p></div>";
|
240 |
}
|
241 |
|
242 |
-
add_action('admin_notices', '
|
243 |
}
|
244 |
|
245 |
$userdata = WP_User::get_data_by('login', $config['admin_username']);
|
@@ -247,7 +259,7 @@ function postie_warnings() {
|
|
247 |
|
248 |
function postie_adminuser_warning() {
|
249 |
echo "<div id='postie-mbstring-warning' class='error'><p><strong>";
|
250 |
-
echo __('Warning: the Admin username is not a valid WordPress login. Postie may reject emails if this is not corrected.',
|
251 |
echo "</strong></p></div>";
|
252 |
}
|
253 |
|
@@ -315,10 +327,11 @@ function postie_decron() {
|
|
315 |
function postie_more_reccurences($schedules) {
|
316 |
//Do not echo output in filters, it seems to break some installs
|
317 |
//error_log("postie_more_reccurences: setting cron schedules");
|
318 |
-
$schedules['weekly'] = array('interval' => (60 * 60 * 24 * 7), 'display' => __('Once Weekly'));
|
319 |
-
$schedules['twiceperhour'] = array('interval' => 60 * 30, 'display' => __('Twice per hour'));
|
320 |
-
$schedules['tenminutes'] = array('interval' => 60 * 10, 'display' => __('Every 10 minutes'));
|
321 |
-
$schedules['fiveminutes'] = array('interval' => 60 * 5, 'display' => __('Every 5 minutes'));
|
|
|
322 |
|
323 |
return $schedules;
|
324 |
}
|
4 |
Plugin Name: Postie
|
5 |
Plugin URI: http://PostiePlugin.com/
|
6 |
Description: Create posts via email. Signifigantly upgrades the Post by Email features of Word Press.
|
7 |
+
Version: 1.7.8
|
8 |
Author: Wayne Allen
|
9 |
Author URI: http://PostiePlugin.com/
|
10 |
License: GPL2
|
27 |
*/
|
28 |
|
29 |
/*
|
30 |
+
$Id: postie.php 1240940 2015-09-08 20:04:57Z WayneAllen $
|
31 |
*/
|
32 |
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "postie-functions.php");
|
33 |
|
34 |
+
define('POSTIE_VERSION', '1.7.8');
|
35 |
define("POSTIE_ROOT", dirname(__FILE__));
|
36 |
define("POSTIE_URL", WP_PLUGIN_URL . '/' . basename(dirname(__FILE__)));
|
37 |
+
define('POSTIE_SLUG', 'postie');
|
38 |
|
39 |
//register the hooks early in the page in case some method needs the result of one of them (i.e. cron_schedules)
|
40 |
add_action('init', 'postie_disable_kses_content', 20);
|
66 |
|
67 |
function postie_load_domain() {
|
68 |
$plugin_dir = WP_PLUGIN_DIR . '/' . basename(dirname(__FILE__));
|
69 |
+
load_plugin_textdomain(POSTIE_SLUG, false, dirname(plugin_basename(__FILE__)) . '/languages/');
|
70 |
}
|
71 |
|
72 |
add_action('init', 'postie_load_domain');
|
141 |
|
142 |
function postie_admin_page() {
|
143 |
if (!current_user_can('manage_options')) {
|
144 |
+
wp_die(__('You do not have sufficient permissions to access this page.', POSTIE_SLUG));
|
145 |
}
|
146 |
include 'config_form.php';
|
147 |
}
|
202 |
) && !isset($_POST['submit'])) {
|
203 |
|
204 |
function postie_enter_info() {
|
205 |
+
echo "<div id='postie-info-warning' class='updated fade'><p><strong>" . __('Postie is almost ready.', POSTIE_SLUG) . "</strong> "
|
206 |
+
. sprintf(__('You must <a href="%1$s">enter your email settings</a> for it to work.', POSTIE_SLUG), "admin.php?page=postie-settings")
|
207 |
. "</p></div> ";
|
208 |
}
|
209 |
|
215 |
|
216 |
function postie_imap_warning() {
|
217 |
echo "<div id='postie-imap-warning' class='error'><p><strong>";
|
218 |
+
echo __('Warning: the IMAP php extension is not installed. Postie can not use IMAP, IMAP-SSL or POP-SSL without this extension.', POSTIE_SLUG);
|
219 |
echo "</strong></p></div>";
|
220 |
}
|
221 |
|
225 |
|
226 |
function postie_tls_warning() {
|
227 |
echo "<div id='postie-lst-warning' class='error'><p><strong>";
|
228 |
+
echo __('Warning: The POP3 connector does not support TLS.', POSTIE_SLUG);
|
229 |
echo "</strong></p></div>";
|
230 |
}
|
231 |
|
232 |
add_action('admin_notices', 'postie_tls_warning');
|
233 |
}
|
234 |
|
235 |
+
if (isMarkdownInstalled() && $config['prefer_text_type'] == 'html') {
|
236 |
|
237 |
+
function postie_markdown_warning() {
|
238 |
+
echo "<div id='postie-lst-warning' class='error'><p><strong>";
|
239 |
+
_e("You currently have the Markdown plugin installed. It will cause problems if you send in HTML email. Please turn it off if you intend to send email using HTML.", POSTIE_SLUG);
|
240 |
+
echo "</strong></p></div>";
|
241 |
+
}
|
242 |
+
|
243 |
+
add_action('admin_notices', 'postie_markdown_warning');
|
244 |
+
}
|
245 |
+
|
246 |
+
if (!HasIconvInstalled()) {
|
247 |
+
|
248 |
+
function postie_iconv_warning() {
|
249 |
+
echo "<div id='postie-lst-warning' class='error'><p><strong>";
|
250 |
+
_e("Warning! Postie requires that iconv be enabled.", POSTIE_SLUG);
|
251 |
echo "</strong></p></div>";
|
252 |
}
|
253 |
|
254 |
+
add_action('admin_notices', 'postie_iconv_warning');
|
255 |
}
|
256 |
|
257 |
$userdata = WP_User::get_data_by('login', $config['admin_username']);
|
259 |
|
260 |
function postie_adminuser_warning() {
|
261 |
echo "<div id='postie-mbstring-warning' class='error'><p><strong>";
|
262 |
+
echo __('Warning: the Admin username is not a valid WordPress login. Postie may reject emails if this is not corrected.', POSTIE_SLUG);
|
263 |
echo "</strong></p></div>";
|
264 |
}
|
265 |
|
327 |
function postie_more_reccurences($schedules) {
|
328 |
//Do not echo output in filters, it seems to break some installs
|
329 |
//error_log("postie_more_reccurences: setting cron schedules");
|
330 |
+
$schedules['weekly'] = array('interval' => (60 * 60 * 24 * 7), 'display' => __('Once Weekly', POSTIE_SLUG));
|
331 |
+
$schedules['twiceperhour'] = array('interval' => 60 * 30, 'display' => __('Twice per hour', POSTIE_SLUG));
|
332 |
+
$schedules['tenminutes'] = array('interval' => 60 * 10, 'display' => __('Every 10 minutes', POSTIE_SLUG));
|
333 |
+
$schedules['fiveminutes'] = array('interval' => 60 * 5, 'display' => __('Every 5 minutes', POSTIE_SLUG));
|
334 |
+
$schedules['oneminute'] = array('interval' => 60 * 1, 'display' => __('Every 1 minute', POSTIE_SLUG));
|
335 |
|
336 |
return $schedules;
|
337 |
}
|
readme.txt
CHANGED
@@ -5,10 +5,12 @@ Author URI: http://allens-home.com/
|
|
5 |
Plugin URI: http://PostiePlugin.com/
|
6 |
Tags: e-mail, email, post-by-email
|
7 |
Requires at least: 3.3.0
|
8 |
-
Tested up to: 4.
|
9 |
-
Stable tag: 1.7.
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
|
|
|
|
12 |
|
13 |
Postie allows you to create posts via email, including many advanced features not found in WordPress's default Post by Email feature.
|
14 |
|
@@ -234,6 +236,17 @@ All script, style and body tags are stripped from html emails.
|
|
234 |
Attachments are now processed in the order they were attached.
|
235 |
|
236 |
== CHANGELOG ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
= 1.7.6 (2015-08-13) =
|
238 |
* Added setting to control whether the featured image is included in the post or not.
|
239 |
* Added 2 new filters, postie_comment_before and postie_comment_after
|
5 |
Plugin URI: http://PostiePlugin.com/
|
6 |
Tags: e-mail, email, post-by-email
|
7 |
Requires at least: 3.3.0
|
8 |
+
Tested up to: 4.3
|
9 |
+
Stable tag: 1.7.8
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
+
Text Domain: postie
|
13 |
+
Domain Path: /languages
|
14 |
|
15 |
Postie allows you to create posts via email, including many advanced features not found in WordPress's default Post by Email feature.
|
16 |
|
236 |
Attachments are now processed in the order they were attached.
|
237 |
|
238 |
== CHANGELOG ==
|
239 |
+
= 1.7.8 (2015-09-08) =
|
240 |
+
* Remove mbstring admin message. Added fallback if mbstring is not installed
|
241 |
+
* More explanation for signature regex
|
242 |
+
* Add 1 minute schedule to supplement new external cron recommendation
|
243 |
+
* Updates to support upcoming Language Packs feature for plugins
|
244 |
+
* Moved important warning to admin notices
|
245 |
+
* New filter postie_category_default
|
246 |
+
|
247 |
+
= 1.7.7 (2015-08-24) =
|
248 |
+
* Fixed bug where "To" and "Reply-To" emails were not parsed correctly for postie_filter_email2 filter
|
249 |
+
|
250 |
= 1.7.6 (2015-08-13) =
|
251 |
* Added setting to control whether the featured image is included in the post or not.
|
252 |
* Added 2 new filters, postie_comment_before and postie_comment_after
|