Wie erstellt man Freitextfelder im Plugin?

Wie erstellt man Freitextfelder im Plugin?

Ewald Gering 19. Oktober 2018 4

Freitextfelder sind dir sicherlich schon bekannt und eventuell hast du auch schon mit diesen gearbeitet. In diesem Beitrag wollen wir dir eine Methode beibringen um in einem Plugin ein Freitextfeld zu erstellen.

Wie du später im Frontend das Shopware Freitextfeld ausgeben lassen kannst erfährst du in diesem Beitrag.

(Lesedauer ~5 Minuten)

Die Pluginerstellung

Zuerst erstellen wir einen Ordner der den gleichen Namen wie unsere Pluginklasse haben soll. Wir nehmen für dieses Beispiel 'EmzAttribute'. 

Weitere Infos zur Pluginerstellung erfährt ihr in dieser Blogreihe.

Also legen wir in unserem Shopware Verzeichnis unter 'custom/plugins' den Ordner 'EmzAttribute' und in diesem die 'EmzAttribute.php' Datei an.

Plugin Informationen

Alle allgemeinen Informationen zu unserem Plugin werden in der plugin.xml Datei gespeichert. Diese muss im Hauptverzeichnis unseres Plugins stehen.


Unter Label wird der Name des Plugins (8mylez Attribute) für den Plugin Manager angegeben und die Version. Als erste Release Version verwenden wir die 1.0.0.

Anschliessend kommen Copyright, Lizenzmodell und Author Daten hinzu sowie eine Verlinkung zu unserer Webseite.

In dieser Datei finden wir auch den Changelog welcher immer Informationen zu der jeweiligen Versionierung enthalten soll damit jeder Entwickler der in unser Plugin schaut soweit weiß was in jener Version geändert wurde.

Pluginbild

Wenn wir schon bei dem hinterlegen der Daten sind können wir ja auch gleich ein schönes Pluginbild einsetzen. Das Bild muss den schlichten Namen 'plugin.png' haben und auch im Hauptverzeichnis unseres Plugins liegen.

Die Klasse Plugin von der wir in unserer PHP Datei ableiten erkennt diese Dateien und verarbeitet diese automatisch.

Install, Uninstall und Build Funktionen

Kommen wir zurück zum Coden in unsere 'EmzAttribute.php'. Nun werden die Grundlegenden Funktionen wie die Installationsmethode, Deinstallationsmethode und Buildmethode erstellt.

Bei diesen Funktionen rufen wir lediglich die Parent Funktionen auf welche in der Plugin.php von Shopware hinterlegt sind.

Attribut beim Installieren erstellen

Jetzt kommen wir endlich zu dem eigentlichem Thema und zwar das Attribut.

Wir erweitern die Installationsmethode und holen uns über den Container den CRUD Service der Shopware Attribute. CRUD steht für Create, Read, Update und Delete. Das sind auch die Möglichkeiten die wir mit diesem Service haben. Mehr Infos dazu findest du hier: Shopware Attribute System 

Was bedeuten die Parameter welche wir übergeben?
- 's_articles_attributes' steht für die Tabelle in welcher das Attribute erstellt werden soll

- 'emz_fsk' ist der Name des Attributes mit unserem Entwicklerkürzel ('emz')

- 'boolean' steht für eine Checkbox

- 'label' wäre der Titel des Attributes welcher z.B. im Backend angezeigt werden kann

- 'displayInBackend' hier kann man angeben ob das Attribut im Backend bei z.B. den Artikeln sichtbar sein soll oder nicht

- 'translateable' lässt uns die Inhalte des Attributes später bei den Artikeln übersetzen

- 'position' dient der Anzeige im Backend wenn dieses Attribut sichtbar ist. 1 steht für ganz oben

- 'custom' erlaubt eine Anpassung des Attributes im Freitextfeld-Manager über das Backend

Damit ist unser Freitextfeld fertig konfiguriert. Nun müssen wir die Attribute Models neu generieren damit diese auch im Template zur Verfügung stehen.

Mit der Funktion 'scheduleClearCache' lasse ich nach dem installieren noch den Cache leeren.

Attribut beim Deinstallieren entfernen


Wenn für das Plugin keine Verwendung mehr besteht wird es deinstalliert. Natürlich ist das Attribut damit nicht mehr Notwendig. Daher lassen wir dieses bei der Deinstallation aus dem Shop löschen um keine unnötigen Sachen zu hinterlassen welche auch zu Fehlern führen können.

Hierzu nutzen wir wieder den CRUD-Service und logischerweise die delete Funktion von diesem. Nun braucht man aber nur das nötigste anzugeben wie den Tabellennamen und den Attributnamen welcher gelöscht werden soll.

Zu guter letzt lassen wir nochmal die Models neu generieren damit auch wirklich nichts mehr im System liegen bleibt.

4 Kommentare

Was denkst du?

Beliebt

Was du über die Shopware 5 Theme Struktur wissen musst und wie du ein eigenes Template erstellst
Social Media Icon mit Link im Footer
Shopware Theme: Eigenes Listing Layout erstellen
Logo Größe mit Less für Shopware 5 anpassen
Die größten Fehler bei der Entwicklung eines Shopware 5 Themes

Sicher Dir die besten Shopware 6
Tipps & Tricks

Trag Dich ein und Du erhältst unser Shopware 6 Whitepaper kostenlos!
Trag dich für unseren Newsletter an, im Anschluss erhältst Du das Whitepaper. 

Mit dem Abschicken Deiner Daten akzeptierst Du unsere Datenschutzerklärung.

Entdecke unsere ebooks

Unsere Standorte

Zentrale 

Technologiepark 23
33100 Paderborn


Leipzig
Bernhardstraße 34
04315 Leipzig

Kontakt

Über 8mylez

✓ 38 Mitarbeiter

✓ Shopware Gold Partner

✓ 40.000+ Plugin Downloads

✓ 160+ betreute Shops

✓ Full-Service Shopware Agentur

✓ 70 Shopware Videos auf Youtube

✓ Alle Shopware Zertifizierungen

Social


Unsere Partner
© 2023 by 8mylez GmbH //  Impressum + Datenschutz