====== parseFunc ====== Die Inhalte werden von ''parseFunc'' nach dem Laden aus der Datenbank verarbeitet und im Frontend ausgegeben. Die Originaldaten in der DB bleiben selbstverständlich unverändert. parseFunc kann Inhalte oder HTML-Elemente ersetzen und Attribute hinzufügen. ===== allowTags / denyTags ===== Kommaseparierte Listen der erlaubten bzw. verbotenen HTML-Elemente. Verbotene Elemente werden vor der Ausgabe im Frontend umgewandelt (die spitzen Klammern werden durch ''<'' und ''>'' ersetzt) und dadurch als Text mit ausgegeben (''bold''). Die Angaben unter ''allowTags'' haben Priorität vor ''denyTags''. # Entfernt alle Elemente außer

und

parseFunc.allowTags = p,div parseFunc.denyTags = * ===== constants ===== ''constants = 1'' erlaubt das Ersetzen von Konstanten, die über das //Top Level Object// **CONSTANTS** definiert wurden, in Inhaltselementen und im TS festgelegten Werten (''10.value = XY''). ===== short ===== Ersetzt ebenfalls Strings. # Ersetzt alle Vorkommen des Strings "HTML" in "Hypertext Markup Language" # Inhaltselemente lib.parseFunc_RTE.short.HTML = Hypertext Markup Language # Alle ausgegebenen Elemente (z.B. auch Menüs) page.stdWrap.parseFunc.short.HTML = Hypertext Markup Language ===== externalBlocks ===== Hiermit wird der Inhalt aufgeteilt, bevor er an ''parseFunc'' übergeben wird: Nur der Inhalt außerhalb der definierten HTML-Elemente wird geparst. Als //externalBlocks// definierte HTML-Elemente sind also z.B. von denyTags nicht betroffen. Diese Elemente müssen zwingend definiert werden (''externalBlocks = p,div''), bevor sie verarbeitet werden können. 10 = TEXT 10.value = bold bleibt bold, italic nicht. 10.parseFunc { externalBlocks = b externalBlocks { ... } denyTags = b,i } # Ausgabe: bold bleibt bold, <i>italic</i> nicht. ==== externalBlocks.[Tag].callRecursive ==== Mit ''callRecursive= 1'' wird der Inhalt des Blocks ein zweites Mal an ''parseFunc'' übergeben, um die folgenden Eigenschaften anzuwenden. Lediglich bei ''externalBlocks.[Tag].stdWrap'' ist diese Aktivierung nicht erforderlich. ==== externalBlocks.[Tag].callRecursive.alternativeWrap ==== Ersetzt das HTML-Element durch einen zu definierenden Wrap. 10 = TEXT 10.value = Inhalt 10.parseFunc { externalBlocks = b externalBlocks.b.callRecursive = 1 externalBlocks.b.callRecursive.alternativeWrap = | } # Ausgabe: Inhalt ==== externalBlocks.[Tag].callRecursive.tagStdWrap ==== Ermöglicht das Anwenden von ''stdWrap''-Funktionen auf das __einleitende__ Tag. So lassen sich z.B. mittel ''HTMLparser'' Attribute ergänzen. 10 = TEXT 10.value = Inhalt 10.parseFunc { externalBlocks = b externalBlocks.b.callRecursive = 1 externalBlocks.b.callRecursive.tagStdWrap.HTMLparser = 1 externalBlocks.b.callRecursive.tagStdWrap.HTMLparser.tags.b.overrideAttribs = style=color:red;" } # Ausgabe: Inhalt ==== externalBlocks.[Tag].callRecursive.dontWrapSelf ==== ''dontWrapSelf = 1'' entfernt das definierte HTML-Element. Alle __rekursiv__ angewendeten Wraps haben dann allerdings keine Wirkung auf das Element. 10 = TEXT 10.value = Inhalt 10.parseFunc { externalBlocks = b externalBlocks.b.stdWrap.wrap = | externalBlocks.b.callRecursive = 1 externalBlocks.b.callRecursive.alternativeWrap = | externalBlocks.b.callRecursive.dontWrapSelf = 1 } # Ausgabe: Inhalt ==== externalBlocks.[Tag].stdWrap ==== Ermöglicht stdWrap-Funktionen unabhängig vom rekursiven Aufruf. 10 = TEXT 10.value = Inhalt 10.parseFunc { externalBlocks = b externalBlocks.b.stdWrap.wrap = | } # Ausgabe: Inhalt ===== makelinks ===== boolean. Wandelt alle Strings mit //%%http://%%// und //mailto:// in Links um.