Installation

Die technische Integration erfolgt einfach durch die Installation des Plugins, Angabe der Call-ID und weitere Parameter in den Einstellungen (Dashboard => Einstellungen => MGVO) und durch Einsetzen von WordPress Shortcode in den gewünschten Seiten, Artikeln oder Widgets (Shortcodes sind ein Standard-Verfahren von WordPress).

Installation

Der einfachste Weg ist der Download der kompletten ZIP-Datei, welche das WordPress-Plugin sowie die API enthält. Dieses kann direkt über das WordPress-Dashboard als Plugin installiert werden.

MGVO WordPress Plugin

Hinweis: Da das File mit gzip unter Linux gepackt ist, ist es mit dem default-Windows Zip/Explorer je nach Windows Version nicht zu öffnen. Mit 7-Zip und anderen Tools ist dies aber ohne weiteres möglich. In WordPress wird aber einfach das komplette Zip-File als Plugin hochgeladen, ein Entpacken ist gar nicht notwendig.

Der Link zu den Sourcen findet sich weiter unten.

Die Shortcodes erzeugen ein HTML, welches erstmal ohne jegliches CSS ausgegeben wird. Sie können dies via CSS beliebig an ihren Bedarf anpassen. Dadurch ist das Plugin auch mit beliebigen WordPress Themes kompatibel. Lediglich der Shortcode [gruppen_cards] sowie der Mitgliedsantrag benötigen zwingend Bootstrap (V4.x/V5.x) oder manuell erstelltes CSS mit display:flex für die Klassen .cards, etc.

Formatierung

Jede Tabelle hat im „<table>“ Element (oder im obersten Element) eine Klasse, mit der sich das Element und die darunterliegenen Elemente leicht ansprechen lassen. So sind die Tabellen zu Betreuern, Orte und Veranstaltungen hier wie folgt formatiert:

table.mgvo-betreuer, table.mgvo-orte, table.mgvo-events {
	border: thin solid lightgray;
	border-spacing: 16px 8px;
}


.mgvo-betreuer td, .mgvo-betreuer th, .mgvo-orte td,  .mgvo-orte th, .mgvo-events td, .mgvo-events th {
	border: thin solid lightgray;
        padding: 0.3rem 0.4rem;
}

Auch lassen sich über CSS einzelne Spalten ausblenden, ohne das eine Änderungen im PHP-Code des Plugins notwendig wird. So werden etwa hier in der Tabelle mit den Trainingsausfällen die 5. und 6. Spalte ausgeblendet.

.mgvo-trainingsausfall  td:nth-child(5), .mgvo-trainingsausfall  td:nth-child(6), .mgvo-trainingsausfall  td:nth-child(7), .mgvo-trainingsausfall  th:nth-child(5) {
	display:none;
	padding: 0rem !important;
}

Anpassungen

Der PHP-Code selbst kann selbstverständlich auch angepasst werden. Wir empfehlen ihnen dabei nur die Datei MgvoSnipletVerein.php anzupassen und hier alle Funktionen, die sie ändern wollen aus der Datei mgvo_sniplet.php zu kopieren. Die Klasse MgvoSnipletVerein leitet sich aus der Klasse MgvoSniplet ab. Alle Funktionen, die nicht in MgvoSnipletVerein enthalten sind werden automatisch aus MgvoSniplet aufgerufen. Weitere Details im Sourcecode.

In den Sniplets werden alle HTML-Ausgaben gemacht. Der Code hierfür ist so einfach wie möglich gehalten, die Komplexität der API zu MGVO und der WordPress-Integration ist komplett ausgelagert. Anbei ein Beispiel zur Ausgaben der Gruppen:

 function mgvo_sniplet_gruppen($filter = null) { 
         $resar = $this->api->read_gruppen();
         $ar = $this->mgvo_filter_gruppen($resar['objar'], $filter);
         $sniplet = "<div class='mgvo mgvo-gruppen'>";
         $sniplet .= $this->write_headline($resar['headline']);
         $sniplet .= "<table class='mgvo-gruppen'>";
         $sniplet .= "<tr>";
         $sniplet .= "<th>Gruppen-ID</th>";
         $sniplet .= "<th>Name</th>";
         $sniplet .= "<th>Betreuer</th>";
         $sniplet .= "</tr>";
         foreach($ar as $or) {
            $sniplet .= "<tr>";
            $sniplet .= "<td>".$or['gruid']."</td>";
            $sniplet .= "<td>".$or['grubez']."</td>";
            $sniplet .= "<td>";
            $sniplet .= isset($or['trnameall']) ?  $or['trnameall'] : "";
            $sniplet .= "</td>";
            $sniplet .= "</tr>";
         }
         $sniplet .= "</table><br>";
         $sniplet .= "</div>";
         return $sniplet;
}

Auf Wunsch können sie ihre Änderungen in einem Branch auf unserem Repository pflegen und somit einfach an Updates teilhaben und ihre Erfahrungen mit anderen teilen.

Die Sniplets sollten auf diese Weise auch einfach in andere Content Management Systeme (Joomla, Contao, etc.) oder in statischen HTML/PHP-Seiten verwendet werden können.

Eine weitere Referenzinstallation zu diesem Plugin finden sie auf der Seite des Blau-Gold Casino Darmstadt e.V. Hier kommt zusätzlich noch ein Java-Script-Plugin (fullcalendar.io) zum Einsatz, welches die Kalenderansichten erzeugt. (Details auf Anfrage)

Sourcen / Git-Repository

Die Sourcen sind hier zu finden:

https://gitlab.com/mgvo-public/mgvo-wordpress

Alternativ zum Download als ZIP kann dies auch direkt im Verzeichnis von wp-content/plugins/ mittels

git clone https://gitlab.com/mgvo-public/mgvo-wordpress.git

erstellt werden werden.

Bitte beachten sie, dass im Verzeichnis /mgvo-api das Repository

https://gitlab.com/mgvo-public/mgvo-api

zusätzlich eingefügt / gecloned werden muss (Dies ist ein git subproject, je nach git Version wird dies auch automatisch erledigt). D.h. im Ordner wp-content/plugins/ mgvo-wordpress

git clone git clone https://gitlab.com/mgvo-public/mgvo-api.git

ausführen.