Ajoute un tag google analytics aux liens d'un contenu lors de l'envoi d'un mail
/**
* Ajoute un tag google analytics aux liens d'un contenu lors de l'envoi d'un mail
* @param string $contenu Le contenu HTML à traiter
* @param string $tag Le tag à ajouter aux liens (une chaine de caractères)
* @return string Le contenu HTML modifié avec les tags pour les liens
*/
function utils_mail_liens_google_analytics($contenu, $tag = NULL) {
if ($tag) {
global $base_url;
$doc = new DOMDocument();
$doc->loadHTML($contenu);
/* Traitement des liens */
$liens = $doc->getElementsByTagName('a');
foreach ($liens as $lien) {
$url = $lien->getAttribute('href');
$url_parts = parse_url($url);
$url_host = $url_parts["scheme"] . "://" . $url_parts["host"];
$url_query_symbol = "?";
if (isset($url_parts['query'])) {
$url_query_symbol = "&";
}
if ($url_host === $base_url) {
$lien->setAttribute('href', $url . $url_query_symbol . $tag);
}
}
/* Le DOMDocument ajoute le doctype, des balises <head>...Il faut donc
* les supprimer, car on renvoie ici seulement un morceau de page HTML */
$text = preg_replace('/^<!DOCTYPE.+?>/', '', str_replace(array(
'<html>',
'</html>',
'<body>',
'</body>'
), array('', '', '', ''), $doc->saveHTML()));
} else {
$text = $contenu;
}
return $text;
}