{"id":432,"date":"2017-05-08T17:34:32","date_gmt":"2017-05-08T15:34:32","guid":{"rendered":"http:\/\/evileu.de\/zum-schwarzen-pinguin\/?p=432"},"modified":"2017-05-08T17:38:52","modified_gmt":"2017-05-08T15:38:52","slug":"das-zweite-plugin-wir-basteln-uns-einen-datenbank-editor","status":"publish","type":"post","link":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/2017\/05\/08\/das-zweite-plugin-wir-basteln-uns-einen-datenbank-editor\/","title":{"rendered":"Das zweite Plugin: wir basteln uns einen Datenbank-Editor"},"content":{"rendered":"<h2>Zur Erinnerung: wir arbeiten mit eigenen Tabellen<\/h2>\n<p>Im Turnverein Wei\u00df-Blau gibt es ja unser tolles Anmeldeformular, mit dem die Mitgliederdaten Online erfa\u00dft werden. Das Formular haben wir mit <strong>Contact Form 7<\/strong> schnell gebaut, und mit <strong>Save Contact Form 7 <\/strong>schreiben wir uns die Daten gleich in eine Tabelle weg. So weit so gut, aber was machen wir jetzt, wenn sich Daten \u00e4ndern? Neue Telefonnummer, andere Adresse nach Umzug, andere E-Mail-Adresse? Mit phpMyadmin direkt auf der Datenbank \u00e4ndern? Nat\u00fcrlich nicht. Das geht komfortabler, aber ich warne sie gleich: das wird ein Ausflug ins reine PHP und hat mit WordPress nur am Rande was zu tun. Aber man braucht diese Funktionalit\u00e4t immer wieder, deshalb werden wir uns etwas ausf\u00fchrlicher damit befassen.<\/p>\n<h2>Plugin oder Shortcode?<\/h2>\n<p>Ist prinzipiell Geschmackssache, aber da ja nicht jeder Hinz und Kunz die Mitgliederdaten \u00e4ndern k\u00f6nnen soll, ist der Datenbankeditor auf dem Admin Screen gut aufgehoben, also nehmen wir ein Plugin, das nur vom Administrator bedient wird.<\/p>\n<h2>Was soll das Plugin k\u00f6nnen?<\/h2>\n<p>Ich gehe mal davon aus, da\u00df der Admin die Mitgliedsnummer (die ID aus der Datenbank nat\u00fcrlich!) des Vereinsmitgliedes kennt, dessen Daten er \u00e4ndern will. Also fragen wir zuerst mal die Mitgliedsnummer ab. Dann soll der Datensatz zu dieser Mitgliedsnummer angezeigt werden. Jetzt wollen wir noch die angezeigten Daten \u00e4ndern k\u00f6nnen, und ganz am Ende brauchen wir noch eine Funktionalit\u00e4t f\u00fcr das Speichern der \u00c4nderungen.<\/p>\n<p>Das ist ein ganzer Haufen Holz, aber Schritt f\u00fcr Schritt mit PHP geht das schon. Wenn sie schon ein Fex mit der Formularprogrammierung auf der Datenbank sind, entlockt ihnen das alles wahrscheinlich nur ein m\u00fcdes L\u00e4cheln, aber ich bekomme zur Formularprogrammierung immer so viele R\u00fcckfragen, da scheint doch einiger Erkl\u00e4rungsbedarf zu bestehen.<\/p>\n<h2>Wo fangen wir an? Bei der Plugin-Definition.<\/h2>\n<p>Wir legen das Plugin-Unterverzeichnis an, erstellen unsere erste PHP-Datei und versehen sie mit dem passenden Header. Mein Unterverzeichnis hei\u00dft adressen-editor, und die PHP-Datei dann logo adressen-editor.php. Der Header des PHP-Scripts sieht so aus:<\/p>\n<p><em>\/*<\/em><br \/>\n<em>Plugin Name: Adressen Editor<\/em><br \/>\n<em>Plugin URI: http:\/\/localhost\/wordpress\/wp-content\/plugins\/adressen-editor<\/em><br \/>\n<em>Description: \u00c4ndern von Mitglieder-Adressdaten auf der Datenbank<\/em><br \/>\n<em>Version: 1.0<\/em><br \/>\n<em>Author: Evi Leu<\/em><br \/>\n<em>Author URI: http:\/\/www.evileu.de<\/em><br \/>\n<em>*\/<\/em><\/p>\n<p>Sie erinnern sich, das sind die Parameter die WordPress f\u00fcr das Plugin-Verzeichnis ausliest.<\/p>\n<h2>Der Eintrag f\u00fcr das Admin-Men\u00fc<\/h2>\n<p>Damit es nicht zu Kollisionen mit unserem ersten Plugin kommt, muss man hier auf eindeutige Funktionsbenennungen achten. Zum Beispiel so (die angepassten Namen <strong>fett<\/strong>):<\/p>\n<p><em>add_action(&#8218;admin_menu&#8216;, &#8218;<strong>AdressenEditorMenu<\/strong>&#8218;);<\/em><\/p>\n<p><em>function <strong>AdressenEditorMenu<\/strong>() {<\/em><br \/>\n<em>$appName = &#8218;Adressen Editor&#8216;;<\/em><br \/>\n<em>$appID = &#8218;adressen-editor&#8216;;<\/em><br \/>\n<em>add_menu_page($appName, $appName, &#8218;administrator&#8216;, $appID, &#8218;<strong>pluginAdressenEditor<\/strong>&#8218;);<\/em><br \/>\n<em>}<\/em><\/p>\n<h2>Die Plugin-Funktion<\/h2>\n<p>Und so hei\u00dft jetzt unsere Plugin-Hauptfunktion, die tut erstmal noch nichts als eine \u00dcberschrift ausgeben:<\/p>\n<p><em>function <strong>pluginAdressenEditor<\/strong>() {<\/em><br \/>\n<em>\u00a0\u00a0 \u00a0echo &#8222;&lt;h1&gt;Adressen Editor&lt;\/h1&gt;&#8220;;<\/em><br \/>\n<em>}<\/em><\/p>\n<p>PHP-Datei ins Plugin-Verzeichnis schieben, im Plugin-Men\u00fc aktivieren, und unser neuer Men\u00fcpunkt Adressen Editor sollte schon mal da und funktional sein. Wie wir jetzt zu unserer ID und auf die Datenbank kommen, dazu gibts einen neuen Beitrag.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zur Erinnerung: wir arbeiten mit eigenen Tabellen Im Turnverein Wei\u00df-Blau gibt es ja unser tolles Anmeldeformular, mit dem die Mitgliederdaten Online erfa\u00dft werden. Das Formular haben wir mit Contact Form 7 schnell gebaut, und mit Save Contact Form 7 schreiben wir uns die Daten gleich in eine Tabelle weg. So weit so gut, aber was [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[19,20,21,4,8],"tags":[],"_links":{"self":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/432"}],"collection":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/comments?post=432"}],"version-history":[{"count":4,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/432\/revisions"}],"predecessor-version":[{"id":436,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/432\/revisions\/436"}],"wp:attachment":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/media?parent=432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/categories?post=432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/tags?post=432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}