Freitextfeld für Einkaufswelt (s_emotion_attributes) verfügbar machen

@knc612 schrieb:

Hallo Sebastian, ja seit ca. 30 Minuten :)

Vielen Dank für die rasche Aktualisierung des Plugins, und natürlich die Unterstützung am Wochenende!

Wirklich eine sehr nützliche Erweiterung, danke!

LG Chris

Hallo Chris,

vielen Dank nochmal für den Hinweis Smile. Neue Funktionswünsche sind natürlich auch immer gern gesehen ^^.

Beste Grüße

Sebastian

Hallo, 

ich habe in einem Plugin über den CRUD Service Felder für die Einkaufswelt angelegt. Ich kann diese im Backend in den Freitextfeldern sehen - bekomme diese jedoch nicht im Frontend angezeigt. Nur über das Backend angelegte Freitextfelder bekomme ich auch im Frontend ausgegeben. 

Ich habe hier ein Beispiel in ein Demoplugin von Shopware eingebunden.

container->get('shopware_attribute.crud_service');

        $service->update('s_user_attributes', 'swag_shoesize', 'string', [
            'label' => 'Shoesize',
            'displayInBackend' => true
        ]);

		$service->update('s_emotion_attributes', 'testname', 'combobox', [
			'label' => 'Test Label',
			'translatable' => true,
			'displayInBackend' => true,
			'arrayStore' => [
				['key' => '1', 'value' => 'eins'],
				['key' => '2', 'value' => 'zwei'],
				['key' => '3', 'value' => 'drei'],
				['key' => '4', 'value' => 'vier']
			],
			'position' => 104
		]);

        return true;
    }

    /**
     * @return array
     */
    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatchSecure_Frontend' => 'onFrontendPostDispatch'
        ];
    }

    /**
     * @param \Enlight_Controller_ActionEventArgs $args
     */
    public function onFrontendPostDispatch(\Enlight_Controller_ActionEventArgs $args)
    {
        $view = $args->getSubject()->View();
        $view->addTemplateDir($this->getPath() . '/Resources/views');
    }
}

fehlt hier noch irgendwas wichtiges?

@kallahan schrieb:

Sehr vielen Dank für die schnelle Hilfe! 

Über $emotion.attribute.$ATTRIBUTE$ konnte ich die Attribute auch im Emotion-Template (/widgets/emotion/index.tpl) aufrufen. Vielen Dank!

Mmhm, aber wie verhält es sich wenn ich z.B. {$emotion.attribute.mein_attribut} einfach auf der home/index.tpl zwischen menuleiste und inhalt ausgeben möchte?
Probiere ich gerade, es erfolgt aber leider keine Ausgabe weit und breit…

@Oliver Skroblin schrieb:

Hi,

im Backend werden die Attribute automatisch gespeichert und geladen.

Im Frontend stehen diese auch für jede Einkaufswelt im Listing zur Verfügung. Hier kannst du über $emotion.attribute.$ATTRIBUTE$ (wobei $ATTRIBUTE$ für den Namen deines Attributes steht) zugreifen.

 

Hallo,

schade, dass hier über ein Plugin diskutiert wird und nicht über die Frage warum

{$emotion.attribute.mein_attribut} 

 kein Ausgabe erzeugt.

Ich möchte das Freitextfeld in meiner Einkaufswelt gerne so nutzen wie bei meinen Kategorieen, hier kann ich über eine Freitextfeld Checkbox die Sidebar abschalten oder anschalten.

{extends file="parent:frontend/index/index.tpl"}

{block name="frontend_index_body_classes" append}{if $sCategoryContent.attribute.attribute1 != 1} is--no-sidebar{/if} {/block}

Wie mus ich die Attribute für die Freitextfelder in den Einkaufswelten korrekt ansprechen?

Gruß 

Fogyhouse

Nachtrag:

ich habe mal mit 

{$emotion|@var_dump}

die Arrays für $emotion ausgelesen:

array(5) {
["id"]=>
string(1) "4"
["devices"]=>
string(9) "0,1,2,3,4"
["showListing"]=>
string(1) "0"
["fullscreen"]=>
string(1) "0"
["devicesArray"]=>
array(5) {
[0]=>
string(1) "0"
[1]=>
string(1) "1"
[2]=>
string(1) "2"
[3]=>
string(1) "3"
[4]=>
string(1) "4"
}
}

anscheinend existiert für $emotion kein array attribute.

Gruß 

Fogyhouse

Hi,

ich habe die Lösung gefunden.

Man darf den Aufruf

{$emotion.attribute.mein_attribut} 

nicht in das umschlißende Element einfügen wie zB.  home/index.tpl

Hier Meine Lösung:


{extends file="parent:widgets/emotion/index.tpl"}
            
{block name="widgets/emotion/index/attributes"}data-emotionattr="{$emotion.attribute.mein_attribut}"{/block}

jetzt kann ich mit einem Attributselector die Einkaufswelt ansprechen.

Gruß

Fogyhouse

*Schubs*
Hat jemand eine Idee, wie ich die Attribute in die campaign/index.tpl bekomme? Leider sind sie - sie oben - dort nicht den emotions zugewiesen.
Ich würde aber gerne über ein Attribut steuern, ob ich den Header oder die Mainnavigation ausblende - und da hilft mir das widget nicht 
Muss ich jetzt etwa über ein Plugin die Attribute noch in die emotions “impfen”?

*push*

Ich schließe mich hier mal sonic an: Wie kann ich im Template auf eigene Freitextfelder für Einaufswelten zugreifen?

THX,
devnullroot

$emotion.attribute.core.mein_attribut???