Présentation
Beaucoup de squelettes attendent des images d’une certaine taille pour s’afficher correctement. Cependant, tous les auteurs ne sont pas habitués à ajuster la taille des images manuellement. L’idée est donc d’assurer la cohérence de la taille des images en redimensionnant automatiquement à l’aide d’un filtre, toutes les images illustrant un article .
Comment utiliser ce filtre ?
Ce filtre est une version modifiée du filtre reduire_image.
Le filtre recoit deux arguments :
- La taille maximale de l’image (en pixel)
- L’axe le long duquel il faut redimensionner (x,y,both)
La syntaxe est :
reduire_all_images{taille_max,direction}
Par exemple, pour limiter la taille des images à 500 pixels de large on utilise :
<BOUCLE_art(ARTICLES){id_article}>
[(#TEXTE|reduire_all_images{500,x})]
</BOUCLE_art>
Avec ce filtre, une image de 450x600 ne serait pas redimentionnée, mais une image de 600x600 le serait.
Comme pour tout filtre, le traitement n’est effectif que dans la partie publique. Vous ne pourrez donc pas visualiser l’effet dans la partie privée.
fonctionnement
Si la librairie GD est installée sur le serveur, un nouveau fichier image sera créé la première fois que vous appelez la page appelant le filtre. Cette image sera utilisée pour tous les appels ultérieurs des filtres.
Si la librairie GD n’est pas installée, le redimensionnement sera obtenu simplement en spécifiant les attributs de largeur (width) et de hauteur (height) sur le tag <img>
généré pour le code html.
Cache
Les images redimensionnées sont sauvegardées dans un sous répertoire « resized » situé dans le sous répertoire de IMG correspondant à l’extension du fichier.
exemple : IMG/jpg/resized ou IMG/gif/resized
Elles ne sont calculées que la première fois que le filtre est appelé.
Le fichier de sauvegarde de l’image redimensionnée a un nom formé ainsi :
size-axe-imagename.extension
Par exemple, un fichier image nommé image1.jpg redimensionné à 500 pixels selon l’axe des X sera sauvegardée dans le répertoire IMG/jpg avec le nom de fichier : 500-x-image1.jpg
maintenance automatique
Une opération de maintenance automatique a lieu après un certain délai. Cette durée est indiquée dans la variable $maint_delay
en début de fichier et peut être changée. C’est une semaine par défaut.
$maint_delay = 3600*24*7;
// 7 jours de 24h de 3600 secondes
L’opération de maintenance consiste à faire le ménage et à effacer les fichiers inutilisés (un « garbage collector »).
Ainsi, si vous modifiez les squelettes et les tailles des vignettes, ou que vous changez d’images originales, des images préallablement créées deviendront inutiles. La maintenance détectera qu’elles ne sont plus utilisée et les effacera automatiquement du répertoire resized.
Note : Si jamais une image redimensionnée est effacée de manière prématurée (parcequ’elle n’est presque jamais visualisée par exemple), alors elle sera recrée au besoin, donc rien de gênant.
Installation
Pour installer ce filtre, téléchargez l’archive attachée à l’article, décompressez le fichier mes_fonctions.php3 et ajoutez son contenu dans votre propre fichier mes_fonctions.php3 à la racine de votre site Spip. Si vous n’avez pas encore de fichier appellé mes_fonctions.php3 ajoutez simplement celui-ci.
Ce filtre est expérimental, vous êtes libre de me contacter (en italien ou anglais ;o) si vous rencontrez des soucis.
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |