Deutsche Zope User Group
Gast 3 Benutzer online
DZUG-News

Der Unterschied zwischen einem DTML Document und einer DTML Methode

Frage:

Was unterscheidet ein DTML Document und eine DTML Methode?

Antwort:

Grunds�tzliches

Wie es der Name schon sagt, ist das DTML Document ein Dokument, also ein Objekt. Die DTML Method hingegen ist eine Methode, also kein Objekt, sondern nur ein Skript.

Etwas genauer

Eine Methode ist dazu da, um Objekte zu ver�ndern, Daten auszugehen, Berechnungen anzustellen und �hnliches, also um etwas zu tun. Methoden verf�gen selber nicht �ber Eigenschaften, und somit auch weder �ber Daten noch �ber Unterobjekte. Deshalb fehlt auch die Properties-Seite im Management Inferface.

Ein Object, wie z.B. das DTML-Document, ist eher als eine Art Sammlung von Methoden und Eigenschaften zu verstehen. Eigenschaften k�nnen zum Beipiel der Text eines DTML Document, die Bin�rdaten eines Images oder ganze Unterobjekte (wie beim Folder) sein.

Was ist der Hauptunterschied im Verhalten der Beiden?

Ein DTML Document kennt in erster Linie sich selbst, seine Eigenschaften, seine Methoden. Die DTML Methode kennt hingegen nur das �bergeordnete Objekt.

Ein Beispiel: gibt die IDs aller Unterobjekte zur�ck. In einer Methode aufgerufen, wird eine Liste der Objekte im aktuellen Verzeichnis angezeigt. In einem DTML Document hingegen nicht. Warum? Der Kontext einer Methode ist das �bergeordnete Objekt, also das Folder. Der Kontext des Documents ist es selber, und da es keine Unterobjekte hat, werden auch keine angezeigt.

Was soll/kann man damit anfangen?

Als kleinen Beispiel m�chte ich zeigen, wie man es verhindert, jedes Document mit Header und Footer zu umschliessen: Dazu legt man sich eine DTML Method "view" an:

   
   
   
 

As zweites kommt ein DTML Document "Wetter" dazu:

   Kr�ht der Hahne auf dem Mist, �ndert sich das Wetter oder es bleibt wie's ist.

Ruft man jetzt Wetter/view im Browser auf, holt sich die Methode den Inhalt des Dokumentes und f�gt ihn zwischen Header und Footer ein.


Rubriken: DTML    FAQ angelegt von: Kruegi, Letzte �nderung: 21.05.2003 12:17 Uhr