# Eigene Einkaufswelten Attribute: Wie kann ich in listing/listing.tpl darauf zugreifen

**URL:** https://forum.shopware.com/t/eigene-einkaufswelten-attribute-wie-kann-ich-in-listing-listing-tpl-darauf-zugreifen/50741
**Category:** Programmierung
**Created:** [28. Januar 2018 um 23:23 UTC](https://forum.shopware.com/t/eigene-einkaufswelten-attribute-wie-kann-ich-in-listing-listing-tpl-darauf-zugreifen/50741 "2018-01-28T23:23:31Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![frimipiso](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@frimipiso](https://forum.shopware.com/u/frimipiso)
#### Post date: [28. Januar 2018 um 23:23 UTC](https://forum.shopware.com/t/eigene-einkaufswelten-attribute-wie-kann-ich-in-listing-listing-tpl-darauf-zugreifen/50741/1 "2018-01-28T23:23:31Z")

</div>

Hallo,

ich würde gerne mit einem eigenen Attribut in den Einkaufswelten einstellen, ob die EKW über oder unter dem Produktlisting angezeigt wird.  
Dazu muss ich im Theme&nbsp;die Datei listing/listing.tpl ändern und muss auf das EKW Attribut zugreifen.

Laut diesem Post hier:  
[https://forum.shopware.com/discussion/39755/freitextfeld-fuer-einkaufswelt-s-emotion-attributes-verfuegbar-machen](https://forum.shopware.com/discussion/39755/freitextfeld-fuer-einkaufswelt-s-emotion-attributes-verfuegbar-machen)  
sollte ich auf die eigenen Attribute über&nbsp;{$emotion.attribute.mein\_attribut} zugreifen können.

In Smarty werden unter listing/listing.tpl allerdings keine Attribute für den $emotions Array angezeigt:

&nbsp;

```
$emotions	Smarty_Variable Object (3)
->value = Array (1)
  0 => Array (7)
    id => "1"
    devices => "0,1,2,3,4"
    showListing => "1"
    fullscreen => "0"
    customer_stream_ids => null
    replacement => null
    devicesArray => Array (5)
      0 => "0"
      1 => "1"
      2 => "2"
      3 => "3"
      4 => "4"
->nocache = null
->scope = "snippet:frontend/listing/listing.tpl"

```

Wir kann ich auf mein eigenes Attribut zugreifen in listing/listing.tpl?

Danke und viele Grüsse,

Jens

---

<div class="post-metadata">

### Author: ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)
#### Post date: [29. Januar 2018 um 06:31 UTC](https://forum.shopware.com/t/eigene-einkaufswelten-attribute-wie-kann-ich-in-listing-listing-tpl-darauf-zugreifen/50741/2 "2018-01-29T06:31:14Z")

</div>

In der listing.tpl kommst du da nicht dran. Die Einkaufswelt wird ja über ein Widget geladen und ist auch nur da mit Ihren Variablen verfügbar. Warum nutzt du dafür nicht einfach ein Kategorie-Attribut?

---

<div class="post-metadata">

### Author: ![frimipiso](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@frimipiso](https://forum.shopware.com/u/frimipiso)
#### Post date: [29. Januar 2018 um 07:18 UTC](https://forum.shopware.com/t/eigene-einkaufswelten-attribute-wie-kann-ich-in-listing-listing-tpl-darauf-zugreifen/50741/3 "2018-01-29T07:18:28Z")

</div>

Ich möchte gerne in einer Kategorie mehrere Ekw verwenden, deren Position ich für jeweils einzeln festlegen möchte. Das wäre am saubersten über die Ekw Attribute zu machen.

Wie komme ich in meinem Plugin an die Ekw Attribute? Dann könnte ich sie einfach händisch über den View ausgeben.

---

<div class="post-metadata">

### Author: ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)
#### Post date: [29. Januar 2018 um 07:52 UTC](https://forum.shopware.com/t/eigene-einkaufswelten-attribute-wie-kann-ich-in-listing-listing-tpl-darauf-zugreifen/50741/4 "2018-01-29T07:52:37Z")

</div>

Ich würde das so machen:

&nbsp;

```
scheduleClearCache(ActivateContext::CACHE_LIST_DEFAULT);
    }
    public function deactivate(DeactivateContext $context)
    {
        $context->scheduleClearCache(DeactivateContext::CACHE_LIST_DEFAULT);
    }
    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatchSecure_Frontend_Listing' => 'onFrontendListing'
        ];
    }
    public function onFrontendListing(\Enlight_Event_EventArgs $args)
    {
        /** @var \Enlight_Controller_Action $controller */
        $controller = $args->get('subject');
        $view = $controller->View();

        $emotions = $view->getAssign('emotions');

        $service = $this->container->get('shopware_attribute.data_loader');

        $i = 0;
        foreach ($emotions as $emotion)
        {
            $attributes['attributes'] = $service->load('s_emotion_attributes', $emotion['id']);
            $emotions[$i] = $emotions[$i] + $attributes;
            $i++;
        }

        $view->assign('emotions', $emotions);
    }
}

```

Datei: /custom/plugins/MNAddEmotionAttributes/MNAddEmotionAttributes.php

---

<div class="post-metadata">

### Author: ![hth](https://avatars.discourse-cdn.com/v4/letter/h/b77776/32.png) [@hth](https://forum.shopware.com/u/hth)
#### Post date: [29. Januar 2018 um 07:54 UTC](https://forum.shopware.com/t/eigene-einkaufswelten-attribute-wie-kann-ich-in-listing-listing-tpl-darauf-zugreifen/50741/5 "2018-01-29T07:54:59Z")

</div>

&nbsp;

&nbsp;

&nbsp;

---

<div class="post-metadata">

### Author: ![frimipiso](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@frimipiso](https://forum.shopware.com/u/frimipiso)
#### Post date: [29. Januar 2018 um 08:32 UTC](https://forum.shopware.com/t/eigene-einkaufswelten-attribute-wie-kann-ich-in-listing-listing-tpl-darauf-zugreifen/50741/6 "2018-01-29T08:32:05Z")

</div>

Danke Moritz,

werde das heute abend ausprobieren.

Gruss Jens

---

<div class="post-metadata">

### Author: ![frimipiso](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@frimipiso](https://forum.shopware.com/u/frimipiso)
#### Post date: [29. Januar 2018 um 23:21 UTC](https://forum.shopware.com/t/eigene-einkaufswelten-attribute-wie-kann-ich-in-listing-listing-tpl-darauf-zugreifen/50741/7 "2018-01-29T23:21:15Z")

</div>

Funktioniert super. Vielen Dank!
