Hallo Leute, ich habe ein Plugin geschrieben, welches einen zusätzlichen Reiter im Bestell-Fenster vom Backend erstellt. Dazu ein paar Attribute über die Bootstrap eingefügt und die entsprechenden ExtJs-Models, sowie Views angelegt/erweitert. Die Daten aus den Attribut-Feldern kommen auch ohne Probleme mit der Ajax-Anfrage rüber (zu sehen in den JSON-Daten mit Firebug). Das Problem, welches ich jedoch jetzt habe ist, dass die im Backend angezeigten Textfelder trotz erfolgreich ausgelesenen Daten nicht befüllt werden. Hier eines der Textfelder: Ext.create('Ext.form.field.Text', { name:'attribute[tadoraDpoAccountholder]', fieldLabel:'{s name=debit\_per\_order/accountholder}Accountholder{/s}', allowBlank: true, anchor:'95%', labelWidth:150, minWidth:250 });
Und hier die Ausgabe der Attribute-Eigenschaft einer Bestellung von der getList-Anfrage: { "id":48, "orderId":306, "attribute1":"", "attribute2":"", "attribute3":"", "attribute4":"", "attribute5":"", "attribute6":"", "swagPayalBillingAgreementId":null, "tadoraDpoAccountholder":"Wert1", "tadoraDpoBankname":"Wert2", "tadoraDpoAccountno":"Wert3", "tadoraDpoBanknumber":"Wert4" }
Beim Textfeld Feld doch eine Zuweisung, damit überhaupt ein Wert angezeigt werden kann. Oder sehe ich das falsch? dataIndex: ‚dein_feld‘,
Ich meinte, dass dataIndex lediglich für Listenfelder ist. Nicht für Formularfelder. Aber probieren geht über studieren :D. Ich werds mal einfach mit einfügen.
Also in einem anderen Backend Plugin (Einkaufswelten) brauche ich das auch für Textfelder. Es muss ja irgendwie eine Zuordnung geschehen.
Der dataIndex bringt leider keine Abhilfe. Ich habe es sowohl in der Form dataIndex: 'attribute[tadoraDpoAccountholder]'
als auch in der Form dataIndex: 'attribute.tadoraDpoAccountholder'
[quote=“ottscho”] Es muss ja irgendwie eine Zuordnung geschehen. [/quote] Ja das Mapping erfolgt laut Shopware ja anhand des Namens des Elements: [quote=“Shopware Labs”] […] me.customerColor = Ext.create('Ext.form.field.Text', { name:'attribute[swagCustomerPreferencesColor]', fieldLabel:'{s name=preferences/color}Color{/s}', anchor:'95%', labelWidth:100, minWidth:250 });
[…] Eine kleine Besonderheit in beiden Fällen ist die Konfigurationsoption “name”: Sie hat den Wert “attribute[swagCustomerPreferencesSize]”. Durch die Namensgebung, die sich am jeweiligen ExtJS-Model orientiert, können wir uns die Logik zum Laden und Speichern des Inhalts der Eingabefelder komplett sparen: ExtJS besorgt dies automatisch. […] [/quote] Aus der SwagShoeSize-Anleitung PS: Danke, dass du dir die Zeit nimmst hier zu posten!
Gibt es hier schon eine Lösung? Ich stehe gerade vor dem selben Problem. Ich sehe das meine Attribute übergeben werden aber ich bin nich in der Lage die Attribute in den Feldern anzuzeigen. Evt. liegt es daran das ich einen eigenen Reiter für die Attribute erstellt habe in dem sich die Form Felder (Ext.form.field.Text und Shopware.form.field.TinyMCE) befinden. Auch wenn ich Daten eingebe werden diese nicht übhermittelt, geschweige denn aktualisiert wenn ich einen anderen Artikel anklicke (Splitview). Leider hab ich auch kein funktionierendes Tutorial gefunden, das neue Felder erstellt. Die Tutorials beziehen sich alle darauf das Felder angehangen werden in der Detail View. Hat jemand eine Idee dazu?
Lösung: Die Zuweisung läuft über die loadRecord()Funktion.