Artikelvergleich: Tabelle statt Block-Elemente

Hallo zusammen wir sind gerade dabei zu prüfen, ob Shopware ein Ersatz unseres derzeitigen Shopsystems sein könnte. Soweit macht alles einen guten Eindruck, allerdings sind wir auf eine Sache gestoßen, die ziemlich unschön gelöst wurde: Und zwar bestehen die einzelnen “Zellen” der Artikel-Vergleichstabelle aus Block-Elementen mit fixen Höhen. Das hat zur Folge, dass der Content der jeweiligen Zellen “überläuft” sobald dieser mehrzeilig wird. Eine Änderung der Block-Höhe auf “auto” zerstört logischerweise die Tabellenansicht und damit die Vergleichbarkeit. Sinnvoller wäre es, wenn diese Tabelle auch tatsächlich als Tabellen-Markup aufgebaut wird. Damit wäre auch eine mehrzeilige bzw. höhere Zelle kein Problem. Könnte das für eine der nächsten Versionen berücksichtigt werden? Ein Workaround wäre für uns soweit - da es momentan nur eine Zeile betrifft - diese an das Ende zu schieben und ihr dann eine fixe (maximale) Höhe zu geben. Aber wie gesagt, ein Tabellen-Markup wäre hier angebracht, da es sich ja tatsächlich um eine (Vergleichs)tabelle handelt. Und dafür ist es ja da… Viele Grüße, Frank Lamozik

Hi, das lässt dich doch über das Template ändern oder etwa nicht? Gesendet von meinem iPhone mit Tapatalk

Hallo, ja, man kann das Template der Vergleiche anpassen und es stimmt, die fixe Höhe ist ein Problem. Sie wird es schon, wenn man nur die Schriftart ändert. Das Template befindet sich in frontend/compare/ und das Overlay/Modal-Fenster in overlay.tpl. Wenn man tatsächlich eine Tabellen im MArkup haben möchte, ist es allerdings keine dankbare Aufgabe dies zu realisieren. Shopware iteriert über ein Array und stellt immer den Datensatz (=die Spalte) für einen Artikel zur Verfügung. Dann ist es natürlich einfacher, div-Elemente mit fixer Höhe pro Spalte untereinander zu schreiben und die Spalten floaten zu lassen, als jeweils mit tr- und td-tag zur arbeiten. Am einfachsten wäre es, die Höhe der Zeilen im CSS anzupassen und/oder die auszugebende Textlänge im Template zu beschränken. Viele Grüße HTH

Hallo Ja, das mit der Template-Anpassung war ebenfalls die erste Idee. Problem hierbei ist allerdings, wie hth bereits geschrieben hat, dass die einzelnen Blöcke spaltenweise vorliegen. Ohne großartiges Hacken (z.B. mittels Javascript und/oder CSS) ist es somit nicht möglich zeilenweise in eine Html-Tabelle zu iterieren. Meiner Meinung nach sollte das im Core angepasst werden - hier gehört das hin. Einen Array vor der Übermittlung ans Template zu „drehen“ ist in PHP kein wirklich großes Problem :wink: Gruß, Frank

Hi Eigentlich mag ich solche Hacks nicht, aber hier sehe bzw. sah ich keine andere Möglichkeit. Ich habe mir nun mit einem Script geholfen (platziert in overlay.tpl): [code][/code] Der Code transformiert die Blöcke in eine “echte” Tabelle, die dann problemlos gestylt werden kann. Leider kann das “Modal” keine Callbacks, so dass ich mittels timeout auf das Rendering warte. Interessanterweise funktioniert das auch mit der Angabe “0”. Sicher gibt es dafür noch eine elegantere Möglichkeit, aber soweit sieht es jetzt genau so aus wie gewünscht :slight_smile: Vielleicht hilft es ja dem einen oder anderen… Gruß, Frank

1 Like

Hi,

ich habe soeben dein Code-Schnipsel in die overlay.tpl eingefügt - leider hat es keine Besserung gebracht.
Ich habe es vor den und nach dem vorhandenen Code hinzugefügt.
Verwendet wird das Standart Responsive-Theme ABER die Shopware-Version 5 - hast Du hier vielleicht auch eine Lösung?

Würde mich über Hilfe freuen - bei uns ist derzeit leider kein Vergleich möglich, da die Höhe völlig verschoben ist. 

LG

Michael