RRZE-Webteam / rrze-shorturl

WordPress-Plugin to enable a shorturl redirection service run on two servers (WP + PHP-only)
https://www.shorturl.rrze.fau.de
GNU General Public License v3.0
0 stars 1 forks source link

Datenbanktables und Trigger in CPT umwandeln #132

Open xwolfde opened 1 month ago

xwolfde commented 1 month ago

Aus #131 geht hervor, dass die ShortURLs mit Hilfe einer eigenen Datenbank-Table verwaltet werden. Dadurch sind Standard-WordPress-Funktionen nicht vorhanden und die Bearbeitung dieser Table ist nicht ohne Fachwissen und nicht ohne Tools möglich. Dies ist nicht wünschenswert und mEn auch nicht der korrekte Weg wie man WordPress Datenverwalten sollte. Der Service muss auch durch NIcht-Programmierer / Service-Leute / Webredaktion betrieben werden können, die eben kaum in Datenbanken rumarbeiten sollen.

Daher ist diese jetzige Form durch eine Custom Post Type mit Custom Post Fields für alle notwendigen Felder zu ersetzen.

Administratoren der Website können dann auf alle Einträge des CPT zugreifen. Ansonsten die jeweiligen Autoren nur auf die selbst angelegten.

thenickless commented 1 month ago

Den Code habe ich refactored im Branch https://github.com/RRZE-Webteam/rrze-shorturl/tree/CPT Enthalten ist auch ein Migrations-Script. Ich muss es jedoch noch testen, bevor ich in main merge.

Ich habe das Plugin mit eigenen Datenbank-Tabellen entwickelt, weil es mit Foreign Keys und Trigger deutlich performanter ist, als CPT zu nutzen und die Datenkonsistenz auf Datenbankebene stets gewährleistet ist. Das habe ich mit Rolf diskutiert und er war einverstanden.

Es gibt einige bekannte WordPress-Plugins, die eigene Datenbank-Tabellen nutzen. Z.B. Yoast SEO, WooCommerce, WPML, ACF, Gravity Forms, ...

Aber deine Argumente sind überzeugend.

thenickless commented 1 month ago

done. (2.0.0)

xwolfde commented 3 weeks ago

Und wo sehe ich die CPT? Die müsste ja dies ermöglichen: #147

Auf dem Server ist die version 2.1.7

thenickless commented 1 week ago

Und wo sehe ich die CPT? Die müsste ja dies ermöglichen: #147

Auf dem Server ist die version 2.1.7

Sorry für das vorzeitige "done." - es ist noch nicht vollständig umgesetzt. Mit Version 2.0.0 wurden die CPTs eingeführt und die bestehenden Daten migriert.


Aber mir ist noch etwas nicht klar zu "Autoren":

Administratoren der Website können dann auf alle Einträge des CPT zugreifen. Ansonsten die jeweiligen Autoren nur auf die selbst angelegten.

https://www.shorturl.rrze.fau.de/liste-an-shorturls/

Bisheriger Stand: Im Frontend können Links bearbeitet und hierarchische Kategorien verwaltet werden. Wir möchten nicht, dass Kunden Zugriff auf das Backend erhalten, daher sind sie keine Autoren.

Ist es korrekt, dass:


Noch eine Anmerkung zu

Der Service muss auch durch NIcht-Programmierer / Service-Leute / Webredaktion betrieben werden können, die eben kaum in Datenbanken rumarbeiten sollen.

Dass keiner in Datenbanken rumarbeiten soll, stand sowieso außer Frage. :D

Die zentrale Herausforderung bei diesem Plugin war, Funktionen, die normalerweise im Backend angesiedelt sind, im Frontend bereitzustellen – SSO-geschützt.

Da ja WordPress keine nativen Funktionen zur Verwaltung von CPTs und Taxonomien im Frontend bietet und aus Gründen der Performance und Datenkonsistenz, habe ich auf CPTs verzichtet und stattdessen eigene Tabellen verwendet.

Trotzdem bringt die Nutzung von CPTs klare Vorteile für die WordPress-Admins, die dadurch Daten direkt im Backend bearbeiten können. Damit alles rund läuft, muss die Datenkonsistenz gewährleistet sein.