neuer Thumbnail-Pfad seit Update 5.1

Hallo zusammen, der Pfad zu den Thumbnails war media/image/thumbnail … Ich hole mir den Thumbnail-Pfad in meinem Plugin über das MediaServieInterface.php. Nun erhalte ich immer noch diesen oben genannten Pfad. Allerdings hat doch Shopware die gesamte Mediastruktur umgestellt. Über welches Interface erhalte ich denn nun den neuen Pfad zu den Thumbnails? Anbei ein Auszug aus meinem Plugin. [code]<?php namespace ShopwarePlugins\RiconAdvancedProductListing\StoreFrontBundle;

use Shopware\Bundle\StoreFrontBundle\Service\ListProductServiceInterface;
use Shopware\Bundle\StoreFrontBundle\Service\MediaServiceInterface;
use Shopware\Bundle\StoreFrontBundle\Service\ProductServiceInterface;
use Shopware\Bundle\StoreFrontBundle\Struct;

class ListProductService implements ListProductServiceInterface
{
private $service;
private $mediaService;
private $productService;

function __construct(ListProductServiceInterface $service, MediaServiceInterface $mediaService, ProductServiceInterface $productService) {
    $this->service = $service; $this-\>mediaService = $mediaService; $this-\>productService = $productService; } public function getList(array $numbers, Struct\ProductContextInterface $context) { $products = $this-\>service-\>getList($numbers, $context); $media = $this-\>mediaService-\>getProductsMedia($products, $context); $productData = $this-\>productService-\>getList($numbers, $context); foreach($numbers as $number) { if (!is\_object($products[$number])) { } else { $product = $products[$number]; if (isset($media[$number])) { $attribute = new Struct\Attribute(['images' =\> $media[$number]]); $product-\>addAttribute('ricon\_plugin\_system', $attribute); } $attributeP = new Struct\Attribute(['info' =\> $productData[$number]]); $product-\>addAttribute('ricon\_plugin\_system\_2', $attributeP); $products[$number] = $product; } } return $products; } public function get($number, Struct\ProductContextInterface $context) { $products = $this-\>getList([$number], $context); return array\_shift($products); } }[/code] Danke schon mal für eure Hilfe. Gruß Max

Komisches if Statement hast Du da drin … jedenfalls: https://developers.shopware.com/developers-guide/shopware-5-upgrade-guide-for-developers/?_ga=1.126816333.1992733016.1444991542#media-service Immer die Dev. Guides / Changelogs im Auge behalten. Dort wird beschrieben, was Du machen musst - mit Beispielen. Schöne Grüße, Niklas

Hi Niklas, danke für deine Antwort und deinen Link. Da war ich gerade auch schon dran. Was ich davon auf jeden Fall benötige ist der neue smarty Tag {media path='pfad'} im Frontend. An einem Punkt scheiter ich jedoch noch. Ich habe den Pfad in einer Variable gespeichert. Das funktioniert aber leider nicht. Als ob die Funktion Probleme mit der Variable hat. {media path='$path'} {media path=$path} Vielleicht noch einen Tipp? Vielen Dank und viele Grüße Max

Hallo, wenn du den Pfad eh aus deinem Plugin übergibst, lass dir doch dort gleich die vollständige URL erzeugen. vgl. https://developers.shopware.com/develop … generation $url = $mediaService-\>getUrl($path); Grüße, Sven

Hi, dass die {media}-Funktion mit deiner Variable nicht funktioniert, dürfte daran liegen, dass {media} den Pfad auswertet, wenn das Template kompiliert wird, deine Variable aber erst zur Laufzeit gesetzt wird. Grüße, Sven

Guten Tag @macxman‍ ,

dein Beitrag ist zwar schon relativ lange her, aber ich hätte da mal eine Frage.

Wie bekommst du deinem ‘ListProductService’ Klassen-Konstrukter, welche ‘ListProductServiceInterface’ implementiert, das ‘ListProductServiceInterface’ und ‘ProductServiceInterface’ übergeben?
Und wie sieht dort deine services.xml aus?

Aktuell habe ich das Problem, dass ich dort immer in einer ‘ServiceCircularReferenceException’ lande.
(Circular reference detected for service “light_listing_features.list_product_service”, path: “light_listing_features.list_product_service -> shopware_storefront.product_service -> light_listing_features.list_product_service”)

Meine services.xml sieht wie folgt aus:
 

 

Beste Grüße!