Bonsoir (ici),
" - Filtres d'URL « absolues ». Tous les liens proposés par SPIP (à partir
des raccourcis [->article 11] ou des balises du type #URL_ARTICLE) sont des
liens « relatifs », qui n'indiquent pas l'adresse complète de la ressource
liée. Or, pour certains usages, comme par exemple la syndication, il est
utile d'avoir l'adresse absolue. Pour cela deux filtres ont été introduits :
|url_absolue qui s'applique aux URL : [(#URL_ARTICLE|url_absolue)] ;
|liens_absolus qui s'applique aux textes et transforme l'adresse des liens
et des images : [(#TEXTE|liens_absolus)]."
sur la page : SPIP 1.8.2 - SPIP
... alors peut-être cela vaut le coup de mettre ta version de Spip à jour
vers 1.8.2.
J'ai bien trouvé de la documentation pour l'appliquer aux #LOGO, mais rien pour les #TEXTE.
J'aimerais bien faire un filtre perso, mais je ne sais pas trop par où commencer...
Quelqu'un a déjà vu quelque chose à ce sujet?
(Le site roule sous 1.7.2)
il y a en 1.8.2d des filtres pour faire cela:
|liens_absolus
voici le code à mettre dans mes_focntions puisque tu es en 1.7.2:
// un filtre pour transformer les URLs relatives en URLs absolues ;
// ne s'applique qu'aux #URL_XXXX
function url_absolue($url, $base='') {
if (strlen($url = trim($url)) == 0)
return '';
if (!$base) $base=lire_meta('adresse_site').'/';
return suivre_lien($base, $url);
}
// un filtre pour transformer les URLs relatives en URLs absolues ;
// ne s'applique qu'aux textes contenant des liens
function liens_absolus($texte, $base='') {
if (preg_match_all(',(<a[[:space:]]+[^<>]*href=["\']?)([^"\' ><[:space:]]+)([^<>]*>),ims',
$texte, $liens, PREG_SET_ORDER)) {
foreach ($liens as $lien) {
$abs = url_absolue($lien[2], $base);
if ($abs <> $lien[2])
$texte = str_replace($lien[0], $lien[1].$abs.$lien[3], $texte);
}
}
if (preg_match_all(',(<img[[:space:]]+[^<>]*src=["\']?)([^"\' ><[:space:]]+)([^<>]*>),ims',
$texte, $liens, PREG_SET_ORDER)) {
foreach ($liens as $lien) {
$abs = url_absolue($lien[2], $base);
if ($abs <> $lien[2])
$texte = str_replace($lien[0], $lien[1].$abs.$lien[3], $texte);
}
}
return $texte;
}