15 |
15 |
) {
|
16 |
16 |
return $content;
|
17 |
17 |
}
|
18 |
|
// test if js-decryption is installed
|
19 |
|
if( preg_match('/<head.*<.*src=\".*\/mdcr.js.*>.*<\/head/siU', $content) ) {
|
|
18 |
$bNeedMdcr = false;
|
|
19 |
// test if js-decryption is available
|
|
20 |
$script = str_replace('\\', '/',str_replace(WB_PATH,'', dirname(__DIR__)).'/js/mdcr.js');
|
|
21 |
if(is_readable(WB_PATH.$script)) {
|
|
22 |
$scriptLink = "\t".'<script src="'.WB_URL.$script.'" type="text/javascript"></script>'."\n";
|
20 |
23 |
$aFilterSettings['OutputFilterMode'] |= pow(2, 2); // n | 2^2
|
21 |
|
}else {
|
22 |
|
// try to insert js-decrypt into <head> if available
|
23 |
|
$script = str_replace('\\', '/',str_replace(WB_PATH,'', dirname(__DIR__)).'/js/mdcr.js');
|
24 |
|
if(is_readable(WB_PATH.$script)) {
|
25 |
|
$scriptLink = "\t".'<script src="'.WB_URL.$script.'" type="text/javascript"></script>'."\n";
|
26 |
|
$regex = '/(.*)(<\s*?\/\s*?head\s*>.*)/isU';
|
27 |
|
$replace = '$1'.$scriptLink.'$2';
|
28 |
|
$content = preg_replace ($regex, $replace, $content);
|
29 |
|
$aFilterSettings['OutputFilterMode'] |= pow(2, 2); // n | 2^2
|
30 |
|
}
|
31 |
24 |
}
|
32 |
25 |
/* *** obfuscate mailto addresses by js:mdcr *** */
|
33 |
26 |
// work out the defined output filter mode: possible output filter modes: [0], 1, 2, 3, 6, 7
|
... | ... | |
54 |
47 |
$content = preg_replace_callback(
|
55 |
48 |
$pattern,
|
56 |
49 |
/* ************************************************************************** */
|
57 |
|
function ($match) use ($aFilterSettings) {
|
|
50 |
function ($match) use ($aFilterSettings, $bNeedMdcr) {
|
58 |
51 |
// check if required arguments are defined
|
59 |
52 |
$search = array('@', '.');
|
60 |
53 |
$replace = array($aFilterSettings['at_replacement'] ,$aFilterSettings['dot_replacement']);
|
... | ... | |
111 |
104 |
$encrypted_email .= chr($shift + 97);
|
112 |
105 |
// build the encrypted Javascript mailto link
|
113 |
106 |
$mailto_link = "<a {$class_attr}{$id_attr}href=\"javascript:mdcr('$encrypted_email','$email_subject')\">" .$match[5] ."</a>";
|
|
107 |
$bNeedMdcr = true;
|
114 |
108 |
return $mailto_link;
|
115 |
109 |
} else {
|
116 |
110 |
/** DO NOT USE JAVASCRIPT ENCRYPTION FOR MAILTO LINKS **/
|
... | ... | |
132 |
126 |
$content
|
133 |
127 |
);
|
134 |
128 |
}
|
|
129 |
if ($bNeedMdcr) {
|
|
130 |
// test if js-decryption is installed
|
|
131 |
if (!preg_match('/<head.*<.*src=\".*\/mdcr.js.*>.*<\/head/siU', $content) ) {
|
|
132 |
// try to insert js-decrypt into <head> if available
|
|
133 |
$script = str_replace('\\', '/',str_replace(WB_PATH,'', dirname(__DIR__)).'/js/mdcr.js');
|
|
134 |
if(is_readable(WB_PATH.$script)) {
|
|
135 |
$scriptLink = "\t".'<script src="'.WB_URL.$script.'" type="text/javascript"></script>'."\n";
|
|
136 |
$regex = '/(.*)(<\s*?\/\s*?head\s*>.*)/isU';
|
|
137 |
$replace = '$1'.$scriptLink.'$2';
|
|
138 |
$content = preg_replace ($regex, $replace, $content);
|
|
139 |
}
|
|
140 |
}
|
|
141 |
}
|
135 |
142 |
return $content;
|
136 |
143 |
}
|
output_filter::filterEmail:: mdcr.js is loaded only when at least one email address is encrypted on the current page