TEMPLATE

Eigenschaft

Datentyp

Beschreibung

Standard

template

cObjekt

Hierhinein muss der Template-Code geladen werden. Sonst liefert das Objekt nichts zurück.

subparts

Array... von cObject

Dies ist ein Array mit Subpart-Markern (unter Berücksichtigung von Groß- und Kleinschreibung).

Ein Subpart wird von zwei Markern im Template definiert. Die Marker müssen auf beiden Seiten von "###" umgeben sein. Sie können die Subpart-Marker innerhalb von HTML-Kommentar-Tags einfügen.

Beispiel:
 

subparts {
HALLO = TEXT
HALLO.value = En subpart er blevet erstattet!!
}
 

Im Template:
<!-- start of subpart: ###HALLO### -->
Das ist der HTML-Code, der ins Register geladen und mit dem Ergebis ersetzt wird...
<!-- end ###HALLO### -->

ANMERKUNG:
Bevor die Inhaltsobjekte für jeden Subpart erzeugt werden, werden alle Subparts extrahiert und ins Register geladen, sodass Sie später auf sie zugreifen können.
Der Registerschlüssel für jeden Subpart-Code ist "SUBPART_[DerSubpartschlüssel]". Zusätzlich wird in den derzeitige Wert der Inhalt jedes Subparts geladen, genau bevor das Inhaltsobjekt für dieses Subpart geparst wird. Das macht es recht einfach, den Subpart für das Inhaltsobjekt zu laden (z.B. ".current=1").
Der Subpart oben z.B. hat den Registerschlüssel "SUBPART_HALLO".
Dies trifft NUR zu, wenn die Eigenschaft .nonCachedSubst nicht gesetzt ist (siehe unten)

relPathPrefix

string / Eigenschaften

Findet alle relativen Referenzen (zum Beispiel zu Bildern oder Stylesheets) und stellt ihnen diesen Wert voran.

Wenn Sie Eigenschaften definieren, werden diese HTML-Tags zugeordnet (kleingeschrieben) und geben alternative Pfade für diese an. Siehe Beispiel unten.

Wenn die Eigenschaft "style" heißt, wird ein alternativer Pfad für die "url()"-Anweisung, die in <STYLE>-Bereichen vorkommen könnte, gesetzt.

Beispiel:
 

page.10 = TEMPLATE
page.10 {
template = FILE
template.file = fileadmin/template.html
relPathPrefix = fileadmin/
relPathPrefix.img = fileadmin/img/
}
 

In diesem Beispiel wird allen gefundenen relativen Pfaden "fileadmin/" vorangestellt, es sei denn, es handelt sich um das src-Attribut eines img-Tags, in welchem Fall dem Pfad "fileadmin/img/" vorangestellt wird.

marks

Array... von cObject

Dies ist ein Array mit Markern (Groß- und Kleinschreibungs beachten).

Ein Marker wird von einem einfachen Platzhalter in der Designvorlage definiert. Der Marker muss auf beiden Seiten von "###" umgeben sein. Anders als bei Subparts, sollten die Marker NICHT innerhalb von HTML-Kommentar-Tags platziert werden. (Sie werden nicht entfernt).

Marker werden von einer str_replace()-Funktion ersetzt. Die ins Register geladenen Subparts sind auch für die Inhaltsobjekte der Marker verfügbar (nur wenn .nonCachedSubst nicht gesetzt ist).

wraps

Array... von cObject

Ein Array mit Wrap-Markern (auf Groß- und Kleinschreibung achten.
Das lässt sich am Besten anhand eines Beispiels zeigen:

Beispiel:
 

subparts {
MEINLINK = TEXT
MEINLINK.value = <A href="#"> | </A>
}
 

Im Template:
Das ist <!-- ###MEINLINK### -->ein Link zu meiner<!-- ###MEINLINK### --> Seite

In diesem Beispiel wird der MEINLINK-Subpart durch den Wrap ersetzt, welcher der zurückgelieferte Inhalt des MEINLINK-Objektes ist.

workOnSubpart

string

Eine optionale Definition eines Subparts, an dem zu arbeiten wir uns entschließen. In anderen Worten: Wenn Sie diesen Wert angeben, wird dieser Subpart aus der Designvorlage extrahiert und ist die Basis für das gesamte Template-Objekt.

markerWrap

wrap

Der Wrap, mit dem die Marker gewrappt werden. Der Vorgabewert ist ### | ###, was darin resultiert, dass die Marker als ###[Markerschlüssel]### präsentiert werden. Sämtlicher Freiraum um die Marker wird entfernt, bevor der Markerschlüssel gewrapt wird.

### | ###

substMarksSeperatly

boolean

Wenn gesetzt, werden die Marker in Inhalt NACH dem Ersetzen der Subparts und Wraps ersetzt.

Normalerweise werden Marker nicht innerhalb von Subparts und Wraps ersetzt, wenn Sie den standardmäßigen gecachten Modus des TEMPLATE-Inhaltsobjektes verwenden. Das ist ein Problem, wenn Sie Marker innerhalb von Subparts haben. Aber das Setzen dieser Eigenschaft wird aus dem Ersetzen dieser Marker einen nicht-gecachten, anschließenden Prozess machen.
Eine andere Möglichkeit ist das Abschalten des Cachens, siehe unten.

nonCachedSubst

boolean

Wenn gesetzt, ist der Ersetzungsmodus dieses Inhaltobjektes völlig anders. Normalerweise wird die Roh-Designvorlage gelesen und anhand von Markern, Subparts und Wraps in Abschnitte geteilt. Der Vorteil ist eine hohe Geschwindigkeit, da diese "vor-geparste" Designvorlage gecacht wird. Der Nachteil ist, dass Designvorlagen, die von inkrementeller Ersetzung abhängig sind (wo die Reihenfolge des Ersetzens also wichtig ist), nicht so gut funkionieren.

Durch das Setzen dieser Eigenschaft, werden zunächst die Marker einer nach dem anderen durch str_replace ersetzt. Danach die Subparts einer nach dem anderen. Und schließlich die Wraps einer nach dem anderen.
Offensichtlich verlieren Sie dadurch die Möglichkeit, andere Teile der Designvorlage mit Registerschlüsseln, wie oben beschrieben, zu referenzieren.


Kommentare von registrierten Benutzern:

Kommentar von: Kai Sören Kotzian

24. 02. 2007, 15:29
Ich möchte mit <b>marks</b> auf Bereiche in meiner Vorlage zugreifen. Diese sieht wie folgt aus:
Html4strict:Zeilennummerierung:  An / Aus

  1. <div id="header">
  2.         <div id="site-name">Site ame</div>
  3.         <div id="search">
  4.                 <form action="">
  5.                 <label for="searchsite">Site Search:</label>
  6.                 <input id="searchsite" name="searchsite" type="text" />
  7. ...
  8.                 </form>
  9.         </div>
  10. </div>
  11. ...


Leider gibt Typo3 keine Inhalt an <div id="site-name"> aus, obwohl ich es mit folgendem Code anspreche.
Typoscript:Zeilennummerierung:  An / Aus

  1. page.10.marks.SITE-NAME = TEXT
  2. page.10.marks.SITE-NAME.value = Beispiel Text

auch folgendes ist nicht erfolgreich.

Typoscript:Zeilennummerierung:  An / Aus

  1. page.10.marks.site-name = TEXT
  2. page.10.marks.site-name.value = Beispiel Text


Profil

Kommentar von: Oliver

26. 09. 2006, 13:04
Das Beispiel funktioniert nicht, weil fälschlicherweise 2 verschiedene Marker-Namen verwendet wurden (MEINLINK und MYLINK)...

Profil

Kommentar von: Redmann

25. 07. 2006, 16:03
also irgendwie funktioniert das Bsp. mit dem "MEINLINK" nicht!

Muss mann noch irgendwas im Setup angeben damit die Marker akzeptiert werden?

Danke

Profil

Kommentar von: Dander

20. 05. 2005, 10:26
Hallo,

wäre es bei wraps nicht sinnvoll ein Beispiel
zu nehmen in dem auch ein wrap auftauchet??

Typoscript:Zeilennummerierung:  An / Aus

  1. marks.MEINLINK = TEXT
  2. marks.MEINLINK.value = Das ist ein Link zu meiner Homepage
  3. marks.MEINLINK.wrap = <a href="#"> | </a>


mfg




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 Espelkamp:
Montag, 02.06.
in Berlin:
Montag, 07.07.

TYPO3 Intensivschulung
in Würzburg:
Mi., 28.05. - Fr., 30.05.
in Espelkamp:
Mi., 04.06. - Fr., 06.06.
in Köln:
Mi., 18.06. - Fr., 20.06.
in Berlin:
Mi., 09.07. - Fr., 11.07.


TYPO3 Extensionschulung
in Espelkamp:
Mo., 09.06. - Mi., 11.06.
in Berlin:
Mo., 14.07. - Mi., 16.07.