Bei Plugin-Update Type von Config-Variable ändern

30.09.2020 10:49 (zuletzt bearbeitet: 30.09.2020 10:52)
avatar  creator
#1 Bei Plugin-Update Type von Config-Variable ändern
cr
Mitglied

Hallo,

ich möchte bei meinem Plugin Vorlagen für Themenmarkierungen den Type einer Config-Variable von chars zu text ändern.

Offenbar kann der Type einer Config-Variable nicht nach dem Erstellen geändert werden. Da ich das Plugin bereits in den Plugin-Store gestellt habe möchte ich die manuellen Änderungen der Nutzer nicht ohne weiteres mit den Standardwerten überschreiben. Löschen und neu erstellen der Variable mit einem anderen Type ist also keine Option.

Eine Möglichkeit wäre, die alte Config-Variable vom Type chars zu belassen und eine neue Config-Variable vom Type text zu erstellen. Das Plugin würde in dem Fall weiterhin mit einer alten Variable ausgeliefert werden. Diese wird dann ignoriert, die Änderungen würden also erhalten bleiben.

Allerdings muss der Nutzer in dem Fall nach dem Update die eigenen Änderungen selbst in die neue Config-Variable kopieren. Ich habe keine JavaScript-Funktion zum Setzen einer Config-Variable (wie setConf) gefunden.

Gibt es eine Möglichkeit, den Type einer Config-Variable zu ändern, aber dabei die manuellen Änderungen der Nutzer zu behalten?


 Antworten

 Beitrag melden
30.09.2020 11:36 (zuletzt bearbeitet: 30.09.2020 11:37)
avatar  Mike48
#2 RE: Bei Plugin-Update Type von Config-Variable ändern
avatar
Mitglied

Ich lösche die Variable und erstelle sie mit dem gleichen Name einfach neu mit dem richtigen Typ.
Die Admins müssen in den Einstellungen die Werte dann bein Update neu eingeben.

es ist leider nicht möglich im Plugin eine configVar zu beschreiben oder zu löschen. Es geht leider nur lesen.
Wenn das ginge, könnte man eine neue erstellen und die Daten aus der alten kopieren. Geht aber nicht.

Entweder umschreiben und die Admins müssen sie neu beschreiben oder doppelte und man verwendet die alte solange die neue leer ist.
Beui der neuen in die Beschreibung schreiben das beim nächsten Update die alte verschwindet und die Werte in die neue übertragen werden müssen.

Vielleicht hat der Support noch eine bessere Lösung


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
30.09.2020 13:35
avatar  Ingmar
#3 RE: Bei Plugin-Update Type von Config-Variable ändern
avatar
Technik

Da gibt es leider keine schöne Möglichkeit.
Grundsätzlich ist das auch schlicht nicht immer möglich: Ein Text-Feld in ein Int-Feld zu ändern schlägt naturgemäß in den meisten Fällen fehl bzw dürfte zu unerwünschten Ergebnissen führen

Aber auch für die Fälle, bei denen es möglich wäre (z.B. Char zu Text) gibt es da aktuell keine einfache Möglichkeit.

Theoretisch kann man das über ein Action-Element lösen:

Nach dem Login eines Admins müsste man abfangen, ob die neue Config-Variable schon beschrieben wurde. Falls nicht nimmt man den Wert der alten Variable und bastelt sich den Post-Call selbst zusammen, der normalerweise beim Speichern der Plugin-Einstellungen gemacht würde. Ist nicht gerade schön, klappt aber ohne Probleme.


-edit-
Wo ich das gerade lese müsste das natürlich auch ohne action-Element in einem beliebigen Plugin-Element klappen.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
30.09.2020 18:23 (zuletzt bearbeitet: 30.09.2020 18:27)
avatar  creator
#4 RE: Bei Plugin-Update Type von Config-Variable ändern
cr
Mitglied

Zitat von Ingmar im Beitrag #3
Nach dem Login eines Admins müsste man abfangen, ob die neue Config-Variable schon beschrieben wurde. Falls nicht nimmt man den Wert der alten Variable und bastelt sich den Post-Call selbst zusammen, der normalerweise beim Speichern der Plugin-Einstellungen gemacht würde. Ist nicht gerade schön, klappt aber ohne Probleme.


Interessanter Ansatz. Allerdings erzeugt ein AJAX-Request folgenden Cross-Origin-Request-Fehler:

Zitat
Access to XMLHttpRequest at '<URL>/admin/?page=plugins&option=main&pluginid=threadmarkings&configplugin=true' from origin '<URL>' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Allgemein tritt hier ein cross-origin request auf, da ich einen request von HTTP zu HTTPS schicke. Der cross-origin request wird sich also nicht vermeiden lassen.

No 'Access-Control-Allow-Origin' header is present on the requested resource klingt nach einem serverseitigem Fehler, also nicht von mir zu ändern. Ein entsprechender Access-Control-Allow-Origin Header, der Zugriffe von der HTTP-Domain erlaubt, müsste serverseitig geschickt werden - sofern das gewollt ist.


 Antworten

 Beitrag melden
30.09.2020 21:16
avatar  Ingmar
#5 RE: Bei Plugin-Update Type von Config-Variable ändern
avatar
Technik

Ja, da hast du wohl recht - das klappt nur in Foren mit https.

Zitat von creator im Beitrag #4
Ein entsprechender Access-Control-Allow-Origin Header, der Zugriffe von der HTTP-Domain erlaubt, müsste serverseitig geschickt werden - sofern das gewollt ist.


Da muss ich mal in mich gehen, ob wir das wirklich wollen

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
30.09.2020 23:20 (zuletzt bearbeitet: 30.09.2020 23:28)
avatar  Mike48
#6 RE: Bei Plugin-Update Type von Config-Variable ändern
avatar
Mitglied

Anderer Ansatz wäre vielleicht, auch bei den config Variablen ein setConf zum getConf noch bereitzustellen.


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
01.10.2020 16:37 (zuletzt bearbeitet: 01.10.2020 17:07)
avatar  creator
#7 RE: Bei Plugin-Update Type von Config-Variable ändern
cr
Mitglied

Zitat von Ingmar im Beitrag #5
Da muss ich mal in mich gehen, ob wir das wirklich wollen

Ich wüsste nicht, was dagegen spricht
Ist aber natürlich nicht meine Entscheidung.
Zitat von Mike48 im Beitrag #6
Anderer Ansatz wäre vielleicht, auch bei den config Variablen ein setConf zum getConf noch bereitzustellen.

Das wäre natürlich noch besser, müsste allerdings erst in der Forensoftware implementiert werden.

Eine Alternative zu der AJAX-Variante wäre, die entsprechenden Werte direkt als Formular an den Admin-Bereich zu schicken. Damit der Nutzer davon nichts mitbekommt wird das Formular an einen versteckten iframe abgeschickt.

Hier ein Beispiel, wie das ungefähr aussehen könnte:

1
2
3
4
5
6
 
<iframe style="display:none;" name="submit-form"></iframe>
<form target="submit-form" action="/admin/?page=plugins&option=main&pluginid=threadmarkings&configplugin=true" method="POST">
<input name="text_marks" id="text_marks" value="test_marks_from_form">
<input name="chars_options" id="chars_options" value="test_options_from_form">
<input type="submit" name="edit_plugin_settings" id="edit_plugin_settings" value="Speichern">
</form>
 



Natürlich ist das noch unsauberer als die AJAX-Lösung, scheint aber wirklich zu funktionieren. Wäre diese Lösung denn überhaupt für den Plugin-Store zugelassen?


 Antworten

 Beitrag melden
13.10.2020 13:38 (zuletzt bearbeitet: 13.10.2020 13:39)
avatar  Ingmar
#8 RE: Bei Plugin-Update Type von Config-Variable ändern
avatar
Technik

@creator

Ich habe dein Plugin abgelehnt, da ich das grundsätzlich schwierig finde mit den aktuellen Möglichkeiten zum Config-Variablen-Update. Außerdem gibt es für das Plugin ganze 5 Installationen - da ist es denke ich gerechtfertigt, dass die 5 Admins einmal die Einstellungen übertragen / neu anlegen wenn du eine Variable änderst

Ich werde versuchen mit einem der nächsten Updates die Variablen-Typ-Änderung (dann zur Not mit typecast, wo es nicht eindeutig ist) zu erlauben.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
13.10.2020 14:24
avatar  creator
#9 RE: Bei Plugin-Update Type von Config-Variable ändern
cr
Mitglied

Zitat von Ingmar im Beitrag #8
Ich habe dein Plugin abgelehnt, da ich das grundsätzlich schwierig finde mit den aktuellen Möglichkeiten zum Config-Variablen-Update.

Danke für die Rückmeldung. Muss beim nächsten Update die Versionsnummer erhöht werden oder kann ich weiterhin 0.002 verwenden?
Zitat von Ingmar im Beitrag #8
Außerdem gibt es für das Plugin ganze 5 Installationen - da ist es denke ich gerechtfertigt, dass die 5 Admins einmal die Einstellungen übertragen / neu anlegen wenn du eine Variable änderst wink]

Bin überrascht, dass es schon 5 Installation sind
Die Anzahl an Installation kann ich allerdings nicht selbst einsehen, oder?
Zitat von Ingmar im Beitrag #8
Ich werde versuchen mit einem der nächsten Updates die Variablen-Typ-Änderung (dann zur Not mit typecast, wo es nicht eindeutig ist) zu erlauben.

Klingt gut. Da gibt es dann in Zukunft eine sinnvolle Möglichkeit.


 Antworten

 Beitrag melden
13.10.2020 14:31
avatar  Ingmar
#10 RE: Bei Plugin-Update Type von Config-Variable ändern
avatar
Technik

Zitat von creator im Beitrag #9
Die Anzahl an Installation kann ich allerdings nicht selbst einsehen, oder?


Ich glaube nicht, beim anderen Plugin sind es aktuell 10.

Zitat von creator im Beitrag #9
Muss beim nächsten Update die Versionsnummer erhöht werden oder kann ich weiterhin 0.002 verwenden?


Probier's aus, ich tippe du musst das erhöhen beim einreichen.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
13.10.2020 16:43
avatar  Mike48
#11 RE: Bei Plugin-Update Type von Config-Variable ändern
avatar
Mitglied

Man kann keine Version zwei mal veröffentlichten. Das muss man sogar wenn man es in den östlichen und den privaten Store schickt.


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
13.10.2020 17:19
avatar  creator
#12 RE: Bei Plugin-Update Type von Config-Variable ändern
cr
Mitglied

@Ingmar Version 0.003 vom Plugin Vorlagen für Themenmarkierungen wurde jetzt eingereicht. Der Code, welcher die Config-Variablen ändert, wurde entfernt und die Plugin-Beschreibung entsprechend angepasst. Ansonsten ist diese Version identisch zu Version 0.002.


 Antworten

 Beitrag melden
14.10.2020 09:27 (zuletzt bearbeitet: 14.10.2020 09:33)
avatar  creator
#13 RE: Bei Plugin-Update Type von Config-Variable ändern
cr
Mitglied

Danke fürs Freischalten @Ingmar

Allerdings ist der hochgeladene Screenshot vom Plugin leider nicht sichtbar und das Plugin lässt sich nicht kopieren, obwohl ich SourceCode freigeben angewählt habe.

Liegt das an einen Fehler von mir?


 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!