Schnittstelle von WordPress mit Contact Form 7 zu FileMaker

WordPress und Contact Form 7 mit FileMakerWordPress ist heute weltweit das am meisten verbreitete Content Mangement System, auf dem viele Websites auch in Deutschland basieren. Für WordPress stehen unzählige Plugins und andere Erweiterungen zur Verfügung. Um beliebige Formulare für Benutzereingaben bereitzustellen, hat sich seit Jahren das WordPress-Plugin „Contact Form 7“ etabliert. Das Plugin mag zwar auf den ersten Blick etwas rudimentärer daher kommen als manch „aufgeblasenes“ andere Plugin, punktet dafür aber mit einer hohen Performance. Um Formulareingaben von Benutzern nicht nur per E-Mail zu versenden, sondern auch in einer Datenbank zu speichern, kann das kostenlos erhältliche WordPress-Plugin „Flamingo“ verwendet werden, das vom gleichen Hersteller stammt. In diesem Artikel gehen wir noch einen Schritt weiter und übertragen die gespeicherten Daten auf Knopfdruck in einer FileMaker-Datenbank. Für die Ausführung der im Beitrag enthaltenen FileMaker-Beispieldatenbank mit direktem Zugriff auf den WordPress-Server ist das MBS FileMaker Plugin erforderlich.

Zugriff auf den MySQL-Server mit dem MBS Plugin

Alle Datenbanken einer WordPress-Installation befinden sich auf einer MySQL-Datenbank des entsprechenden Webservers. Um auf die Datenbank extern zugreifen zu können, muß die entsprechende Datenbank für externe Zugriffe freigegeben werden. Diese Einstellung kann in der Regel im Backend des Server-Anbieters vorgenommen werden.

Um direkt auf die Datenbanken des Webservers zugreifen zu können, ist die Nutzung des MBS FileMaker Plugins erforderlich, denn FileMaker erlaubt mit Bordmitteln keinen direkten Zugriff auf SQL-Server. Das MBS Plugin kann auf der Website von Monkeybread Software erworben werden, und es steht eine kostenlose Demoversion zum Download zur Verfügung. Um den Zugriff auf die mySQL-Datenbanken zu ermöglichen, muß sich außerdem die MySQL-Library (libmysql.18.dylib oder libMySQL.dll) im Datenbankverzeichnis befinden.

WordPress, Contact Form 7 und Flamingo

Um Formulare für Benutzereingaben auf einer WordPress-basierten Website bereitzustellen, nutzen Sie das Plugin Contact Form 7. Um die Formulareingaben zu speichern, installieren Sie zusätzlich die Erweiterung Flamingo vom gleichen Hersteller. Beide Plugins können auch direkt im WordPress-Repository innerhalb des WordPress-Backends installiert und aktiviert werden.

Im WordPress-Backend navigieren Sie nun zum Menüpunkt [Formulare] und erstellen ein neues Formular für Ihre Website. Da Flamingo automatisch alle Formulareingaben speichert, müssen Sie nichts weiter tun außer der Erstellung eines neuen Formulars.

Formular in WordPress mit Contact Form 7 erstellen

Flamingo speichert alle Datensätze intern in der Tabelle „wp_posts“ mit dem Post-Type „flamingo-inbound“ und legt selbst keine eigene Tabelle in der WordPress-Datenbank an. In unserer kleinen Beispiellösung werden also alle Datensätze aus der Tabelle „wp_posts“ mit dem Post-Type „flamingo-inbound“ importiert. Weil die Datensätze von Flamingo einfach per Zeilenvorschub getrennt werden, können wir die Feldinhalte ganz einfach mit der FileMaker-Funktion „HoleWert“ extrahieren.

Prinzipiell können durch Angabe eines anderen Post-Types auch andere Datensätze aus der WordPress-Datenbank importiert werden. Die Daten könnten dann im Feld [post_content] jedoch anders formatiert sein. In unserer Beispiellösung beschränken wir uns auf WordPress mit Contact Form 7 und Flamingo, das die Feldinhalte einfach zeilenweise untereinander schreibt.

Bildschirmmaske der Beispiellösung

In der Beispiel-Datenbank befinden sich in der linken Spalte alle Felder zur Definition Ihrer WordPress-Datenbank mit allen erforderlichen Feldern.

Schnittstelle von WordPress zu FileMaker

Tragen Sie folgende Daten in die Felder ein, damit Sie Daten aus Ihrer WordPress-Installation in FileMaker importieren können. Alle Daten können Sie auch der Datei „wp-config.php“ entnehmen, die sich im Root-Verzeichnis Ihrer WordPress-Installation befindet.

  • Serveradresse (Host): URL, unter der Ihr Server erreichbar ist, auf der sich die Datenbank für WordPress befindet. Achtung: Um auf die Datenbank extern zugreifen zu können, muß die entsprechende Datenbank für externe Zugriffe freigegeben werden. Diese Einstellung kann in der Regel im Backend des Server-Anbieters vorgenommen werden.
  • Datenbank: Name der Datenbank, in in der sich alle WordPress-Tabellen mit dem Präfix „wp_“ befinden.
  • Benutzername: Benutzername für die Anmeldung an der Datenbank.
  • Passwort: Passwort für die Anmeldung an der Datenbank.
  • Post-Type: Wir verwenden in unserem Beispiel den Post-Type „flamingo_inbound“. Prinzipiell können durch Angabe eines anderen Post-Types auch andere Datensätze aus der WordPress-Datenbank importiert werden.

Felddefinitionen der Beispiellösung

Unsere Beispiellösung verwendet zwei Tabellen:

  • Einstellungen: Enthält alle Felder für die Servereinstellungen als globale Felder
  • Formulare: Enthält alle Felder für die eingelesenen Formulare

Eine Beziehung zwischen beiden Tabellen ist nicht erforderlich, weil alle Einstellungsfelder global definiert wurden.

Die Tabelle [Formulare] enthält für jedes Zielfeld ein berechnetes Textfeld mit der Berechnung:

  • HoleWert (post_content; x)

Der Platzhalter [x] steht in diesem Fall für die Nummer des Eintrags. Da alle von Flamingo generierten Einträge im Feld [post_content] mit einem Carriage Return (Zeilenschalter) getrennt werden, können die Felder ganz einfach mit der Funktion „HoleWert“ extrahiert werden.

Scripte in der Beispiellösung

Die Beispiellösung enthält zwei Scripte: Ein Script für den Verbindungsaufbau mit dem MySQL-Datenbankserver und ein Script, das über die Schaltfläche [Datenimport] ausgeführt wird. Das Teilscript [ts.MySQL_OpenDatabase] wird am Anfang vom Hauptscript [sf.MySQL_Import_wp_posts] aufgerufen.

  • Wenn [NICHT IstLeer(Einstellungen::wp_Datenbank) UND NICHT IstLeer(…)]

Fragt ab, ob alle Einstellungsfelder ausgefüllt wurden.

  • Script ausführen [„ts.MySQL_OpenDatabase“]

Führt das Teilscript zum Öffnen einer Datenbankverbindung mit dem MySQL-Server aus. Das Teilscript liefert eine Nummer für die Connection zurück.

  • Variable setzen [$Connection; Wert:Hole (ScriptErgebnis)]

Schreibt die zurückgelieferte Nummer der Connection in die Variable $Connection

  • Variable setzen [$Command; Wert:MBS(„SQL.NewCommand“; $Connection; „SELECT * FROM wp_posts…)]

Erzeugt eine SQL-Abfrage auf die Tabelle [wp_posts] mit Einschränkung auf den Post-Type, der im Feld [Post-Type] angegeben wurde (in unserem Fall „flamingo-inbound“).

  • Variable setzen [$result; Wert:MBS(„SQL.Execute“; $Command)]

Führt die oben aufgeführte SQL-Abfrage auf dem Server durch.

  • Schleife (Anfang)
  •    Variable setzen [$result; Wert:MBS(„SQL.FetchNext“; $Command)]
  •    Verlasse Schleife wenn [$result ≠ 1]
  •    Neuer Datensatz/Abfrage
  •    Feldwert setzen [Formulare::post_date; MBS(„SQL.GetFieldAsDateTime“; $command; „post_date“)]
  •    Feldwert setzen [Formulare::post_content; MBS(„SQL.GetFieldAsText“; $command; „post_content“)]
  •    Feldwert setzen [Formulare::post_type; MBS(„SQL.GetFieldAsText“; $command; „post_type“)]
  •    Feldwert setzen [Formulare::ID; MBS(„SQL.GetFieldAsNumber“; $command; „ID“)]
  •    Schreibe Änderung Datens./Abfrage [Ohne Dialogfeld]
  • Schleife (Ende)

Ausführungsschleife, in der jeweils ein neuer Datensatz erstellt wird und alle Feldwerte vom Datenbankserver in die erstellten Felder geschrieben werden.

Download FileMaker Beispieldatenbank (.fmp12)

Download FileMaker Beispieldatei

So übernehmen Sie Scripte aus der Beispieldatei in Ihre Lösung

Scripte lassen sich einfach über die Zwischenablage von einer FileMaker-Lösung in eine andere Lösung übertragen. Öffnen Sie einfach den Dialog Scripts verwalten, markieren Sie das gewünschte Script mit der Maus und kopieren Sie das Script in die Zwischenablage per Menü [Bearbeiten – Kopieren] oder Tastenkombination [Strg/Cmd-C]. Öffnen Sie daraufhin in der Ziel-Lösung den gleichen Dialog und fügen das zuvor kopierte Script einfach per Menübefehl [Bearbeiten – Einfügen] wieder ein.

So übernehmen Sie Tabellen aus der Beispieldatei in Ihre Lösung

Tabellen können auf mehrere Arten in eine bestehende Lösung eingefügt werden. Der einfachste Weg ist der Import der Tabelle über die Schaltfläche [Importieren…] im Dialog Datenbank verwalten. In einem nachfolgenden Dialog können dann alle Tabellen ausgewählt werden, die aus der Quell-Lösung importiert werden sollen. Diese Methode eignet sich also besonders, wenn mehrere Tabellen gleichzeitig importiert werden sollen. Soll nur eine Tabelle importiert werden, kann dies wie ein Script auch über die Zwischenablage erfolgen. Soll eine Tabelle samt Daten importiert werden, kann dies mit dem Befehl [Ablage/Datei > Datensätze importieren > Datei] erfolgen. Im Import-Dialog muß dann als Zieltabelle Neue Tabelle angegeben werden.

So übernehmen Sie Wertelisten aus der Beispieldatei in Ihre Lösung

Wertelisten können einfach über die Zwischenablage von einer FileMaker-Lösung in eine andere Lösung importiert werden. Öffnen Sie einfach den Dialog unter [Ablage/Datei > Verwalten > Wertelisten], markieren Sie die gewünschte Werteliste mit der Maus und kopieren Sie die Werteliste in die Zwischenablage per Menü [Bearbeiten – Kopieren] oder Tastenkombination [Strg/Cmd-C]. Öffnen Sie daraufhin in der Ziel-Lösung den gleichen Dialog und fügen die zuvor kopierte Werteliste per Menübefehl [Bearbeiten – Einfügen] wieder ein.

So übernehmen Sie eigene Funktionen aus der Beispieldatei in Ihre Lösung

Klicken Sie im Dialog [Ablage/Datei > Verwalten > Eigene Funktionen…] auf die Schaltfläche [Importieren] und wählen daraufhin die Beispieldatei aus. Wählen Sie im nachfolgenden Dialog die gewünschten eigenen Funktionen aus und bestätigen den Dialog. Bitte beachten Sie, daß diese Funktion nur in FileMaker Pro Advanced, nicht jedoch in FileMaker Pro zur Verfügung steht.

Diesen Beitrag bewerten:

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (1 Bewertungen. Durchschnitt: 5,00 von 5 Sternen.)

Loading...

Über den Autor

Markus Schall
Entwicklung von FileMaker-Datenbanken seit 1994, Modifikation und Erweiterung von FileMaker-Lösungen, Konvertierung von FileMaker-Datenbanken von .fm, .fp3, .fp5 (FileMaker 2-6) oder .fp7 (FileMaker 7-11) zu .fmp12 (FileMaker 12-15), Schnittstellen zu Drittsystemen wie Onlineshops, CMS oder andere Datenbanken. Entwicklung individueller FileMaker-Datenbanksysteme auf Basis des gFM-Business-Frameworks mit persönlicher Beratung aus Oldenburg. Betreiber des Online-Fachportals goFileMaker.de, Entwickler des CRM- und Warenwirtschaftssystems gFM-Business. Mitglied in der FileMaker Business Alliance, FileMaker Developers Subscription und FMM Experte. Gewinner eines FMM Award 2011, vergeben durch das FileMaker Magazin.

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.