TEMPLATE

EigenschaftDatentypBeschreibungStandard
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.