You are not logged in.
Pages: 1
Topic closed
Bonsoir,
J'essaie de créer un modèle de notification assez complexe sous GLPI 0.78.2 permettant par exemple d'afficher le dernier suivi réalisé ainsi que l'historique complet des suivis.
J'utilise pour ce faire un modèle de ce type (sans le formatage HTML pour plus de lisibilité) :
##IFticket.action=Nouveau suivi pour ce ticket##
##FOREACH LAST followups##
Un nouveau suivi pour ce ticket a été ajouté par ##followup.author## : ##followup.description##
##ENDFOREACHfollowups##Historique des suivis (##ticket.numberoffollowups##)
##FOREACHfollowups##
Le ##followup.date##, ##followup.author## a écrit:
##followup.description##
##ENDFOREACHfollowups##
Il semble que le code de détection des fins de balise soit de type "greedy" et capture le plus de lignes possibles : il détecte la fin de la première balise à la dernière ligne et n'interprète pas le deuxième FOREACH.
En rendant l'expression régulière "ungreedy" (je ne sais pas comment on traduit), tout fonctionne parfaitement :
--- inc/notificationtemplate.class.php.orig 2011-01-24 01:52:54.000000000 +0100
+++ inc/notificationtemplate.class.php 2011-01-24 02:20:21.000000000 +0100
@@ -267,7 +267,7 @@
$string, $out)) {
foreach ($out[3] as $id => $tag_infos) {
- $regex = "/".$out[0][$id]."(.*)##ENDFOREACH".$tag_infos."##/is";
+ $regex = "/".$out[0][$id]."(.*?)##ENDFOREACH".$tag_infos."##/is";
if (preg_match($regex,$string,$tag_out)
&& isset($data[$tag_infos])
Je ne vois pas de problème potentiel à cette modification qui cherchera la balise de fermeture la plus proche possible de celle d'ouverture (à moins d'avoir plusieurs FOREACH de même type imbriqués, ce qui n'a pas vraiment de sens).
Il semble que la détection du ENDIF soit déjà de type "Ungreedy" via le modifieur "/Uis".
Nicolas
Last edited by sarabanjina (2011-02-02 12:34:14)
GLPI 0.78.2 on Debian Etch 64 bits running on Xen 4.0
Offline
Effectivement le /U du if rend ungreedy le check.
Je le rajoute pour le foreach.
Ticket ajouté et traité : https://forge.indepnet.net/issues/2628
MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI : Support Contribute References Freshmeat
Offline
Pages: 1
Topic closed