|copie_locale

Le filtre |copie_locale crée une copie locale d’un fichier distant (image, texte, pdf, html,...) provenant d’un autre domaine.

Appliqué à une URL, ce filtre tente de copier le fichier sur lequel pointe cette url puis, si l’opération a aboutie, retourne l’url relative de la copie locale du ficher (par exemple « IMG/distant/jpg/l_image.jpg »). Si l’opération de copie a échouée, le filtre ne retourne rien.

L’URL du fichier que l’on veut copier en local peut
-  soit être indiquée explicitement :
[(#VAL{url_du_fichier_distant}|copie_locale)] ;
-  soit provenir d’une table externe :
[(#URL_FICHIER_DISTANT|copie_locale)] ;
-  soit provenir d’une balise enclosure d’un flux rss syndiqué :
[(#TAGS|afficher_tags{enclosure}|extraire_attribut{href}|copie_locale)].

Mise à jour de la copie

Le filtre accepte un argument optionnel : |copie_locale{mode} qui peut prendre 4 valeurs.
-  auto (par défaut) :
dans ce cas une copie en local du fichier distant est réalisée dans IMG/distant/. Cette copie n’est effectuée qu’une fois. Elle n’est pas remise à jour au recalcul de la page si le fichier distant a été mis à jour et si son URL est restée identique.
-  force :
la copie locale est réalisée à chaque recalcul de la page. Le fichier local peut donc éventuellement être mis à jour. (À utiliser avec précautions, cette fonction étant consommatrice de ressources).
-  modif :
la copie locale déjà présente ne sera mise à jour que si elle est antérieure à l’entête « If-Modified-Since » du fichier original.
-  test :
le filtre ne fait que vérifier qu’il existe bien déjà une copie en local du fichier donné en URL et retourne alors l’url de cette copie. Sinon, il ne fait ni ne retourne rien.

Note :
Pour appliquer un filtre image sur un fichier distant, il est indispensable de lui appliquer précédemment le filtre |copie_locale.

Exemple :

[(#VAL{https://contrib.spip.net/IMG/logo/siteon0.png}|copie_locale|image_reduire{200})]

Auteur denisb, domiw Publié le : Mis à jour : 21/04/23

Traductions : català, English, français, Nederlands