Erstellt vor 4 Jahren

Zuletzt geändert vor 3 Jahren

#1545 closed Fehler (wont-fix)

Opendocument-Parser nicht robust gegen Zeichenformate

Erstellt von: demofreak@… Verantwortlicher: s.schoeling@…
Priorität: normal Meilenstein:
Komponente: kivitendo ERP Version: 2.6.1
Schweregrad: Verbesserung Stichworte: Oberfläche
Beobachter: m.bunkus@…, s.schoeling@…

Beschreibung

Bei der Verwendung von Opendocument-Vorlagen kommt es manchmal zur irreführenden Fehlermeldung "Malformed if" bzw. "Malformed foreach", obwohl rein äußerlich syntaktisch alles in Ordnung ist.
Die Ursache sind Format-Tags im Opendocument-XML-Code, welche innerhalb der Formatvorlagen-Variablen bzw. -Tags eingefügt werden.

Beispiel:

&lt;%foreachrow <text:span Format="XYZ">number</text:span>%&gt;

Als Workaround habe ich bisher nur die Möglichkeit gefunden, in SL/Template.pm innerhalb von sub parse alle <text:span>-Tags zu entfernen.

$contents =~ s/<\/?text:span[>]*?>gi;.

Das verhindert als Seiteneffekt den Einsatz von Zeichenformaten im gesamten Dokument, Absatzformate funktionieren jedoch weiterhin.

Das gezielte Entfernen der Zeichenformat-Tags nur innerhalb des "&lt;% %&gt;"-Blocks gestaltet sich schwierig, weil das Tag theoretisch auch zwischen "&lt;" und "%" auftauchen kann und damit ein Match auf den Beginn des Blocks fehlschlägt.

Änderungshistorie (3)

comment:1 Geändert vor 4 Jahren durch s.schoeling@…

  • Status von new nach assigned, s.schoeling@linet-services.de geändert
  • Verantwortlicher von m.bunkus@… nach s.schoeling@… geändert

Ist bekannt, und wird aus genau den Gründen auch auf mittlere Sicht nicht behebbar sein.

Innerhalb eines foreachs hast Du noch Glück, dass es sofort beim Druck meckert. Wenn Du ein Konstrukt hast wie

<%foreachrow number%><text:span Format="XYZ"><%end foreach%></text:span>

Dann läuft der Druck durch und hinterher beklagt sich OpenOffice? einfach nur über ein fehlerhaftes odt.

Ergo: Aufpassen mit WYSIWYG Editoren. What you see might be slightly different from what you want.

Ich setz den mal auf assigned, aber nur damit da noch ein Dokumentationseintrag für kommt.

comment:2 Geändert vor 4 Jahren durch demofreak@…

Ich teste heute abend mit einer Variante herum, die ich bisher noch nicht testen konnte. Also mal noch nicht schliessen, bitte.

comment:3 Geändert vor 3 Jahren durch m.bunkus@…

  • Lösung auf wontfix gesetzt
  • Status von assigned nach closed, m.bunkus@linet-services.de geändert
Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.