Aus einem dem Registrierungsformular direkt die Benutzergruppe in die Datenbank schreiben; Übersicht über Variaben-Namen

Hallo,

ich habe verschiedene Kundengruppen und das Registrierungsformular bereits soweit geändert, dass der Kunde per DropDown Menu seine Kundengruppe/Rabattgruppe wählen kann. Diese Info wird dann in dem ansonsten nicht benötigten Datenbankfeld “zus. Info” gespeichert (dieses war gerade greifbar) und der Admin muss im Backend den Kunden dann per Hand der Kundengruppe zuordnen.

Jetzt soll aber der Kunde sich selbst direkt der Kundengruppe hinzufügen können. Gibt es eine Übersicht über die Variablennamen, über die man in die verschiedenen Tabellen und Spalten der Datenbank schreiben kann?

Oder gäbe es vielleicht sowieso eine einfachere Möglichkeit?

Danke!

Hallo Alban,

meine Empfehlung wäre, dass du das Model oxUser erweiterst und dir einmal die zugehörige Tabelle oxusers anschaust, welche Felder es hier gibt.

So kannst du die Änderungen am Model-Objekt dann speichern.

$oUser->assign(array('oxBeispielFeld' => 'Beispiel-Wert')); 
$oUser->save();

Gruß
Roman

Alban, suchst du das hier?
http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.8.3.5738f8cf8e498c85158db18cca0d9c368376955f/classox_user.html#a030a93e732bef68a6c9fb23d5c58dff3

@Roman: Vielen Dank für die Hinweise!

@Martin: Wow, genau das habe ich gesucht! :slight_smile: Die Doku kannte ich bisher gar nicht… Sehr vielen Dank!

Doch noch eine Frage: An welcher Stelle müsste der Code eingefügt werden?
An welcher Stelle werden überhaupt die Werte in die Datenbank geschrieben, die bei der Registrierung über user_account.tpl und user_billing.tpl erfasst werden. Das passiert nicht direkt im Template, oder?

Hallo Alban,

du kannst dich hierzu entweder in den Controller oder direkt in das Model (oxUser) einklinken.

Im Template finden keine Datenbank-Operationen statt - dies ist technisch auch gar nicht vorgesehen.

Gruß
Roman

Hallo Roman,

danke nochmal. Ich habe in oxuser->changeUserData eine Stelle gefunden, wo es denk ich passend untergebracht ist. Hat auch erstmal funktioniert :slight_smile:

Was die Controller genau machen habe ich ehrlich gesagt noch nicht so ganz durchschaut, gibt es eine Einführung was die verschiedenen Komponenten in Oxid grundsätzlich so machen?

Gruß,
Alban

Hallo Alban,

Sorry eine tiefergehende Einführung kann ich dir leider aufgrund zeitmangels nicht geben. Falls dich das Thema interessiert, solltest du dich mal mit dem MVC-Pattern auseinandersetzen. Kurzgefasst:

Model = Datenmodell. Also Abbildung eines “Objekts”, z.B. User (oxUser) oder Basket (oxBasket) oder Artikel (oxArticle)
View = “Ganz grob” kann man das Template als View bezeichnen
Controller = Logik, was mit dem Datenmodell passieren soll, damit es z.B. im View ausgegeben werden kann. Wird aber auch beim Speichern aufgerufen.

Bitte habe Verständnis dafür, dass ich dir keine ausführliche Einführung geben kann.

Gruß
Roman