Im custom-Template erkennen, von welcher Seite das Template eingebunden wird

Hallo zusammen,

ich möchte gerne in einem Custom-Template das Erscheinungsbild eines Blockes verändern, welcher auf der Artikelübersicht der Kategorie gezeigt wird. Es handelt sich um das parent template frontend/listing/product-box/product-image.tpl und der Block soll frontend_listing_box_article_image_picture_element sein. Soweit klappt auch alles bei mir. Nun ist mir allerdings aufgefallen, dass der Block nicht nur auf der Artikelübersicht einer Kategorie, sondern auch im Empfehlungssystem „Kunden kauften auch“ bei den Produkten verwendet wird, bei welcher die Darstellung wie ursprünglich beibehalten werden soll. Leider bekomme ich es nicht hin, dass ich im Template erkenne, um welche Seite es sich handelt.
Versucht habe ich bereits mittels Enlight_Controller_Action_PostDispatch_Frontend_Listing in einem custom plugin eine Template-Variable zu assignen:

	public function onFrontendListing(\Enlight_Event_EventArgs $args)
    {
        /** @var \Shopware_Controllers_Frontend_Listing $subject */
		$controller = $args->getSubject();
		$view = $controller->View();
		$view->assign('showOriginal', true);

Hier kann ich leider dennoch nicht darauf zugreifen. Vermutlich ist das auch nicht der optimale Weg, daher die Frage, wie ich hier am besten vorgehen kann.

Besten Dank und viele Grüße
Max

Da musst du einen Schritt zurück gehen an den Punkt wo das Listing aus dem Artikelarray einzeln die Boxen aufruft.
Hier musst du dem Block eine Variable übergeben, dass diese Box „anders“ ist.
frontend/listing/listing.tpl

{* Actual listing *}
  {block name="frontend_listing_list_inline"}
         {foreach $sArticles as $sArticle}
            {include file="frontend/listing/box_article.tpl" myboxstyle="anders"}
           {/foreach}
   {/block}`

In frontend/listing/box_article.tpl fängst du diese Variable ab und machst einmal das „normale“ und dann deine Anpassung. Entweder das gleiche Spiel nochmal, oder du baust eine custom_box.tpl (Beispiel)

{if $myboxstyle eq "anders"}
...deine Änderung
{else}
...das normale
{/if}

Info ohne Gewähr :smiley:

1 „Gefällt mir“

Super, hat funktioniert, besten Dank :slight_smile: