[Typo3-german] wrap, stdWrap, allWrap, linkWrap ????

Ernesto Baschny [cron IT] ernst at cron-it.de
Fri Aug 19 10:39:44 CEST 2005


Andreas Kern schrieb am 19.08.2005 09:09:

> ich verliere irgendwie den Überblick was das wrap angeht.
> Was für wraps gibts noch alles ausser das wrap, stdWrap, allWrap,
> linkWrap ? Wo liegen die wesentlichen Unterschiede ?
> Ich würd mich gerne über das komplette wrap Thema schlau machen kann
> aber nirgends in den Dokus ect vernünftige erklärungen finden ;-(
> Kann mir da jemand ein bischen auf die Sprünge helfen oder gibts evtl
> irgendwo ein Tutorial über das "große" thema wrap ?

So gross und kompliziert ist das gar nicht.

Zunächst:

"wrap" bedeutet einfach etwas "drum-herum" zu kleben. Als Platzhalter
für den Inhalt gilt das "|" Zeichen. z.B. "<h2>|</h2>" würde einfach
H2-Tags um den Inhalt hauen.

"stdWrap" ist eine ziemlich umfangreiche Sammlung von Funktionen, die
man auf Inhalte anwenden kann. Hier kann man genau durchlesen, was da
alles möglich ist:

http://typo3.org/documentation/document-library/doc_core_tsref/stdWrap/

Alles andere (linkWrap, allWrap, beforeWrap, usw) sind lediglich die
Namen von Eigenschaften einzelner Objekte oder Plugins. D.h. hier muss
man die entsprechende Doku durchlesen, um zu verstehen, wo sie sich
genau auswirken. Manchmal ist das selbst aus der Doku nicht wirklich
einsichtig, da muss man halt mal ausprobieren.

Schauen wir am einfachsten mal die Doku zu TMENUITEM durch, dort gibts
alle möglichen Varianten:

http://typo3.org/documentation/document-library/doc_core_tsref/TMENUITEM/

Fängt an mit:

"allWrap"
Typ: wrap/+stdWrap
Beschreibung: Wraps the whole item

Hier wird ein "wrap" (also etwas in der Form "xxx | yyy") erwartet. Laut
Doku wird der komplette Menüeintrag mit diesem Wrap umzingelt (also samt
Link, Text, usw).

Auch steht da "/+stdWrap". Immer wenn wir etwas vom Typ "/+stdWrap" laut
Doku ist, heisst das einfach nur, dass der Inhalt dieser Eigenschaft
*zusätzlich* durch die stdWrap Funktion geht. D.h. solche Dinge würden
in diesen Fall möglich sein:

 .allWrap = <div class="{field:title}">|</div>
 .allWrap.insertData = 1

Du siehst in der Doku zu stdWrap, dass, wenn "insertData" gesetzt ist,
im Inhalt bestimmte Variablen ersetzt werden. Ohne dem Zusatz
"/+stdWrap" wäre das nicht möglich.

Dann gibts:

"wrapItemAndSub"
Typ: wrap
Beschreibung: Wraps the whole item and any submenu concatenated to it.

Hier wird nur ein "wrap" erwartet. Da ohne Zusatz stdWrap, kann man hier
nichts weiter machen, als etwas in der Form "xxx | yyy" definieren.

Noch eines:

"before"
Typ: HTML +stdWrap
Beschreibung: gibts keine :)

So, das ist das wieder mit +stdWrap. Diesmal soll der Wert der
Eigenschaft einfach irgendein HTML-Code sein, der dann zusätzlich noch
durch stdWrap geht, welcher dann vor den Link gesetzt wird. So sind auch
solche Dinge möglich:

  .before.value.field = header
  .before.wrap = <h1>|</h1>

D.h. der Inhalt kommt direkt aus dem Feld "header" und wird durch
stdWrap auch noch gewrappt ("wrap" kann stdWrap auch). Man erkennt da
auch, dass das "beforeWrap" vom TMENUITEM eigentlich nicht wirklich
nützlich ist, weil das bei stdWrap ja auch schon "dabei" ist, d.h. das
sollte äquivalent sein:

  .before.wrap = ...

  .beforeWrap = ...

So kannst du die Doku weiterverfolgen. Da wirst du sehen, dass
"linkWrap", "allStdWrap" eigentlich immer das gleich sind, nur werden
die an unterschiedlichen Stellen angewendet. Bei einem TMENUITEM ist das
relativ komplex, deswegen ist es uns hier möglich an den
unterschiedlichsten Stellen einzugreifen. Das einzig komplizierte ist zu
verstehen, wo die Wraps genau greifen. Ich denke das schaut in Etwa so aus:

<wrapItemAndSub>
 <allWrap>
 <allStdWrap>
 <before>
 <beforeImg beforeImgTagParams>
 <linkWrap>
  <A HREF=... ATagParams TITLE=ATagTitle>
    <stdWrap> TMENUITEM </stdWrap>
  </A>
 </linkWrap>
 <after>
 </allStdWrap>
 </allWrap>
   UNTERMENU 1
   UNTERMENU 2
</wrapItemAndSub>

Alles klar? ;)

Gruss,
Ernesto



More information about the TYPO3-german mailing list