Hallo,
ich bin gerade dabei mein erstes Plugin zu erstellen, welches ich auch später im offiziellen Plugin-Verzeichnis veröffentlich möchte. Hierbei hat sich die Frage ergeben, wie man am sinnvollsten Benutzeranpassungen im Bereich des Layouts realisieren kann
Erklärung:
Der Shortcode im Text wird durch einen recht umfangreichen HTML-Code ersetzt, welcher sich in einem div-Container befindet. Über eine CSS-Datei, welche sich im Plugin-Ordner befindet, wurde ein Grundlayout realisiert, z.B. dass der Rahmen des div-Containers rot ist.
Wie gibt man dem Plugin-Nutzer jetzt am besten die Möglichkeit, das Layout (z.B. Rahmen in grün) zu ändern.
a) über die CSS-Datei, die sich im Plugin-Ordner befindet, in welcher auch das Grundlayout enthalten ist
Nachteil: bei einem Plugin-Update wird diese Datei überschrieben, somit sind die Änderungen weg
b) in einer neuen CSS-Datei, die sich auch im Plugin-Ordner befindet, die aber nicht zur Grundinstallation der Plugins gehört, sonder ggf. dynamisch beim ersten Aufruf erzeugt wird
??? Was passiert mit dieser neuen Datei bei einem Plugin-Update?
c) Benutzer gibt CSS in ein HTML-Feld ein. Diese Daten werden in der DB und in einer CSS-Datei gespeichert. Beim Aufruf des Plugins wird geprüft, ob die CSS-Datei vorhanden ist (könnte beim Update gelöscht worden sein) und diese wird ggf. erstellt.
??? DB-Inhalte bleiben beim Plugin-Update erhalten?
Fände ich sehr kompliziert. Bei den CSS wäre das noch ein mögliche Weg, ich habe aber vor, dass der Benutzer auch Templates für das Plugin anpassen kann.
d) CSS im Theme-CSS speichern
Fände ich sehr unglücklich, da hier ggf. wieder das Update-Problem beim Theme vorhanden wäre bzw. die CSS eigentlich zum Plugin gehören.
Viel habe ich zu dem Thema Plugin-Update in dem Bereich nicht gefunden, daher sind das hier viele Vermutungen. Würde mich freuen, wenn diese bestätigt oder wiederlegt werden würde bzw. man mir eine Quelle nennt, wo ich entsprechende Antworten dazu finden kann (google war leider (noch) nicht sehr hilfreich).
Oder ob es einen bessere Alternative gibt, die ich noch nicht gefunden habe.