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?

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.

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
Logo Größe mit Less für Shopware 5 anpassen
Shopware Theme: Eigenes Listing Layout erstellen
Die größten Fehler bei der Entwicklung eines Shopware 5 Themes
Staging Umgebung – Was ist das und warum brauchst du eine?
Plugin: Einkaufswelt Element Kategorie-Teaser mit eleganten Mouseover Effekten
Plugin Themes überschreiben und anpassen
Individuelle 404 Fehlerseite mit Shopware Einkaufswelten erstellen
4 Gründe warum du Shopware 5 lokal mit MAMP installieren solltest und wie du das anstellst

Bessere plätze bei google?

Sicher Dir unser neues Shopware SEO 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

Über 8mylez

✓ 18 Mitarbeiter

✓ Shopware Solution Partner

✓ 22.000+ Plugin Downloads

✓ 160+ betreute Shops

✓ Full-Service Shopware Agentur

✓ 70 Shopware Videos auf Youtube

✓ Alle Shopware Zertifizierungen

© 2020 by 8mylez GmbH //  Impressum + Datenschutz