Version Description
- Added hook "init_email_encoder_form" to add custom filters (of other plugins)
- Added JavaScript code encapsulation for ASCII method
- Solved reinstalling bug for setting right encoding method
- Solved bug shortcodes encoded with HTML method
Download this release
Release Info
Developer | freelancephp |
Plugin | Email Encoder Bundle – Protect Email Address |
Version | 0.60 |
Comparing to | |
See all releases |
Code changes from version 0.50 to 0.60
- email-encoder-bundle.php +18 -12
- readme.txt +56 -27
email-encoder-bundle.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Email Encoder Bundle
|
|
4 |
Plugin URI: http://www.freelancephp.net/email-encoder-php-class-wp-plugin/
|
5 |
Description: Protect email addresses on your site from spambots and being used for spamming by using one of the encoding methods.
|
6 |
Author: Victor Villaverde Laan
|
7 |
-
Version: 0.
|
8 |
Author URI: http://www.freelancephp.net
|
9 |
License: Dual licensed under the MIT and GPL licenses
|
10 |
*/
|
@@ -20,7 +20,7 @@ class WP_Email_Encoder_Bundle {
|
|
20 |
* Current version
|
21 |
* @var string
|
22 |
*/
|
23 |
-
var $version = '0.
|
24 |
|
25 |
/**
|
26 |
* Used as prefix for options entry and could be used as text domain (for translations)
|
@@ -38,7 +38,7 @@ class WP_Email_Encoder_Bundle {
|
|
38 |
* @var array
|
39 |
*/
|
40 |
var $options = array(
|
41 |
-
'method' => '
|
42 |
'encode_mailtos' => 1,
|
43 |
'encode_emails' => 0,
|
44 |
'skip_posts' => '',
|
@@ -199,6 +199,8 @@ class WP_Email_Encoder_Bundle {
|
|
199 |
}
|
200 |
}
|
201 |
|
|
|
|
|
202 |
}
|
203 |
|
204 |
/**
|
@@ -687,6 +689,8 @@ class WP_Email_Encoder_Bundle {
|
|
687 |
// set email as display
|
688 |
if ($display === NULL) {
|
689 |
$display = $email;
|
|
|
|
|
690 |
}
|
691 |
|
692 |
// get encode method
|
@@ -742,12 +746,14 @@ class WP_Email_Encoder_Bundle {
|
|
742 |
$mail_indices = str_replace("\"", "\\\"", $mail_indices);
|
743 |
|
744 |
return '<script type="text/javascript">/*<![CDATA[*/'
|
745 |
-
. '
|
746 |
-
. 'MI="'. $mail_indices .'";'
|
747 |
-
. '
|
748 |
-
. 'for(j=0;j<MI.length;j++){'
|
749 |
. 'OT+=ML.charAt(MI.charCodeAt(j)-48);'
|
750 |
-
. '}document.write(OT)
|
|
|
|
|
|
|
751 |
. $this->options['protection_text']
|
752 |
. '</noscript>';
|
753 |
}
|
@@ -789,18 +795,18 @@ class WP_Email_Encoder_Bundle {
|
|
789 |
* @return string
|
790 |
*/
|
791 |
function enc_html($value) {
|
792 |
-
// check
|
793 |
if (function_exists('antispambot')) {
|
794 |
$enc_value = antispambot($value);
|
795 |
} else {
|
796 |
$enc_value = '';
|
797 |
-
srand(
|
798 |
|
799 |
for ($i = 0; $i < strlen($value); $i = $i + 1) {
|
800 |
-
$j = floor(
|
801 |
|
802 |
if ($j == 0) {
|
803 |
-
$enc_value .= '&#' . ord(
|
804 |
} elseif ($j == 1) {
|
805 |
$enc_value .= substr($value, $i, 1);
|
806 |
}
|
4 |
Plugin URI: http://www.freelancephp.net/email-encoder-php-class-wp-plugin/
|
5 |
Description: Protect email addresses on your site from spambots and being used for spamming by using one of the encoding methods.
|
6 |
Author: Victor Villaverde Laan
|
7 |
+
Version: 0.60
|
8 |
Author URI: http://www.freelancephp.net
|
9 |
License: Dual licensed under the MIT and GPL licenses
|
10 |
*/
|
20 |
* Current version
|
21 |
* @var string
|
22 |
*/
|
23 |
+
var $version = '0.60';
|
24 |
|
25 |
/**
|
26 |
* Used as prefix for options entry and could be used as text domain (for translations)
|
38 |
* @var array
|
39 |
*/
|
40 |
var $options = array(
|
41 |
+
'method' => 'enc_ascii',
|
42 |
'encode_mailtos' => 1,
|
43 |
'encode_emails' => 0,
|
44 |
'skip_posts' => '',
|
199 |
}
|
200 |
}
|
201 |
|
202 |
+
// action hook
|
203 |
+
do_action('init_email_encoder_bundle', array($this, 'filter_callback'));
|
204 |
}
|
205 |
|
206 |
/**
|
689 |
// set email as display
|
690 |
if ($display === NULL) {
|
691 |
$display = $email;
|
692 |
+
} else {
|
693 |
+
$display = html_entity_decode($display);
|
694 |
}
|
695 |
|
696 |
// get encode method
|
746 |
$mail_indices = str_replace("\"", "\\\"", $mail_indices);
|
747 |
|
748 |
return '<script type="text/javascript">/*<![CDATA[*/'
|
749 |
+
. '(function(){'
|
750 |
+
. 'var ML="'. $mail_letters_enc .'", MI="'. $mail_indices .'", OT="";'
|
751 |
+
. 'for(var j=0;j<MI.length;j++){'
|
|
|
752 |
. 'OT+=ML.charAt(MI.charCodeAt(j)-48);'
|
753 |
+
. '}document.write(OT);'
|
754 |
+
. '}());'
|
755 |
+
. '/*]]>*/'
|
756 |
+
. '</script><noscript>'
|
757 |
. $this->options['protection_text']
|
758 |
. '</noscript>';
|
759 |
}
|
795 |
* @return string
|
796 |
*/
|
797 |
function enc_html($value) {
|
798 |
+
// check for built-in WP function
|
799 |
if (function_exists('antispambot')) {
|
800 |
$enc_value = antispambot($value);
|
801 |
} else {
|
802 |
$enc_value = '';
|
803 |
+
srand((float) microtime() * 1000000);
|
804 |
|
805 |
for ($i = 0; $i < strlen($value); $i = $i + 1) {
|
806 |
+
$j = floor(rand( 0, 1 ));
|
807 |
|
808 |
if ($j == 0) {
|
809 |
+
$enc_value .= '&#' . ord(substr($value, $i, 1)) . ';';
|
810 |
} elseif ($j == 1) {
|
811 |
$enc_value .= substr($value, $i, 1);
|
812 |
}
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: freelancephp
|
|
3 |
Tags: email, hide, mailto, spam, protection, spambots, encoder, encrypt, encode, obfuscate, antispam, spamming
|
4 |
Requires at least: 2.7.0
|
5 |
Tested up to: 3.5.0
|
6 |
-
Stable tag: 0.
|
7 |
|
8 |
Protect email addresses on your site from spambots and being used for spamming. This plugin encodes all email adresses so spambots cannot read them.
|
9 |
|
@@ -20,18 +20,39 @@ Protect email addresses on your site from spambots and being used for spamming.
|
|
20 |
* Put an Email Encoder Form on your site
|
21 |
|
22 |
= Tags =
|
23 |
-
|
24 |
-
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
26 |
|
27 |
= Template functions =
|
28 |
-
|
29 |
-
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
= Support =
|
33 |
Supports PHP4.3+ and up to latest WP version.
|
34 |
|
|
|
|
|
|
|
35 |
== Installation ==
|
36 |
|
37 |
1. Go to `Plugins` in the Admin menu
|
@@ -43,31 +64,42 @@ Supports PHP4.3+ and up to latest WP version.
|
|
43 |
|
44 |
= How do I encode my emailaddress(es)? =
|
45 |
|
46 |
-
|
|
|
|
|
|
|
47 |
`<a href="mailto:myname@test.nl">My Email</a>`
|
48 |
|
49 |
-
|
50 |
`<script type="text/javascript">/*<![CDATA[*/ML="mo@k<insc:r.y=-Ehe a\">f/lMt";MI="4CB8HC77=D0C5HJ1>H563DB@:AF=D0C5HJ190<6C0A2JA7J;6HDBBJ5JHA=DI<B?0C5HDEI<B?0C5H4GCE";OT="";for(j=0;j<MI.length;j++){OT+=ML.charAt(MI.charCodeAt(j)-48);}document.write(OT);/*]]>*/</script><noscript>*protected email*</noscript>`
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
Within your posts, you can use the shortcode `[email_encode]`, f.e.:
|
55 |
-
`[email_encode email="myname@test.nl" display="My Email"]`
|
56 |
|
57 |
= Which encoding method should I use? =
|
58 |
|
59 |
-
The `Html Encode` method
|
60 |
-
Although JavaScript methods (like `JavaScript ASCII`) are probably better protection against spambots.
|
61 |
|
62 |
= How to create mailto links that opens in a new window? =
|
63 |
|
64 |
-
You could
|
65 |
`[encode_email email="yourmail@test.nl" display="My Mail" extra_attrs="target='_blank'"]`
|
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
= How to encode emails in ALL widgets? =
|
68 |
|
69 |
-
If the option 'All text widgets' is activated, only
|
70 |
-
It's possible to
|
71 |
|
72 |
[Do you have another question? Please ask me](http://www.freelancephp.net/contact/)
|
73 |
|
@@ -78,6 +110,12 @@ It's possible to encode emails in all widgets by using the Widget Logic plugin a
|
|
78 |
|
79 |
== Changelog ==
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
= 0.50 =
|
82 |
* Added encode method for all kind of contents (template function and shortcode "encode_content")
|
83 |
* Added extra param for additional html attributes (f.e. target="_blank")
|
@@ -155,12 +193,3 @@ It's possible to encode emails in all widgets by using the Widget Logic plugin a
|
|
155 |
* [Adam Hunter](http://blueberryware.net) for the encode method 'JavaScript Escape' which is taken from his plugin [Email Spam Protection](http://blueberryware.net/2008/09/14/email-spam-protection/)
|
156 |
* [Tyler Akins](http://rumkin.com) for the encode method 'JavaScript ASCII Mixer'
|
157 |
* Title icon on Admin Options Page was made by [Jack Cai](http://www.doublejdesign.co.uk/)
|
158 |
-
|
159 |
-
== Upgrade Notice ==
|
160 |
-
|
161 |
-
= 0.50 =
|
162 |
-
* Added encode method for all kind of contents
|
163 |
-
* Added extra param for additional html attributes
|
164 |
-
* Added option to skip certain posts from being automatically encoded
|
165 |
-
* Added option custom protection text
|
166 |
-
* Notice: not possible to add your own methods anymore.
|
3 |
Tags: email, hide, mailto, spam, protection, spambots, encoder, encrypt, encode, obfuscate, antispam, spamming
|
4 |
Requires at least: 2.7.0
|
5 |
Tested up to: 3.5.0
|
6 |
+
Stable tag: 0.60
|
7 |
|
8 |
Protect email addresses on your site from spambots and being used for spamming. This plugin encodes all email adresses so spambots cannot read them.
|
9 |
|
20 |
* Put an Email Encoder Form on your site
|
21 |
|
22 |
= Tags =
|
23 |
+
Encode the given email, "display" is optional:
|
24 |
+
`[encode_email email="..." display="..."]`
|
25 |
+
|
26 |
+
Encode content, "method" is optional:
|
27 |
+
`[encode_content method="..."]...[/encode_content]`
|
28 |
+
|
29 |
+
Puts an encoder form in your post:
|
30 |
+
`[email_encoder_form]`
|
31 |
|
32 |
= Template functions =
|
33 |
+
Encode the given email (other params are optional):
|
34 |
+
`<?php echo encode_email($email, [$display], [$method], [$extra_attrs]); ?>`
|
35 |
+
|
36 |
+
Encode the given content for emails to encode (other param is optional):
|
37 |
+
`<?php echo encode_content($content, [$method]); ?>`
|
38 |
+
|
39 |
+
Filter the given content for emails to encode (other params are optional):
|
40 |
+
`<?php echo encode_email_filter($content, [$enc_tags], [$enc_mailtos], [$enc_plain_emails]); ?>`
|
41 |
+
|
42 |
+
= Hooks =
|
43 |
+
Add extra code on initialize the Email Encoder Bundle (f.e. add extra filters for encoding):
|
44 |
+
`add_action('init_email_encoder_bundle', 'extra_encode_filters');
|
45 |
+
|
46 |
+
function extra_encode_filters($filter_callback) {
|
47 |
+
add_filter('some_filter', $filter_callback);
|
48 |
+
}`
|
49 |
|
50 |
= Support =
|
51 |
Supports PHP4.3+ and up to latest WP version.
|
52 |
|
53 |
+
= Contact =
|
54 |
+
[Send our comment](http://www.freelancephp.net/email-encoder-php-class-wp-plugin/)[ or question](http://www.freelancephp.net/contact/)
|
55 |
+
|
56 |
== Installation ==
|
57 |
|
58 |
1. Go to `Plugins` in the Admin menu
|
64 |
|
65 |
= How do I encode my emailaddress(es)? =
|
66 |
|
67 |
+
In the posts you can use this shortcode:
|
68 |
+
`[email_encode email="myname@test.nl" display="My Email"]`
|
69 |
+
|
70 |
+
By default the option `Encode mailto links` and that means this of html snippet will also be encoded:
|
71 |
`<a href="mailto:myname@test.nl">My Email</a>`
|
72 |
|
73 |
+
The default method is `JavaScript ASCII` the following output will be created in the source code of the page:
|
74 |
`<script type="text/javascript">/*<![CDATA[*/ML="mo@k<insc:r.y=-Ehe a\">f/lMt";MI="4CB8HC77=D0C5HJ1>H563DB@:AF=D0C5HJ190<6C0A2JA7J;6HDBBJ5JHA=DI<B?0C5HDEI<B?0C5H4GCE";OT="";for(j=0;j<MI.length;j++){OT+=ML.charAt(MI.charCodeAt(j)-48);}document.write(OT);/*]]>*/</script><noscript>*protected email*</noscript>`
|
75 |
|
76 |
+
This code is not readable by spambots and protects your emailaddress.
|
|
|
|
|
|
|
77 |
|
78 |
= Which encoding method should I use? =
|
79 |
|
80 |
+
The `Html Encode` method is a simple method. Probably JavaScript methods like JavaScript ASCII` would be a better protection against spambots.
|
|
|
81 |
|
82 |
= How to create mailto links that opens in a new window? =
|
83 |
|
84 |
+
You could add extra params to the mailto link and add `target='_blank'` for opening them in a new window, like:
|
85 |
`[encode_email email="yourmail@test.nl" display="My Mail" extra_attrs="target='_blank'"]`
|
86 |
|
87 |
+
= How can I encode content of BBPress plugin? =
|
88 |
+
|
89 |
+
If you use other plugins that needs to be encoded you can add a callback to the action "init_email_encoder_bundle".
|
90 |
+
For Example:
|
91 |
+
|
92 |
+
`add_action('init_email_encoder_bundle', 'extra_encode_filters');
|
93 |
+
|
94 |
+
function extra_encode_filters($filter_callback) {
|
95 |
+
add_filter('bbp_get_reply_content', $filter_callback);
|
96 |
+
add_filter('bbp_get_topic_content', $filter_callback);
|
97 |
+
}`
|
98 |
+
|
99 |
= How to encode emails in ALL widgets? =
|
100 |
|
101 |
+
If the option 'All text widgets' is activated, only text widgets will be filtered for encoding.
|
102 |
+
It's possible to filter all widgets by using the Widget Logic plugin and activate the 'widget_content' filter.
|
103 |
|
104 |
[Do you have another question? Please ask me](http://www.freelancephp.net/contact/)
|
105 |
|
110 |
|
111 |
== Changelog ==
|
112 |
|
113 |
+
= 0.60 =
|
114 |
+
* Added hook "init_email_encoder_form" to add custom filters (of other plugins)
|
115 |
+
* Added JavaScript code encapsulation for ASCII method
|
116 |
+
* Solved reinstalling bug for setting right encoding method
|
117 |
+
* Solved bug shortcodes encoded with HTML method
|
118 |
+
|
119 |
= 0.50 =
|
120 |
* Added encode method for all kind of contents (template function and shortcode "encode_content")
|
121 |
* Added extra param for additional html attributes (f.e. target="_blank")
|
193 |
* [Adam Hunter](http://blueberryware.net) for the encode method 'JavaScript Escape' which is taken from his plugin [Email Spam Protection](http://blueberryware.net/2008/09/14/email-spam-protection/)
|
194 |
* [Tyler Akins](http://rumkin.com) for the encode method 'JavaScript ASCII Mixer'
|
195 |
* Title icon on Admin Options Page was made by [Jack Cai](http://www.doublejdesign.co.uk/)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|