Revision 5
Added by Manuela almost 9 years ago
| filterEmail.php | ||
|---|---|---|
| 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 |
} |
Also available in: Unified diff
output_filter::filterEmail:: mdcr.js is loaded only when at least one email address is encrypted on the current page