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

Hallo allerseits,

ich habe für die Einkaufswelten ein Freitextfeld angelegt, um den Einkaufswelten individuelle CSS-Klassen zuordnen zu können. Soweit ich verstanden habe, muss ich den ‘shopware_attribute.data_loader’-Service aufrufen, um die Attribute für ein Template verfügbar zu machen mit  so etwas wie: 

$attributes = $this->get('shopware_attribute.data_loader')->load('s_emotion_attributes', 'id');

Muss ich dafür ein Plugin anlegen oder kann man einen Service auch von einer anderen Stelle sinnvoll aufrufen? Über jede Hilfe wäre ich sehr dankbar und hoffe, dass ich mich beizeiten mal revanchieren kann.

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.

 

1 „Gefällt mir“

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!

Hallo,

ich würde dieses Thema gerne nocheinmal aufgreiffen.

Ich habe mir ein Freitextfeld im Einkaufswelten Designer erstellt - Ziehl ist weitere css Klassen zu ergänzen - zB: (div class = content–emotions customclass)

Unter Freitextfelder-Verwalten  habe ich unter Einkaufswelten (s_emotion_attributes) eine Neue hinzugefügt > ew_class

Wenn ich jetzt in der /frontend/campain/index.tpl folgendes - wie oben beschrieben - ergänze

div class="content--emotions {$emotion.attribute.ew_class}"

erhalte ich erstmal kein Resultat.

Vielen Dank!

 

hi kallahan, sorry kann deinen Kommentar leider nicht lesen. code nehme ich an. lg

Sorry, ich dachte du hättest die Curly Brackets vergessen. Aber jetzt sind sie da … Wenn mir noch was anderes einfällt, melde ich mich.

Mein Fehler, hatte vergessen die Zeile in einen Code Block zu schreiben. Aber vielen Dank erstmal. 

Hi knc612,

versuche gerade das gleiche, in welchen Code Block hast Du die Zeile genau geschrieben?

Danke schon mal

Mike

Hi Mike,

der Code Block hat sich nur auf die Funktion in diesem Editor “Codeschnipsel einfügen” bezogen.

Ich konnte das Problem leider noch nicht lösen.

LG Chris

Ok, danke. Ich versuchs weiter und schreib hier wenn ichs geschafft habe.

LG Mike

Hallo,

vielleicht hilft euch ja auch dieses Plugin weiter: http://store.shopware.com/scha156998421374/hinzufuegen-eines-zusaetzlichen-feldes-fuer-eigene-css-klassen-fuer-eine-einkaufswelt.html .

Beste Grüße

Sebastian

Hi knc612,

frontend/bare/frontend/home/index.tpl , die kopierst Du Dir in Dein Theme und ergänzt in Zeile 54 class=“emotion–wrapper emotion–id-{$emotion.id}” , jetzt bekommt der emotion wrapper eine eigene ID, die du per CSS ansprechen kannst.

Das gleiche kannst Du auch noch eine Ebene tiefer in der section machen. frontend/bare/frontend/widgets/emotion/index.tpl . Zeile 30 sollte dann so aussehen: class=“emotion–container emotion–column-{$emotionCols} emotion–mode-{$emotionMode} emotion–{$emotion@index} emotion–id-{$emotion.id}”

Greets Mike

 

 

Hi Mike,

danke für die Info, diese Variante habe ich schon in Verwendung.

Ich wollte eine weitere Klasse durch die Eingabe in einem Freitextfeld hinzufügen. Eigentlich - auf den ersten Blick - genau was das empfohlene Plugin von Sebastian macht.

Ich werde es gleich mal testen.

Danke euch für die Tipps!

Hallo Sebastian, leider löst dieses Plugin einen “503 service unavailable” Fehler aus. Musste es in der Datenbank wieder deaktivieren um das Backend wieder nutzen zu können. Vielleicht gibt es Support seitig eine Lösung, hätte dieses Plugin gerne im Einsatz.

LG

@knc612 schrieb:

Hallo Sebastian, leider löst dieses Plugin einen „503 service unavailable“ Fehler aus. Musste es in der Datenbank wieder deaktivieren um das Backend wieder nutzen zu können. Vielleicht gibt es Support seitig eine Lösung, hätte dieses Plugin gerne im Einsatz.

LG

Hallo,

dazu solltest du aber auch einmal den Support dahingehend kontaktieren. Ich gehe aber davon aus, das nicht das Plugin, sondern dein Hostingpaket den 503 - Serverfehler (zu wenig Arbeitsspeicher des Hostingpakets, zu geringe Skriptausführungszeit des Servers) verursacht (in 99% der Fälle ist das so), da das Plugin ja schon bei einer Vielzahl Onlineshops problemlos im Einsatz ist. Ergänz am besten einmal die Shopware Debug Parameter in deiner config.php - Datei, dann wirst du es sehen, das dein Hostingpaket der „Übeltäter“ sein wird: Debugging Shopware . Alternativ gibt es ja zu dem Plugin auch eine Anleitung, wo „Problembehebungen“ aufgelistet sind.

Beste Grüße

Sebastian

Hallo Sebastian, vielen Dank für den Hinweis. Dachte mit dem empfohlenen Hosting bei Aixpro 30GB SSD nginx sind wir für das Erste safe. Werde aber auf Fehler suche gehen und gebe danach Feedback.

LG Chris

@knc612 schrieb:

Hallo Sebastian, vielen Dank für den Hinweis. Dachte mit dem empfohlenen Hosting bei Aixpro 30GB SSD nginx sind wir für das Erste safe. Werde aber auf Fehler suche gehen und gebe danach Feedback.

LG Chris

Hallo,

ja gut, trotzdem kann ja aber beispielsweise in deiner .htaccess nur eine Maximal - Skriptausführungszeit von 30 Sekunden stehen, und wenn diese halt in diesem Moment überschritten wurde (wenn du beispielsweise seeeeehr viele Frontend Plugins mit eigenen Artikel - Freitextfeldern im Einsatz hast) und dadurch der Fehler verursacht wird, kann dann aber das Plugin nichts dafür (ist ja eine Server - Fehlermeldung) und das Hostingpaket in dem Sinne auch nicht (da die Ausführungszeit ja manuell in der .htaccess gesetzt wurde). Ohne die entsprechende Fehlermeldung hinter der 503 - Meldung kann man aber nur raten.

Schlussendlich setzt Shopware bzw. du in der .htaccess ja erstmal Standardwerte - diese können aber auch einmal „zu wenig sein“. Hast du beispielsweise in der .htaccess einen Arbeitsspeicher von 512MB stehen, brauchst aber gerade 600MB, dein Hostingpaket hätte 768MB, würde trotzdem eine Fehlermeldung kommen, da du dem System über die .htaccess ja sagst, es hat nur 512MB.

Wie gesagt, das Plugin ist ja schon vielfach im Einsatz, an dem kann es dann eigentlich nicht liegen.

Beste Grüße

Sebastian

Hallo Sebastian, hab die config.php ergänzt und bekomme nun den Fehlercode ausgespielt.

Ich habe im Moment am Dev Shop nur wenige der Standard SW5 Prof. Plus Plugins installiert.

Werde den Fehler mal an die Agentur weiter leiten, da es mir hier an ausrechend Kenntnissen fehlt.

FYI:

Fatal error : Uncaught exception ‘Enlight_Exception’ with message ‘Method “Shopware_Plugins_Backend_scha1AdditionalEmotionFields_Bootstrap::versionCompare” not found failure’ in /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine/Shopware/Plugins/Community/Backend/scha1AdditionalEmotionFields/Bootstrap.php:269 Stack trace: #0 /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine/Shopware/Plugins/Community/Backend/scha1AdditionalEmotionFields/Bootstrap.php(269): Enlight_Class->__call(‘versionCompare’, Array) #1 /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine/Shopware/Plugins/Community/Backend/scha1AdditionalEmotionFields/Bootstrap.php(269): Shopware_Plugins_Backend_scha1AdditionalEmotionFields_Bootstrap->versionCompare(‘5.2.0’, ‘>=’) #2 /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine/Library/Enlight/Event/Handler/Plugin.php(149): Shopware_Plugins_Backend_scha1AdditionalEmotionFields_Bootstrap->onPostDispatchFrontend(Object(Enlight_Controller_ActionEventArgs)) #3 /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine in  /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine/Shopware/Plugins/Community/Backend/scha1AdditionalEmotionFields/Bootstrap.php  on line  269
503 Service Unavailable

@knc612 schrieb:

Hallo Sebastian, hab die config.php ergänzt und bekomme nun den Fehlercode ausgespielt.

Ich habe im moment am Dev Shop nur wenige der Standard SW5 Prof. Plus Plugins installiert.

Werde den Fehler mal an die Agentur weiter leiten, da es mir hier an ausrechend Kenntnis fehlt.

FYI:

Fatal error : Uncaught exception ‚Enlight_Exception‘ with message ‚Method „Shopware_Plugins_Backend_scha1AdditionalEmotionFields_Bootstrap::versionCompare“ not found failure‘ in /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine/Shopware/Plugins/Community/Backend/scha1AdditionalEmotionFields/Bootstrap.php:269 Stack trace: #0 /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine/Shopware/Plugins/Community/Backend/scha1AdditionalEmotionFields/Bootstrap.php(269): Enlight_Class->__call(‚versionCompare‘, Array) #1 /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine/Shopware/Plugins/Community/Backend/scha1AdditionalEmotionFields/Bootstrap.php(269): Shopware_Plugins_Backend_scha1AdditionalEmotionFields_Bootstrap->versionCompare(‚5.2.0‘, ‚>=‘) #2 /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine/Library/Enlight/Event/Handler/Plugin.php(149): Shopware_Plugins_Backend_scha1AdditionalEmotionFields_Bootstrap->onPostDispatchFrontend(Object(Enlight_Controller_ActionEventArgs)) #3 /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine in  /var/www/vhosts/petfood.aix-cloud.de/shop-dev/engine/Shopware/Plugins/Community/Backend/scha1AdditionalEmotionFields/Bootstrap.php  on line  269
503 Service Unavailable

Hallo,

hast du auch die Version 2.0.1 des Plugins im Einsatz, die diesen Fehler behebt?

Beste Grüße

Sebastian

Hallo Sebastian, ja seit ca. 30 Minuten :slight_smile:

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