Gibt es bereits in gx3 einen vom System zur Verfügung Key-Value Datenbank speicher? Und eventuell auch bereits Helfer-Klassen dazu? Vielen Dank im voraus
Hi, ja die gibt es bereits für diverse Elemente, wie customers, products und orders. Die greifen alle auf die gleichen Klassen zu. Für weitere Informationen schau mal unter (Link nur für registrierte Nutzer sichtbar.) Die Daten werden automatisch in der Datenbank in der Tabelle addon_values_storage gespeichert. Wenn du uns erzählst was du vorhast gibt es eventuell bereits entsprechende Klassen die genutzt werden können in bestimmten Bereichen, dann musst du nicht alles per Hand machen.
Wir schreiben gerade ein eigenes GXModule vom Typ AbstractModuleCenterModule. In der Install-Methode legen wir bereits eine eigene Tabelle an um eigene Daten zu speichern. Nun haben wir einen ModuleCenterModuleController erzeugt welches die Einstellungen für das Module beinhaltet. Das Formular und die actions sind bereits hinterlegt nun Frage ich mich halt ob ich nun eine eigene Tabelle erzeugen muss um diese Module-Einstellungen zu speichern oder ob es halt bereits einen Datenspeicher für Moduleeinstellungen gibt. Falls noch weitere Infos nötig sind einfach melden Danke im Voraus!
Hi, wir arbeiten bereits daran für Module Einstellungen zu speichern ohne das der Entwickler hier eigene Formulare oder Daten in die Datenbank speichern muss. Das ist aber erst für eine zukünftige Version vorgesehen. Für jetzt kannst du einfach "ConfigurationStorage" nutzen: PHP: $this->configurationStorage = MainFactory::create('ConfigurationStorage', 'MyModule');$data = 'MyData';$this->configurationStorage->set('myvalue', $data);$myvalue = $this->configurationStorage->get('myvalue');
Ok, habe es mit einem ConfigurationStorage gelöst! Wie greife ich jetzt z.B. in der create_account-USERMOD.html auf diesen Namespace zu um zu checken ob z.b. das System Aktiv ist sprich der Entsprechende Namespace/Key auf 1 gesetzt ist?
@dbick Hier musst du erst im ContentView dafür die Variable mit dem ConfigurationStorage auslesen und an das Smarty übergeben. Grob ungefähr so: 1. Overload für CreateAccountContentView erstellen in /GXModules/Vendor/MyModule/Overloads/CreateAccountContentView 2. die Methode "add_data" überladen 3. ConfigurationStorage laden $this->configurationStorage = MainFactory::create('ConfigurationStorage', 'MyModule'); 4. die eigene Variable mit $this->content_array['myvariable'] = $this->configurationStorage->get('myvalue'); zuweisen.