Wordpress Plugin Entwickeln

Entwicklung eines Startup Verzeichnis Plug-In für WordPress – Teil 1

Dies ist der erste Teil von vier Teilen. Falls Du Dich nur für einen bestimmten Bereich der Entwicklung eines WordPress Plug-Ins interessierst habe ich Dir hier die Möglichkeit gegeben direkt zu dem gewünschten Teil dieser Blog-Artikelreihe zu springen.

  • Teil 1: Der Start des Projektes (Anforderungen, Datenbank und Grundlagen)
  • Teil 2: Von der Idee zum fertigen Frontend-Code (Wireframes, Design, Frontend-Entwicklung, Iteration)
  • Teil 3: Implementierung der Funktionen des Frontend-Codes (Programmierung, Datenbankanbindung, Testing und Code Refactoring)
  • Teil 4: Installation auf dem WordPress-Blog und Funktionstests

Teil 1: Der Start des Projektes

In dem heutigen Blog-Artikel geht es um ein sehr technisches Thema. Für eine neue Startup-Plattform in der Metropolregion Braunschweig soll ein Plug-In für das CMS WordPress entwickelt werden, welches die verschiedenen Startups in einer anschaulichen Liste darstellt und diese durchsuchbar macht. Vorlage für das Plug-In soll das Anbieterverzeichnis von dem Print- und Onlinemagazin t3n aus Hannover sein. Was sich nach einem kleinen Projekt anhört ist aber gar nicht mal so klein. Aus diesem Grund ist dieser Blog-Artikel auch um einiges länger als die bisher erschienen Artikel und auf verschiedene Seiten aufgeteilt.

t3n Anbieterverzeichnis - Vorlage
t3n Anbieterverzeichnis - Vorlage

Quelle: http://t3n.de/firmen/

Die gewünschten Funktionen

Das WordPress Plug-In sollte eine Vielzahl an Funktionen implementieren und zudem ein ansprechendes Design haben.

Zu den Funktionen gehörten:

  • Anzeige der Unternehmen in einer Listenansicht
  • Anzeigen der Unternehmen einer Kategorie in einer Listenansicht
  • Detail-Ansicht eines Unternehmens auf einer eigenständigen Seite
  • Durchsuchen des Startup-Verzeichnis nach einem Suchbegriff über eine Suchmaske
  • Eintragen von Unternehmen in das Startup-Verzeichnis
    • Standardtexte eingeben
    • Headerbild hochladen
    • Logo Hochladen
    • Tags auswählen
    • Referenzen angeben
    • Services oder Produkte angeben
    • Video einbinden
    • Bilder einbinden

Technisch gesehen handelt es sich dabei um eine „einfache“ Liste, welche mit Hilfe von Parameter durchsuchbar gemacht werden soll. Aufwendig ist vor allem die Verknüpfung der einzelnen Daten und eine funktionierende Struktur daraus zu entwickeln.

Die Datenstruktur

Nach der Aufnahmen der Anforderungen ist das zentrale Herzstück einer jeden Datenbank-basierten Anwendung die Entwicklung der Datenstruktur. Alleine dafür kann man einige Zeit verwenden, um alle Anforderungen abzudecken und spätere Erweiterungen möglichst einfach implementieren zu können. Dazu ist es wichtig sich im Vorfeld Gedanken zu machen, wie sich eine solche Anwendung weiter entwickeln kann. Zentrale Frage ist bei der Gestaltung der Datenbankstruktur immer, welche Attribute benötigt werden, um die verlangten Funktionen und ggf. zukünftige Funktionen darstellen zu können. Auch wenn es sich auf den ersten Blick um eine kleine Anwendung handelt, ist der Aufwand diese zu durchdenken und anschließend auch zu entwickeln deutlich größer als die meisten Menschen annehmen. Aus diesem Grund ist hochwertige Software die individuell für den Kunden entwickelt wird auch so teuer.

Ich habe Dir in dieser Übersicht die genutzten Tabellen und Attribute übersichtlich aufgelistet, damit Du den Entwicklungsprozess später nachvollziehen kannst. Falls beim ersten Überfliegen der Ansicht noch einige Fragen bei Dir vorhanden sind, solltest Du erst mal weiter lesen, um zu verstehen, weshalb genau diese Attribute alle vorhanden sein müssen.

[lvca_accordion][lvca_panel panel_title=“Companies“]
  • id [int]
  • name [string]
  • type [string]
  • owner [string]
  • slogan [string]
  • category [string]
  • streetNameAndNumber [string]
  • zipCode [int]
  • city [string]
  • lat [decimal(10,8)]
  • longitude [decimal(11,8)]
  • url [string]
  • phone [string]
  • mail [string]
  • fundingDate [date]
  • profileImageFileUrl [string]
  • headerImageFileUrl [string]
  • videoURL [string]
  • description [text]
  • premium [boolean]
  • approved [boolean]
  • createdAt [date]
  • updatedAt [date]
[/lvca_panel][lvca_panel panel_title=“Tags“]
  • id [int]
  • name [string]
  • createdAt [date]
  • updatedAt [date]
[/lvca_panel][lvca_panel panel_title=“Services“]
  • id [int]
  • name [string]
  • createdAt [date]
  • updatedAt [date]
[/lvca_panel][lvca_panel panel_title=“References“]
  • id [int]
  • companyId [int]
  • customerName [string]
  • email [string]
  • createdAt [date]
  • updatedAt [date]
[/lvca_panel][lvca_panel panel_title=“Images“]
  • id [int]
  • name [string]
  • imageFileUrl [string]
  • createdAt [date]
  • updatedAt [date]
[/lvca_panel][lvca_panel panel_title=“CompanyTags“]
  • id [int]
  • companyId [int]
  • TagId [int]
  • createdAt [date]
  • updatedAt [date]
[/lvca_panel][lvca_panel panel_title=“CompanyServices“]
  • id [int]
  • companyId [int]
  • tagId [int]
  • createdAt [date]
  • updatedAt [date]
[/lvca_panel][lvca_panel panel_title=“CompanyImages“]
  • id [int]
  • companyId [int]
  • imageId [int]
  • createdAt [date]
  • updatedAt [date]
[/lvca_panel][/lvca_accordion]

Die Basis

Nachdem die Anforderungen, die Datenbankstruktur und der Zeitplan für das Projekt standen musste definiert werden mit welchen Frameworks und Software das Projekt umgesetzt werden soll. Vorgaben waren dabei, dass das Plug-In in der Programmiersprache PHP programmiert werden muss. Das liegt vor allem daran, da WordPress auf PHP aufbaut. Außerdem sollte es möglichst einfach zu bedienen sein und eine einfache Installation besitzen. Aus diesem Grund wurde auch eine relationale Datenbank, in diesem Fall das von Oracle entwickelte und frei verfügbare MySQL verwendet. Außerdem soll das Plug-In auch für weitere Projekte nutzbar sein. Aus diesem Grund war es äußerst wichtig, dass eine gute und ausführliche Dokumentation erfolgt.

Die Recherche nach den richtigen Tools und Grundlagen

Da man als Entwickler nicht jedes Mal das Rad neu erfinden muss, habe ich mich, nachdem die meisten Grundlagen geklärt waren, auf die Suche nach sogenannten „Boilderplates“ (engl. für Kesselplatte) gemacht. Boilderplates sind dabei keine Kesselplatte sondern ehr eine Grundlage, die von Mitgliedern der Open Source Community entwickelt wurden sind. Allerdings musste auf Grund der späteren Verwendung darauf geachtet werden das die Lizenz entweder die BSD Lizenz (https://opensource.org/licenses/BSD-3-Clause) benutzt oder unter der Lizenz „Public Domain“ veröffentlicht wurden ist. Dabei bin ich auf das WordPress Plugin Template von Herrn Michael Simpson (http://plugin.michael-simpson.com/) gestoßen, welches man mit einen einfachen Generator für sich selber individualisieren und anschließend durch einen Klick auf „Download“ herunterladen konnte. Anbei könnt Ihr die Ordnerstruktur des WordPress Plugins euch ansehen.

StartupDirectory
StartupDirectory

Um jedoch wirklich los legen zu können ist es immer wichtig zu wissen, wie die Website am Ende des Tages aussehen soll. Aus diesem Grund muss vor der eigentlichen Entwicklung zunächst ein Design Prozess durch gegangen werden. Wie ich diesen Design Prozess bei dem zu entwickelnden WordPress Plug-In angegangen bin erfährst Du im nächsten Blog-Artikel.

Jetzt in den Newsletter eintragen.

Mit dem Klick auf den Button "Für den Newsletter anmelden" akzeptierst Du die Datenschutzbedingungen für den Versandt des Newsletters.

marcelengelmann

Schreib ein Kommentar

Kommentar verfassen