parseFunc

Dieses Objekt wird benutzt, um irgendwelchen Inhalt mit Sachen wie besonderen typo-Tags, die makeLinks-Sachen und so weiter zu parsen.

Beispiel

Dieses Beispiel nimmt den Inhalt des Feldes bodytext, lässt ihn durch die makelinks-Funktion laufen und ersetzt alle <LINK>- und <TYPOLIST>-Tags durch etwas anderes.

  1. tt_content.text.default {
  2.   20 = TEXT
  3.   20.field = bodytext
  4.   20.wrap = | <BR>
  5.   20.brTag = <br>
  6.   20.parseFunc {
  7.     makelinks = 1
  8.     makelinks.http.keep = path
  9.     makelinks.http.extTarget = _blank
  10.     makelinks.mailto.keep = path
  11.     tags {
  12.       link = TEXT
  13.       link {
  14.         current = 1
  15.         typolink.extTarget = _blank
  16.         typolink.target={$cLinkTagTarget}
  17.         typolink.wrap = <B><FONT color=red>|</FONT></B>
  18.         typolink.parameter.data = parameters : allParams
  19.       }
  20.       typolist < tt_content.bullets.default.20
  21.       typolist.trim = 1
  22.       typolist.field >
  23.       typolist.current = 1
  24.     }
  25.   }
  26. }


Eigenschaft

Datentyp

Beschreibung

Standard

externalBlocks

Liste von Tagnamen + Eigenschaften

Diese Eigenschaft ermöglicht es Ihnen, den an parseFunc übergebenen Inhalt im Vorraus aufzuteilen, sodass nur Inhalt außerhalb der übergebenen Tags geparst wird.

Besondere Eigenschaften:

  • .[Tagname]
    • callRecursive = [boolean]: Wenn diese Eigenschaft gesetzt ist, wird der Inhalt des Blocks ein weiteres Mal an parseFunc weitergereicht. Sonst wird der Inhalt einfach ohne jede weitere Bearbeitung - abgesehen von stdWrap (siehe unten) - durchgegeben.
    • callRecursive.dontWrapSelf = [boolean]: Wenn diese Eigenschaft gesetzt ist, wird der von parseFunc zurückgelieferte Inhalt NICHT von den Tags umschlossen.
    • callRecursive.alternativeWrap: Alternativer Umschluss anstelle der Original-Tags.
    • callRecursive.tagStdWrap: »stdWrap-Bearbeitung der Tags des Blocks.
    • stdWrap: »stdWrap-Bearbeitung des gesamten Blocks (ob callRecursive gesetzt ist oder nicht)
    • stripNLprev = [boolean]: Entfernt den letzten Zeilenumbruch des vorangehenden äußeren Blocks
    • stripNLnext = [boolean]: Entfernt den ersten Zeilenumbruch des nachfolgenden äußeren Block
    • stripNL = [boolean]: Macht beides oben genannte.
    • HTMLtableCells = [boolean]: Wenn diese Eigenschaft gesetzt ist, wird davon ausgegangen, dass es sich beim Inhalt um eine Tabelle handelt, und jede Zelle wird einzeln durchgegangen.
    • HTMLtableCells.[default/1/2/3] (mit default werden alle Zellen angesprochen, und mit 1, 2, 3, ... die speziellen Zellen)
      • callRecursive = [boolean]: Der Inhalt wird an die aktuelle parseFunc-Funktion übergeben.
      • stdWrap: »stdWrap-Bearbeitung des Zelleninhalts.
      • tagStdWrap: Der <TD>-Tag wird von »stdWrap bearbeitet.
    • HTMLtableCells.addChr10BetweenParagraphs = [boolean]: Wenn diese Eigenschaft gesetzt ist, wird jedes Auftreten von <P></P> von einem chr(10) (Zeilenumbruch) gefolg sein.

Beispiel:
Dieses Beispiel wird benutzt, um regulären Text aufzuteilen, sodass Tabellen und Zitate korrekt verarbeitet werden. Die Zitate werden (rekursiv) wieder an parseFunc weitergeleitet und außerdem wird ihr oberer/unterer Außenabstand auf 0 gesetzt, (sodass keine Zeilenumbrüche sichtbar sind).
Bei der Darstellung der Tabellen werden ebenfalls einige Eigenschaften der Zellen überschrieben.

tt_content.text.20.parseFunc.externalBlocks {
  blockquote.callRecursive=1
  blockquote.callRecursive.tagStdWrap.HTMLparser = 1
  blockquote.callRecursive.tagStdWrap.HTMLparser {
    tags.blockquote.fixAttrib.style.list = marginbottom:0;margin-top:0;
    tags.blockquote.fixAttrib.style.always=1
  }
   blockquote.stripNLprev=1
  blockquote.stripNLnext=1
  table.stripNL=1
  table.stdWrap.HTMLparser = 1
  table.stdWrap.HTMLparser {
    tags.table.overrideAttribs = border=0 cellpadding=2 cellspacing=1 style="margin-top:10px; marginbottom:10px;"
    tags.tr.allowedAttribs=0
    tags.td.overrideAttribs = valign=top bgcolor="#eeeeee" style="font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size:10px;"
  }
}

constants

boolean

Die auf toplevel-Ebene definierten Konstanten werden im Text ersetzt. Der Konstantenname wird von ### umschlossen.

Beispiel:
constants.EMAIL = email@email.de
(ANMERKUNG: Das hier ist toplevel-Typoscript)
Jedes Auftreten von ###EMAIL### wird dann im Text ersetzt. Die Konstanten werden als toplevel-Objekt definiert.

short

Array von strings

Wie »constants, allerdings lokal.

Beispiel:
Dies ersetzt jedes Auftreten von T3 mit Typo3 CMS und T3web mit einem Link auf typo3.net

short {
T3 = Typo3 CMS
T3web = <a href="http://www.typo3.com">typo3</a>
}

plainTextStdWrap

»stdWrap

Diese Eigenschaft gibt die stdWrap-Eigenschaften für den Inhalt außerhalb der Tags.

userFunc

Funktionsname

Dies übergibt den Inhalt außerhalb der Tags an eine Funktion Ihrer Wahl. Ähnlich wie z.B. ».postUserFunc in stdWrap.
Denken Sie daran, dass dem Funktionsnamen möglicherweise user_ vorangestellt sein muss.

nonTypoTagStdWrap

»stdWrap

Wie ».plainTextStdWrap. Unterschied:
plainTextStdWrap arbeitet mit ALLEN nicht umschlossenen Abschnitten im Text.
nonTypoTagStdWrap ist eine Nachbearbeitung des gesamten Textes (einschließlich Tags) zwischen den besonderen TypoTags (außer, .breakoutTypoTagContent ist für den TypoTag nicht gesetzt).

nonTypoTagUserFunc

Funktionsname

Wie »userFunc. Der Unterschied ist (wie bei »nonTypoTagStdWrap), dass dies eine Nachbearbeitung aller Inhaltsstücke um die TypoTags darstellt, während .userFunc jeden Inhalt außerhalb der Tags bearbeitet (ANMERKUNG: .breakoutTypoTagContent muss für den TypoTag gesetzt sein, wenn dieser von nonTypoTagContent ausgeschlossen ist)

sword

wrap

Markiert alle Wörter aus dem mit GET überlieferten Array sword_list[] im Text. Das Wort MUSS mindestens zwei Zeichen lang sein.
ANMERKUNG: Funktinoniert nur mit $GLOBALS["TSFE"]->no_cache==1

<font color="red"> | </font>

makelinks

boolean / »makelinks

Konvertiert Webadressen mit http:// am Anfang und Mail-Adressen mit mailto: am Anfang in Links.

tags

»tags

Hier können Sie die benutzerdefinierten Tags angeben, die den Inhalt in irgendetwas parsen.

allowTags

Liste von strings

Liste von Tags, die im Code vorhanden sein dürfen.
Höhere Priorität: Wenn ein Tag in allowTags gefunden wird, wird »denyTags ignoriert.

denyTags

Liste von strings

Liste von Tags, die NICHT im Code vorhanden sein dürfen (Benutzen Sie *, um alle Tags anzusprechen).
Geringere Priorität: Wenn ein Tag NICHT in »allowTags gefunden wird, wird denyTags überprüft. Wenn denyTags nicht gleich * ist, und der Tag nicht in der Liste gefunden wird, darf er im Code vorkommen.

Beispiel:
Dies ermöglicht, <B>- <I>- <A>- und <IMG>-Tags, im Code zu existieren:
.allowTags=b,i,a,img
.denyTags=*

if

»if

Wenn if den Wert falsch zurückliefert, wird der Inhalt nicht geparst, sondern direkt zurückgeliefert.


Kommentare von registrierten Benutzern:

Keine Kommentare vorhanden!



Seite drucken
 
TYPO3 Version 4.2.0 testen

TYPO3 Ver. 4.2.0 testen

Testen Sie die neue TYPO3 Version 4.2.0 kostenlos für einen Monat

TYPO3 Bücher

TYPO3 Workshops


TYPO3 Einführungsschulung
in Berlin:
Montag, 22.09.
in Espelkamp:
Freitag, 10.10.

TYPO3 Intensivschulung
in Köln:
Mo., 01.09. - Mi., 03.09.
in Berlin:

Mi., 24.09. - Fr., 26.09.
in Espelkamp:

Mo., 06.10. - Mi., 08.10.
in Würzburg:
Mo., 27.10. - Mi., 29.10.

TYPO3 Extensionschulung
in Berlin:
Mo., 29.09. - Mi., 01.10.
in Espelkamp:
Mo., 13.10. - Mi., 15.10.