# Linstenansicht / Kategorieansicht / Listings um die Eigenschaften erweitern

**URL:** <https://forum.shopware.com/t/linstenansicht-kategorieansicht-listings-um-die-eigenschaften-erweitern/44543>\
**Category:** Programmierung\
**Created:** [16. März 2017 um 12:38 UTC](https://forum.shopware.com/t/linstenansicht-kategorieansicht-listings-um-die-eigenschaften-erweitern/44543 "2017-03-16T12:38:43Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![itevoag](https://avatars.discourse-cdn.com/v4/letter/i/8edcca/32.png) [@itevoag](https://forum.shopware.com/u/itevoag)\
**Post date:** [16. März 2017 um 12:38 UTC](https://forum.shopware.com/t/linstenansicht-kategorieansicht-listings-um-die-eigenschaften-erweitern/44543/1 "2017-03-16T12:38:43Z")

</div>

Hallo zusammen,

bin im Forum noch nicht auf eine Antwort gestossen, deswegen hier mein Problem:

In den Listings werden leider keine Daten zu den Eigenschaften der einzlnen Artikeln mit in das “sArticles” Array gespeichert.

Ich möchte die Listenansicht zu einer Kategorie mit den Daten einer Eigenschaft erweitern. Entsprechend den bei dem Artikel gespeicherten Werten sollen dann in der Listenansicht Icons mit in der Box zu dem Produktbild ausgegeben werden.

Das ganze sollte natürlich Updatesicher sein. Ich hatte schon versucht den Einstieg über ein Event ‘Shopware\_Modules\_Articles\_sGetArticlesByCategory\_Start’ bzw. ‘Shopware\_Modules\_Articles\_sGetArticlesByCategory\_FilterResult’, aber ich komme dort nicht an die Daten (mangels Wissen zur Shopware Programmierung). Ich habe auch etwas von Hooks gelesen. Wie kann ich die Daten erweitern und zurückgeben um dann im Template darauf zugreifen zu können?

Eine Ausgabe der ‘Enlight\_Event\_EventArgs’ Variablen bzw. mittels ‘-\>getSubject()’ läuft leider immer in das php memory\_limit.

Hat jemand einen Ansatz für mich?

Vielen Dank.

---

<div class="post-metadata">

**Author:** ![supermonster](https://avatars.discourse-cdn.com/v4/letter/s/8edcca/32.png) [@supermonster](https://forum.shopware.com/u/supermonster)\
**Post date:** [17. März 2017 um 09:06 UTC](https://forum.shopware.com/t/linstenansicht-kategorieansicht-listings-um-die-eigenschaften-erweitern/44543/2 "2017-03-17T09:06:34Z")

</div>

Ungetestet und abgespeckt, aber das habe ich mal irgendwann so verwendet:

```
subscribeEvents();
        } catch (Exception $e) {
            return array(
                'success' => false,
                'message' => $e->getMessage()
            );
        }
        
        return true;
    }
    
    private function subscribeEvents()
    {
        $this->subscribeEvent(
            'Shopware_Modules_Articles_sGetArticlesByCategory_FilterResult',
            'onShopware_Modules_Articles_sGetArticlesByCategory_FilterResult'
        );
    }
    
    public function onShopware_Modules_Articles_sGetArticlesByCategory_FilterResult(Enlight_Event_EventArgs $arguments)
    {
        $sArticle = $arguments->getReturn();
        $articleId = $sArticle['articleID'];
        
        $sArticle['attr'] = $this->getArticleAttributes($articleId);
        
        return $sArticle;
    }
    
    private function getArticleAttributes($articleId)
    {
        $attributes = Shopware()->Db()->fetchAll(
            "SELECT * FROM s_articles_attributes WHERE s_articles_attributes.articleID = ?",
            [$articleId]
        );
        
        if ($attributes) {
            return $attributes[0];
        }
        
        return null;
    }
}

```

Der Weg, wie ich die Artikelattribute abhole, dürfte auch etwas überholt sein. Dafür gibt es mittlerweile mit Sicherheit Objektmethoden. Letztendlich sollte dann aber jeder Artikel im Template eine weitere Eigenschaft **attr** mit allen Attributen haben.

---

<div class="post-metadata">

**Author:** ![itevoag](https://avatars.discourse-cdn.com/v4/letter/i/8edcca/32.png) [@itevoag](https://forum.shopware.com/u/itevoag)\
**Post date:** [17. März 2017 um 11:32 UTC](https://forum.shopware.com/t/linstenansicht-kategorieansicht-listings-um-die-eigenschaften-erweitern/44543/3 "2017-03-17T11:32:20Z")

</div>

Hi Supermonster,

vielen Dank für deine Antwort. Konnte mit deinem Quellcode eine entsprechende Adaption für die Listenansicht mit mehreren Artikeln vornehmen.

Es gibt auch eine Methode zur Ermittlung der Eigenschaften / Properties: “Shopware()-\>Modules()-\>Articles()-\>sGetArticleProperties($articleID);”

```
	public function appendFilterValues(Enlight_Event_EventArgs $args)
	{
		$categoryID = $args->getId();
		
		// Kategorie 164 steht fuer die Praemierten Weine
		// fuer diese sollen die ausgewaehlten Speiseempfehlungen ermittelt werden
		if($categoryID == 164) {
			$returnVals = $args->getReturn();
		
			foreach($returnVals["sArticles"] as $key => $value) {
				$returnVals["sArticles"][$key]['sProperties'] = Shopware()->Modules()->Articles()->sGetArticleProperties($value['articleID']);
			}
		}
		return $returnVals;
	}

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![supermonster](https://avatars.discourse-cdn.com/v4/letter/s/8edcca/32.png) [@supermonster](https://forum.shopware.com/u/supermonster)\
**Post date:** [17. März 2017 um 12:31 UTC](https://forum.shopware.com/t/linstenansicht-kategorieansicht-listings-um-die-eigenschaften-erweitern/44543/4 "2017-03-17T12:31:08Z")

</div>

Ah, perfekt. Muss ich das nächste Mal nicht danach suchen!

---

<div class="post-metadata">

**Author:** ![KevinS86](https://avatars.discourse-cdn.com/v4/letter/k/67e7ee/32.png) [@KevinS86](https://forum.shopware.com/u/KevinS86)\
**Post date:** [22. April 2017 um 05:54 UTC](https://forum.shopware.com/t/linstenansicht-kategorieansicht-listings-um-die-eigenschaften-erweitern/44543/5 "2017-04-22T05:54:51Z")

</div>

Nur zur Info, ich hatte das Thema auch mal gelöst und angegangen und hatte dabei den Listing Service dekoriert von Shopware.&nbsp;

> **[Kevinschmid86/KSchmidExtendListing](https://github.com/Kevinschmid86/KSchmidExtendListing)**
>
> Contribute to Kevinschmid86/KSchmidExtendListing development by creating an account on GitHub.

Ist eine andere Möglochkeit an die Artikeleigenschaften.

Ergebnis ist dasselbe, steht dann nachher alles im Atteribut&nbsp;kschmidExtendListing drin.

Ein Beispielaufruf kann hier eingesehen werden.&nbsp;

[https://forum.shopware.com/discussion/37027/option-einer-eigenschaft-bei-einem-artikel-im-kategorie-listing#latest](https://forum.shopware.com/discussion/37027/option-einer-eigenschaft-bei-einem-artikel-im-kategorie-listing#latest)

Liebe Grüße

Kevin
