23/07/2012, 21:03:22
Ok, j'ai encore du modifier car le plugin ne passait pas dans tous les types de contenus.
Voici la version qui fonctionne avec la 8193 :
Télécharger le plugin (à dézipper dans le répertoire /plugins de votre installation)
ou :
Il faut nommer ce plugin : prefilter.protect_email.php et le placer dans le répertoire plugins.
Vider le cache (je vide généralement en supprimant les fichiers de tmp/template_c).
Enjoy
Fonctionne avec nom@domaine.com et <a ... href="mailto:nom@domaine.com" ...>...</a>.
Attention, vous devrez enlever les balises {mailto ...} qui seraient déjà dans votre site et les remplacer par nom@domaine.com.
Si vous souhaitez voir un texte autre que nom@domaine.com apparaître sur la page, il suffit de modifier le plugin à cette ligne : en insérant le paramètre text="texte"
Ex : $replace = array ('$3', '{mailto address="$0" text="email" encode="javascript"}');
Voici la version qui fonctionne avec la 8193 :
Télécharger le plugin (à dézipper dans le répertoire /plugins de votre installation)
ou :
Code :
<?php
function smarty_prefilter_protect_email($tpl_output, &$template)
{
$smarty = $template->smarty;
$result = explode(':', $smarty->_current_file);
$patterns = array ('#(<a).+(href="mailto:)([a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4})"(.+)(</a>)#iU',
'#[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}#i');
$replace = array ('$3', '{mailto address="$0" encode="javascript"}');
if (count($result) > 1)
{
if (startswith($result[0],'tmp_')) $result[0] = 'template';
switch ($result[0])
{
case 'stylesheet':
break;
case "content":
$tpl_output = preg_replace($patterns, $replace, $tpl_output);
break;
case 'tpl_top':
case 'tpl_body':
case 'tpl_head':
case "template":
$tpl_output = preg_replace($patterns, $replace, $tpl_output);
break;
case "globalcontent":
$tpl_output = preg_replace($patterns, $replace, $tpl_output);
break;
default:
break;
}
}
$tpl_output = preg_replace($patterns, $replace, $tpl_output);
return $tpl_output;
}
?>
Vider le cache (je vide généralement en supprimant les fichiers de tmp/template_c).
Enjoy
Fonctionne avec nom@domaine.com et <a ... href="mailto:nom@domaine.com" ...>...</a>.
Attention, vous devrez enlever les balises {mailto ...} qui seraient déjà dans votre site et les remplacer par nom@domaine.com.
Si vous souhaitez voir un texte autre que nom@domaine.com apparaître sur la page, il suffit de modifier le plugin à cette ligne :
Code :
$replace = array ('$3', '{mailto address="$0" encode="javascript"}');
Ex : $replace = array ('$3', '{mailto address="$0" text="email" encode="javascript"}');