seit ein paar Tagen befasse ich mich mit Shopware 5.x.x und bin nun bei der Plugin Entwicklung. Das Beispielplugin SloganOfTheDay funktioniert auch soweit. Allerdings wollte ich den Anzeigeort ändern und ich finde nicht heraus, wie ich das hinbekomme.
Die Anzeige ist standardmäßig auf der indexseite -index.tpl. Ich möchte die Anzeige aber auf eine neue Einkaufswelt beschränken.
Über Tipps oder Lösungsvorschläge wäre ich sehr dankbar
Versuche nun herauszufinden, was mit der Antwort gemeint ist aber das ist gar nicht so einfach…
Ich habe ein neues Template erstellt wo ich die Navigation abgeändert habe, soll die Abfrage in ideses Template oder ist das Template unter “Bare” gemeint?
Auch wüsste ich nun nicht in welchem Zusammenhang Freitextfelder zu dem Plugin stehen. Freitextfelder sind doch in Artikeln und Artikel habe ich keine. Nur eine Einkaufswelt welche ein wenig Inhalt beinhaltet.
Es scheint ja so zu sein, dass das Plugin in der header.tpl im Block Frontend_index_logo eingebunden wird und die Einkaufswelten zu dem Block frontend_index_breadcrumb gehören.
Sofern ich das nun richtig interpretiere was mir hier die index.tpl anzeigt.
PS: habe in der index.tpl des Plugins den Block auf “frontend_index_breadcrumb” geändert. Ich hätte gedacht, dass das Plugin sprich der Slogan nun auf allen Einkaufswelten angezeigt wird. Leider war dem nicht so
Ich empfehle Dir die Doku zu Shopware, da werden alle Fragen erklärt, z.B. das man nie im BARE etwas ändert. Mein Fehler war das “Theme” - das Plugin bringt ja eine eigen Template-Datei mit, welches das Theme erweitert. Dort also den Bereich kapseln.
Zweitens stehen “Freitextfelder” auch in anderen Bereichen zur Verfügung, z.B. Kategorien - mindestens “6” bis SW 5.1.x und mehr ab 5.2.x
Da eine “Einkaufswelt” einer “Kategorie” zugewiesen ist, könnte man also ein Freitext zu dieser Kategorie mit einem Wert belegen, und in der Template-Datei von diesem Plugin auf dieses Freitext abfragen. Das wäre der einfache Weg über das Theme/Template.
Mit mehr Aufwand kann man auch im Plugin den Controller, die Action und dann die Kategorie-ID abfragen, und damit entscheiden, ob etwas angezeigt wird, oder nicht, wäre mir aber zu umständlich
Ok das habe ich soweit verstanden. Den Tipp ein Freitextfeld zur Pluginausgabe zu nutzen findet man aber nicht in der Doku ^^
Wenn ich nun den Wert abfrage, in welchem Block muss denn die Ausgabe stattfinden? Teste gerade verschiedene Blöcke durch aber der richtige war noch nicht dabei.
Ich hab jetzt gerade keine Zeit, um mir das Beispiel-Plugin anzugucken.
Es hängt davon ab, ob es die Startseite ist, oder die Einkaufswelt einer betimmten Kategorie.
Als Basis für eine Kategorie wäre zunächst mal die frontend/listing/index.tpl im BARE anzugucken. Die erweitert die frontend/index/index.tpl - das wäre dann die nächste Anlaufstelle.
Aus dem Plugin heraus kannst Du ja nun frei Blöcke erweitern/überschreiben. Der passende ist der, wo Du es letztlich in der Ausgabe haben möchtest
Innerhalb des Einkaufsweltenbereichs werden die Inhalte dann eh mit Javascript über widgets nachgeladen, Das wäre dann aber ein ganz neue Baustelle.
Bisher konnte ich den richtigen Block noch nicht ausfindig machen. Was mir aber aufällt ist, dass sehr häufig nach &hasEmotion abgefragt wird. In der Doku finde ich nichts entsprechendes was der Wert überhaupt zu bedeuten hat…?
Das Freitextfeld habe ich nun in der ensprechenden Kategorie hinterlegt. Allerdings kann ich ja erst abfragen, wenn ich den richtigen Block finde -_-
Bisher konnte ich den richtigen Block noch nicht ausfindig machen. Was mir aber aufällt ist, dass sehr häufig nach &hasEmotion abgefragt wird. In der Doku finde ich nichts entsprechendes was der Wert überhaupt zu bedeuten hat…?
Das Freitextfeld habe ich nun in der ensprechenden Kategorie hinterlegt. Allerdings kann ich ja erst abfragen, wenn ich den richtigen Block finde -_-
und der erwartest jetzt wirklich, das eine Anleitung von Shopware 4 noch in Shopware 5 gültig ist? Die richtige Anleitung für ein Beispielplugin wäre wohl eher diese hier: Plugin quick Startup Guide . hasEmotion steht eigentlich nur für die Prüfung, ob es sich um ein Kategorie - Listing oder eine Einkaufswelt handelt.
Da musst Du oben im Bereich „developers“ mal auf die Suche gehen. Das Beispiel bezieht sich auf das alte Template-System von SW4 - das hat sich ja grundlegend mit SW5 und den Themes geändert. Unter „developers“ gibt es irgendwo auch eine Anleitung, was in Plugins angepasst werden muss. Das Beispiel so kann nicht ohne Anpassung mit SW5 funktionieren. Also grob „Update von SW4 auf SW5“ im Designer-Bereich *tippe ich jetzt mal*
„hasEmotion“ ist schlicht eine Template-Variable die gesetzt wird, wenn eine Einkaufswelt „Emotion“ aufgerufen wurde.
Hatte irgendwo gelesen, dass die Plugins weiterhin funktionieren und im Beispiel von SloganOfTheDay ist das ja auch der Fall. Zumindest wenn es im Header ausgegeben wird.
Also müsste ich meine Abfrage nach der Freitextfeld ID nach dem hasEmotion einbringen…
Ich werde nun mal ein aktuelles Plugin Beispiel für doe 5. Version integrieren und es nochmal mit unterschiedlichen Blöcken probieren. Irgendwann wird schon eine Anzeige kommen ^^
Wobei es seltsam ist das anscheinend nirgendwo dokumentiert ist, wo der Block für den Inhalt einer Kategorie ist.
zu funktionieren. Also habe ich eine neue tpl Datei in meinem eigenen Theme erstellt, den Inhalt der gefundenen tpl Datei kopiert und um einen eigenen Block erweitert.
In dem Plugin habe ich den Block entsprechend umbenannt:
{ **block** name= **"Test"** prepend}
Der Inhalt wird nun auch richtig ausgegeben. Allerdings enthält die Standardseite noch einen Filter und eine Sortierung. Den Filter kann ich deaktivieren… die Sortierung nur nicht -_-