Besoin
Je suis en train de développer un squelette spip en 3 colonnes pour les articles et l’insertion d’images trop grandes à l’intérieure de ceux ci faisait un peut éclater ma maquette. Je suis donc tombé sur le filtre redimlogo qui essayait de donner une taille adapté à un logo. Mais les images à l’intérieure de l’article ne sont pas atteignables. Il restait 2 choix :
- modifier l’interpréteur spip pour qu’il applique redimlogo dans les articles
- rester le plus compatible avec les versions à vernir de spip et ne pas modifier le code de spip, donc écrire un filtre pour faire ce que je voulais.
Filtre
Si vous utilisez ce filtre n’oubliez pas qu’il faut également inclure le filtre redimlogo (Redimensionner un logo) dans votre fichier mes_fonctions.php3.
/*
* +----------------------------------+
* Nom du Filtre : limit_images_size
* +----------------------------------+
* Date : 21 septembre 2003
* Auteur : Mortimer Porte (mortimer(dot)porte(at)urbanet(dot)ch)
* +-------------------------------------+
* Fonctions de ce filtre :
* redimensionne si nescessaire les images incluses dans le texte d'un article.
* param1: largeur maximale (>0, sinon ignorée)
* param2: hauteur maximale (>0, sinon ignorée)
* [param3: insérer un lien sur l'image (1= oui,0= non)]
* Exemple d'application :
* [(#TEXTE|limit_images_size{400,0,1})]
* +-------------------------------------+
*
* Pour toute suggestion, remarque, proposition d'ajout
* reportez-vous au forum de l'article :
* http://www.uzine.net/spip_contrib/article.php3?id_article=251
*/
function limit_images_size($string, $largeur_maxi=0, $hauteur_maxi=0, $with_link=0) {
$reg = "/<img src='IMG\/([^']+)' ?([^ ]+) width='[^ ]+' ?([^ ]+) height='[^ ]+' (([^/]|\/[^>])+)\/>/";
preg_match_all ($reg, $string, $matches);
$to_return = $string;
for ($i=0; $i< count($matches[0]); $i++) {
$img = $matches[1][$i];
$bef = $matches[2][$i];
$aft = $matches[4][$i];
$btw = $matches[3][$i];
$size = redimlogo ($img, $largeur_maxi, $hauteur_maxi);
$before = "";
$after = "";
if($with_link) {
$before = "<a href='IMG/".$img."'>";
$after = "</a>";
}
$to_return = preg_replace("<".$matches[0][$i].">",
$before."<img src='IMG/".$img."' ".$size." ".$bef." ".$btw." ".$aft." />".$after,
$to_return,1);
}
return $to_return;
}
// FIN du Filtre limit_images_size
il prend au maximum 3 paramètres :
- la largeur maximale (>0 sinon ignorée)
- la hauteur maximale (>0 sinon ignorée)
- si l’on veut ajouter un lien sur l’image (1=oui, 0=non).
Utilisation
on l’utilisera donc de la façon suivante :
[(#TEXTE|limit_images_size{400,0,1})]
Le dernier paramètre permet de spécifier si l’on veut (ou pas) un lien sur l’image. En effet l’image réduite perd de sa définition, on peut donc vouloir proposer à l’utilisateur un lien (sur l’image) pour ouvrir l’image à sa taille originale.
donc :
<img='IMG/jpg/img1.jpg' width=... height=... ...>
deviendra :
<a href='IMG/jpg/img1.jpg'><img='IMG/jpg/img1.jpg' width=... height=... ...></a>
Discussions par date d’activité
19 discussions
Bonsoir
cela ne focntionne pas :
[(#TEXTE|limit_images_size0,200,0)]
j’obtiens
Filtre limit_images_size non défini
deplus mes_fonctions.php est bien à la racine
merci pour votre aide
Répondre à ce message
Bonjour,
J’ai eu un problème un peu similaire (sur la taille des images) et je n’ai pas trouvé de réponse.
L’objectif est de réduire la taille des fichiers image présentes dans le dossier /IMG/jpg afin de limiter l’espace disque utilisé par le site.
En effet beaucoup de rédacteurs incluent des images sans trop savoir les réduire. On se retrouve avec des images en millions de pixels et donc des fichiers de 1 ou 2 Mo facile...
Or ces images ne seront jamais affichées dans ces formats sur les articles.
On ne peut pas simplement réduire les images du dossier jpg et les transférer car la base de données de SPIP (qui contient taille du fichier, résolution H, résolution W) est alors erronée et les images ne s’affichent pas correctement.
J’ai donc fait un petit script shell qui réduit les images et crée un fichier de commandes sql à exécuter ensuite sur la base de donnée. Ce script utilise ImageMagick pour redimensionner les images.
L’avantage est que le calcul de réduction des images est effectué en local donc sans limite de temps d’exécution de requète (qui pourrait être contraignant pour de trop grandes images côté serveur).
Je suis passé d’un site de 100Mo à une occupation de 18Mo.
Je joins SPIP_reduce_all_images_to_save_space.zip contenant le script webclean.sh et un howto.txt
Il faut renommer le fichier .png en .zip pour pouvoir accéder au contenu de l’archive (.zip refusé).
Le manuel plus détaillé s’affiche lors de l’appel du script sans arguments.
Ca peut toujours servir aux utilisateurs linux et donner des idées...
Il est clair que des développeurs SPIP peuvent faire beaucoup mieux (un plugin ?) mais je me dis que ça peut toujours dépanner en attendant !
TanaT.
Visiblement, on ne peut pas accéder à l’archive.
Je la mets là : http://le.pave.dans.la.mare.free.fr/download/SPIP_reduce_all_images_to_save_space.zip
TanaT
Répondre à ce message
bonjour, cette contrib ne marche pas avec la 1.8.2.g, il n’y a pas d’erreurs mais simplement les images ne se redimensionne plus.
C’est bien embettant car je voulais mettre à jour mon site en 1.8.1 pour la faille de securité.
si quelqu’un à une idée du probleme ? ou une autre sugestion pour avoir la meme chose que cette contrib compatible 1.8.2.g.
(je pense que c’est au niveau des nouvelles options de la 1.8.2)
Le filtre
|reduire_image
incluse dans la distribution de SPIP depuis la 1.8.2 fait la même chose et encore plus et mieux ;) (voir la doc)oui Mortimer je connais cette fonction elle marche bien et j’ai aussi testé avec. mais elle ne permet pas d’avoir le lien de l’image à taille réel sur l’image reduite dans le texte.
C’est dommage quand on a sur le server des images en grande résolutions et de ne pas pouvoir les visionner en 1 simple click.
ya peut-etre un moyen de rajouté le lien vers l’original dans le filtre
?
Répondre à ce message
Bonjour,
je ne comprend pas, je rajoute mes_fonctions.phph3 avec reduire_all_images.
Et spip me répond :Erreur : filtre « reduire_all_images » non défini
Je suis chez Free
(http://steph.brette.free.fr/spip/)
Voilà ma boucle :
“
[(#TEXTE|reduire_all_images500,x)]
”
Avez-vous une Idée ?
Répondre à ce message
bonjour,
je viens de copier ce filtre dans mes_fonctions et l’ai appelé dans mon squelette article, comme ça :
[(#TEXTE|limit_images_size{200,0,0})]
j’ai ajouté un overflow:hidden à mon div d’article pour éviter l’éclatement mais... bouhouhou ! l’image n’est pas redimentionnée :"(
quelqu’un a une idée ?
merci
à quoi il ressemble ce div ?
bonjour,
c’est un div float:left et width:600px
dans lequel est affiché le texte de l’article.
c’est pour ça que ce filtre m’interesse, pour ne pas avoir à « couper » les images avec l’overflow
je suis sous SPIP 1.7.2 et ma boucle(articles) englobe tout le squelette, de à
pour reprendre mon texte :
je suis sous SPIP 1.7.2 et ma boucle(articles) englobe tout le squelette, de <html> à </html>
stef
désolé pour le retard...
je ne pense pas que le problème vienne de la div ou de la boucle. Peut être c’est un bugs dans le code. Essai de mettre cette ligne :
à la place de la première ligne du filtre qui affecte $reg.
J’espere que cela aidera.
slt moi j ai une image de 46ko qui ne veut meme pas se télécharger d’un de mes fichier vous avez une petite idée
Je ne comprends pas ton problème.
peut être que tu pourrais expliquer un peu mieux...
Répondre à ce message
J’ai un problème sur ce script, pourtant, j’ai recopié l’intégralité.
Il affiche :
Warning : Compilation failed : missing ) at offset 105 in /pub/www/spip/mes_fonctions.php3 on line 96
Ci-dessous la page de code dans mes_fonctions.php
94 $to_return = preg_replace(« <".$matches[0][$i]."> »,
95 $before."".$after,
96 $to_return,1) ;
Merci d’avance
Cela doit être le bug vignette...
Pour palier à cela, j’ai une petite solution :
On ne fait le preg_replace que si c’est nécéssaire, grace à un booléen, mais cela requiert de regrouper les deux fonctions (redim_logo et limite_image_size)...
Voici ma fonction redim_img ; elle a été adapté aux besoins de mon site mais la rendre plus paramêtrable ne devrai pas poser de problèmes.
Il semble qu’il y ait des erreurs si l’article comporte des vignettes...
Merci Edith pour la correction de ce bug... mais maintenant si je veux avoir les liens sur les images pour les afficher (comme dans le filtre original), qu’est-ce qu’il faudrait rajouter ?
merci à toi
bonjour a tous,
j’ai étudié un peu la fonction du filtre limit_images_size ;
mais je ne pense pas que le problème pour le left ou right de la balise viennent de la. Je pensais que le centrage ne se faisait pas car il y avait des bordure, mais ce n’est pas le cas.
Enfait, ce que je pense, c’est que l’alignement ne se fait pas car dans la partie admin, l’image n’est pas resizé ; donc l’alignement n’est pas possible de ce coté ci.
Je me demande donc, s’il n’est pas possible de spécifier l’alignement du coté du squelette. Mais alors je ne vois pas comment le faire. Faudrait-il ajouté une variable au filtre pour pouvoir l’inscrire dans la syntaxe SPIP ?
j’attend vos remarques, si vous en avez ou si vous pensez que ca peut être utile....
ps : je parle du cas ou les images a resizer aurais un taille importante.
par avance merci,
Bonjour,
tu postes tes messages à des endroits bien bizares ;)
Enfin, je ne suis pas sûr d’avoir bien compris ce problème de right et left. Si l’image est trop large, c’est sûr qu’elle ne sera pas aligné comme il faut...
Le filtre n’est appliqué que sur l’espace public. Mais sur l’espace public il sera appliqué et l’alignement sera fait. il ne devrait donc pas y avoir de problème.
En résumé, je ne suis pas sûr de bien comprendre ce que tu veux :(
merci, et encore désolé pour le placement du message ( je croyait qu’il serait mis en bas).
Enfait, le filtre marche très bien, et j’ai bien compris qu’il n’est appliqué que en public. Mais prenons un exemple : j’ai une image de taille bocoup trop grande, le filtre va donc réduire cette taille. Je l’affiche dans mon article avec un , mais l’alignement se fait au milieu de ma page, et n’est pas aligné a gauche avec mon article.
Si l’image n’est pas trop grande, tout fonctionne. Mais j’ai le cas ou l’image est bocoup plus grande et la impossible de l’aligné comme je veux, elle est automatiquement centré (au milieu).
voila, je sais pas si j’ai été clair, en tout cas je l’espère.
Mais le problème se pose bien ché moi.
merci en tout cas pour tes réponses. :)
a bientot
ps:je cherche de mon coté mais je ne vois pas très bien comment faire, surtout si tu me dit que ce problème ne se pose que chez moi
désolé,
l’affichage dans l’article se fait avec un >emb|left<
Chez moi je tourne en 1.8pr1, alors je ne sais plus trop comment c’est fait avec la 1.7.2.
Enfin, sur mon site, l’alignement de l’image se fait par l’ajout d’un :
pour le centrer
ou
dans la balise IMG pour les alignements droit et gauche.
Si l’image laisse assez de place à droite (ou à gauche), alors l’alignement est fait. Mais si l’image est trop grande, alors l’image prend tout une ligne est a l’air centré.
Si tu réduis beaucoup l’image, cela ne marche toujours pas ?
Très bien merci,
je vais essayé de faire avec cela.
Mais la balise IMG et dans ton squelette ? car moi je ne fait l’affichage de l’image que depuis l’espace administrateur...
Enfin j’ai peur de ne pas tout comprendre.
Surtout que ca marche pour des images de taille moins importante.
merci beaucoup pour ton aide en tout cas.
bye
Justement, je ne suis pas sûr de bien tout comprendre au problème moi non plus ;)
Cette image se trouve dans l’article, pas dans le squelette.
re bonjour,
je suis vraiment désolé pour toutes ces questions, mais... la je sais pas quoi faire...
J’ai ajouté le sytème de lettrine proposé sur ce site, j’ai donc dans mon squelette :
#TEXTE|limit_images_size300,0,1|lettrine
mais dans ce cas, la lettrine foncionne, mais le resize d’image ne foncionne plus du tout. Quelqu’un voit il ou se trouve le conflit ?
Merci. :)
mais le filtre lettrine est appliqué après le filtre limiter... il ne devrait donc avoir aucune incidance.
Répondre à ce message
Il y a (à nouveau) un problème avec la regexp quand je teste sur la 1.8pr1. Cette nouvelle regexp marche mieux :
et devrait aussi être compatible avec les versions précédentes. Si un admin veut bien faire la modif ?
Répondre à ce message
Bravo ! Super boulot :-)
Un script indispensable pour tout webmaster qui se respecte.
Hoo, merci :)
Gracias y felicitaciones
La boucle DOCUMENTS
[(#EMBED_DOCUMENT|limit_images_size300,0,1)] ??????
Je n’ai pas bien compris la question ?
mais à la base le filtre ne s’applique qu’à redimentionner les images que Spip inclu dans le texte d’un article... il faut donc l’appliquer sur quelque chose du genre #TEXTE dans une boucle article.
la boucle va alors rechercher toutes les références à des images dans ce texte et les redimentionner.
Donc si la balise #EMBED_DOCUMENT retourne quelque chose comme <IMG blabla blabla>...</IMG>, ça devrait théoriquement marcher. Je n’ai jamais essayer, alors si quelqu’un essaye, ça serait cool de reporter :)
Fatal error : Call to undefined function : redimlogo() in c :\inetpub\wwwroot\lentreprenaute\mes_fonctions.php3 on line 47
[(#TEXTE|limit_images_size400,0,1)]
j’ai copié le code dans mes fonctions et fait un appel
comme ci dessus j’ai l’erreur fatal du dessus, what’s wrong ?
Florent
voir plus haut (juste avant le code)
« Si vous utilisez ce filtre n’oubliez pas qu’il faut également inclure le filtre redimlogo (Redimensionner un logo) dans votre fichier mes_fonctions.php3. »
:)
merci mortimer,
j’avais loupé cette etape !
sinon j’aimerai bien ouvrir une popup au dimension de l’image plutot que d’aficher l’image dans la meme fenetre.
ou peut on intervenir pour faire ca sur ce script ?
Florent
Pour ajouter une popup, ou changer le comportement quand l’utilisateur clique, il faut modifier cette partie du code :
la variable $before est ce qu’il faut ajouter avant la balise image
la variable $after ce qu’il faut rajouter après.
ici, on ajoute un lien a href avec le nom de l’image (.$img.), mais on pourrait ajouter d’autres paramètres au href, ou n’importe quoi.
notez qu’il faut bien passer le dernier paramètre par défaut $with_link à 1 si l’on veut que cela marche.
bonjour, j’ai un petit problème avec ce filtre, si quelqu’un pouvait m’aider.
J’ai tout suivie, donc
- > dans mon fichier mes_fonction.php3, j’ai mis le filtre si dessus, et le filtre redimLogo.
- >j’ai ajouté le code au sequelette article.
- > dans mon article, je place l’image avec la balise
- >.... mais voila j’ai un message d’erreur en bas de page :
Fatal error : Cannot redeclare limit_images_size() (previously declared in ...mes_fonctions.php3:8) in ../mes_fonctions.php3 on line 8
- > et le redimensionnement ne se fait pas.
si quelqu’un pouvait m’expliquer.
Merci d’avance.
apparemment, il prend 2 fois le fichier mes_fonctions.php3, tu es sûr de ne pas avoir un include(’mes_fonctions.php3’) ou qq chose du genre qui se balade dans un squelette ?
ho lala,
Merci beaucoup mon ami.
En effet, j’avais mis un include dans le fichier php, comme on fait d’habitude en php...
Mais désormais ca marche parfaitement.
Super merci encore... (très rapide la réponse en plus)
bye
Encore juste une petite question :
je sais pas si c gérable...
Mais lorsque l’image que je resize et trop grande, les paramètres left et right ne fonctionnent plus. j’aimerais savoir s’il est possible de modifier la fonction pour permettre cela. Car sinon l’affichage ne se fait que au centre.
Voila je ne sais pas si c’est possible.
Merci d’avance...
Répondre à ce message
D’abord le bug
J’ai constaté que la regexp employée laissait un ’ (simple quote) dans le btw.
Comme je suis tres tres mauvais en regexp, j’ai pas reussi à modifier cette affaire. Donc une solution est donnée en fin de message dans le code... mais pas très satisafaisante (si le core de SPIP est modifié plus tard, il faudra rebidouiller le filtre).
ensuite le popup
Moi j’aime bien l’idée de faire un popup joli à la bonne taille, alors j’ai mis cette fonctionnalité dans le code...
au total
Voilà le code :
Cette fonction m’intéresse, mais l’inconvénient est que la page devient très lourde à charger puisqu’on charge les images grand format (affichées petit).
J’aimerais créer une fonction qui fait un lien sur les images vers une image avec le suffixe _big qu’on mettrait sur le site par ftp.
J’ai essayé, je n’y arrive pas... alors si ça tente quelqu’un...
l’expression devient cela :
et le replace :
Je corige dans le code
je suis con. Le code est déjà publié, j’ai plus le droit de le corriger. Bon, vous pourrez le faire vous même :)
dśolé.
j’ai corrigé l’article, mortimer jette quand même un oeil stp :)
cool, il faudra que je regarde les autres bug de cette contrib un de ces jours.
Bon, je me suis planté, il faut échapé les / dans l’expression :
$reg = "/<img src='IMG\/([^']+)' ?([^ ]+) width='[^ ]+' ?([^ ]+) height='[^ ]+' (([^/]|\/[^>])+)\/>/";
désolé pour le dérangement.
Et voilà. j’avais oublié encore un / :
Répondre à ce message
Bravo, ca marche impec.
Juste un petit truc de corrigé : un
à rajouter.
Quasi vers la fin.
Sinon, si le redimensionnement etait trop petit, les commentaires de l’image commencaient sur le coté, et non au centre ce qui est peu esthétique.
Sinon, deux remarques :
tout d’abord, est il possible d’ouvrir l’image original dans une pop up, et non dans la meme page ?
Ensuite, est il possible que l’image, si elle est plus petite que la taille limite de ne pas la rendre cliquable, car ca n’a pas (peu) d’interet ?
Merci, et bravo.
Répondre à ce message
C’est parfait.
Le hic c’est que la taille d’une image à afficher
dépend essentiellement de la résolution d’écran
du visiteur.
J’ai plutot capturé cette résolution au login (aidé
par le fait que dans mon assoc, il faut se logger
pour acceder au site). Je calcule donc, par utilisateur,
la taille max à afficher (=largeur écran utilisateur x taux de
redimension du site) Le taux de redimension est le pourcentage
de largeur occupé par le texte de l’article par rapport
a la largeur écran. Dépend du site et non de l’utilisateur)
Cette taille max calculée est stockée ds les variables
session car elle dépend de l’utilisateur.
Quand on doit afficher une image, si sa largeur excède
la largeur max d’image pour l’utilisateur en session, on
calcule un ratio qu’on applique a la largeur et a la hauteur
de l’image.
Et zou...........
On en profite pour virer l’horrible petit encart de
commande qu’Internet Explorer se croit obligé d’afficher
quand on passe la souris sur l’image.
Et re-zou....................................
Répondre à ce message
Pourquoi vouloir redimensionner les images alors que SPIP le fait très bien à la taille que l’on veut.
Personnellement, je procède ainsi :
1/ Dans Administration > Administration de site > Configuration du site > Fonction avancées j’autorise la « Génération automatiquement les miniatures des images » et je renseigne le champ « Taille maximale des vignettes générées par le système : »
Il s’agit de la largeur, la hauteur étant calculée proportionnellement de façon automatique.
2/ Ensuite, en mode « écrire » il ne faut pas utiliser le mal nommé « Ajouter une image » mais « Ajouter un document ». Evidemment, le document que vous téléchargerez de votre DD sera une image. À ce stade-là, toutes les possibilités vous sont offertes. Soit inclure l’image (appelée alors vignette) automatiquement redimensionnée par SPIP en utilisant
<docXX|YY>
ou bien l’image en taille originale avec<embXX|YY>
.Suprême raffinement, vous pouvez choisir vous-même une taille différente en renseignant les champs « Dimensions : » XX x YY pixels.
Merci de m’indiquer la faille dans la procédure.
Tyrien
Il y a une raison pour laquelle SPIP sépare les images des autres documents. Les « images » sont traitées différemment des « documents multimédia » par SPIP, ce qui peut être très utile pour les sites comme le mien qui doivent séparer les deux types, notamment dans l’affichage des articles. Si tu télécharges les images en tant que documents, et non pas en tant qu’images, cette possibilité disparait.
Je n’ai pas possibilité d’administrer la génération auto des imagettes à l’endroit indiqué, sans doute y a-t-il quelque chose a faire au préalable ?
Pareil, je cherche les fonction de génération des ombres sur les imagettes, pas trouvé non plus, je cherche ;o)))
Merci.
Répondre à ce message
magnifique !
une images qui fait : 200 x 147 pixels
LE BLASON
avec ceci [(#TEXTE|limit_images_size400,0,1)]
comment quelle devient !
l’exemple vous semble t’il coherent.
ICI
Répondre à ce message
Voilà le message d’erreur que je rencontre lors de l’utilisation du filtre :
Et la ligne concernée, dans son contexte, dans le code de mon fichier mes_fonctions.php3 :
(espace ajouté volontairement à l’ouverture du tag IMG en HTML pour éviter interprétation du navigateur)
Pouvez-vous m’aider ? ce code me semble pourtant identique au vôtre...
Merci d’avance !
Apparemment il fallait rajouter
"/"
avant le>
de fermeture du tag IMG (ligne 222 dans mon code ci-dessus) puisque mes pages sont écrites en xhtml. Si mon expérience peut servir à quelqu’un...Répondre à ce message
Bravo mortimer !
Répondre à ce message
Bonjour !
- Je n’ai pas très bien compris comment on afit pour utiliser la fonction. Quand je place une image dans un article, je mets
<imgX|left>
où X est le no de l’image. Comment je le remplace par : [(#TEXTE|limit_images_size{400,0,1})] ?- Est-ce que cette fonction génère une deuxième image redimensionnée ou que l’image originale est simplement redimensionnée par le biais des attributs width et height dans la balise IMG ?
Merci
- quand tu écrits l’article, il n’y a rien à changer (apparemment il y a quelques pbls avec les documents inclus malheureusement, donc faire attention). C’est quand tu écrits ton squelette pour la page d’article, au lieu de mettre #TEXTE à l’intérieure de ta boucle ARTICLES, il faut mettre [(#TEXTE|limit_images_size400,0,1)]
- Ce script en utilise un autre : redimlogo qui recalcule les valeurs WIDTH et HEIGHT de la balise IMG. Il n’y a donc pas création d’une vignette, on compte sur
le browser pour faire le scale.
Théoriquement, ce filtre pourrait être la base pour un autre filtre qui crée une vraie vignette et remplace tout la balise IMG, mais je ne connais pas assez le PHP et les librairies d’images existantes pour faire cela.
Répondre à ce message
Super ! Merci beaucoup. Je débute avec SPIP et j’ai mis en place votre filtre pour faire un album photo en créant une rubrique-10.html. J’ai rajouté le #TEXTE avec le filtre, j’obtiens donc des vignettes. Je vais essayer d’améliorer maintenant, mais j’ai appris bcp de choses.
Répondre à ce message
Salut,
Merci pour ce script utile.
Seul problème : le titre de l’image (quand il y en a un) n’apparaît pas. Seul la description apparaît, mais elle suit l’image sur la gauche au lieu d’être en dessous.
Ma solution (provisoire) :
- très intuitivement (càd, au bonheur la chance, car je n’y connait rien en php), j’ai enlevé la ligne :
et enlevé (4 lignes avant la fin) :
Ca a l’air de fonctionner, même si ce
".$btw."
doit bien servir à qqch... ;-)Hum, pour être sur de rester compatible, j’essaie de capturer les autres paramètres passés à la balise image (titre, etc) avec $btw, $bef et $aft.
Mais apparemment, ça ne marche pas totalement comme il faut...
Si j’ai un peu de temps ces prochains jours, je regarderai ces quelques bugs.
merci
Répondre à ce message
Bonne idée que cette fonction, qui évite l’explosion des maquettes.
Il y a cependant un problème avec les vignettes des documents inétgrées dans le texte, un message d’erreur apparait :
Warning : Compilation failed : missing ) at offset in monsite/spip/mes fonctions.php on line 296
Je n’ai pas trouvé la source du problème.
et il y a quoi exactement ligne 296 de mes_fonctions.php ?
Oups, excuse-moi !
La ligne 296 correspond à
Je fais l’appel exactement comme tu dis qu’il faut faire. Le problème ne se pose que dans les pages qui affichent des vignettes de documents.
Dans les cas où il n’y a que des images, il n’y a aucun problème, ça fonctionne très bien. Si tu mets des docs dans le #TEXTE, ça part en vrille.
Voici des pages d’exemples :
http://www.sahariens.info/spip_sahara3/article.php3?id_article=202&recalcul=oui : ça marche très bien, l’image est retaillée
Pour info, sans ton filtre, ça donnerait ça :
http://www.sahariens.info/spip_sahara3/article_2.php3?id_article=202&recalcul=oui
http://www.sahariens.info/spip_sahara3/article.php3?id_article=426 &recalcul=oui : ça marche pas
Voilà ce que ça devrait donner
http://www.sahariens.info/spip_sahara3/article_2.php3?id_article=426 &recalcul=oui
NB : il y a un autre filtre : « decouper_en_page », mais il n’y a pas d’interaction entre les deux (c’est la première chose que j’ai vérifiée)
Si on regarde le source, les vignettes sont codées sous la forme suivante :
Il suffirait peut-être de ne pas traiter les images en dessous de la taille maxi ou d’une certaine taille (typiquement les vignettes), ou de ne pas traiter les images à l’intérieur d’un
Je te demande ton aide parce que les expressions régulières et moi, hein... Je tiens à te remercier de ta prise en charge rapide du problème
Tant que j’y suis, je te propose une idée : pourquoi ne pas permettre aussi la gestion des pourcentages ? L’idée serait de permettre de limiter la taille des images à 80% de la largeur d’affichage, par exemple, un peu sur le modèles des calques. Mais, bon, ceci est une autre histoire, et je ne sais même pas si c’est possible !
Merci
Répondre à ce message
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 : |