Skip to content
Extraits de code Groupes Projets
Valider fea09e39 rédigé par Fil's avatar Fil
Parcourir les fichiers

deux filtres permettant de passer des liens relatifs aux liens absolus, à la...

deux filtres permettant de passer des liens relatifs aux liens absolus, à la fois quand on parle de [(#URL_ARTICLE|url_absolue)]
ou d'un texte complet [(#TEXTE|liens_absolus)]

Je n'ai malheureusement pas vu comment unifier les deux filtres sans risque d'erreur, mais je n'ai pas les yeux en face des trous ce matin :)

Et pour le féminin/pluriel, je ne suis pas persuade non plus d'avoir fait le bon choix. A l'aide !
parent fa3705bd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -883,4 +883,39 @@ function calendrier($date='', $type='mois', $echelle='', $partie_cal='', $script ...@@ -883,4 +883,39 @@ function calendrier($date='', $type='mois', $echelle='', $partie_cal='', $script
http_calendrier_init($date, $type, $echelle, $partie_cal, $script); http_calendrier_init($date, $type, $echelle, $partie_cal, $script);
} }
// un filtre pour transformer les URLs relatives en URLs absolues ;
// ne s'applique qu'aux #URL_XXXX
function url_absolue($url) {
$url = trim($url);
if (preg_match(',^[a-z0-9]+://,i', $url))
return $url;
$site = lire_meta('adresse_site');
if ($url[0] == '/') {
if (preg_match(',^([a-z0-9]+://)(.*?/)?,i', $site.'/', $regs))
$host = $regs[1].$regs[2];
else
$host = $site.'/';
return $host.substr($url,1);
}
return $site.'/'.$url;
}
// un filtre pour transformer les URLs relatives en URLs absolues ;
// ne s'applique qu'aux textes contenant des liens
function liens_absolus($texte) {
if (preg_match_all(',(<a[[:space:]]+[^<>]*href=["\']?)([^"\' ><[:space:]]+)([^<>]*>),ims',
$texte, $liens, PREG_SET_ORDER)) {
foreach ($liens as $lien) {
$abs = url_absolue($lien[2]);
if ($abs <> $lien[2])
$texte = str_replace($lien[0], $lien[1].$abs.$lien[3], $texte);
}
}
return $texte;
}
?> ?>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter