Einbinden von "neuen" Funktionen in Modul

Ich wollte gerade mein Wunderground Modul um die Möglichkeit der einfachen Auswahl der Lokation erweitern. Hierfür wollte ich { „type“: „SelectLocation“, „name“: „Location“, „caption“: „Location“ } verwenden.

Das klappt in der neuen Webconsole super, aber in der Classic Konsolte bekomme ich eine Schutzverletzung - ist das so „gewollt“?

Weiterhin die Frage - wenn ich eine 5.1 Funktion verwende, sind dann die „alten Versionen“ komplett raus für das Modul? Das sehe ich ein wenig zweischneidig, da es aktuell eigentlich überall funktioniert - 5.1 ist ja doch noch recht neu.

Das SelectLocation-Element sollte auch in der Legacy-Konsole verwendbar sein. Hier hast du allerdings keine Karte, sondern musst Längen- und Breitengrad manuell eingeben. SelectLocation ist übrigens auch in 5.0 drin, die Dokumentation kam nur relativ spät. Wenn du neue Funktionen verwenden möchtest, aber dein Modul auch auf niedrigeren Versionen anbieten möchtest, dann kannst du dies natürlich branchen. So können Leute im Module Control den „Alte Version“-Branch auswählen und damit arbeiten. Im Module Store wollen wir auch noch etwas einbinden, damit auf ältere Versionen zurückgegriffen werden kann, wenn die aktuelle Version nicht läuft. Da aber der Module Store momentan gleichbedeutend mit der aktuellsten Version ist, haben wir das bisher noch nicht eingebaut.

Ich hatte es eingebaut - bekomme aber in der Classic Console eine harte Schutzverletzung :expressionless:

Kann ich reproduzieren. Das Problem tritt auf, wenn die Property für SelectLocation nicht korrekt definiert ist. Du musst also einen korrekten Wert setzen, sonst kommt die Legacy-Konsole nicht damit klar. Wir bessern das aus, aber bis dahin, kannst du schonmal loslegen indem du die Property korrekt initialisierst, z.B.,


        $this->RegisterPropertyString("Location", '{"latitude":0,"longitude":0}');

Hi Dr. Niels,
ja das war es - kannst Du evtl ein Beispiel posten wie ich die Werte aus dem JSON bekomme - da stelle ich mich gerade doof an und bekomme ständig Fehler im Modul.

Danke

So sollte das klappen:



$locationObject = json_decode($this->ReadPropertyString('Location'), true);

$latitude = $locationObject['latitude'];
$longitude = $locationObject['longitude'];