Falsche DIV-Breite im Banner-Slider

Hallo zusammen, sorry, dass mein erster Post gleich ein “Bug” ist/sein könnte. Problem: Im Bannerslider haut mir das letzte Bild ab, bzw. wird nicht angezeigt. Die Einkaufswelt hat 3 Spalten auf 808 Pixel und das Feld für den Banner ist ein Feld breit. Daraus ergibt sich eine “Größe im Frontend: 259.3333333333333px”. Leider wird diese Breite dem das jeweilge Bild umgebene DIV per Style zugewiesen. Die Folge in meinem Fall: 4 Bilder aufsummiert ergibt eine Breite von 1037,3333333px Der Übergeordnete Slider-Container hat eine Breite von 4x259=1036px per Style zugewiesen. Da die Breite nun nicht passt und die DIVs floaten, folgt nach dem dritten Bild im Slider ein Umbruch, und das 4. Bild wird nicht angezeit, da es unter der sichtbaren Reihe ist. Da der Slider-Container aber 1036px breit ist, erscheint nur ein weisses Feld. Da ich aber auch keine Bilder mit 1/3 Pixel Breite erstellen kann, macht diese Style-Angabe keinen Sinn. Müsste hier nicht die Nachkommastelle abgeschnitten werden? Shopware 4.2.1 CE Build Rev 201402131706 Ich könnte es sicherlich einfach durch einen Hack “nicht-update-sicher” ändern, aber hat jemand eine Idee, die updatesicher ist? Gibt es gar einen Bugfix? MFG Carsten R.

als Workaround in /templates/_default/widgets/emotion/components/component_banner_slider.tpl Zeile 19 ändern: 'scrollWidth': ~~(1 \* '{$sElementWidth}'),ändern in:'scrollWidth':~~(1 \* '{$sElementWidth|round:"0"}'), und Zeile 32 [code]

[/code]ändern in: Wie überschreibe ich nun updatesicher diese Datei mit meinem Template?

Nun ist mir eine weitere Ungereimtheit aufgefallen: Als Abstand zwischen zwei Elementen werden 10 Pixel angenommen, nachvollziehbar im 3 und 4 Spaltenlayout. Die Gesamtbreite für ein Element ergibt sich aus: n = Anzahl Spalten Breite = (Layoutbreite-(n-1)*10px)/n Das passt für 4 Spalten Bei 3 Spalten fehlen mir (im 808px Layout) in der Summe aber IMMER 10px [mal ein Einkaufsweltelement in der Breite über alle Felder anlegen] also scheint hier die Berechnung wie folgt zu sein: Elementbreite=(Layoutbreite-n*10px)/n Scheinbar ist die Anzahl der Abstände mit 3 Zwischenräumen (also 4 Spaltenlayout) fest verdrahtet. Also: Elementbreite=(Layoutbreite-30px)/n So komme ich bei mir bei 808px und 3 Spalten auf: Elementbreite=(808px-30px)/3=259,333333px (wie ganz oben) Daraus ergibt sich die reale Breite der Einkaufswelt von: 259,3333px * 3 + 2 * 10px = 798px Und genau so breit ist bei mir ein Element über 3 Spalten. Korrekt müsste ein Element bei 10px Abstand und 808px Breite im 3er Layout 262 2/3 px breit sein. Und das müsste dann auf 262 abgerundet werden für den Slider :wink: [Edit:] [color=blue]Falsche Annahme von mir, das ganze Rumgerechne hat sich erledigt…[/color]

Hallo Carsten, um das Einkaufselement des _default Template update sicher zu überschreiben, muss diese Datei in deinem eigenen Template erstellt werden: templates/emotion_DEINTEMPLATE/widgets/emotion/components/component_banner_slider.tpl Bei anderen Template Dateien, wie z.b. frontend/index/index.tpl sollte auf jeden Fall mit Vererbung {extends file=‘parent:frontend/index/index.tpl’} gearbeitet werden. Nachdem es in dieser Datei keine überschreibbaren Block Elemente gibt, muss hier die komplette Datei kopiert und überschrieben werden. Um die Änderungen im Frontend sehen zu können, muss danach der Cache im Backend geleert werden.

1 „Gefällt mir“

Hallo Carsten, nun noch ein kurzer Input zu deiner Berechnung der Einkaufswelt und deren Elementen. Grundsätzlich wird bei Einkaufsweltelemente der als Abstand definierte Bereich (standardmäßig 10px) als margin-right definiert. Somit hat auch das Element ganz rechts einen margin-right von 10px. Die Breite der Einkaufswelt von 808px definiert sich also durch den tatsächlich zu befüllenden Content-Bereich von 798px + den definierten Abstand von 10px. Dasselbe fällt z.b. auf der Startseite im Demoshop auf, welche eine eigentliche Content-Breite von 998px hat. Die Einkaufswelt wird allerdings mit einer Breite von 1008px definiert, da hier ebenfalls der 10px breite margin-right auftaucht. Sollte unter den Einkaufswelt Experten Einstellungen eine eigene Einkaufswelt definiert werden mit einem Abstand von z.b. 0px, wäre die optimale Einkaufsweltbreite auf der Startseite vermutlich 998px, und im Listing 798px. Viele Grüße, Steffi

Danke steffiiii, das mit dem margin ist mir im 4-Spalter garnicht aufgefallen,so passt das dann und ich habe oben nichts geschrieben. *peinlich* :cry: Mir fehlte die Info, wie ich Einkaufweltenlemente überschreibe (der Pfad in meinem Template), das werde ich dann gleich mal so umsetzen *DANKE* :wink: Ich bin aber der Meinung, dass das von Shopware gefixt werden müsste, sonst fällt unter bestimmten Bedingungen im Slider immer das letzte Beld “runter”. In der Gesamtbreite wird ja auf ganze Pixel abgerundet, nur nicht bei den Bildern… *egal* :thumbup: Gruß Carsten