http://helma.org/bugs/show_bug.cgi?id=625 Summary: format() enkodiert Makro-Parameter
Product: Helma
Version: CVS trunk
Platform: All
OS/Version: All
Status: NEW
Severity: major
Priority: P1
Component: Web Support
AssignedTo:
helma-dev@...
ReportedBy:
interface@...
Obwohl die Methode format() die sog. "spitzen Klammern" < und > von Macros
unverändert lässt -- außer sie stehen in einem <code>-Element --, werden in
Makro-Parametern z.B. Umlaute als HTML-Entities enkodiert:
format("<% foo füübär %>");
// ergibt: <% test füübär %>
Möchte man nun gerade auf die besondere Behandlung des <code>-Elements
zurückgreifen, gestaltet sich das mit solchen Makro-Parametern als unmöglich:
global.foo_macro = function(param, s) {
res.write(s);
}
renderSkin(createSkin(format("<code><% foo füübär %></code> <% foo füübär
%>")));
// ergibt: <code><% foo füübär %></code>
füübär
Der so encodierte Makro-Parameter ist für eine weiter Verwendung (z.B: als
Accessname für ein HopObject) unbrauchbar geworden.
Die Umkehrung der Reihenfolge (erst renderSkin, dann format) führt dazu, dass
das im <code>-Element eingebundene Macro auch ausgeführt und anstelle des
Macro-Codes, das Resultat angezeigt wird (im Fall eines undefinierten oder
"unhandled" Macros ein Fehler).
Lässt sich das beheben und wenn ja, könnte das bald passieren? Es ist
ziemlich dringend, der Antville-Code steckt derzeit in der Zwickmühle, in
Stories entweder keine Bilder mit Umlauten oder viele Macro-Fehlermeldungen
anzuzeigen.
Ein Workaround für das <code>-Problem existiert zwar, ist aber schom zum Lesen
eine Qual:
<code><</code><code>% macro code %</code><code>></code>
--
Configure bugmail:
http://helma.org/bugs/userprefs.cgi?tab=email------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
_______________________________________________
Helma-dev mailing list
Helma-dev@...
http://helma.org/mailman/listinfo/helma-dev