Articles Attribute Datenbanktyp

Hi, ich habe 19 von 20 Artikel Attributen im Backend angelegt. von 4-18 sind es Checkboxen. Bei der Ausgabe im Frontend kommt es bei einigen Artikeldetailseiten zur Missachtung der Abfrage {if $sArticle.attr4 (bis 18) eq true} Da werden dann alle Attribute als true interepretiert und zusätzlich wird noch 3 mal true true true ausgegeben. In der Datenbank habe ich dann festgestellt, dass in s_articles_attributes 1-20 Typ varchar(255) ausser 9,10 und 18, die sind Typ mediumtext. (In einer anderen Shopversion 5.4.2 ist sogar attr17 ein date-feld). Ich gehe davon aus, dass beim anlegen der Attribute die Datenbanktabelle nicht ALTER Table… genutzt wird. Als 0,1,2 steht auch true oder false als Wort. Wie ist es denn richtig? Danke und Gruss.

eq 1

@BestShopPossible‍ leider funktioniert nur true oder false in der Abfrage. Diese Werte stehen auch in der Datenbank. Eine Auffälligkeit scheint auch attr17 zu sein. Hatte vergessen zu erwähnen welche Version: SW 5.1.2 Sollte ich ggf die DB Typen manuell ändern?

EDIT: attr17 checkbox wird mit NULL bei aktiv quitiert und der haken löscht sich raus

Tja und im Theme geht nur eq 1… Ich würde die Daten in der DB ändern falls das nicht von einem Fremdsystem befüllt wird. Vorher mal checken ob das so funktionieren würde.

1 Like

Hi, danke du hast mich auf eine Idee gebracht @BestShopPossible‍ . Denn true ist nicht true, sondern „true“(string) .Nach dem Eintrag hier https://community.shopware.com/Artikel-Freitextfelder-Artikel-Attribute_detail_1114.html wird ganz unten von Problemen bei Varianten gesprochen. Das trifft bei mir speziell nicht auf alle zu. Unterhalb der „Fragen zum Artikel“ steht true true true, oder false false false, (je nachdem wenn man attr17 manuell ändert). Im Backend kann man kein Checkbox attr17 benutzen. es lässt sich nicht markiert/aktiviert abspeichern.

hm, also vor 5.2 gab es ja nur die „alten Freitextfelder“ und ich glaube 17 war im Standard ein DateTime-Feld. Das konnte man nur als solches benutzen, glaube ich.

habe es in varchar(255) geändert. aber es ändert nichts am Verhalten im Backend + dass bei einigen Artikeln zusätzlich noch unterhalb der “Fragen zum Artikel” true/false ausgegeben wird. 

EDIT: selbst wenn ich attr17 weg lasse und attr19 dafür nehme tritt diese Ausgabe von true true true auf

Hast du denn die Ausgabe da eingebaut?
Wüsste nicht, warum er das dort sonst anzeigen sollte. Hast du mal im Quelltext geschaut, ob da ggf. noch eine Fehlermeldung hinter hängt?

 

Hi, ja da ist nix mit Fehlermeldung. Und diese false oder true, je nachdem was in attr17 steht, kommt nur auf einigen seiten. Hier der HTML-Code. 

false


false


false

Was das wieder mit Tab zu tun haben soll … keine Ahnung :-/

Schon eigenartig. Ist das nur bei einer bestimmten Art von Artikeln?
Die Tabs werden ja ggf. nochmal vom Ajax-Variantenwechsel angepackt. 

So,ich muss hier nochmal neue Erkenntnisse pushen.Und zwar ist die richtige Abfrage {$sArticle.attr4 eq “true”} statt  {$sArticle.attr4 eq true}.  Und weiter: solange nicht eine Checkbox geklickt wurde wird kein “true true true”/“false false false” unterhalb angezeigt. Erst nach dem erstmaligen häkchensetzen. Im {debug} steht, dass wir 3 “tab” Variablen in  $swagArticleTabConfiguration haben, welche genau diese Werte innehaben. Nur wo werden die hergespeist? Wir hatten mal ein Plugin vor ein paar Jahren welches zusätzliche tabs erzeugt, aber das ist lange gelöscht und im theme findet sich auch nichts dazu. Hat jemand eine Idee? Danke und Gruss.

Uuuuunnd weil die Lösung meist nach dem posten kommt: Unter den Grundeinstellungen gibt es Detailseitenreiter mit dem  Mapping auf Freitextfelder… das war es auch schon :smiley: