Neu Bestimmte Attribute mit Umlaut im Shop anzeigen

ecompheus

Gut bekanntes Mitglied
11. April 2011
173
9
Hallo,

wir möchten gern bestimmte Attribute anzeigen lassen.
z.B. bei Wert "Tiefe", alles gut
z.B. bei Wert "Höhe", keine Anzeige
wir vermuten, dass der Umlaut "ö" dass Problem sein könnte...

Kennt jemand das Phänomen bzw. besser noch eine Lösung?

Wawi Version 1.3.17.1
Shop Version 4.05
 

make-it

Aktives Mitglied
5. Januar 2010
37
2
Hallo,

wir stehen für das gleiche Problem, einzelnen Atribut werten anzeigen.
und auch hier das Problem mit Umlaute

shop 4.05
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Hallo,
lässt sich das etwas näher spezifizieren? Um was für ein Attribut geht es genau? Funktionsattribute dienen z.B. nur der Funktionssteuerung, werden daher nicht angezeigt und sind auch nicht lokalisierbar. Ein "normales" Attribut habe ich gerade mit Umlauten erfolgreich getestet.
 

ecompheus

Gut bekanntes Mitglied
11. April 2011
173
9
Hallo FPrüfer,

es handelt sich um eigene Attribute
z.B.:
Attributname Breite (Freitext)
Attributname Tiefe (Freitext)
Attributname Höhe (Freitext)........

in der Standardtabelle vom Shop werden alle angezeigt, alles gut.

Jetzt möchten wir jedoch nur "bestimmte, ausgewählte" Attribute in einem separatem Bereich anzeigen
bei Breite und Tiefe geht das auch, jedoch nicht bei Höhe:

<tr class="attr-custom">

<td class="attr-label word-break">Breite</td>

<td class="attr-value">{assign var="attrname" value="Breite"}

{$Artikel->AttributeAssoc.$attrname}</td>

</tr>

<tr class="attr-custom">

<td class="attr-label word-break">Tiefe</td>

<td class="attr-value">{assign var="attrname" value="Tiefe"}

{$Artikel->AttributeAssoc.$attrname}</td>

</tr>

<tr class="attr-custom">

<td class="attr-label word-break">H&ouml;he</td>

<td class="attr-value">{assign var="attrname" value="H&ouml;he"}

{$Artikel->AttributeAssoc.$attrname}</td>


wir haben auch schon mit "ö", unicode und <![CDATA[&ouml;]]> probiert....

wenn wir "Hoehe" oder "Height" nehmen, dann gehts... das ist jedoch keine optimale Lösung für uns, da wir in dem Bereich noch weiter planen...

Gerne hilfreiche Ansätze oder Lösungsovorschläge
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Hallo, Das Feld $Artikel->AttributeAssoc ist für den wahlfreien Zugriff nur bedingt geeignet, da hier der Attributname als "Schlüssel" verwendet wird. Der Attributname ist jedoch lokalisiert, sprich ihr müsstet noch nach der Sprache unterscheiden, das $Artikel->AttributeAssoc['Höhe'] bei Umschaltung auf Englisch $Artikel->AttributeAssoc['height'] wäre. Ich würde hier dann doch für eine Schleife über $Artikel->Attribute plädieren und dann anhand $attribut->kAttribut entscheiden, ob das Attribut angezeigt werden soll oder nicht.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Wenn ihr PHP >= 7.0 einsetzt, dann könnte man sich mit folgendem Konstrukt einen "wahlfreien" Zugriff basteln:
PHP:
{assign var="currentAttribute" value=$Artikel->Attribute[array_search(nnnn, $Artikel->Attribute|array_column:'kAttribut')]}
<td class="attr-label word-break">{$currentAttribute->cName}</td>
<td class="attr-value">{$currentAttribute->cWert}</td>
Wobei nnnn hier für den Wert von kAttribute des benötigten Attributes steht.
 
Zuletzt bearbeitet:

ecompheus

Gut bekanntes Mitglied
11. April 2011
173
9
danke für die beiden Ansätze...

beim ersten wird einfach nichts angezeigt...
beim zweiten erfolgt ein fatal errror...:

Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "file:/var/www/.../productdetails/details.tpl" on line 99 "<td class="attr-label word-break">{currentAttribute->cName}</td>" unknown tag "currentAttribute"F


alle Attribute funktionieren, außer die mit Umlauten, wie: Höhe, Ausführung, Oberfläche.....
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Arghh... Sorry für den Tippfehler. Vor die Smarty-Variable muss natürlich noch ein $. Habe es im Code korrigiert.
 

ecompheus

Gut bekanntes Mitglied
11. April 2011
173
9
daran lag es leider nicht...
... ist etwas zum verzweifeln...

gerne mal per pn oder per Fernwartung ansehen, besteht die Möglichkeit?
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Der Code-Schnipsel müßte aber mit PHP >= 7.0 funktionieren, dass habe ich bei mir getestet. Wie sieht denn bei dir die konkrete Implementation aus. Für TV müsstest du übers Kundencenter ein Ticket bei unserem Support eröffnen.
 

ecompheus

Gut bekanntes Mitglied
11. April 2011
173
9
o.k. wir probieren noch einmal, vielen Dank für deine Anregungen...
... ansonsten machen wir dann ein Ticket auf...
 

WAM

Aktives Mitglied
11. Mai 2018
8
0
Hallo,

Ich übernehme mal den Beitrag mal von dem Kollegen.
Nach einem neuen Test, ist das Resultat, wenn ich es so einbaue, also nur mal die "nnnn" drin gelassen.
Zeigt er mir Seltsamerweise die Breite des Produkts an?!

<tr class="attr-custom">
{assign var="currentAttribute" value=$Artikel->Attribute[array_search(nnnn, $Artikel->Attribute|array_column:'kAttribut')]}
<td class="attr-label word-break">{$currentAttribute->cName}</td>
<td class="attr-value">{$currentAttribute->cWert}</td>
</tr>

Ändere ich das "nnnn" vom kAttribute in:

>> {assign var="currentAttribute" value=$Artikel->Attribute[array_search(Höhe, $Artikel->Attribute|array_column:'kAttribut')]}
oder
>> {assign var="currentAttribute" value=$Artikel->Attribute[array_search(H&ouml;he, $Artikel->Attribute|array_column:'kAttribut')]}
oder
>> {assign var="currentAttribute" value=$Artikel->Attribute[array_search(H<![CDATA[&uml;]]>he, $Artikel->Attribute|array_column:'kAttribut')]}

Knallt es direkt und ich bekomme das:
Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "file:/templates/rst2018/productdetails/details.tpl" on line 93 "{assign var="currentAttribute" value=$Artikel->Attribute[array_search(H&ouml;he, $Artikel->Attribute|array_column:'kAttribut')]}" - Unexpected ";", expected one of: "","" , ")" <-- thrown in /includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 93

oder das hier:

Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "file:/templates/rst2018/productdetails/details.tpl" on line 93 "{assign var="currentAttribute" value=$Artikel->Attribute[array_search(Höhe, $Artikel->Attribute|array_column:'kAttribut')]}" - Unexpected "Ã", expected one of: "","" , ")" <-- thrown in /includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 93

 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Hallo,
ich zitiere mich mal selbst...
Wobei nnnn hier für den Wert von kAttribut des benötigten Attributes steht.
kAttribute ist die ID!!! des Attributes, also numerisch! Im Endeffekt muss dann sowas da stehen:
PHP:
{assign var="currentAttribute" value=$Artikel->Attribute[array_search(4711, $Artikel->Attribute|array_column:'kAttribut')]}
Die 4711 ist beispielhaft und muss durch die konkrete ID des Attributes ersetzt werden!
 
Zuletzt bearbeitet:

WAM

Aktives Mitglied
11. Mai 2018
8
0
Ahh, dann wird ein Schuh drauss.
Wenn du mir jetzt noch auf die Sprünge helfen könntest wie ich die ID raus bekomme wäre ich sehr Dankbar
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Wenn du mir jetzt noch auf die Sprünge helfen könntest wie ich die ID raus bekomme wäre ich sehr Dankbar
- Mit dem Plugin "JTL Debug" auf der Detailseite des Artikels die Variable $Artikel->Attribute untersuchen und kAttribut auslesen.
- Temporär ein {$Artikel->Attribute|print_r} in das betroffene Template und die kAttribut auslesen.
- Direkt in der Tabelle tattribut der Shop-datenbank anhand cName das Attribut suchen und dort den Wert aus der Spalte kAttribut auslesen.
 

WAM

Aktives Mitglied
11. Mai 2018
8
0
Man, Man. Da sieht man die Bäume vor Lauter Wald nicht mehr..

Erstmal Danke für deine Hilfe. Zum Crash kommt es jetzt nicht mehr

Aber leider, läuft das immer noch nicht so richtig.
Seltsames Phänomen, aber wenn ich die z.b. ID "3569", die selbst in der DB als Höhe drin steht, rein setzte,
bekomme ich die "Breite" angezeigt.

Da ich mehrer ID´s in der Datenbank für das kAttribut "Höhe" habe, habe ich die schon alle durch Probiert.
Bleibt aber immer die Breite stehen.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Hallo,
wenn du dir $currentAttribute->kAttribut ausgeben lässt, ist das dann die 3569 oder irgendwas anderes?
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Dann zeig bitte mal den konkreten Ausschnitt aus deinem geänderten Template. Bei mir funktioniert das - habe es gerade nochmal getestet.
 

Ähnliche Themen