s_articles_supplier_attributes in frontend

wie bekommen wir werte von s_articles_supplier_attributes in hersteller seiten frontend?

ich hab ein backend plugin geschrieben der für hersteller eine extra textarea ins s_articles_supplier_attributes schreibt und diese wollen wir auf hersteller seite anzeigen.

die hersteller frontend template ist anscheinend frontend/listing/manufacturer.tpl (obwohl anders wo hersteller als supplier genannt wird…) und da sehe ich sachen wie:

{$manufacturer->getDescription()}

hab aber nichts gefunden wie wir die attribute erhalten können…

dann habe ich diese lustige ding (gefunden durch {debug}) probiert:

{foreach $sArticles as $a}
    {$a.supplier_attributes.core.extra_text
    {break}
{/foreach}

aber das sagt

Fatal error:  Cannot use object of type Shopware\Bundle\StoreFrontBundle\Struct\Attribute as array

was mache ich falsch?

{$a.supplier_attributes.core->get(“extra_text”)}

Wenn dann muesste es so sein

@Shyim schrieb:

{$a.supplier_attributes.core->get(„extra_text“)}

Wenn dann muesste es so sein

aber natürlich, danke!

jetzt habe ich gemerkt das wenn ich folgendes benutze

{$manufacturer->getAttribute()}

bekomme ich keine fehler, also muss diese methode existieren. aber keins von folgenden gibt mir die inhalt von datenbank

{$manufacturer->getAttribute("extra_text")}
{$manufacturer->getAttribute("ExtraText")}
{$manufacturer->getAttribute("extraText")}

wäre dies nicht der richtige weg?
oder hat diese getAttribute nichts mit s_articles_supplier_attributes zu tun?
wo ist diese $manufacturer->getAttribute definiert?

 

anscheinend gibts noch so was

{assign attr $manufacturer->getAttributes()}
{$attr.core->get("extra_text")}

diese funktioniert und sollte mir gut genug sein.

Ich könnte zu diesem Thema vielleicht auch einen kleinen Hinweis gebrauchen. Es handelt sich um Freitextfelder in den Artikel Filter Optionen.
Es ist mir nicht möglich den Array Inhalt nach dem hier vorher genutzten Model auszugeben. Wo ist mein Fehler? Meine Formulierungsversuche sind:

{*{if $sProperty.sfva_attr1}{$sProperty.sfva_attr1}{else}{$sProperty.name}{/if}*}
{*{$sProperty.attributes.core.storage.sfva_attr1}*}
{*{assign attr $sProperty->getAttributes()}
{$attr.core->get("sfva_attr1")}*}
{*{$sProperty->getAttribute("sfva_attr1")}*}
// Dieser Versuch gibt zumindestens keinen Fehler aber auch keinen Variableninhalt aus
{$sProperty.attributes.core->get("sfva_attr1")}

Und hier im Bild mal der Array Aufbau.

Ich würde mich sehr über ein wenig Denkhilfe freuen.

@xp24 schrieb:

Ich könnte zu diesem Thema vielleicht auch einen kleinen Hinweis gebrauchen. Es handelt sich um Freitextfelder in den Artikel Filter Optionen.
Es ist mir nicht möglich den Array Inhalt nach dem hier vorher genutzten Model auszugeben. Wo ist mein Fehler? Meine Formulierungsversuche sind:

{{if $sProperty.sfva_attr1}{$sProperty.sfva_attr1}{else}{$sProperty.name}{/if}}
{{$sProperty.attributes.core.storage.sfva_attr1}}
{{assign attr $sProperty->getAttributes()}
{$attr.core->get(„sfva_attr1“)}
}
{{$sProperty->getAttribute(„sfva_attr1“)}}
// Dieser Versuch gibt zumindestens keinen Fehler aber auch keinen Variableninhalt aus
{$sProperty.attributes.core->get(„sfva_attr1“)}

Und hier im Bild mal der Array Aufbau.

Ich würde mich sehr über ein wenig Denkhilfe freuen.

Hallo,

die Variable ist ja als protected deklariert - somit kommt man da nicht so einfach dran. Was kommt bei deimem Aufruf für eine Meldung? Prinzipiell müsste das mit get(„variable“) so funktionieren.

Beste Grüße

Sebastian

Hallo Sebastian, vielen Dank für den Hinweis. Besteht ohne zusätzlichen Pluginaufwand überhapt eine Chance da ran zu kommen?

Und warum ist die Variable des zus. Supplier Freitextfeldes beim Kollegen nicht protected?

Das stimmt so nicht - dafür gibt es ja den getter: shopware/Attribute.php at 5.2 · shopware/shopware · GitHub

Ich nutze zb in einem Template ohne Probleme:
{if $sArticle.attributes.core->get( “attr2” ) != “…”}

Wo ist denn das Problem? Erhältst du eine Fehlermeldung?

Viele Grüße

1 „Gefällt mir“

Danke Sebastian, … passt!