XML / Settings Panel -> Probleme beim Parsen von Settings
Ausgangssituation
- Ich habe zwei verschiedene Pakete mit jeweils eigener
settings.xml
-
Beide Pakete haben ein Setting
statuses.defaultStatus
- Die Werte der Settings stehen korrekt in der jeweiligen
ini.php
Problem
Wenn ich die Einstellungen der beiden Pakete im Backend öffne, werden die Werte nicht wie vorgesehen auf die Input-Elemente gesetzt (als value
) und entsprechend auch nicht von den jeweiligen Settings-Controls geparst.
Ursache
Hier ist die Code-Stelle, die ausgeführt wird, wenn man eine Kategorie ine einem XML / Settings Panel öffnet.
https://dev.quiqqer.com/quiqqer/quiqqer/-/blob/master/bin/QUI/controls/desktop/panels/XML.js#L225
Dort wird self.$config
geparst und versucht, in das jeweilige <form>
-Element der offenen Kategorie zu schreiben:.
Die self.$config
enthält jedoch ALLE Einstellungen, die sich im selben Panel befinden. Das ist besonders problematisch bei E-COYN, da dort sehr viele Modul-Settings im selben Panel vorkommen.
Für den vorliegenden Fall enthält self.$config
nun für das Setting statuses.defaultStatus
folgenden Wert:
D.h. defaultStatus
ist hier in einem Array.
- So kann gar nicht entschieden werden, welcher
defaultStatus
überhaupt zum richtigen Modul gehört - Es wird aber auch gar kein Wert in das richtige Input gesetzt
Potentielle Lösungen
- Jeder Entwickler muss seine Settings modulspezifisch eindeutig benennen -> Halte ich jedoch für unrealistisch und viel zu fehleranfällig
- Das XML-Panel darf nur Einstellungen berücksichtigen, die zu der jeweils geöffneten Kategorie gehören.