How to Modul­ent­wicklung [Teil 4]

Screenshot Fragen & Antworten Menüpunkt OXID eShop Admin
Veröffentlichungsdatum: 08-03-2015 Autor: Tim Bischoff OXIDforge.org Modul­ent­wicklung

Wie definiere ich eine eigene Datenbanktabelle, designe die Admin Templates und hinterlege die Funktionalität?

Eigene Datenbanktabellen

Für unser Modul haben wir bereits ein eigenes Datenbanktabellenfeld in der Artikeltabelle angelegt.

Wir benötigen nun noch eine eigene Datenbanktabelle für die Speicherung der Fragen und Antworten und eine Verknüpfungstabelle für die Zuordnung.

Unsere eigenen Datenbanktabellen

  • bisquestionanswer
  • oxobject2bisquestionanswer

Damit diese Datenbankanpassungen bei Modulaktivierung vorgenommen werden – überarbeiten wir unsere Eventklasse bisQuestionAnswerEvents des Moduls.

Um sicherzustellen, dass bei Reaktivierung des Moduls keine Fehler auftreten ergänzen wir eine Prüfung ob unser Datenbanktabellenfeld bisinneedofexplanation bereits existiert und erzeugen unsere eigenen Datenbanktabellen nur wenn diese nicht bereits existieren.

Admin Templates

Ein Admin Template im Detail zu verstehen ist nicht einfach. Bei der Entwicklung orientiere ich mich an einen bestehenden Template und passe dieses an.

Es folgen die überarbeiteten Admin Views.

  • View für OXID Admin Listenansicht
    list_of_questions_list.tpl
  • View für OXID Admin Detailansicht
    list_of_questions_main.tpl

Ich habe 4 neue Sprachkonstanten in den Templates definiert. Die 4 Sprachkonstanten müssen in der Sprachdatei ergänzt werden.

Eine Detailaufschlüsselung der Template Dateien würde diesen Artikel sprengen. Zum besseren Verständnis der Admin Templates plane ich kleinere Vorlagen und Hilfestellungen zu veröffentlichen.

Funktionalität

Für die Funktionalität müssen wir ein Model anlegen – da wir eigene Datenbanktabellen verwenden.

Wir legen ein eigenes neues Model an. Im Model machen wir den Klassennamen und Datenbanktabellennamen bekannt.

Nachdem wir unser Model angelegt haben, müssen wir dieses in der metadata.php bekannt machen.

Im Admin Controller der Liste bisQuestionAnswer_ListofQuestions_List machen wir unser neues Model bekannt und legen eine eigene Select Abfrage an.

Die eigene Select Abfrage ist notwendig da wir gerne die Artikelnummer in unserer Listenansicht mit anzeigen möchten.

Damit in unserem Stamm Tab die Daten des ausgewählten Listeneintrages erscheinen und bearbeitbar sind müssen wir unser Controller für OXID Admin Detailansicht anpassen.

Fortsetzung

Im 5. und letzten Teil der Modul­ent­wicklung geht es weiter mit:
Wie integriere ich meinen neuen Tab “Fragen & Antworten” auf der Produktdetailseite im Frontend?

Key Learnings

  • Eigene Datenbanktabellen angelegt
    • Fragen und Antworten Tabelle
    • Verknüpfungstabelle
  • Groben Aufbau der Admin Listen- und Detailansicht kennen gelernt
  • Zusammenspiel der Admin Listen- und Detailansicht
  • Eigenes Model definieren
  • Model Verwendung innerhalb der Listen- und Detailcontroller