Skip to content
Snippets Groups Projects
Commit 00a7b5ad authored by Esther Brunner's avatar Esther Brunner
Browse files

function obfuscate($email) moved to common.php; used in parser and some plugins

darcs-hash:20050902150527-283c4-dae58038c70aacb000f535e8173fa263ba774f52.gz
parent da682d4e
No related branches found
No related tags found
No related merge requests found
......@@ -892,6 +892,31 @@ function filesize_h($size, $dec = 1){
return round($size, $dec) . ' ' . $sizes[$i];
}
/**
* return an obfuscated email address in line with $conf['mailguard'] setting
*
* @author Harry Fuecks <hfuecks@gmail.com>
* @author Christopher Smith <chris@jalakai.co.uk>
*/
function obfuscate($email) {
global $conf;
switch ($conf['mailguard']) {
case 'visible' :
$obfuscate = array('@' => ' [at] ', '.' => ' [dot] ', '-' => ' [dash] ');
return strtr($email, $obfuscate);
case 'hex' :
$encode = '';
for ($x=0; $x < strlen($email); $x++) $encode .= '&#x' . bin2hex($email{$x}).';';
return $encode;
case 'none' :
default :
return $email;
}
}
/**
* Return DokuWikis version
*
......
......@@ -672,39 +672,12 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['class']='media';
}
//shields up
if($conf['mailguard']=='visible'){
//the mail name gets some visible encoding
$address = str_replace('@',' [at] ',$address);
$address = str_replace('.',' [dot] ',$address);
$address = str_replace('-',' [dash] ',$address);
$title = $this->_xmlEntities($address);
if(empty($name)){
$name = $this->_xmlEntities($address);
}else{
$name = $this->_xmlEntities($name);
}
}elseif($conf['mailguard']=='hex'){
//encode every char to a hex entity
for ($x=0; $x < strlen($address); $x++) {
$encode .= '&#x' . bin2hex($address[$x]).';';
}
$address = $encode;
$title = $encode;
if(empty($name)){
$name = $encode;
}else{
$name = $this->_xmlEntities($name);
}
$address = obfuscate($address);
$title = $address;
if(empty($name)){
$name = $address;
}else{
//keep address as is
$title = $this->_xmlEntities($address);
if(empty($name)){
$name = $this->_xmlEntities($address);
}else{
$name = $this->_xmlEntities($name);
}
$name = $this->_xmlEntities($name);
}
$link['url'] = 'mailto:'.rawurlencode($address);
......
......@@ -127,27 +127,6 @@ class DokuWiki_Admin_Plugin {
function plugin_render($text, $format='xhtml') {
return p_render($format, p_get_instructions($text),$info);
}
// return an obfuscated email address in line with $conf['mailguard'] setting
// FIXME?? this should really be a common function, used by the renderer as well - no point maintaining two!
function obfuscate($email) {
global $conf;
switch ($conf['mailguard']) {
case 'visible' :
$obfuscate = array('@' => '[at]', '.' => '[dot]', '-' => '[dash]');
return strtr($email, $obfuscate);
case 'hex' :
$encode = '';
for ($x=0; $x < strlen($email); $x++) $encode .= '&#x' . bin2hex($email{$x}).';';
return $encode;
case 'none' :
default :
return $email;
}
}
}
//Setup VIM: ex: et ts=4 enc=utf-8 :
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment