31.3 Serververhalten
31.3.1 Eigene Serververhalten schreiben
In vielen Bereichen ist Dreamweaver 8 erweiterbar. Auch für dynamische Websites können Sie eigene Serververhalten schreiben und diese dauerhaft hinterlegen. In der nächsten Übung werden wir uns eine eigene Datenbankkonnektierung erstellen, die als Serververhalten gespeichert wird.
Schritt für Schritt: Datenbankkonnektierung als Serververhalten speichern
1 Neues Serververhalten anlegen
Im Bedienfeld Serververhalten finden Sie, neben den bereits vorhandenen Serververhalten, auch den Menüpunkt Neues Serververhalten und Serververhalten bearbeiten.
Wählen Sie aus dem Menü Neues Serververhalten aus, um ein eigenes neues Serververhalten anzulegen.
2 Dialogbox Neues Serververhalten
In der folgenden Dialogbox müssen Sie den Namen für das neue Serververhalten angeben. Dieser wird später in der Auswahlliste angezeigt.
Wenn Sie bereits Serverhalten angelegt haben und sie nur geringfügig modifizieren wollen, können Sie auch ein Serververhalten kopieren. Aktivieren Sie dann die Option Vorhandenes Serververhalten kopieren , und Sie können in der in unserer Abbildung deaktivierten Liste ein zu kopierendes auswählen.
Leider können die mitgelieferten Serververhalten von Dreamweaver 8 nicht kopiert oder modifiziert werden. Diese Option steht Ihnen nur für eigene Serververhalten zur Verfügung.
3 Codeblock anlegen
Serververhalten bestehen aus einem oder mehreren Codeblöcken. Legen Sie zunächst durch Klicken auf das Plus-Symbol einen neuen Codeblock an.
Nicht alle Serververhalten, die im Dokument verwendet werden, werden im entsprechenden Fenster auch angezeigt. Wenn Sie möchten, dass Ihres aufgelistet wird, aktivieren Sie den Bezeichner Verhalten im Fenster »Serververhalten« anzeigen, wenn ein Code-Block im Dokument gefunden wird.
Dreamweaver 8 findet mit dieser Option auch bereits angelegte Codeblöcke und zeigt sie korrekt als Serververhalten an, wenn der Quelltext mit dem Codeblock übereinstimmt.
4 Codeblock benennen und bestimmen
In der nächsten Dialogbox müssen Sie dem Codeblock innerhalb des Serververhaltens einen Namen zuweisen.
Die folgende Ansicht erinnert stark an das Bedienfeld Codefragmente und ist von der Arbeitsweise her auch sehr ähnlich. Kopieren Sie die Datenbankkonnektierung aus dem vorherigen Abschnitt »Abfragen verschachteln« in das Fenster Codeblock:
Listing 31.12 Codeblock für die DB-Konnektierung
<? mysql_connect("localhost","Root","") or die ("Zurzeit keine Verbindung möglich"); mysql_select_db("abfrage") or die ("Verbindung zur Datenbank zurzeit nicht möglich"); ?>
5 Platzhalter einfügen
Da es sich bei Serververhalten um dynamische Elemente handelt, ist es nahezu unerlässlich, auch Variablen einzufügen. Sie können das mit den Platzhaltern @@Variablenname@@ erreichen. Markieren Sie dazu den zu ersetzenden Teil im Codeblock, oder positionieren Sie den Cursor an der gewünschten Stelle, und klicken Sie auf Parameter in Codeblock einfügen.
In der folgenden Abbildung sehen Sie, dass wir »localhost« ausgewählt haben, um es durch einen Parameter zu ersetzen. In der Darstellung haben wir es unterstrichen.
Geben Sie in der Dialogbox den gewünschten Namen für den Parameter ein. Verwenden Sie am besten allgemeine beschreibende Begriffe, die ihre Gültigkeit über das aktuelle Dokument hinaus behalten.
Wie Sie der Abbildung entnehmen können, wurde »localhost« durch einen Platzhalter ersetzt. Diesen Arbeitsschritt müssen Sie nun für alle Parameter »User«, »Pass« und »Datenbank« wiederholen. Wenn Sie alles korrekt durchgeführt haben, steht im Codeblock:
Listing 31.13 Codeblock mit Parametern (Platzhaltern)
<? mysql_connect("@@Host@@","@@User@@","@@Passwort@@") or die ("Zurzeit keine Verbindung möglich"); mysql_select_db("@@Datenbank@@") or die ("Verbindung zur Datenbank zurzeit nicht möglich"); ?>
Wenn Sie möchten können Sie natürlich auch die Fehlermeldungen durch Platzhalter ersetzen und eigene von PHP ausgeben lassen.
6 Parameter übergeben
Der Codeblock ist nun fast fertig. Als Letztes müssen Sie nun auswählen, auf welche Weise die Parameter in den Codeblock übergeben werden sollen. In unserem Fall sind es einfache Textfelder, die auch als Standardvorgabe eingetragen wurden. Diese Textfelder erscheinen immer, wenn Sie ein Serververhalten in Ihr Dokument einfügen.
7 Fertiges Serververhalten
8 Serververhalten testen
8 Serververhalten testen
Wenn Sie nun das Serverhalten einfügen möchten, erscheint eine Dialogbox mit den von Ihnen festgelegten Parametern, die Sie nun eingeben müssen. Wie eben bereits erwähnt, sind dies die Felder, die mit der Dialogbox Verhalten generieren erzeugt werden.
9 Fertig eingefügtes eigenes Serverhalten
Das Serververhalten wird im Dokument eingefügt, und die Platzhalter wurden durch Ihre Eingaben ersetzt. Im Bedienfeld Serververhalten wird es mit den von Ihnen vergebenen Parametern angezeigt.
31.3.2 Positionierung im Code
Wie Sie während der Arbeit bemerken, können Sie selbst festlegen, an welcher Stelle im Code das Verhalten eingefügt wird. Es stehen Ihnen dabei folgende Möglichkeiten zur Verfügung, wie Sie der Tabelle entnehmen können.
Einfügeoptionen | |
Vor dem Tag <html> |
|
Unterhalb des Tags </html> |
|
Relativ zu einem bestimmten Tag |
Auswahl eines bestimmten Tags und einer von Ihnen vorgegebenen Position |
Relativ zur Auswahl |
|
Tabelle 31.1 Einfügeoptionen
Reihenfolge von Code | Bei der Programmierung spielt die Reihenfolge des Codes immer eine große Rolle. So können Sie beispielsweise niemals eine Abfrage vor einer Datenbankkonnektierung durchführen oder einen Datensatz vor der Abfrage ausgeben. Programmteile sind meistens voneinander abhängig und können keine Daten verarbeiten, die nicht vorhanden sind. Daher ist es für viele Serververhalten entscheidend, an welcher Stelle im Skript der Codeblock eingefügt wird, und es ist sehr wichtig, diese eben beschriebenen Positionierungen einzustellen.
Gewichtung festlegen | Wenn Sie als relative Position eine Benutzerdefinierte Stelle auswählen, können Sie zusätzlich eine Gewichtung (Position) angeben. Ein Block mit der Gewichtung 50 wird vor einem Block mit der Gewichtung 60 eingefügt.
Dreamweaver 8 erteilt allen Codeblöcken, die auf Datensatzabfragen zugreifen, die Standardgewichtung 50. Wenn Sie mehrere Blöcke mit denselben Gewichtungen anlegen, wählt Dreamweaver 8 die Reihenfolge der Codeblöcke im Quelltext nach dem Zufallsprinzip aus.
Abbildung 31.22 Gewichtung der Codeblöcke einstellen
31.3.3 Bedingungen als Serververhalten anlegen
Das Erstellen eigener Serververhalten ist ein sehr komplexes Thema. Dreamweaver 8 unterstützt neben den bereits erwähnten Einstellmöglichkeiten auch die Bildung von Schleifen und Bedingungen in Codeblöcken mit Dreamweaver 8-spezifischen Codeparametern. Für diese sehr tiefgehenden Einstellungen und die Programmierung von Erweiterungen verweisen wir auf die sehr gute und umfangreiche Dokumentation von Dreamweaver 8.
PHP-Bedingung | Das nun folgende Serververhalten hat nichts mit den Dreamweaver 8-spezifischen Bedingungen gemeinsam, sondern ist eine reine PHP-Bedingung! Wie Sie sicherlich bereits festgestellt haben, kommt es recht häufig vor, dass bestimmte Codefragmente nur angezeigt werden sollen, wenn eine Bedingung innerhalb eines PHP-Befehls erfüllt ist.
Sie können sich diese Bedingungen auch als Serververhalten anlegen, es gibt dabei aber einige Kleinigkeiten zu bedenken.
Abbildung 31.23 Bedingung als Serververhalten
In Abbildung 31.23 sehen Sie ein neues Serververhalten und den enthaltenen Codeblock:
Listing 31.14 Bedingung als Serververhalten
<? if(@@Wert_B@@ = @@Wert_A@@) { echo "@@Ausgabe@@"; } ?>
Damit das Serververhalten nicht an einer von Dreamweaver ausgewählten Stelle platziert wird, geben wir als Positionierung Relativ zur Auswahl und Auswahl ersetzen vor. Damit wird der Codeblock direkt am im Quelltext positionierten Cursor eingesetzt.
Im Codeblock sind drei Parameter eingetragen. Diese Parameter werden im fertigen Skript durch die beiden zu vergleichenden Variablen oder Werte und durch die gewünschte Ausgabe bei erfüllter Bedingung ersetzt. Die Vorgaben für das Dialogfeld werden als dynamische Textfelder gewählt, damit als Vergleichsparameter auch Datenfelder auswählbar sind.
Abbildung 31.24 Anzeigen der Parameter als dynamisches Textfeld
Beim anschließenden Test wählen wir zwei identische Datensätze aus, um sicherzustellen, dass die Bedingung erfüllt ist, und einen einfachen Begriff als »Erfolgsmeldung«, der im Dokument bei erfüllter Bedingung ausgegeben werden soll.
Abbildung 31.25 Testen des Serververhaltens
Wie Sie feststellen werden, arbeitet das eben erstellte Serververhalten fehlerhaft, wenn nicht von Hand eingegriffen wird. Der von Dreamweaver 8 erzeugte Code kann nicht funktionieren:
Listing 31.15 Fehlerhaftes Verhalten
<? if(<?php echo $row_Recordset1['name']; ?> =<?php echo $row_Recordset1['name']; ?>) { echo"Hallo"; } ?>
Dreamweaver 8 setzt um Datensatzfelder herum immer einen PHP-Tag. Dieser bewirkt, dass die PHP-Tags nicht korrekt geschlossen werden, da diese Tags auch in unserem Serververhalten vorkommen. Leider kann man Dreamweaver auch nicht überreden, das Serververhalten wie in folgendem Listing korrekt anzulegen:
Listing 31.16 Nicht von Dreamweaver 8 akzeptiert
<? if( ?>@@Wert_B@@ <? = ?>@@Wert_A@@<? ) { echo "@@Ausgabe@@"; }
Dreamweaver 8 weigert sich beharrlich, PHP innerhalb eines Codeblockes mehrfach zu beginnen, und meckert sofort. Warum das so ist, ist uns nicht klar. Es sollte eigentlich keine Schwierigkeit sein, das zu erlauben. Besonders verwunderlich ist dies, weil Dreamweaver 8 im von ihm erstellten Quelltext regelrecht exzessiv PHP beginnt und wieder beendet.
Sie kommen bei diesem Serververhalten nicht umhin, die Schreibweise in der Dialogbox wie in Abbildung 31.26 von Hand zu ändern und die PHP-Tags zu entfernen. Dies stellt, wenn man es weiß, auch kein größeres Problem dar. In der Dialogbox können Sie eingeben und editieren, was Sie möchten. Einen dynamischen Datensatz einzufügen ist ja nur eine der Optionen, die Ihnen zur Verfügung steht.
Listing 31.17 Berichtigtes Verhalten
<? if($row_Recordset1['name'] = $row_Recordset1['name']) { echo "Hallo"; } ?>
Abbildung 31.26 Berichtigte Variablen
Codefragmente |
Neben dem Anlegen eigener Serververhalten können Sie natürlich Ihre Skripts auch als Codefragmente einfügen. Die Möglichkeit, Parameter zu vergeben, haben Sie dann allerdings nicht. |
31.3.4 Serververhalten anderen zur Verfügung stellen
Dreamweaver speichert die Dateien für die Servererweiterungen in einem separaten Verzeichnis ab. Windows-User finden dieses unter Dokumente und Einstellungen und ihrem Benutzernamen im Verzeichnis Dreamweaver 8.
Abbildung 31.27 Serververhalten im Dreamweaver 8-Verzeichnis
Jedes Serververhalten besteht aus drei Dateien, die Sie einfach anderen Nutzern Ihrer Arbeitsgruppe zur Verfügung stellen können, indem Sie diese kopieren.
Bezugsquellen für Serververhalten | Auf der Website von Macromedia finden Sie unter Macromedia Exchange noch viele weitere Serververhalten, die Sie über den Extension Manager installieren können.
Auch einige kommerzielle Serververhalten sind erhältlich. Bis hin zu kompletten Shopsystemen als Serververhalten ist fast alles zu finden. Erfreulicherweise gibt es mittlerweile auch viele PHP-Skripts.