Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Datenbanktables und Trigger in CPT umwandeln #132

Open
xwolfde opened this issue Sep 9, 2024 · 4 comments
Open

Datenbanktables und Trigger in CPT umwandeln #132

xwolfde opened this issue Sep 9, 2024 · 4 comments
Assignees
Labels
Basisfunktion Umzusetzende Grundfunktionalität Code Issues mit Bezug auf Programmcode

Comments

@xwolfde
Copy link
Member

xwolfde commented Sep 9, 2024

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.

@xwolfde xwolfde added Basisfunktion Umzusetzende Grundfunktionalität Code Issues mit Bezug auf Programmcode labels Sep 9, 2024
@thenickless
Copy link
Member

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 thenickless self-assigned this Sep 27, 2024
thenickless added a commit that referenced this issue Oct 1, 2024
@thenickless
Copy link
Member

done. (2.0.0)

@xwolfde
Copy link
Member Author

xwolfde commented Oct 17, 2024

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

Auf dem Server ist die version 2.1.7

@thenickless
Copy link
Member

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:

  • Kunden weiterhin keinen Zugriff auf das Backend bekommen und
  • Kunden ihre eigenen Links / Kategorien im Frontend verwalten?

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Basisfunktion Umzusetzende Grundfunktionalität Code Issues mit Bezug auf Programmcode
Projects
None yet
Development

No branches or pull requests

2 participants