
Toegang tot de MySQL server met de MBS plugin
Alle databases van een WordPress installatie bevinden zich op een MySQL database van de bijbehorende webserver. Om de database extern te kunnen benaderen, moet de betreffende database geautoriseerd zijn voor externe toegang. Deze instelling kan meestal worden gemaakt in de backend van de serverprovider.
Om direct toegang te krijgen tot de databases van de webserver moet de MBS FileMaker plugin gebruikt worden, omdat FileMaker geen directe toegang tot de databases toestaat met de ingebouwde tools. SQL-server. De MBS-plugin kan worden geïnstalleerd op de Website van Monkeybread Software en er is een gratis demoversie beschikbaar om te downloaden. Om toegang tot de MySQL databases mogelijk te maken, moet de MySQL bibliotheek (libmysql.18.dylib of libMySQL.dll) ook in de databasemap staan.
WordPress, Contactformulier 7 en Flamingo
Om formulieren voor gebruikersinvoer op een WordPress-gebaseerde website te zetten, gebruik je de plugin Contactformulier 7. Installeer ook de extensie Flamingo van dezelfde fabrikant. Beide plugins kunnen ook rechtstreeks in de WordPress repository in de WordPress backend worden geïnstalleerd en geactiveerd.
Navigeer in de WordPress backend naar het menu-item [Formulieren] en maak een nieuw formulier aan voor je website. Omdat Flamingo alle ingevulde formulieren automatisch opslaat, hoef je niets anders te doen dan een nieuw formulier aan te maken.
Flamingo slaat alle gegevensrecords intern op in de Tabel "wp_posts" met het posttype "flamingo-inbound" en maakt geen eigen tabel aan in de WordPress database. In ons kleine voorbeeld worden alle gegevensrecords geïmporteerd uit de tabel "wp_posts" met het posttype "flamingo-inbound". Omdat de gegevensrecords eenvoudig door Flamingo worden gescheiden met behulp van een line feed, kunnen we de veldinhoud gemakkelijk extraheren met behulp van de FileMaker-functie "GetValue".
In principe kunnen ook andere gegevensrecords worden geïmporteerd uit de WordPress database door een ander posttype op te geven. De gegevens kunnen dan worden opgeslagen in de [post_content] kunnen anders geformatteerd zijn. In ons voorbeeld beperken we ons tot WordPress met Contact Form 7 en Flamingo, dat de inhoud van de velden gewoon onder elkaar schrijft.
Scherm van de monsteroplossing
In de voorbeelddatabase bevat de linkerkolom alle velden voor het definiëren van je WordPress database met alle verplichte velden.
Voer de volgende gegevens in de velden in, zodat u gegevens van uw WordPress installatie in FileMaker kunt importeren. Alle gegevens zijn ook te vinden in het bestand "wp-config.php", dat zich in de hoofdmap van uw WordPress-installatie bevindt.
- Serveradres (Gastheer)URL waaronder je server toegankelijk is en waarop de database voor WordPress zich bevindt. Opmerking: Om de database extern te kunnen benaderen, moet de betreffende database geautoriseerd zijn voor externe toegang. Deze instelling kan meestal worden gemaakt in de backend van de serverprovider.
- DatabaseNaam van de database waarin alle WordPress tabellen met het voorvoegsel "wp_" staan.
- GebruikersnaamGebruikersnaam om in te loggen in de database.
- wachtwoordWachtwoord om in te loggen in de database.
- Post-typeIn ons voorbeeld gebruiken we het posttype "flamingo_inbound". In principe kunnen andere gegevensrecords ook worden geïmporteerd uit de WordPress database door een ander posttype op te geven.
Velddefinities van de monsteroplossing
Onze voorbeeldoplossing gebruikt twee tabellen:
- InstellingenBevat alle velden voor de serverinstellingen als globale velden
- FormulierenBevat alle velden voor de geïmporteerde formulieren
Een relatie tussen de twee tabellen is niet nodig omdat alle instellingsvelden globaal gedefinieerd zijn.
De tafel [Formulieren] bevat een berekend tekstveld met de berekening voor elk doelveld:
- GetValue (post_content; x)
De plaatshouder [x] staat in dit geval voor het nummer van de entry. Aangezien alle vermeldingen gegenereerd door Flamingo in het veld [post_content] gescheiden zijn met een carriage return, kunnen de velden gemakkelijk geëxtraheerd worden met de functie "GetValue".
Scripts in de voorbeeldoplossing
De voorbeeldoplossing bevat twee scripts: Een Script voor het maken van een verbinding met de MySQL databaseserver en een script dat kan worden uitgevoerd via de [Gegevensimport] wordt uitgevoerd. Het gedeeltelijke script [ts.MySQL_OpenDatabase] wordt gebruikt aan het begin van het hoofdscript [sf.MySQL_Import_wp_posts] gebeld.
- If [NOT IsEmpty(Settings::wp_Database) AND NOT IsEmpty(...)]
Vraagt of alle instellingsvelden zijn ingevuld.
- Voer script ["ts.MySQL_OpenDatabase"] uit.
Voert het deelscript uit voor het openen van een databaseverbinding met de MySQL-server. Het deelscript retourneert een nummer voor de verbinding.
- Variabele set [$Connection; waarde:Get(ScriptResult)]
Schrijft het geretourneerde nummer van de verbinding naar de variabele $Connection
- Stel variabele [$Command; waarde:MBS("SQL.NewCommand"; $Connection; "SELECT * FROM wp_posts...)] in.
Genereert een SQL-query op de tabel [wp_posts] met beperking tot het posttype, dat wordt ingevoerd in de [Post-Type] werd opgegeven (in ons geval "flamingo-inbound").
- Stel variabele [$result; Waarde:MBS("SQL.Execute"; $Command)] in.
Voert de bovenstaande SQL-query uit op de server.
- Lus (start)
- Stel variabele [$result; Waarde:MBS("SQL.FetchNext"; $Command)] in.
- Verlaat de lus als [$result ≠ 1]
- Nieuwe gegevensrecord/query
- Stel de veldwaarde in [Forms::post_date; MBS("SQL.GetFieldAsDateTime"; $command; "post_date")].
- Stel de veldwaarde in [Forms::post_content; MBS("SQL.GetFieldAsText"; $command; "post_content")].
- Stel de veldwaarde in [Forms::post_type; MBS("SQL.GetFieldAsText"; $command; "post_type")].
- Stel de veldwaarde in [Forms::ID; MBS("SQL.GetFieldAsNumber"; $command; "ID")].
- Wijzigingsgegevens/query schrijven [Zonder dialoogvenster]
- Lus (einde)
Uitvoeringslus waarin een nieuw gegevensrecord wordt aangemaakt en alle veldwaarden door de databaseserver naar de aangemaakte velden worden geschreven.
FileMaker-voorbeelddatabase downloaden (.fmp12)
Hoe scripts over te zetten van het voorbeeldbestand naar je oplossing
Scripts kunnen eenvoudig van de ene FileMaker-oplossing naar de andere worden overgezet via het klembord. Open gewoon het dialoogvenster Scripts beherenSelecteer het gewenste script met de muis en kopieer het script naar het klembord via het menu [Bewerken - Kopiëren] of toetsencombinatie [Ctrl/Cmd-C].. Open dan hetzelfde dialoogvenster in de doeloplossing en plak eenvoudig het eerder gekopieerde script met de menuopdracht [Bewerken - Plakken]. weer.
Tabellen overbrengen van het voorbeeldbestand naar je oplossing
Tabellen kunnen op verschillende manieren in een bestaande oplossing worden ingevoegd. De eenvoudigste manier is om de tabel te importeren met behulp van de [Importeren...]. in dialoog Database beheren. Alle tabellen die geïmporteerd moeten worden uit de bronoplossing kunnen dan geselecteerd worden in een volgende dialoog. Deze methode is daarom bijzonder geschikt als er meerdere tabellen tegelijk geïmporteerd moeten worden. Als slechts één tabel moet worden geïmporteerd, kan dit ook via het klembord worden gedaan, zoals een script. Als een tabel met alle gegevens moet worden geïmporteerd, kan dit worden gedaan met het commando [Bestand > Gegevensrecords importeren > Bestand]. in de import dialoog. In de importdialoog moet de doeltabel dan Nieuwe tabel moet worden opgegeven.
Om waardenlijsten over te zetten van het voorbeeldbestand naar je oplossing
Waardelijsten kunnen eenvoudig van de ene FileMaker-oplossing naar de andere worden geïmporteerd via het klembord. Open gewoon het dialoogvenster onder [Bestand > Beheren > Waardelijsten]selecteer de gewenste Waardelijst met de muis en kopieer de waardenlijst naar het klembord via menu [Bewerken - Kopiëren] of toetsencombinatie [Ctrl/Cmd-C].. Open dan hetzelfde dialoogvenster in de doeloplossing en plak de eerder gekopieerde waardenlijst met de menuopdracht [Bewerken - Plakken]. weer.
Hoe je je eigen functies uit het voorbeeldbestand kunt overbrengen naar je oplossing
In de dialoog [Bestand > Beheer > Eigen functies...]. op de knop [Import] en selecteer vervolgens het voorbeeldbestand. Selecteer de gewenste aangepaste functies in het volgende dialoogvenster en bevestig het dialoogvenster. Houd er rekening mee dat deze functie alleen beschikbaar is in FileMaker Pro Advanced, maar niet in FileMaker Pro.

Markus Schall ontwikkelt sinds 1994 databases, interfaces en bedrijfstoepassingen op maat op basis van Claris FileMaker. Hij is Claris-partner, FMM Award-winnaar 2011 en ontwikkelaar van de ERP-software gFM-Business. Hij is ook auteur van boeken en oprichter van de M. Schall Uitgevers.



