HELLO EVERYONE.
I JUST TRIED TO USE THIS NICE FEATURE OF SMARTY:
HTTP://SMARTY.PHP.NET/MANUAL/EN/VARIABLE.DEFAULT.MODIFIERS.P
HP
I THINK THAT AUTO-ESCAPING OF ALL VALUES WHEN OUTPUTTING
THEM IS A GREAT
IDEA, SO I SET $THIS->DEFAULT_MODIFIERS =
ARRAY('ESCAPE:"HTML"');
IT WORKED NICE UNTIL I TRIED TO USE FOREACH TO ITERATE OVER
ARRAY OF
ARRAYS. I GOT LOTS OF MESSAGES LIKE THIS:
WARNING: HTMLSPECIALCHARS() EXPECTS PARAMETER 1 TO BE
STRING, ARRAY
GIVEN...
THE SAME WARNINGS WERE DISPLAYED WHEN USING "{IF
$ARRAY}".
I LOOKED INTO COMPILED TEMPLATES AND FOUND THAT SMARTY
APPLIES DEFAULT
MODIFIERS TO ALL PARAMETERS OF FOREACH, INCLUDING
"FROM=$ARRAY_OF_ARRAYS",
AND THIS GENERATES WARNING.
HIDING WARNINGS IS A BAD PRACTICE, SO I'M LOOKING FOR
ANOTHER SOLUTION FOR
THIS PROBLEM. BY NOW I HACKED _COMPILE_FOREACH_START AND
_COMPILE_IF_TAG
SO THAT DEFAULT_MODIFIERS ARE TOGGLED OFF IN THE BEGINNING
AND RESTORED AT
THE END OF METHODS. I UNDERSTAND THIS IS ONLY PARTIAL
SOLUTION.
CAN ANYONE, HAVING DEEPER KNOWLEDGE OF SMARTY COMPILER,
SUGGEST BETTER WAY
TO FIX THIS?
OR SHOULD I WRITE ABOUT MY PROBLEM TO DEV LIST?
--
SINCERELY YOURS, ARTY
[ (I): HTTP://ARTY.NAME ]
--
SMARTY GENERAL MAILING LIST (HTTP://SMARTY.PHP.NET/)
TO UNSUBSCRIBE, VISIT: HTTP://WWW.PHP.NET/UNSUB.PHP
|