Deutsche Zope User Group
Gast 2 Benutzer online
DZUG-News

Zopebuch: Inhaltsverzeichnis 

DTML ist die Document Template Markup Language, eine praktische Darstellungs- und Vorlagensprache, die in Zope integriert ist. Dieser Anhang ist eine Referenz zu allen DTML-Tags und Ihrer Funktionsweise.

call: Eine Methode aufrufen

Mit Hilfe des call-Tags können Sie eine Methode aufrufen, ohne die Ergebnisse in den DTML-Output einzufügen.

Syntax

call Tag Syntax:

        

Wenn das call-Tag eine Variable verwendet, werden die Argumente automatisch von DTML weitergegeben, genau wie beim var-Tag. Ist die Methode in einem Ausdruck beschrieben, müssen Sie die Argumente selbst übergeben.

Beispiele

Aufruf �ber einen Variablennamen:

        

Dieser Code ruft das UpdateInfo-Objekt auf und gibt die Argumente automatisch weiter.

Aufruf über einen Ausdruck:

        

Beachten Sie auch

var-Tag

Kommentar: Kommentiert DTML

Mit dem comment-Tag können sie DTML mit Kommentaren dokumentieren. Sie können es auch dazu verwenden, DTML-Tags vorübergehend auszuschalten, indem Sie sie auskommentieren.

Syntax

comment Tag Syntax:

        
        

Das comment Tag ist ein Block-Tag. Die Inhalte des Blocks werden weder ausgeführt, noch werden sie in den DTML-Output eingefügt.

Beispiele

DTML dokumentieren:

        
          Dieser Inhalt wird nicht ausgeführt und erscheint nicht im Output.
        

DTML auskommentieren:

        
          Diese DTML ist abgeschaltet und wird nicht ausgeführt.
          
        

Funktionen: DTML-Funktionen

DTML-Dienstprogrammfunktionen stellen einige in Python integrierte sowie einige DTML-spezifische Funktionen zur Verfügung.

Funktionen

abs(Zahl)
Gibt den absoluten Wert einer Zahl zurück. Das Argument kann ein plain-Integer, ein long-Integer oder eine Gleitkommazahl sein. Ist das Argument eine komplexe Zahl, wird der Betrag der Zahl zurückgegeben.
chr(integer)
Gibt einen String von einem Character Länge zurück, dessen ASCII-Code der Integer ist, beispielsweise gibt chr(97) den String a zurück. Dies ist die Umkehrun von ord(). Das Argument muss im Zahlenraum von 0 bis einschliesslich 255 liegen; ein ValueError wird auftreten, falls der integer ausserhalb dieses Bereiches ist.
DateTime()
Gibt ein Zope DateTime-Objekt zurück, sofern Konstruktorargumente übergeben wurden. Bitte beachten Sie die DateTime API-Referenz für weitere Informationen zu Konstruktorargumenten.
divmod(Zahl, Zahl)
Benutzt zwei Zahlen als Argumente und gibt ein Zahlenpaar zurück, das aus dem Quotienten und dem Restbetrag besteht, wenn eine long-Division ausgeführt wird. Bei gemischten Zahlentypen werden die Regeln für binäre arithmetische Operanden angewendet. Für plain und long-Integers ist das Ergebnis wie bei (a / b, a % b). Bei Gleitkommazahlen ist das Ergebnis gleich (q, a % b), wobei q normalerweise math.floor(a / b) beträgt, es kann jedoch um 1 reduziert sein. In jedem Fall ist 'q * b + a % b' sehr nahe an a, sofern a % b nicht Null ist, hat die Berechnung das selbe Vorzeichen wie b und 0 <= abs(a % b) < abs(b).
float(Zahl)
Wandelt einen String oder eine Zahl in eine Gleitkommazahl um. Wenn das Argument ein String ist, muss es eine positive Dezimalzahl oder eine Gleitkommazahl, die in Leerzeichen eingebettet sein kann, enthalten; dies verhält sich wie string.atof(number). Ansonsten kann das Argument ein long oder integer sein, in diesem Fall wird eine Gleitkommazahl mit dem selben Wert (innerhalb Pythons Gleitkommazahlpräzisierung) zurückgeliefert.
getattr(Objekt, String)
Gibt den Namen der Attribute eines Objektes zurück. Der Name muss ein String sein. Ist der String der Name eines der Attribute des Objektes, so wird der Wert des Attributes zurügeliefert. Beispielsweise ist getattr(x, "foobar") gleich x.foobar. Wenn das genannte Attribut nicht existiert, wird, falls vorhanden, der Defaultwert zurückgeliefert, ansonsten wird ein AttributeError ausgegeben.
getitem(Variable, render=0)
Gibt den Wert einer DTML-Variable zurück. Wenn render wahr ist, wird die Variable gerendert. Bitte beachten Sie die render-Funktion.
hasattr(Objekt, String)
Die Argumente sind hier ein Objekt und ein String. Das Ergebnis ist 1, wenn der String der Name eines der Attribute des Objektes ist, andernfalls 0. (Dies wird durch den Aufruf von getattr(Objekt, Name) und die Überprüfung implementiert, ob eine Exception geworfen wird oder nicht.)
hash(Objekt)
Gibt den Hash-Wert eines Objektes zurück, sofern es einen besitzt. Hash-Werte sind Integers. Sie werden genutzt, um schnell Dictionary-Schlüssel während einer Dictionary-Suche zu vergleichen. Numerische Werte die gleich sind haben auch den selben Hash-Wert (selbst wenn es sich um verschiedene Zahlentypen handelt, z.B. 1 und 1.0).
has_key(Variable)
Gibt true zurück, wenn der DTML-Namensraum die gesuchte Variable enthält.
hex(integer)
Konvertiert einen integer (egal welcher Grösse) in einen hexadezimalen String um. Das Ergebnis ist ein gültiger Python-Ausdruck. Bitte beachten Sie: dies liefert immer ein vorzeichenloses Literal, z.B. ergibt hex(-1) auf einem 32-bit Rechner 0xffffffff. Wird die Rückberechnung auf einem Rechner mit der selben Wortlänge ausgeführt, wird als Ergebnis -1 ausgegeben, bei einer anderen Wortlänge könnte jedoch eine grosse positive Zahl ausgegeben werden oder aber ein OverflowError auftreten.
int(Zahl)
Wandelt einen String oder eine Zahl in einen integer um. Ist das Argument ein String, muss er eine positive Dezimalzahl (einen Python-integer) enthalten, die in Leerzeichen eingebettet sein kann; dies verhält sich wie 'string.atoi(number[, radix]'). Der radix-Parameter wird als Basis für die Umwandlung genutzt und kann ein integer mit einem Wert von 2 bis 36 sein. Wird radix benutzt und die Zahl ist kein String, wird ein TypeError ausgegeben. Andernfalls kann das Argument ein integer oder eine Gleitkommazahl sein. Die Umwandlung von Gleitkommazahlen in integers wird von der C-Semantik definiert; normalerweise rundet die Umwandlung ab.
len(Sequenz)
Gibt die Länge (die Zahl der Elemente) eines Objektes zurück. Das Argument kann eine Sequenz (String, Tupel oder Liste) oder eine Zuordnung (Dictionary) sein.
max(s)
Mit dem einzelnen Argument s gibt dieser Ausdruck das grösste Element einer nicht(!)-leeren Sequenz (z.B. String, Tupel oder Liste) zurück. Bei mehr als einem Argument wird das grösste Element der Argumentenliste zurückgegeben.
min(s)
Mit dem einzelnen Argument s wird hier das kleinste Element einer nicht(!)-leeren Sequenz (z.B. String, Tupel, Liste) zurückgegeben. Bei mehr als einem Argument wird das kleinste Element der Argumentenliste zurückgegeben.
namespace([name=value]...)
Gibt ein neues DTML-Namensraum-Objekt zurück. Die Schlüsselwort - Argument-Paare name=value werden in den neuen Namensraum eingefügt.
oct(integer)
Wandelt einen integer (jeglicher Grösse) in einen Oktal-String um. Das Ergebnis ist ein gültiger Python-Ausdruck. Bitte beachten Sie: diese Umwandlung ergibt immer ein vorzeichenloses Literal, beispielsweise ergibt oct(-1) auf einem 32-bit-Rechner 037777777777. Wird die Berechnung auf einem Rechner mit der selben Wortlänge durchgeführt, wird das Literal als -1 berechnet; bei einer anderen Wortlänge könnte eine grosse positive Zahl oder ein OverflowError ausgegeben werden.
ord(Character)
Gibt den ASCII-Wert eines Strings, der aus genau einem Character besteht, aus. Beispielsweise ergibt ord("a") den integer 97. Dies ist das Gegenteil von chr().
pow(x, y [,z])
Gibt x hoch y zurück; falls auch z angegeben ist, wird x hoch y, modulo z ausgegeben (diese Berechnung ist besser geeignet als 'pow(x, y) % z'). Die Argumente müssen numerisch sein. Bei gemischten Zahlentypen werden die Regeln für binäre arithmetische Operanden angewandt. Der tatsächliche Zahlentyp bestimmt auch den Zahlentyp des Ergebnisses; ist das Ergebnis in diesem Typ nicht auszudrücken, wird eine Exception ausgegeben, z.B. pow(2, -1) oder pow(2, 35000) sind nicht erlaubt.
range([start,] stop [,step])
Dies ist eine vielseitige Funktion um Listen, die arithmetische Reihen enthalten, zu erstellen. Die Argumente müssen vom Typ integer sein. Wird kein step-Argument angegeben, wird der Defaultwert 1 verwendet. Wird kein start-Argument angegeben, wird der Defaultwert 0 verwendet. Der komplette Ausdruck gibt eine Liste von integers zurück: '[Startwert, Startwert + step, Startwert + 2 * step, ...]'. Ist der Wert für step positiv, ist das letzte Element der Reihe das grösste und um 'Startwert + i step' kleiner als stop; ist der Wert für step negativ, ist das letzte Element das kleinste und um 'start + i step' grösser als stop. Der Wert für step darf NICHT 0 sein, sonst wird ein ValueError ausgegeben.
round(x [,n])
Gibt die Gleitkommazahl x, gerundet auf n Nachkommastellen aus. Wird n nicht angegeben, wird der Defaultwert 0 verwendet. Das Ergebnis ist wiederum eine Gleitkommazahl. Werte werden auf das nächste Vielfache von 10 hoch -n gerundet; sind zwei Werte gleich nach an x, wird von 0 weggerundet. So ist zum Beispiel round(0.5) 1.0, round(-0.5) dagegen nicht 0, sondern -1.0.
render(Objekt)
Rendert das Objekt. Für DTML-Objekte berechnet dieser Ausdruck den DTML-Code mit dem aktuellen Namensraum. Für andere Objekte ist dies das gleiche wie str(object).
reorder(s [,with] [,without])
Ordnet die Elemente in s anhand der Reihenfolge, die in with definiert wird, ohne die Elemente, die in without enthalten sind, einzuschliessen. Elemente, die in s enthalten sind, aber in with nicht erwähnt werden, werden entfernt. s, with und without sind alle entweder Sequenzen von Strings oder Sequenzen von Schlüssel-Wert-Tupeln, die nach den Schlüsseln geordnet werden. Diese Funktion ist nützlich, um geordnete Auswahllisten zu erstellen.
SecurityCalledByExecutable()
Gibt wahr zurück, wenn das aktuelle Objekt (z.B. ein DTML-Dokument oder eine DTML-Methode) von einer ausführbaren Anweisung (beispielsweise ein anderes DTML-Dokument oder eine DTML-Methode, ein Skript oder eine SQL-Anweisung) aufgerufen wird.
SecurityCheckPermission(permission, object)
Überprüft, ob der Sicherheitskontext das gegebene Recht im Bezug auf das angegebene Objekt erlaubt. Beispielsweise gibt 'SecurityCheckPermission("Add Documents, Images, and Files", this())' wahr zurück wenn der aktuelle Benutzer berechtigt ist, Dokumente, Bilder und Dateien an der angegebenen Position zu erstellen.
SecurityGetUser()
Gibt das aktuelle User-Objekt zurü. Dies ist normalerweise das selbe wie das REQUEST.AUTHENTICATED_USER Objekt. Jedoch ist das AUTHENTICATED_USER Objekt unsicher, da es ersetzt werden kann.
SecurityValidate([object] [,parent] [,name] [,value])
Gibt true zurück wenn der aktuelle User auf den Wert zugreifen kann. object ist das Objekt, in dem auf den Wert zugegriffen wird, parent ist der Behälter, in dem der Wert liegt und name ist der Name, mit dem auf den Wert zugegriffen wird (z.B. "getattr", wenn über diesen Namen auf den Wert zugegriffen wird). Sie können einige dieser Argumente vernachlässigen, auf alle Fälle sollten Sie aber alle Argumente, die Ihnen zur Verfügung stehen, angeben.
SecurityValidateValue(object)
Gibt true zurück, wenn das Objekt für den aktuellen Benutzer zugänglich ist. Diese Funktion erfüllt dieselbe Aufgabe wie der Aufruf von SecurityValidate(None, None, None, Objekt).
str(object)
Gibt einen String zurück, der eine für den Ausdruck optimierte Darstellung eines Objektes enthält. Bei Angabe von Strings werden diese unverändert zurückgegeben.
test(condition, result [,condition, result]... [,default])
Nimmt eine oder mehrere Bedingung-Ergebnis-Tupel an und gibt das Ergebnis der ersten erfüllten Bedingung zurück. Es wird nur ein Ergebnis zurückgegeben, selbst wenn mehr als eine Bedingung erfüllt ist. Ist keine der Bedingungen erfüllt und ein Defaultwert ist vorgegeben, so wird dieser zurückgegeben. Ist keine der Bedingungen erfüllt und auch kein Defaultwert angegeben, wird nichts zurückgegeben.
unichr(Zahl)
Gibt einen Unicode-String zurück, der den Wert der Zahl als Unicode-Character darstellt. Dies ist die Umkehrung von ord() für Unicode-Characters.
unicode(string[, encoding[, errors ] ])
Verschlüsselt einen String unter Benutzung des Codes für die Verschlüsselung. Die Fehlerbehandlung wird gemäss der Fehler ausgeführt. Im Normalfall wird UTF-8 in strict mode verschlüsselt, was bedeutet, dass Verschlüsselungsfehler einen ValueError hervorrufen.

Attribute

None
Das None-Objekt entspricht dem in Python integrierten None. Dies wird normalerweise benutzt, um einen Null- oder einen falschen Wert zu beschreiben.

Bitte beachten Sie auch

string module

random module

math module

sequence module

In Python integrierte Funktionen

if: Testbedingungen

Das if-Tag erlaubt es Ihnen, Bedingungen zu testen und verschiedene Aktionen, die von den Bedingungen abhängen, durchzuführen. Das if-Tag spiegelt Pythons if/elif/else-Ausdrücke zum Testen von Bedingungen wider.

Syntax

If Tag Syntax:

        
        []
         ...
        []
        

Das if-Tag ist ein Block-Tag. Das if-Tag und optionale elif-Tags nehmen eine Bedingungsvariable oder einen Bedingungsausdruck auf, aber nicht beides zusammen. Wird der Bedingungsname oder der Ausdruck als true zurückgegeben, wird der if-Block ausgeführt. True bedeutet nicht 0, einen leeren String oder eine leere Liste. Falls die Bedingungsvariable nicht gefunden wird, wird die Bedingung als false angenommen.

Ist die Anfangsbedingung falsch, wird jede der elif-Bedingungen nacheinander getestet. Wenn eine der elif-Bedingungen wahr ist, wird ihr Block ausgeführt. Schliesslich wird der optionale else-Block ausgeführt falls keine der if- oder elif-Bedingungen true ergeben hat. Es wird immer nur ein Block ausgeführt.

Beispiele

Eine Variable testen:

        
          Die snake-Variable ist true
        

Ausdrucksbedingungen testen:

        
          num ist grösser als 5
        
          num ist kleiner als 5        
          num ist genau 5
        

Bitte beachten Sie auch:

Python Tutorial: If-Statements

in: Sequenzwiederholungen

Das in-Tag gibt Ihnen umfassende Kontrolle über Sequenzwiederholungen und die Ausführung von batch-Prozessen.

Syntax

in Tag Syntax:

        
        []
        

Der in-Block wird einmal für jedes Element in der Sequenzvariable oder dem Sequenzausdruck wiederholt. Das aktuelle Element wird während jeder Ausführung des in-Tags in den DTML-Namensraum eingefügt. Sind in der Sequenzvariablen bzw. im Sequenzausdruck keine Elemente enthalten, wird der optionale else-Block ausgeführt.

Attribute

mapping
Eine Wiederholung, die auf der Zuordnung von Objekten und nicht auf ihren Instanzen beruht. Dies erlaubt es dem User, Werte der zugeordneten Objekte als DTML-Variablen zu benutzen.
reverse
Dreht die Sequenz um.
sort=string
Sortiert die Sequenz anhand des angegebenen Attributnamens.
start=int
Die Nummer des ersten Elementes das angezeigt werden soll, die Folge beginnt bei 1.
end=int
Die Nummer des letzten Elementes das angezeigt werden soll, die Folge beginnt bei 1.
size=int
Die Grösse des Batch.
skip_unauthorized
Verhindert, dass eine Fehlermeldung erscheint, wenn ein nicht autorisiertes Element entdeckt wird.
orphan=int
Die benötigte Mindestgrösse des Batch. Sie bestimmt, wie Sequenzen in Batches aufgeteilt werden. Tritt ein Batch auf, das kleiner ist als die Grösse von orphan, wird keine Aufteilung ausgeführt, woraus sich ein Batch ergibt das grösser ist als die eigentliche Batch-Grösse.

Beispiel: Ist die Sequenzgrösse 12, die Batchgrösse 10 und die Grösse von orphan 3, so ergibt sich daraus ein Batch mit allen 12 Elementen, da aus einer Aufteilung der Elemente in zwei Batches ein Batch resultieren würde, das kleiner ist als die Grösse von orphan.

Der Defaultwert ist 0.

overlap=int
Die Zahl der Elemente, die zwischen Batches überhängen sollen. Per Default ist kein overlap eingestellt.
previous
Wiederholt einmal, falls es ein früheres Batch gibt. Setzt die Batchvariablen für die frühere Sequenz.
next
Wiederholt einmal, falls es ein nächstes Batch gibt. Setzt die Variablen für die nächste Sequenz.
prefix=string
Stellt Versionen der Tagvariablen zur Verfügung, die mit der gegebenen Vorsilbe statt "sequence" anfangen und die Unterstriche(_) statt Bindestriche (-) benutzen. Diese Vorsilbe muss mit einem Buchstaben beginnen und darf nur alphanumerische Zeichen und Unterstriche (_) enthalten.
sort_expr=Ausdruck
Sortiert die Sequenz anhand eines Attributes, das vom Wert des Ausdrucks benannt wird. Dies gibt Ihnen die Möglichkeit, nach verschiedenen Attributen zu sortieren.
reverse_expr=Ausdruck
Dreht die Sequenz um, falls der Ausdruck true ergibt. Dies gibt Ihnen die Möglichkeit, die Sequenz anhand einer von Ihnen erstellten Auswahl umzudrehen.

Tag-Variablen

Current Item-Variablen

Diese Variablen beschreiben das aktuelle Element.

sequence-item
Das aktuelle Element.
sequence-key
Der aktuelle Schlüssel. Wenn Sie eine Wiederholung über Tupel der Form (Schlüssel,Wert) laufen lassen, interpretiert das in-Tag sie als (Sequenz-Schlüssel, Sequenz-Element).
sequence-index
Sequenz-Index, startet mit 0 beim aktuellen Element.
sequence-number
Die Sequenznummer, startet mit 1 beim aktuellen Element.
sequence-roman
Der Sequenz-Index des aktuellen Elements in kleingeschriebenen römischen Ziffern.
sequence-Roman
Der Sequenz-Index des aktuellen Elements in grossgeschriebenen römischen Ziffern.
sequence-letter
Der Sequenz-Index des aktuellen Elements in Kleinbuchstaben.
sequence-Letter
Der Sequenz-Index des aktuellen Elements in Grossbuchstaben.
sequence-start
Gibt true zurück, wenn das aktuelle Element das erste der Sequenz ist.
sequence-end
Gibt true zurück, wenn das aktuelle Element das letzte in der Sequenz ist.
sequence-even
Gibt true zurück, wenn der Index des aktuellen Elements gerade ist.
sequence-odd
Gibt true zurück, wenn der Index des aktuellen Elements ungerade ist.
sequence-length
Die Länge der Sequenz.
sequence-var-Variable
Eine Variable im aktuellen Element. Beispielsweise ist sequence-var-title die title-Variable des aktuellen Elements. Normalerweise können Sie auf diese Variablen direkt zugreifen, da das aktuelle Element in den DTML-Namensraum eingefügt wird. Allerdings können diese Variablen nützlich sein, wenn sie die vorige und nächste Batch-Information anzeigen wollen.
sequence-index-Variable
Der Index einer Variable des aktuellen Elements.

Zusammenfassungsvariablen

Diese Variablen fassen Informationen über numerische Elementvariablen zusammen. Um sie zu verwenden müssen Sie eine Wiederholung über Objekte laufen lassen (wie Datenbankergebnislisten), die numerische Variablen enthalten.

total-Variable
Die Summe aller Ausprägungen einer Elementvariable.
count-Variable
Die Zahl der Ausprägungen einer Elementvariable.
min-Variable
Der kleinste Wert einer Elementvariable.
max-Variable
Der grösste Wert einer Elementvariable.
mean-Variable
Der Mittelwert einer Elementvariable.
variance-Variable
Die Abweichung einer Elementvariable von ihrem Mittelwert mit einem Grad Freiraum.
variance-n-Variable
Die Abweichung einer Elementvariable von ihrem Mittelwert mit n Graden Freiraum.
standard-deviation-Variable
Die Standard-Abweichung einer Elementvariable mit einem Grad Freiraum.
standard-deviation-n-Variable
Die Standard-Abweichung einer Elementvariable mit n Graden Freiraum.

Gruppierungsvariablen

Diese Variablen geben Ihnen die Möglichkeit, Veränderungen an den aktuellen Elementvariablen zu verfolgen.

first-Variable
Gibt true zurück, wenn das aktuelle Element das erste mit einem bestimmten Wert für eine bestimmte Variable ist.
last-Variable
Gibt true zurück, wenn das aktuelle Element das letzte mit einem bestimmten Wert für eine bestimmte Variable ist.

Batch-Variablen

sequence-query
Der query-String ohne die start-Variable. Sie können diese Variable verwenden, um Links zu nächsten und vorigen Batches zu erstellen.
sequence-step-size
Die Grösse des Batch.
previous-sequence
Gibt true zurück, wenn das aktuelle Batch nicht das erste ist. Bitte beachten Sie, dass diese Variable bei einer Wiederholung nur im ersten Durchgang true zurückgibt.
previous-sequence-start-index
Der Start-Index des letzten Batches.
previous-sequence-start-number
Die Startnummer des letzten Batches. Bitte beachten Sie, dass dies das selbe ist wie previous-sequence-start-index + 1.
previous-sequence-end-index
Der End-Index des letzten Batches.
previous-sequence-end-number
Die Endnummer des letzten Batches. Bitte beachten Sie, dass dies das selbe ist wie previous-sequence-end-index + 1.
previous-sequence-size
Die Grösse des letzten Batches.
previous-batches
Eine Sequenz von Zuordnungsobjekten mit Informationen über alle früheren Batches. Jedes dieser Objekte hat folgende Schlüssel: batch-start-index, batch-end-index und batch-size.
next-sequence
Gibt true zurück, wenn der vorige Batch nicht der letzte ist. Bitte beachten Sie: diese Variable ist bei einer Wiederholung nur im ersten Durchgang true.
next-sequence-start-index
Der Start-Index der nächsten Sequenz.
next-sequence-start-number
Die Startnummer der nächsten Sequenz. Bitte beachten Sie, dass dies das selbe ist wie next-sequence-start-index + 1.
next-sequence-end-index
Die Endnummer der nächsten Sequenz.
next-sequence-end-number
Die Endnummer der nächsten Sequenz. Bitte beachten Sie, dass dies das selbe ist wie next-sequence-end-index + 1.
next-sequence-size
Die Grösse des nächsten Indexes.
next-batches
Eine Sequenz von Zuordnungsobjekten mit Informationen über alle folgenden Batches. Jedes Zuordnungsobjekt hat folgende Schlüssel: batch-start-index, batch-end-index und batch-size.

Beispiele

Eine Wiederholung über Sub-Objekte laufen lassen:

        
          title: 

Eine Wiederholung über zwei Sets von Objekten unter Zuhilfenahme von Vorsilben laufen lassen:

        
          
            
              

Eine Wiederholung über eine Liste von (Schlüssel, Wert) Tupeln laufen lassen:

        
          id: , title: 

Die Farbe von Datenbankfeldern verändern:

        
bgcolor="#EEEEEE" bgcolor="#FFFFFF"

Grundlegende Batchverarbeitung:

        

Previous Next

Dieses Beispiel erstellt Previous- und Next-Links um sich zwischen verschiedenen Batches zu bewegen. Bitte beachten Sie, dass Sie, wenn Sie sequence-query verwenden, keine der GET-Variablen verlieren, wenn Sie sich zwischen den Batches bewegen.

let: Definiert DTML-Variablen

Das let-Tag definiert Variablen im DTML-Namensraum.

Syntax

let Tag Syntax:

        
        

Das let-Tag ist ein Block-Tag. Variablen werden von Tag-Argumenten definiert. Definierte Variablen werden in den DTML-Namensraum eingefügt, während der let-Block ausgeführt wird. Das let-Tag kann ein oder mehrere Attribte mit beliebigen Namen haben. Wenn die Attribute in Anführungszeichen definiert werden, werden Sie als Ausdrücke betrachtet, andernfalls werden Sie anhand des angegebenen Namens gesucht. Attribute werden der Reihe nach abgearbeitet, so dass solche, die weiter hinten in der Reihe stehen, frühere referenzieren und/oder überschreiben können.

Beispiele

Grundlegende Verwendung:

      
        name: 
        ids: 
      

Verwendung des let-Tags mit dem in-Tag:

       
         
            *  = 
         
       

Dies ergibt:

        1 * 0 = 0
        2 * 1 = 2
        3 * 2 = 6
        4 * 3 = 12

Bitte beachten Sie auch:

with-Tag

mime: Formatiert Daten mit MIME

Mit Hilfe des mime-Tags können Sie mit MIME kodierte Daten erzeugen. Dies wird hauptsächlich für das Formatieren von e-mails innerhalb des sendmail-Tags verwendet.

Syntax

mime Tag Syntax:

        
        []
        ...
        

Das mime-Tag ist ein Block-Tag. Der Block kann von einem oder mehreren boundry-Tags aufgeteilt werden, um eine multi-part MIME Nachricht zu erstellen. mime-Tags können verschachtelt werden. Das mime-Tag wird am meisten innerhalb des sendmail-Tags genutzt.

Attribute

Sowohl das mime-Tag als auch das boundry-Tag haben die selben Attribute.

encode=string
Der MIME Content-Transfer-Encoding Header mit dem Defaultwert base64. Gültige Verschlüsselnungsoptionen beinhalten base64, quoted-printable, uuencode, x-uuencode, uue, x-uue und 7bit. Wird das encode-Attribute auf 7bit gesetzt, wird an diesem Block keine Codierung vorgenommen und es wird angenommen, dass es sich bei den Daten um ein gültiges MIME-Format handelt.
type=string
MIME Content-Type Header.
type_expr=string
MIME Content-Type Header als Variablenausdruck. Sie können nicht gleichzeitig type und type_expr benutzen.
name=string
MIME Content-Type Header-Name.
name_expr=string
MIME Content-Type Header-Name als Variablenausdruck. Sie können nicht gleichzeitig name und name_expr benutzen.
disposition=string
MIME Content-Disposition Header.
disposition_expr=string
MIME Content-Disposition Header als Variablenausdruck. Sie können nicht gleichzeitig disposition und disposition_expr benutzen.
filename=string
MIME Content-Disposition Header-Dateiname.
filename_expr=string
MIME Content-Disposition Header-Dateiname als Variablenausdruck. Sie können nicht gleichzeitig filename und filename_expr benutzen.
skip_expr=string
Ein Variablenausdruck der, wenn er true ergibt, den Block überspringt. Sie können dieses Attribut verwenden, um anhand einer persönlichen Auswahl MIME-Blocks einzufügen.

Beispiele

Einen Anhang senden:

        
        To: 
        Subject: Resume
        

        Hi, please take a look at my resume.

        
        

Bitte beachten Sie auch:

Python Library: mimetools

raise: Löst eine Exception aus

Das raise-Tag gibt eine Exception aus, die sich an Pythons raise-Ausdruck orientiert.

Syntax

raise Tag Syntax:

        
        

Das raise-Tag ist ein Block-Tag. Es gibt eine Exception aus. Exceptions können Exceptionklassen oder Strings sein. Die Inhalte des Tags werden als Fehlervariable weitergegeben.

Beispiele

Einen KeyError ausgeben:

        

Einen HTTP-404-Fehler ausgeben:

        Web Page Not Found

Bitte beachten Sie auch:

try-Tag

Python Tutorial: Errors and Exceptions

Python Built-in Exceptions

return: Gibt Daten zurück

Das return-Tag beendet die Ausführung von DTML und gibt Daten zurück. Es spiegelt Pythons return-Statement wider.

Syntax

return Tag Syntax:

        

Beendet die Ausführung von DTML und gibt eine Variable oder einen Ausdruck zurück. Der DTML-Output wird nicht ausgegeben. Normalerweise ist ein return-Ausdruck sinnvoller als eine return-Variable, denn in Skripten ist dieses Tag weitgehend überholt.

Beispiele

Eine Variable ausgeben:

            

Ein Python-Dictionary ausgeben:

        

sendmail: Sendet emails per SMTP

Das sendmail-Tag sendet eine e-mail unter Verwendung von SMTP.

Syntax

sendmail Tag Syntax:

        
        

Das sendmail-Tag ist ein Block-Tag. Es benötigt entweder ein mailhost- oder ein smtphost-Argument, aber nicht beides. Der Tag-Block wird als e-mail gesendet. Der Anfang des Blocks beschreibt die e-mail Header. Die Header werden durch eine leere Zeile vom mail-Körper getrennt. Wahlweise können die To, From und Subject Header mit Tag-Argumenten versehen werden.

Attribute

mailhost
Der Name eines Zope-MailHost-Objektes, das benutzt wird, um die e-mail zu verschicken. Sie können nicht gleichzeitig einen mailhost und einen smtphost definieren.
smtphost
Der Name eines SMTP-Servers, der verwendet wird, um e-mails zu verschicken. Sie können nicht gleichzeitig einen mailhost und einen smtphost definieren.
port
Wird das smtphost-Attribut verwendet, wird das port-Attribut dazu benutzt, um eine Portnummer zu definieren, zu der eine Verbindung hergestellt wird. Wird es nicht definiert, wird Port 25 verwendet.
mailto
Die Empfängeradresse oder eine Liste von Empfängeradressen, die durch Kommas getrennt werden. Dies kann auch im To Header definiert werden.
mailfrom
Die Absenderadresse. Die kann auch im From Header definiert werden.
subject
Die Überschrift der e-mail. Dies kann auch im Subject Header definiert werden.

Beispiele

Eine e-mail über einen Mail-Host versenden:

        
        To: 
        From: 
        Subject: 

        Dear ,

        Your order number  is ready.
        Please pick it up at your soonest convenience.
        

Bitte beachten Sie auch:

RFC 821 (SMTP Protocol)

mime-Tag

sqlgroup: Formatiert komplexe SQL-Ausdrücke

Das sqlgroup-Tag formatiert komplexe wahr/falsch-SQL-Ausdrücke. Sie können es mit dem sqltest-Tag zusammen verwenden, um dynamische SQL-Abfragen zu erstellen, die sich selber auf die Umbegung zuschneiden. Dieses Tag wird in SQL-Methoden verwendet.

Syntax

sqlgroup Tag Syntax:

        
        []
        []
        ...
        

Das sqlgroup-Tag ist ein Block-Tag. Es wird in Blöcke mit einem oder mehreren optionalen or- und and-Tags unterteilt. sqlgroup-Tags können verschachtelt werden, um komplexere Logiken zu erreichen.

Attribute

required=boolean
Zeigt an, ob die Gruppe benötigt wird. Wird sie nicht benötigt und ist leer, wird sie aus dem DTML-Output ausgeschlossen.
where=boolean
Ist hier true gesetzt, wird der String "where" eingeschlossen. Dies ist beim Grossteil der sqlgroup-Tags in einer SQL-select-Abfrage nützlich.

Beispiele

Beispielvewendung:

        select * from employees 
        
          
        
          
        
          
          

Ist first auf den Wert Bob gesetzt und last auf den Wert Smith, McDonald, wird folgendes berechnet:

        select * from employees
        where
        (first='Bob'
         and
         last in ('Smith', 'McDonald')
        )

Ist salary auf den Wert 50000 und last auf den Wert Smith gesetzt, wird folgendes berechnet:

        select * from employees
        where 
        (salary > 50000.0
         and
         last='Smith'
        )

Verschachtelte sqlgroup-Tags:

        select * from employees
        
          
             
          
             
          
        
          
        

Werden Beispielargumente eingefügt, berechnet diese Vorlage in SQL ausgedrückt folgendes:

        select * form employees
        where
        (
          (
           name like 'A*'
           and
           last like 'Smith'
           )
         or
         salary > 20000.0
        )

Bitte beachten Sie auch:

sqltest-Tag

sqltest: Formatiert SQL-Bedinungstests

Das sqltest-Tag fügt einen Bedingungstest in einen SQL-Code ein. Es testet eine Spalte gegen eine Variable. Dieses Tag wird in SQL-Methoden verwendet.

Syntax

sqltest Tag Syntax:

        

Das sqltest-Tag besteht aus einem Element. Es fügt einen SQL-Bedingungstest ein. Es wird in SQL-Abfragen verwendet. Das sqltest-Tag filtert die eingegebene Variable korrekt. Die genannte Variable oder der Variablenausdruck wird gegen eine SQL-Spalte getestet, indem die beschriebene Vergleichsoperation durchgeführt wird.

Attribute

type=string
Der Typ der Variable. Gültige Typen umfassen: string, int, float und nb. nb bedeutet "nicht-leerer" String und sollte statt string verwendet werden, es sei denn, Sie suchen nach Leer-Werten. Das type-Attribut wird benötigt und wird verwendet, um die eingegebene Variable korrekt zu filtern.
column=string
Der Name der SQL-Spalte, gegen die getestet wird. Dieses Attribut hat als Defaultwert den Namen der Variable.
multiple=boolean
Ist dieser Wert true, kann die Variable eine Sequenz von Werten sein, die gegen die Spalte getestet werden können.
optional=boolean
Ist dieser Wert true, dann ist der Test optional und wird nicht durchgeführt, wenn die Variable leer ist oder nicht existiert.
op=string
Der Vergleichsoperator. Gültige Vergleichsoperatoren umfassen:
eq
equal to (genauso gross wie)
gt
greater than (grösser als)
lt
less than (kleiner als)
ne
not equal to (nicht gleich)
ge
greater than or equal to (grösser als oder gleich)
le
less than or equal to (kleiner als oder gleich)

Der Defaultwert des Vergleichsoperators ist equal to. Wird der Vergleichsoperator nicht erkannt wird der Defaultwert verwendet. So können Sie Vegleiche wie like einsetzen.

Beispiele

Grundlegende Verwendung:

        select * from employees
          where 

Ist die name-Variable auf Bob gesetzt, so wird folgendes berechnet:

        select * from employees
          where name = 'Bob'

Mehrere Werte:

        select * from employees
          where 

Ist die empid-Variable auf (12,14,17) gesetzt, so wird folgendes berechnet:

        select * from employees
          where empid in (12, 14, 17)

Bitte beachten Sie auch:

sqlgroup-Tag

sqlvar-Tag

sqlvar: Fügt SQL-Variablen ein

Das sqlvar-Tag fügt auf sicherem Weg Variablen in SQL-Code ein. Dieses Tag wird in SQL-Methoden verwendet.

Syntax

sqlvar Tag Syntax:

        

Das sqlvar-Tag besteht nur aus einem Element. Wie auch das var-Tag sucht das sqlvar-Tag eine Variable und fügt sie ein. Anders jedoch als beim var-Tag, werden hier die Formatierungsoptionen auf den SQL-Code zugeschnitten.

Attribute

type=string
Der Typ der Variable. Gültige Typen umfassen: string, int, float und nb. nb bedeutet "nicht-leerer" String und sollte statt string verwendet werden, es sei denn, Sie wollen leere Strings verwenden. Das type-Attribt wird benötigt und wird verwendet, um die eingefügte Variable korrekt zu filtern.
optional=boolean
Ist der Wert auf true gesetzt und die Variable ist null oder existiert nicht, wird nichts eingefügt.

Beispiele

Grundlegende Verwendung:

        select * from employees 
          where name=

Dieser SQL-Befehl gibt die name-String-Variable zurück.

Bitte beachten Sie auch:

sqltest-Tag

tree: Stellt eine Baumstruktur dar

Das tree-Tag stellt eine dynamische Baumstruktur dar, indem es Zope-Objekte abfägt.

Syntax

tree Tag Syntax:

        
        

Das tree-Tag ist ein Block-Tag. Es berechnet eine dynamische Baumstruktur in HTML. Die Wurzel dieser Baumstruktur wird über einen Variablennamen oder Ausdruck definiert, falls vorhanden, andernfalls wird das aktuelle Element benutzt. Der tree-Block wird für jeden Punkt in der Baumstruktur berechnet, wobei der aktuelle jeweils in den DTML-Namensraum eingefügt wird.

Der Tree-Status wird über HTTP-Cookies gesetzt, diese müssen also aktiviert sein, damit der Baum funktionieren kann. Auch können Sie nur einen Baum pro Seite haben.

Attribute

branches=string
Findet Äste des Baumes, indem die genannte Methode aufgerufen wird. Die Defaultmethode ist tpValues, die von den meisten Zope-Objekten unterstützt wird.
branches_expr=string
Findet Äste, indem der Ausdruck ausgewertet wird.
id=string
Der Name einer Methode oder ID, um den Status des Baumes herauszufinden. Der Defaultwert ist hier tpld, was von den meisten Zope-Objekten unterstützt wird. Dieses Attribut ist nur für die fortgeschrittene Anwendung gedacht.
url=string
Der Name einer Methode oder eines Attributes um die URLs von Elementen des Baumes zu bestimmen. Der Defaultwert ist hier tpURL, was von den meisten Zope-Objekten unterstützt wird. Dieses Attribut ist nur für die fortgeschrittene Anwendung gedacht.
leaves=string
Der Name eines DTML-Dokumentes oder einer Methode, um Endknoten zu finden. Bitte beachten Sie: dieses Dokument sollte mit beginnen und mit enden, um eine saubere Darstellung im Baum zu gewährleisten.
header=string
Der Name eines DTML-Dokuments oder einer Methode, das/die vor voll dargestellten Knoten angezeigt wird. Wird der Header nicht gefunden, wird er übergangen.
footer=string
Der Name eines DTML Dokuments oder einer Methode, das/die nach voll dargestellten Knoten angezeigt wird. Wird der Footer nicht gefunden, wird er übergangen.
nowrap=boolean
Ist dieser Wert auf true gesetzt, werden Knoten auf den verfügbaren Platz zugeschnitten, statt sie zu wrappen.
sort=string
Sortiert die Äste anhand des Namensattributes.
reverse
Dreht die Reihenfolge des Astes um.
assume_children=boolean
Geht davon aus, dass ein Knoten weitere Verzweigungen hat. Dies ist nützlich, wenn das Suchen und Abfragen von Endknoten bzw. Verzweigungen zu aufwändig wäre. Als Ergebnis werden Plus-Boxen neben alle Knoten gezeichnet.
single=boolean
Erlaubt die Vollansicht genau eines Astes. Wird ein neuer Ast in die Vollansicht gebracht, werden alle anderen wieder geschlossen.
skip_unauthorized
Übergeht Knoten, die der Benutzer nicht betrachten darf, ohne eine Fehlermeldung auszugeben.
urlparam=string
Ein Abfragestring, der in den Vollansicht- und Indexsicht-Links der Oberflächenelemente enthalten ist. Dieses Attribut ist nur für die fortgeschrittene Anwendung gedacht.
prefix=string
Stellt Versionen der Tag-Variablen zur Verfügung, die mit dieser Vorsilbe statt "tree" beginnen und Unterstriche(_) statt Bindestriche (-) benutzen. Die Vorsilbe muss mit einem Buchstaben beginnen und darf nur alphanumerische Zeichen und Unterstriche (_) enthalten.

Tag-Variablen

tree-item-expanded
Ist true, wenn der aktuelle Knoten in der Vollansicht ist.
tree-item-url
Die URL des aktuellen Knotens.
tree-root-url
Die URL des Wurzelknotens.
tree-level
Die Tiefe des aktuellen Knotens. Top-Level-Knoten haben eine Tiefe von 0.
tree-colspan
Die Nummer der Tiefenebene, in der der Baum berechnet wird. Diese Variable kann zusammen mit der tree-level Variable benutzt werden, um Zeilen und Spalten sowie Einstellungen in eine Baum-Tabelle einzufügen.
tree-state
Der Status des Baumes, ausgedrückt in einer Liste von IDs und Sub-Listen von IDs. Diese Variable ist nur für die fortgeschrittene Anwendung gedacht.

Tag Control-Variablen

Sie können das tree-Tag kontrollieren, indem Sie diese Variablen setzen.

expand_all
Wird diese Variable auf true gesetzt, wird der komplette Baum in die Vollansicht gebracht.
collapse_all
Wird diese Variable auf true gesetzt, wird der komplette Baum in die Index-Sicht gebracht.

Beispiele

Stellt einen Baum dar, der seine Wurzel im aktuellen Objetk hat:

        
          
        

Stellt einen Baum dar, der seine Wurzel in einem anderen Objekt hat, in dem die Methode custom branches benutzt wird:

        
          Node id : 
        

try: Exceptionbehandlung

Das try-Tag ermöglicht die Exceptionbehandlung in DTML, es spiegelt Pythons try/except- und try/finally-Konstrukte wider.

Syntax

Das try-Tag hat zwei verschiedene Syntaxformen, nämlich try/except/else und try/finally.

try/except/else-Syntax:

        
        
        ... 
        []
        

Das try-Tag umschliesst einen Block, in dem Exceptions abgefangen und behandelt werden können. Es kann ein oder mehrere except-Tags geben, die Null oder mehr Exceptions behandeln. Spezifiziert ein except-Tag keine Exception, behandelt es alle.

Wird eine Exception ausgelöst, springt das Programm zum ersten except-Tag, das die Exception behandelt. Gibt es kein except-Tag, um die Exception zu behandeln, wird sie wie üblich ausgelöst.

Wird keine Exception ausgelöst und es gibt ein else-Tag, so wird dieses nach dem try-Tag ausgeführt.

Sowohl except- als auch else-Tag sind optional.

try/finally-Syntax:

        
        
        

Das finally-Tag kann nicht im selben try-Block benutzt werden wie die except- und else-Tags. Ist ein finally-Tag vorhanden, wird sein Block in jedem Fall ausgeführt, egal, ob im try-Block eine Exception ausgelöst wird oder nicht.

Attribute

except
Null oder mehr Exceptionnamen. Werden keine Exceptions aufgelistet, behandelt das except-Tag alle Exceptions.

Tag-Variablen

Im except-Block werden folgende Variablen definiert.

error_type
Der Typ der Exception.
error_value
Der Wert der Exception.
error_tb
Das Traceback (die Zurückverfolgung).

Beispiele

Einen mathematischen Fehler abfangen:

        
        
        
        You tried to divide by zero.
        

Informationen über die behandelte Exception zurückgeben:

        
        
        
        An error occurred.
        Error type: 
        Error value: 
        

Die Benutzung von finally, um sicherzustellen, dass "aufgerämt wird", egal, ob ein Fehler aufgetreten ist oder nicht:

        
        
        
        
        
        

Bitte beachten Sie auch:

raise-Tag

Python Tutorial: Errors and Exceptions

Python Built-in Exceptions

unless: Testet eine Bedingung

Das unless-Tag stellt einen Shortcut zur Verfügung, um negative Bedingungen zu testen. Für ausführliches Testen von Bedingungen benutzen Sie das if-Tag.

Syntax

unless Tag Syntax:

        
        

Das unless-Tag ist ein Block-Tag. Gelangt der Wert der Bedingungsvariable oder des Ausdrucks zu false, wird der beinhaltete Block ausgeführt. Wie beim if-Tag, werden Variablen, die nicht erreichbar sind, als false angesehen.

Beispiele

Eine Variable testen:

        
          
        

Der Block wird ausgeführt, wenn testMode nicht existiert oder aber false ist.

Bitte beachten Sie auch:

if-Tag

var: Fügt eine Variable ein

Mithilfe des var-Tags können Sie eine Variable in den DTML-Output einfügen.

Syntax

var Tag Syntax:

        

Das var-Tag besteht nur aus einem Element. Es findet eine Variable, indem es den DTML-Namensraum durchsucht, der normalerweise aus aktuellem Objekt, dem Behälter des aktuellen Objektes und schliesslich der Web-Anfrage besteht. Wird die Variable gefunden, wird sie in den DTML-Output integriert. Wird sie nicht gefunden, löst Zope einen Fehler aus.

var Tag Instanz-Syntax:

        &dtml-variableName;

Die Instanz-Syntax ist ein Shortcut, der die Variable einfügt und als HTML zitiert. Dies ist nützlich, wenn Sie Variablen in HTML-Tags einfügen.

var-Tag Instanz-Syntax mit Attributen:

        &dtml.attribute1[.attribute2]...-variableName;

Bis zu einem gewissen Grad können Sie Attribute mit der Instanz-Syntax bestimmen. Sie können Null oder mehr Attribute, die von Perioden begrenzt werden, einfügen. Sie können keine Argumente für Attribute zur Verfügung stellen, die die Instanz-Syntax benutzen. Wenn Sie null oder mehr Attribute zur Verfügung stellen, wird die Variable nicht automatisch in HTML zitiert. So können Sie HTML-Zitate vermeiden: &dtml.-variableName;.

Attribute

html_quote
Wandelt Characters, die in HTML eine besondere Bedeutung haben, in HTML-Character-Instanzen um.
missing=string
Spezifiziert einen Defaultwert für den Fall, das Zope die Variable nicht finden kann.
fmt=string
Formatiert eine Variable. Zope bietet einige eingebaute Formate einschliesslich C-style Format Strings an. Für weitere Informationen über C-style Format Strings beachten Sie bitte auch: Python Library Reference Hat der Format String kein eingebautes Format, wird angenommen, dass es sich um eine Methode des Objektes handelt, und wird aufgerufen.
whole-dollars
Formatiert die Variable zu Dollar-Zeichen.
dollars-and-cents
Formatiert die Variable zu Dollar- und Cent-Zeichen.
collection-length
Die Länge der Variable, wobei angenommen wird, dass es sich um eine Sequenz handelt.
structured-text
Formatiert die Variable zu Structured Text. Für weitere Informationen über Structured Text beachten Sie bitte auch: Structured Text How-To auf der Zope.org Webseite.
null=string
Ein Defaultwert, der benutzt wird, wenn die Variable None ist.
lower
Wandelt Grossbuchstaben in Kleinbuchstaben um.
upper
Wandelt Kleinbuchstaben in Grossbuchstaben um.
capitalize
Schreibt den ersten Buchstaben des Wortes gross.
spacify
Wandelt Unterstriche in Leerzeichen um.
thousands_commas
Fügt alle drei Stellen links vom Dezimalpunkt ein Komma in eine Zahl ein, z.B. wird aus 12000 anschliessend 12,000.
url
Fügt die URL des Objektes ein, indem seine absolute_url-Methode aufgerufen wird.
url_quote
Wandelt Buchstaben, die eine besondere Bedeutung in URLs haben, in HTML-Character-Instanzen um.
url_quote_plus
URL-Anführungszeichen wie url_quote aber auch Leerzeichen werden in Pluszeichen umgewandelt.
sql_quote
Wandelt einzelne Anführungszeichen in normale Anführungszeichen um. Die wird benötigt, um Werte richtig in SQL-Strings einzufügen.
newline_to_br
Wandelt Zeilenendenzeichen (einschliesslich des Zeilenumbruchs) in HTML-Break-Tags um.
size=arg
Schneidet die Variable an der gegebenen Länge ab. (Bitte beachten Sie: ist in der zweiten Hälfte der abgeschnittenen Variable ein Leerzeichen vorhanden, wird der String in dieser Hälfte nochmals zerschnitten).
etc=arg
Definiert einen String, der an das Ende eines anderen Strings, der zerschnitten wurde, angehängt wird (indem das size-Attribut, das hier weiter oben in der Liste steht, angewendet wird). Defaultmässig ist dies ...

Beispiele

Eine einfache Variable in ein Dokument einfügen:

        

truncate:

        

wird folgenden Output ergeben, wenn colors der String 'red yellow green' ist:

        red yellow, etc.

C-style String-Formatierung:

        

berechnet:

        23432.23

Die Variable link, innerhalb eines HTML A-Tags mit der Instanz-Syntax:

        Link

Einen Link mit Hilfe der Instanz-Syntax mit Attributen in das Dokument doc einfügen:

        

Dies erzeugt einen HTML-Link zu einem Objekt, indem seine URL und sein Titel benutzt werden. Dieses Beispiel ruft die absolute_url-Methode des Objekets für die URL (es wird das url-Attribut benutzt) und seine title_or_id-Methode für den Titel auf.

with: Kontrolliert die DTML-Variablen-Suche

Das with Tag fügt ein Objekt in den DTML-Namensraum ein. Variablen werden zuerst im eingefügten Objekt gesucht.

Syntax

with Tag Syntax:

        
        

Das with-Tag ist ein Block-Tag. Es fügt den genannten Variablenausdruck für die Dauer des with-Blocks in den DTML-Namensraum ein. Hierdurch werden Namen zuerst im eingefügten Objekt gesucht.

Attribute

only
Begrenzt den DTML-Namensraum so, dass nur der im with-Tag definierte benutzt wird.
mapping
Zeigt an, dass die Variable oder der Ausdruck ein Oberflächenobjekt ist. Dies stellt sicher, dass Variablen korrekt im Objerflächenobjekt gesucht werden.

Beispiele

Eine Variable im REQUEST suchen:

        
          
            
          
            'id' was not in the request.
          
        

Die erste Verzweigung in den DTML-Namensraum einfügen:

        
          First child's id: 
        

Bitte beachten Sie auch:

let tag