Plugin-Konfiguration setElement...

Hallo,

wenn ich zum Beispiel ein Plugin entwickelt habe und ich in diesem Plugin auch eine Plugin.Konfiguration angelegt habe (z.B. in Version 1) und sich das Konfiguration-Formular in einer späteren Version ändert, wie bekomme ich dann zum Beispiel ein Feld aus der Konfiguration gelöscht? Gibt es sowas wie removeElement was dann in der Methode Update rein muss?

Weil, bisher ist es so, dass ein Konfigurationsfeld nicht gelöscht wird, wenn ich es herausnehme. Es bleibt erhalten…

Hat evtl. jemand einen Tipp?

Grüße
AvL

@AvL schrieb:

Hallo,

wenn ich zum Beispiel ein Plugin entwickelt habe und ich in diesem Plugin auch eine Plugin.Konfiguration angelegt habe (z.B. in Version 1) und sich das Konfiguration-Formular in einer späteren Version ändert, wie bekomme ich dann zum Beispiel ein Feld aus der Konfiguration gelöscht? Gibt es sowas wie removeElement was dann in der Methode Update rein muss?

Weil, bisher ist es so, dass ein Konfigurationsfeld nicht gelöscht wird, wenn ich es herausnehme. Es bleibt erhalten…

Hat evtl. jemand einen Tipp?

Grüße
AvL

Hallo,

warum willst du es denn löschen? Ansich dürfte es nicht möglich sein, über ein Update ein Konfigurationsfeld wieder zu entfernen - dafür müsste der Kunde dann das Plugin einmal neu installieren (in der install-Methode hast du dann das Feld ja nicht mehr drin).

Ansich kannst du ja im „späteren Code“ einfach die Funktion entfernen, die die Auswahl mal bewirkt hat, somit ist es nicht relevant, was dort ausgewählt wird. Wenn du in der update-Methode das Konfigurationsfeld noch einmal aufführst, dürfte es dies zumindestens vom Inhalt aktualisieren - somit könntest du zumindestens dort einfach das Feld als veraltet etc deklarieren.

Beste Grüße

Sebastian

Hi Sebastian,

in der Software-Entwicklung kommen neue Anforderungen hinzu und es verschwinden Anforderungen bzw. werden geändert. Es kann dann natürlich vorkommen, dass ein Konfigurationsparameter entweder entfernt werden muß oder umbenannt werden muß usw.

Viele Grüße
Andreas

 

@AvL schrieb:

Hi Sebastian,

in der Software-Entwicklung kommen neue Anforderungen hinzu und es verschwinden Anforderungen bzw. werden geändert. Es kann dann natürlich vorkommen, dass ein Konfigurationsparameter entweder entfernt werden muß oder umbenannt werden muß usw.

Viele Grüße
Andreas

 

Hallo,

das ist mir schon klar, das im Laufe der Entwicklung auch Eigenschaften oder ähnliches „veraltet“/überflüssig sind. Löschen oder die Reihenfolge von Konfigurationselementen ändern kannst du meines Wissens nicht. Für solche Zwecke müsste einfach das Plugin neu installiert werden, dann zieht es sich ja so und so den Stand aus der install-Methode, der ja immer der aktuellste ist. Den Weg der Umbenennung habe ich ja erwähnt.

Beste Grüße

Sebastian

Ok, einverstanden. Hört sich nach der saubersten Lösung an  Wearing-Sunglasses

Meine Idee war, dass ich evtl. einfach in der „s_core_config_elements“ Tabelle das Attribute einfach lösche und in der UPDATE-Methode das Konfigurations-Formular neu erzeuge. Sonstige Abhängigkeiten zu der „s_core_config_elements“ für dieses eine Feld finde ich keine…Translations brauche ich keine; gibt also dort keine Abhängigkeiten.

Ich mache es so, wie du beschrieben hast, das wird wohl der „safe“-Weg sein.

Danke

Irgendwie hat mir das keine Ruhe gelassen :wink:

Das Zauberwort heisst:

$this->Form()->removeElement(‘ELEMENT_NAME’);

Have a nice day  Wearing-Sunglasses

Fehlinfo; Grüße AvL

$this->Form()->removeElement('ELEMENT_NAME');

Sollte das funktionieren? Habe es in meinem Update-Script drin… es funktioniert bei mir aber nicht…

Hi Zenit,

sorry, Fehlinformation; klappte auch bei mir nicht; hatte den Cache nicht geleert. Ich gehe jetzt halt hin und lösche den Eintrag einfach aus der “s_core_config_elements”-Tabelle. Geht ja scheinbar nicht anders und ich möchte ungerne mit einem alten Konfigurations-Parameter leben; da die Kunden früher oder später immer fragen werden was dieser Parameter bewirkt.

Viele Grüße und Sorry wg der Fehlerhaften Info

Schade… hatte das auch in ein paar anderen Plugins gesehen (Paypal beispielsweise)… dachte, dass es dann funktionieren würde.

Gibt es da ein kurzes Snippet zum Löschen aus der “s_core_config_elements”?

Ich nehme mal an, dass es auch keine “einfache” Möglichkeiten der Sortierung gibt, oder der Bearbeitung einer Form im Update Script?
 

Finde es immer ärgerlich, wenn ich ein Feld hinzufüge und es beim Update des Plugins einfach unten dran gesetzt wird. Füge neue Elemente daher nie mit einem Update-Script ein, sondern in direkt in die Config um wenigstens bei neu installierten Plugins die entsprechende Reihenfolge zu haben…