TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

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:

 
Autor Nachricht
Verfasst am: Mittwoch, 16-09-09 11:34
Patrick
Dabei seit: 02. 12. 2002
Beiträge: 2
Es muss heissen: substMarksSeparately, da hat es einen kleinen Fehler drinn.
Verfasst am: Freitag, 15-05-09 09:55
afoeder
Dabei seit: 29. 06. 2004
Beiträge: 56
Wer etwas mit wraps verlinken möchte kann dies so tun:


###HTML_BUFFER_MARKER_MMCMS###


TYPOSCRIPT
temp.demo = TEMPLATE
....
temp.demo.wraps {
  LINK_STARTPAGE = TEXT
  LINK_STARTPAGE.value = |
  LINK_STARTPAGE.typolink.parameter = 1
}
Verfasst am: Samstag, 24-02-07 15:29
Kai Sören Kotzian
Dabei seit: 05. 10. 2006
Beiträge: 19
Ich möchte mit <b>marks</b> auf Bereiche in meiner Vorlage zugreifen. Diese sieht wie folgt aus:
###HTML_BUFFER_MARKER_MMCMS###

Leider gibt Typo3 keine Inhalt an <div id="site-name"> aus, obwohl ich es mit folgendem Code anspreche.
TYPOSCRIPT
page.10.marks.SITE-NAME = TEXT
page.10.marks.SITE-NAME.value = Beispiel Text

auch folgendes ist nicht erfolgreich.

TYPOSCRIPT
page.10.marks.site-name = TEXT
page.10.marks.site-name.value = Beispiel Text
Verfasst am: Dienstag, 26-09-06 13:04
Oliver
Dabei seit: 10. 07. 2002
Beiträge: 0
Das Beispiel funktioniert nicht, weil fälschlicherweise 2 verschiedene Marker-Namen verwendet wurden (MEINLINK und MYLINK)...
Verfasst am: Dienstag, 25-07-06 16:03
Redmann
Dabei seit: 25. 07. 2006
Beiträge: 7
also irgendwie funktioniert das Bsp. mit dem "MEINLINK" nicht!

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

Danke
Verfasst am: Freitag, 20-05-05 10:26
Dander
Dabei seit: 18. 07. 2003
Beiträge: 2287
Hallo,

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

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


mfg