PrestaShop ermöglicht es Entwicklern mit seinem leistungsstarken und flexiblen Framework, verschiedene Aspekte der Plattform an spezifische Geschäftsanforderungen anzupassen. Eine solche Anpassung ist das Hinzufügen einer benutzerdefinierten Registerkarte auf der Backoffice-Produktseite. In diesem Blog werden wir den Prozess Schritt für Schritt durchgehen, um dies zu erreichen, indem wir ein Beispielmodul namens kbcustommodule erstellen.
Wir können die benutzerdefinierte Registerkarte auf der Backoffice-Produktseite auf zwei Arten erstellen:
- Verwenden von Symfony-Komponenten.
- Verwenden des Hooks „displayAdminProductsExtra“
Methode 1:
Dieses Tutorial gilt für PrestaShop Version 8.1 und höher und verwendet Symfony-Komponenten.
Schritt 1: Erstellen Sie Ihr Modul
kbcustommodule/ |– composer.json |– config/ | |– services.yml |– src/ | |– Form/ | | |– Modifier/ | | | |– ProductFormModifier.php | | |– Type/ | | | |– CustomTabType.php |– kbcustommodule.php Erstellen Sie zunächst einen Ordner mit dem Namen kbcustommodule im Verzeichnis „Module“ Ihrer PrestaShop-Installation. Erstellen Sie in diesem Ordner die Datei kbcustommodule.php, die die Hauptklasse für Ihr Modul enthält. Die Modulklasse initialisiert das Modul und registriert die erforderlichen Hooks. Hier ist ein Beispiel für die Datei kdcustommodule.php:
Führen Sie den Befehl „Composer dump-autoload“ im Stammverzeichnis Ihres Moduls aus, um das automatische Laden des Namespaces zu aktivieren.
Schritt 2: Dienste definieren
Erstellen Sie eine services.yml-Datei im Konfigurationsverzeichnis Ihres Moduls (kbcustommodule/config/services.yml). Diese Datei definiert die für die Formularanpassung erforderlichen Symfony-Dienste.
Schritt 3: Erstellen Sie den benutzerdefinierten Registerkartenformulartyp
Erstellen Sie eine CustomTabType-Klasse im Ordner src/Form/Type Ihres Moduls. Diese Klasse definiert die Felder, die auf der benutzerdefinierten Registerkarte angezeigt werden.
Schritt 4: Erstellen der ProductFormModifier-Klasse
Die Klasse „ProductFormModifier“ definiert, wie die benutzerdefinierte Registerkarte in das vorhandene Produktformular integriert wird.
Letzter Schritt: Installieren und Testen
- Installieren Sie das Modul über das Backoffice oder platzieren Sie es manuell im Modulverzeichnis und aktivieren Sie es.
- Navigieren Sie zur Backoffice-Produktseite. Sie sollten eine neue Registerkarte mit der Bezeichnung „Benutzerdefinierte Registerkarte“ und einem Feld mit der Bezeichnung „Benutzerdefiniertes Feld“ sehen.
- Testen Sie die Funktionalität, indem Sie dem benutzerdefinierten Feld Daten hinzufügen und sicherstellen, dass sie korrekt gespeichert werden.
Nach erfolgreicher Installation des obigen Moduls erhalten Sie das folgende Ergebnis.
Integrieren Sie Google Tag Manager mit Prestashop
Methode 2:
Mit dem Hook displayAdminProductsExtra können Sie der Produktbearbeitungsseite im Back Office benutzerdefinierte Inhalte oder Registerkarten hinzufügen. Diese Methode vermeidet die Komplexität der Definition von Symfony-Diensten und ist einfacher für Entwickler, die mit Symfony nicht vertraut sind.
Schritt 1: Erstellen des Moduls
Beginnen Sie mit der Erstellung einer grundlegenden Modulstruktur. Beispiel: Kbcustommodule/ |– config/ |– translations/ |– views/ | |– templates/ | |– admin/ | |– products/ | |– custom_tab.tpl |– Kbcustommodule.php
Schritt 2: Definieren Sie die Modulklasse
Definieren Sie in der Datei Kbcustommodule.php Ihr Modul und registrieren Sie den Hook displayAdminProductsExtra.
Schritt 3: Erstellen der Vorlagendatei
Definieren Sie in der Datei views/templates/admin/products/custom_tab.tpl das HTML und den Inhalt für Ihre benutzerdefinierte Registerkarte.
Schritt 4: Daten speichern
Um die benutzerdefinierten Daten zu speichern, verwenden Sie den actionAdminControllerSetMedia-Hook zusammen mit JavaScript oder PHP. Alternativ können Sie den actionProductUpdate-Hook in PHP verwenden. Beispiel in Kbcustommodule.php:
Schritt 5: Das Feld zur Datenbank hinzufügen
Ändern Sie die Datenbank, um Ihre benutzerdefinierten Daten zu speichern. Beispiel: ————————————————————————— ALTER TABLE ps_product ADD custom_field TEXT NULL; ———————————————————————— Nach erfolgreicher Installation des obigen Moduls erhalten Sie das folgende Ergebnis. Für weitere Unterstützung können Sie sich gerne an uns wenden oder unten einen Kommentar hinterlassen. Oder Sie können uns auch unter erreichen Knowband-Helpdesk.
