Wie Bildgröße zufällige Produkte im Kategorie-Teaser ändern

Leider werden wenn man im Kategorie-Teaser der Einkaufswelt Kategorien erstellt die Bilder bei Zufälligen Produkten immer nur mit der Bildgröße 2 dargestellt ( 105x105 px ) Ich hätte statt dessen gern 242x173px damit das Bild die Box komplett ausfüllt. Welche Template Datei müßte hierzu geändert werden. Mein ansatz in der Templates_default\widgets\emotion\components\component_category_teaser.tpl anzusetzen brachte leider kein Erfolg. Hier fehlt leider der gößen parameter wie zb image.src.3 . Ich hatte probiert file=$Data.image in file=$Data.image.src.3 zu ändern aber die war leider Erfolglos :frowning: . Wenn ich ein Bild wähle statt einen Zufälligen Artikel, wird die größe der Box gut ausgenutzt leider sind bei der Variante aber immer Handerstellte Bilder im Format 242x173 px Nötig [code]{if $Data}

[ {* teaser image *}
 
{* teaser headline *}

{$Data.categoryName}

]({url controller=cat action=index sCategory=$Data.category_selection})
{/if}[/code]

ja, das würde mich auch sehr interessieren! Hat jemand eine Idee?

Im sorry for respose in english, but my „deutch is seeeehr slecht“. Please look in file: …/engine/Shopware/Controllers/Widgets/Emotion.php find „private function getCategoryTeaser“ and replace: $data[‚image‘] = $result[‚media‘][‚thumbnails‘][2]; with number of your source thumbnail file 3 or? $data[‚image‘] = $result[‚media‘][‚thumbnails‘][3]; WBRG Adam

Hallo, da $Data ist ein Array und beinhaltet nicht alle Thumbnailgrößen. Daher muss man wie von Adam vorgeschlagen entweder die PHP-Datei ändern und dem Array den Link zu einem anderen Thumbnail zuweisen oder trickst etwas “dirty” in Smarty herum. Der Nachteil der PHP-Lösung sind die möglichen Probleme bei Updates. Smarty-Templates bleiben immer erhalten und man hat an der eigentlichen Programmlogik nichts verändert. Wenn man dort Änderungen vornehmen möchte, sind eigene Plugins der richtige(re) Weg. Smarty: Die Thumbnails werden in der Regel nach folgendem Schema erzeugt: irgendwas_140x140.jpg irgendwas_180x180.jpg Hat man dies nicht verändert, kann man die 140x140 einfach durch einen Language-Modifier von Smarty in 180x180 umschreiben. Allerdings darf 180x180 oder 140x140 nicht im Namen (irgendwas) vorkommen! {$Data.image|replace:‘140x140’:‘180x180’} Ist nicht getestet, sollte aber funktionieren. Der größte Vorteil ist, dass man die eigentlichen Programmdateien von Shopware nicht anfasst und man die Vorteile der Template-Engine erhält. Sonst könnte man ja auch direkt alle HTML-Dateien in PHP erzeugen.

2 Likes

Hi hth, thank for your solution. Simple and elegant. Unfortunately I have only one type of thumbnail (src.0). For each product is there only one image. I have 25.000 pictures in eshop, so I must to decide if I really need generate 4x25.000 pics. So when you have only one pics the $Data array has empty [2]-[„image“] item. WBRG Adam

Falls dieses Thema noch aktuell ist:

Ich habe auch lange gesucht und letztendlich emotions.less angepasst:

.category-teaser--link {
        background-position: top center;
        background-size: 80%;

Für unsere Bedürfnisse ist das eine passende Lösung.

1 Like

@waagen schrieb:

Falls dieses Thema noch aktuell ist:

Ich habe auch lange gesucht und letztendlich emotions.less angepasst:

.category-teaser–link {
background-position: top center;
background-size: 80%;

Für unsere Bedürfnisse ist das eine passende Lösung.

Hallo, waager!

Danke für die Lösung!

Hast du eine updatesichere Lösung gefunden?

Gruß Sergey!