# PropertyFacet

**URL:** <https://forum.shopware.com/t/propertyfacet/43953>\
**Category:** Programmierung\
**Created:** [22. Februar 2017 um 15:27 UTC](https://forum.shopware.com/t/propertyfacet/43953 "2017-02-22T15:27:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Olsen](https://avatars.discourse-cdn.com/v4/letter/o/4af34b/32.png) [@Olsen](https://forum.shopware.com/u/Olsen)\
**Post date:** [22. Februar 2017 um 15:27 UTC](https://forum.shopware.com/t/propertyfacet/43953/1 "2017-02-22T15:27:43Z")

</div>

Hallo zusammen,

ich versuche gerade mein erstes Plugin zu schreiben.

Ich möchte gern den PropertyFacets im Listing, deren Value Anzahl 1 ist und deren&nbsp;Title Label gleich dem Value Label sind,&nbsp;das BooleanFacetResult Template zuweisen.

Zum Starten habe ich mir das SwagAttributeFilter Plugin heruntergeladen.

Leider stehe ich gerade total auf dem Schlauch,

wie kann ich die zugewiesenen Templates in meinem Code listen ?

Muss ich an den Request ran ?

---

<div class="post-metadata">

**Author:** ![Olsen](https://avatars.discourse-cdn.com/v4/letter/o/4af34b/32.png) [@Olsen](https://forum.shopware.com/u/Olsen)\
**Post date:** [23. Februar 2017 um 15:13 UTC](https://forum.shopware.com/t/propertyfacet/43953/2 "2017-02-23T15:13:09Z")

</div>

Ok, mit diesem Tutorial&nbsp;[https://youtu.be/Wvc\_zKOZoAc](https://youtu.be/Wvc_zKOZoAc) bin ich schon ein ganzes Stück weiter gekommen:

In der Bootstrap.php subscribe ich einen ‚Enlight\_Controller\_Action\_PostDispatchSecure\_Frontend\_Listing‘ Dispatchevent mit&nbsp;

der Methode ‚onActionPostDispatchFrondendListing‘.

In der Methode&nbsp;komme ich auch an die Facets ran:

```
public function onActionPostDispatchFrondendListing(Enlight_Event_EventArgs $args){
	$subject = $args->getSubject();
    $context = $this->get('shopware_storefront.context_service')->getShopContext();
    $criteria = $this->get('shopware_search.store_front_criteria_factory')->createListingCriteria($subject->Request(), $context);

    $requestCategoryId = $subject->Request()->getParam('sCategory');
    $categoryContent = Shopware()->Modules()->Categories()->sGetCategoryContent($requestCategoryId);

    $categoryId = $categoryContent['id'];

    $categoryArticles = Shopware()->Modules()->Articles()->sGetArticlesByCategory(
       $categoryId,
       $criteria
    );
    
    $facetFilter = $this->get('shopware_product_stream.facet_filter');
    $tmpfacets = $facetFilter->filter($categoryArticles['facets'], $criteria);
    $facets = $tmpfacets[0]->getFacetResults();

    foreach ($facets as $facet){
        if(count($facet->getValues())==1){
            $oF=$facet->getValues();
            if($facet->getLabel()==$oF[0]->getLabel()){
                $newFacet = new BooleanFacetResult(
                        $facet->getFacetName(),
                        "__".$facet->getFieldName()."__".$oF[0]->getId(),
                        $facet->isActive(),
                        $facet->getLabel(),
                        array(),
                        'frontend/listing/filter/facet-boolean.tpl'
                    );
                $newFacets[] = $newFacet;
            }else{
                $newFacets[]=$facet;
            }
        }else{
            $newFacets[]=$facet;
        }

    }
    $categoryArticles['facets'] = $newFacets;
    $subject->View()->assign($categoryArticles);
}

```

&nbsp;

Beim&nbsp;Abschicken werden die ausgewählten Kriterien ignoriert.

Müssen die Conditions noch angepasst werden ?

&nbsp;

---

<div class="post-metadata">

**Author:** ![PidaPan](https://avatars.discourse-cdn.com/v4/letter/p/c89c15/32.png) [@PidaPan](https://forum.shopware.com/u/PidaPan)\
**Post date:** [25. August 2018 um 21:52 UTC](https://forum.shopware.com/t/propertyfacet/43953/3 "2018-08-25T21:52:29Z")

</div>

Hallo Olsen!

Hast du mittlerweile eine Lösung für das Problem gefunden? Ich würde mich für einen Lösungsansatz interessieren.

Beste Grüße  
Marius
