Wie kann ich auf die eigenen Freitextfelder bei den Kategorien zugreifen?

Der Zugriff per {$sCategoryContent. SPALTENNAME } bleibt leer, wobei es mit den vorgegebenen Attributen z.B. {$sCategoryContent.attribute1} funktioniert.

Die Spalte existiert in der Datenbank; bei der getesteten Kategorie sind die eingetragenen Werte vorhanden.

Der Fehler taucht beim Standard Responsive Theme genauso auf wie bei einem modifizierten Theme.

@vierpunkt schrieb:

Der Zugriff per {$sCategoryContent. SPALTENNAME } bleibt leer, wobei es mit den vorgegebenen Attributen z.B. {$sCategoryContent.attribute1} funktioniert.

Die Spalte existiert in der Datenbank; bei der getesteten Kategorie sind die eingetragenen Werte vorhanden.

Der Fehler taucht beim Standard Responsive Theme genauso auf wie bei einem modifizierten Theme.

Hallo,

wieso ist das ein “Fehler”? Wahrscheinlich werden im Standard von Shopware nur die Attributfelder 1 - 6 bei den Kategorien ausgelesen, das Auslesen eigener Attribute muss man hierfür dann sicherlich selbst bewerkstelligen. Ein Fehler ist das aber ansich nicht.

Was sagt {$sCategoryContent|@var_dump}? Stehen da die eigenen Attribute drin? Vielleicht über {$sCategoryContent.attributes.my_field} ?

Beste Grüße

Sebastian

@sschreier schrieb:Hallo,

…, das Auslesen eigener Attribute muss man hierfür dann sicherlich selbst bewerkstelligen. Ein Fehler ist das aber ansich nicht. … ( ) … Vielleicht über {$sCategoryContent.attributes.my_field} ?

Genau das habe ich ja mit {$sCategoryContent. SPALTENNAME } versucht! _ SPALTENNAME _ ist die Bezeichnung des Freitextfeldes, welches in der Freitextfeldverwaltung für die Kategorien von mir angelegt wurde und welches in der Tabelle s_categories_attributes gespeichert wird, genau wie die standard Attribute (attribute1 - attribute6) der Kategorien.

@vierpunkt schrieb:

@sschreier schrieb:Hallo,

…, das Auslesen eigener Attribute muss man hierfür dann sicherlich selbst bewerkstelligen. Ein Fehler ist das aber ansich nicht. … ( ) … Vielleicht über {$sCategoryContent.attributes.my_field} ?

Genau das habe ich ja mit {$sCategoryContent. SPALTENNAME } versucht! _ SPALTENNAME _ ist die Bezeichnung des Freitextfeldes, welches in der Freitextfeldverwaltung für die Kategorien von mir angelegt wurde und welches in der Tabelle s_categories_attributes gespeichert wird, genau wie die standard Attribute (attribute1 - attribute6) der Kategorien.

Hallo,

also ich finde ja schon, das zwischen {$sCategoryContent. SPALTENNAME } und {$sCategoryContent.attributes .SPALTENNAME } ein Unterschied besteht.

Hast du einmal den Inhalt des sCategoryContent - Arrays wie oben erwähnt geprüft (  {$sCategoryContent|@var_dump} )?

Beste Grüße

Sebastian

1 Like

@sschreiber: mea culpa, ich bitte um Entschuldigung für die Verwirrung - ich hatte im Template schon den richtigen smarty Tag genutzt {$sCategoryContent. attribute.SPALTENNAME } - der hier eingefügte Tag ohne die attribute war ein verzweifelter Versuch, der natürlich auch nicht funktioniert hat.

Ein Test per {$sCategoryContent.attribute|@var_dump} gibt mir die korrekten Daten zurück - wie gesagt - die Tabelle ist richtig befüllt.

@vierpunkt schrieb:

@sschreiber: mea culpa, ich bitte um Entschuldigung für die Verwirrung - ich hatte im Template schon den richtigen smarty Tag genutzt {$sCategoryContent. attribute.SPALTENNAME } - der hier eingefügte Tag ohne die attribute war ein verzweifelter Versuch, der natürlich auch nicht funktioniert hat.

Ein Test per {$sCategoryContent.attribute|@var_dump} gibt mir die korrekten Daten zurück - wie gesagt - die Tabelle ist richtig befüllt.

Hallo,

das heisst also, es steht im Array $sCategoryContent  dein eigenes Attributfeld inklusive hinterlegtem Wert drin? Wenn du den Teil des Arrays einmal veröffentlichen würdest, könnte man vielleicht auch etwas mehr als nur raten.

Man könnte es beispielsweise über {$sCategoryContent.attributes.core->get( „SPALTENNAME“ )} probieren, falls das Array dort so aufgebaut ist.

Beste Grüße

Sebastian

1 Like

@sschreier schrieb:

Man könnte es beispielsweise über {$sCategoryContent.attributes.core->get( „SPALTENNAME“ )} probieren, falls das Array dort so aufgebaut ist.

Hab ich gerade probiert, mit dem Ergebnis, dass die Seite komplett blank war. :frowning:

Ausgabe des dump:

array(20) { [„id“]=> int(72)
[„categoryId“]=> int(40)
[„attribute1“]=> string(4) „test“
[„attribute2“]=> string(0) „“
[„attribute3“]=> string(0) „“
[„attribute4“]=> string(0) „“
[„attribute5“]=> string(0) „“
[„attribute6“]=> string(0) „“
[„bepadoImportMapping“]=> NULL
[„bepadoExportMapping“]=> NULL
[„bepadoImported“]=> NULL
[„swagLink“]=> NULL
[„swagShowByDefault“]=> int(0)
[„swagDeletedPosition“]=> NULL
[„swagBaseSort“]=> NULL
[„cbaxAdvancedMenuColumnAmount“]=> string(1) „3“
[„bibuSprachlink“]=> int(0)
[„katEkwEins“]=> string(1) „7“
[„hasOwnDp“]=> int(1)
[„seotext“]=> string(0) „“ }

Gasp

Jetzt seh ich etwas, allerdings weiß ich nicht, wie ich da drauf häte kommen sollen!

Der in der Freitextfeld-Verwaltung eingetragene Spaltenname ist kat_ekw_eins , der Bezeichner der Spalte in der Datenbanktabelle ist kat_ekw_eins - aber der key im array ist katEkwEins!!!

Keine Ahnung wo das generiert wird - steht so nirgends beschrieben! Aber zumindest funktioniert es damit.

Vielen Dank @sschreier für den Schubs in die richtige Richtung!

@vierpunkt schrieb:

@sschreier schrieb:

Man könnte es beispielsweise über {$sCategoryContent.attributes.core->get( „SPALTENNAME“ )} probieren, falls das Array dort so aufgebaut ist.

Hab ich gerade probiert, mit dem Ergebnis, dass die Seite komplett blank war. :frowning:

Ausgabe des dump:

array(20) { [„id“]=> int(72)
[„categoryId“]=> int(40)
[„attribute1“]=> string(4) „test“
[„attribute2“]=> string(0) „“
[„attribute3“]=> string(0) „“
[„attribute4“]=> string(0) „“
[„attribute5“]=> string(0) „“
[„attribute6“]=> string(0) „“
[„bepadoImportMapping“]=> NULL
[„bepadoExportMapping“]=> NULL
[„bepadoImported“]=> NULL
[„swagLink“]=> NULL
[„swagShowByDefault“]=> int(0)
[„swagDeletedPosition“]=> NULL
[„swagBaseSort“]=> NULL
[„cbaxAdvancedMenuColumnAmount“]=> string(1) „3“
[„bibuSprachlink“]=> int(0)
[„katEkwEins“]=> string(1) „7“
[„hasOwnDp“]=> int(1)
[„seotext“]=> string(0) „“ }

Gasp

Jetzt seh ich etwas, allerdings weiß ich nicht, wie ich da drauf häte kommen sollen!

Der in der Freitextfeld-Verwaltung eingetragene Spaltenname ist kat_ekw_eins , der Bezeichner der Spalte in der Datenbanktabelle ist kat_ekw_eins - aber der key im array ist katEkwEins!!!

Keine Ahnung wo das generiert wird - steht so nirgends beschrieben! Aber zumindest funktioniert es damit.

Vielen Dank @sschreier für den Schubs in die richtige Richtung!

Hallo,

freut mich, dass du es lösen konntest. Ja bei Arrays im Frontend werden die Variablen meist ohne _ ausgegeben, und mit einem Großbuchstaben bei den Buchstaben nach dem _ . Am besten immer das Array ausgeben lassen, um den genauen Variablen anzuzeigen ^^.

Beste Grüße

Sebastian

1 Like