Freitextfeld für Eigenschaften - Gruppe (s_filter_options_attributes)

Vorab als information was ich gern machen möchte. Ich benötige eine Klasse für die Filterblöcke die mir die unterschiedlichen Filter unterscheiden kann das ich unterschiedliche Anordnungen haben kann. Ich habe hierzu ein Freitextfeld filter_cat_class angelegt.

Nun habe ich das Problem das ich die Ausgabe im frontend nicht hinbekomme obwohl ein print_r von $facet mir das richtige ausgibt

[attributes:protected] => Array
        (
            [core] => Shopware\Bundle\StoreFrontBundle\Struct\Attribute Object
                (
                    [storage:protected] => Array
                        (
                            [id] => 1
                            [optionID] => 7
                            [filter_cat_class] => filter--big-images
                        )

                )

        )

allerdings ist dies dort protected. Ich wollte dann über die fuction $facet->getAttribute(‘filter_cat_class’) darauf zugreifen jedoch bekomme ich lediglich ein true zurück.

ich weis ehrlich gesagt nicht mehr weiter.

ich glaube es muss heißen: $facet->getAttribute(‚core‘)->get(‚filter_cat_class‘)

Das wars vielen danke  Thumb-Up

Habe ein ähnliches Problem.

Ich habe auch in Eigenschaften - Gruppe (s_filter_options_attributes) ein Freitextfeld angelegt (Checkbox) welches ich dafür nutze ob die Gruppe überhaupt im Filter angezeigt werden soll oder nicht.

Wie komme ich an dieses Attribute im Template heran ?

So das ich z.b. in der frontend/listing/actions/action-filter-facets.tpl unterscheiden kann ob es gezeigt wird oder nicht. Die Standart Filter wie Preis , Lieferbar, Bewertungen etc. sollten auch gleich mit verschwinden.

Habe bereits hier im Forum gesucht, aber nichts hat zu einer Lösung geführt.

 

Hallo,

ich hatte auch lange probiert, hat auch nicht funktioniert. Lösung war bei mir, zu testen, ob getAttribute Nullwert zurückliefert. Hier der Code:

{block name=“frontend_listing_actions”}
    {foreach $facets as $facet}    
        {if $facet->getAttribute(‘core’) !== null}
            {if $facet->getAttribute(‘core’)->get(‘Freitextfeld’) == 0}
                {block name=“frontend_listing_actions_facet”}
                    {if $facet->getTemplate() !== null}
                        {include file=$facet->getTemplate() facet=$facet}
                    {/if}
                {/block}
            {/if}
        {else}
            {block name=“frontend_listing_actions_facet”}
                {if $facet->getTemplate() !== null}
                    {include file=$facet->getTemplate() facet=$facet}
                {/if}
            {/block}
        {/if}
    {/foreach}
{/block}

Hallo Zusammen,

Ist zwar ein etwas älterer Thread, doch der Kontext scheint der gleiche zu sein, weshalb ich lieber diesen reanimiere.

Ich habe aus meiner Sicht die gleiche Ausgangslage wie “vierpunkt” und möchte ein Freitextfeld eines Filters ausgeben. Hier muss ich ev. darauf Hinweisen, dass es sich um ein Varianten Option Freitextfeld handelt (Hexwert hinterlegen pro Farbvariante).
Gebe ich mit 

{$option-\>getAttribute('core')|print\_r}

das Objekt mal im Frontend aus, erhalte ich folgendes:

Shopware\Bundle\StoreFrontBundle\Struct\Attribute Object (
    [storage:protected] => Array
    (
        [id] => 1
        [optionID] => 43
        [colorvalue] => #000000
    )
)
1

In der Klasse “Attribute” gibt es auch eine Methode “get()” in welcher als Parameter ein String übergeben wird (in meinem Fall “colorvalue”), damit man den zugewiesenen Wert erhält. Da bekomme ich jedoch eine Fehlermeldung im Frontend mit der Meldung “Call to a member function get() on null”.
Kann mir jemand sagen, was ich falsch mache?

Hallo Zusammen,

Ist zwar ein etwas älterer Thread, doch der Kontext scheint der gleiche zu sein, weshalb ich lieber diesen reanimiere.

Ich habe aus meiner Sicht die gleiche Ausgangslage wie “vierpunkt” und möchte ein Freitextfeld eines Filters ausgeben. Hier muss ich ev. darauf Hinweisen, dass es sich um ein Varianten Option Freitextfeld handelt (Hexwert hinterlegen pro Farbvariante).
Gebe ich mit 

{$option-\>getAttribute('core')|print\_r}

das Objekt mal im Frontend aus, erhalte ich folgendes:

Shopware\Bundle\StoreFrontBundle\Struct\Attribute Object (
    [storage:protected] => Array
    (
        [id] => 1
        [optionID] => 43
        [colorvalue] => #000000
    )
)
1

In der Klasse “Attribute” gibt es auch eine Methode “get()” in welcher als Parameter ein String übergeben wird (in meinem Fall “colorvalue”), damit man den zugewiesenen Wert erhält. Da bekomme ich jedoch eine Fehlermeldung im Frontend mit der Meldung “Call to a member function get() on null”.
Kann mir jemand sagen, was ich falsch mache?
Das ganze wird auf der folgenden Zeile ausgeführt (in meinem eigenen Theme natürlich):
https://github.com/shopware/shopware/blob/5.6/themes/Frontend/Bare/frontend/listing/filter/_includes/filter-multi-selection.tpl#L80

Kann hier jemand einen Hinweis geben?
Es scheint mir als ob ich an einem Syntaxfehler scheitere, auch wenn ich 10 Tage später noch nicht darauf gekommen bin.

Hat sich hier etwas geändert - wir kommen ebenfalls nicht an unser Attribut „_ attr_collapsed _“ ran, das an der Filter-Gruppe hängt:

        {foreach $facets as $facet}
            {if $facet->getAttribute('core') !== null}
                {if $facet->getAttribute('core')->get('attr_collapsed')} != 0}
                    {$isActive = " is--active"}
                    {break}
                {/if}
            {/if}
        {/foreach}

Das steckt in der $facets :

Shopware\Bundle\SearchBundle\FacetResult\FacetResultGroup Object ( [facetResults:protected] => Array ( [0] => Shopware\Bundle\SearchBundle\FacetResult\MediaListFacetResult Object ( [facetName:protected] => property [active:protected] => [label:protected] => Motiv [fieldName:protected] => f [values:protected] => Array ( [0] => Shopware\Bundle\SearchBundle\FacetResult\MediaListItem Object ( [media:protected] => Shopware\Bundle\StoreFrontBundle\Struct\Media Object ( [id:protected] => 3684 [name:protected] => icon_filter_europe [description:protected] => [preview:protected] => [type:protected] => VECTOR [file:protected] => /media/vector/03/g0/20/icon_filter_europe.svg [extension:protected] => svg [thumbnails:protected] => Array ( ) [width:protected] => 511 [height:protected] => 511 [path:protected] => media/vector/icon_filter_europe.svg [attributes:protected] => Array ( ) ) [id:protected] => 138 [label:protected] => Welt & Europa [active:protected] => [attributes:protected] => Array ( ) ) [1] => Shopware\Bundle\SearchBundle\FacetResult\MediaListItem Object ( [media:protected] => [id:protected] => 139 [label:protected] => Länder [active:protected] => [attributes:protected] => Array ( ) ) [2] => Shopware\Bundle\SearchBundle\FacetResult\MediaListItem Object ( [media:protected] => [id:protected] => 140 [label:protected] => Dt. Bundesländer [active:protected] => [attributes:protected] => Array ( ) ) [3] => Shopware\Bundle\SearchBundle\FacetResult\MediaListItem Object ( [media:protected] => [id:protected] => 141 [label:protected] => Tiere [active:protected] => [attributes:protected] => Array ( ) ) [4] => Shopware\Bundle\SearchBundle\FacetResult\MediaListItem Object ( [media:protected] => [id:protected] => 142 [label:protected] => Symbole [active:protected] => [attributes:protected] => Array ( ) ) ) [template:protected] => frontend/listing/filter/facet-media-list.tpl [attributes:protected] => Array ( [core] => Shopware\Bundle\StoreFrontBundle\Struct\Attribute Object ( [storage:protected] => Array ( [id] => 1 [optionID] => 29 [attr_collapsed] => 1 ) ) ) ) ) [facetName:protected] => property [label:protected] => [template:protected] => frontend/listing/filter/facet-group.tpl [attributes:protected] => Array ( ) )