gelöst Key-Value Modulespeicher

Thema wurde von Anonymous, 5. Januar 2018 erstellt.

  1. Anonymous

    Anonymous Mitglied

    Registriert seit:
    4. Januar 2018
    Beiträge:
    18
    Danke erhalten:
    1
    Danke vergeben:
    7
    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
     
  2. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.052
    Danke erhalten:
    808
    Danke vergeben:
    208
    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.
     
  3. Anonymous

    Anonymous Mitglied

    Registriert seit:
    4. Januar 2018
    Beiträge:
    18
    Danke erhalten:
    1
    Danke vergeben:
    7
    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!
     
  4. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.052
    Danke erhalten:
    808
    Danke vergeben:
    208
    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');
     
  5. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.651
    Danke erhalten:
    537
    Danke vergeben:
    92
    Das hört sich gut an. :)
     
  6. Anonymous

    Anonymous Mitglied

    Registriert seit:
    4. Januar 2018
    Beiträge:
    18
    Danke erhalten:
    1
    Danke vergeben:
    7
    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?
     
  7. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.052
    Danke erhalten:
    808
    Danke vergeben:
    208
    @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.
     
  8. Anonymous

    Anonymous Mitglied

    Registriert seit:
    4. Januar 2018
    Beiträge:
    18
    Danke erhalten:
    1
    Danke vergeben:
    7
    Hat bestens geklappt, super Support! Thema gelöst :p