Joomla! Programmierung/Programmierung/Komponenten/Erste Schritte

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[Bearbeiten] Umgebung

Sie benötigen für die Komponentenentwicklung eine Serverumgebung auf der Sie Ihre Komponente testen und debuggen können. Zusätzlich sollten Sie einen geeigneten PHP Editor installieren der durch Syntaxhighlighting und das Verwalten von Projekten die Entwicklung vereinfacht. Falls Sie Ihre Komponente versionieren wollen benötigen Sie zusätzlich Versionsverwaltung wie z.B. Subversion und/oder Clients wie TortoiseSVN, der dies lokal ermöglicht.

[Bearbeiten] Name

Nun sollten Sie sich einen Namen für Ihre Komponente überlegen. In diesem Tutorial werden wir die Komponente com_jnafu nennen. Natürlich können Sie auch anfangen zu programmieren ohne einen spezifischen Namen zu nutzen, aber dann müssen Sie ggf. später viele Klassen und Dateien umbenennen.

[Bearbeiten] Ordnerstruktur

Erstellen Sie nun im Ordner Folder blue.png componentens folgende Ordnerstruktur für Ihre Komponente:

com_jnafu
Dies ist der Hauptordner Ihrer Komponente, hier werden alle Dateien und Ordner gespeichert.
- assets
Hier werden alle nicht PHP Dateiengespeichert, wie CSS und Javascriptdateien und allgemeine Bilder
- controllers
Hier werden alle Kontroller gespeichert, die vom Standardkontroller abweichen
- models
Der Modelordner wird später alle Dateien für die Beschaffung von Daten beinhalten.
- views
Hier werden später alle Dateien gespeichert, die für die Ausgabe der Komponente verantwortlich sind, als Standardausgabe kommt hier der Unterordner "jnafu" mit einem weiteren Unterordner "tmpl" hinein.

Ihre Ordnerstruktur sollte nun so aussehen:

Folder blue.png com_jnafu

|_ Folder blue.png assets
|_ Folder blue.png css
|_ Folder blue.png images
|_ Folder blue.png js
|_ Folder blue.png controllers
|_ Folder blue.png models
|_ Folder blue.png views
|_ Folder blue.png jnafu
|_ Folder blue.png tmpl

Für das BackendToDo Verlinken kommt eine ähnliche Ordnerstruktur zu tragen. Hier wird es nur zwei zusätzlichen Ordner geben:

- install
Dieser Ordner enthält alle Dateien, die für die Installation der Komponente von Nöten sind. Später wird dieser zwar auf die "Rootebene" des Installationszips verschoben, aber aktuell ist es so einfacher ihn zu verwalten.
- tables
Dieser Ordner enthält alle Informationen der Datenbanktabellen, die mit der Komponente genutzt werden. Damit kann der Speichervorgang fast komplett automatisiert werden.

Erstellen Sie nun im Ordner Folder blue.png administrator/components folgende Ordnerstruktur:

Folder blue.png com_jnafu

|_ Folder blue.png assets
|_ Folder blue.png css
|_ Folder blue.png images
|_ Folder blue.png js
|_ Folder blue.png controllers
|_ Folder blue.png install
|_ Folder blue.png models
|_ Folder blue.png tables
|_ Folder blue.png views
|_ Folder blue.png jnafu
|_ Folder blue.png tmpl

[Bearbeiten] Datenbank vorbereiten

Nachdem die Ordnerstruktur steht sollten Sie sich Gedanken über die Strukturierung der Datenbanktabelle(n) machen. Natürlich ist es möglich dies erst zu tun, wenn Sie diese wirklich benötigen, aber es hat sich gezeigt, dass es einfacher ist, wenn man sich beim Programmieren an eine grobe Struktur orientieren kann.

Für unser Gästebuch benötigen wir am Anfang nur eine einfache Tabelle mit folgenden Felder:

id
Beinhaltet eine fortlaufende ID der Einträge als Integer der Länge 11. Wird gleichzeitig auch mit einem "auto_increment" und dem "primaty key" belegt
text
Der Gästebucheintrag
date
Das Datum des Eintrags
modified
Das Datum der letzten Änderung von einem Administrator
modified_by
Userid des Admins der den Beitrag bearbeitet hat
author
Der Autor des Eintrags
published
"0" = Beitrag ist nicht veröffentlicht, "1" = Beitrag ist veröffentlicht
email
Die Emailadresse des Autors
show_email
"0" = Emailadresse wird nicht angezeigt, "1" = Emailadresse wird angezeigt
homepage
Die Homepage des Autors
ip
Die IP des Autors in ein unsigned Integer umgewandelt
checked_out
Userid des Admins, der den Beitrag gerade bearbeitet
checked_out_time
Zeit, wann der Eintrag von einem Admin bearbeitet worden ist

Dies führt uns zu folgender Tabelle, die sehr einfach per PHPMyAdmin oder ähnlichem erstellt werden kann.

CREATE TABLE `#__jnafu_entries` (
    `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `text` TEXT NOT NULL ,
    `date` DATETIME NOT NULL DEFAULT '00-00-0000 00:00:00' ,
    `modified` DATETIME NOT NULL DEFAULT '00-00-0000 00:00:00' ,
    `modified_by` int(11) UNSIGNED NOT NULL DEFAULT 0 ,
    `author` VARCHAR( 255 ) NOT NULL ,
    `published` TINYINT( 1 ) NOT NULL DEFAULT 0 ,
    `email` VARCHAR( 255 ) NOT NULL ,
    `show_email` TINYINT( 1 ) NOT NULL DEFAULT 0 ,
    `homepage` VARCHAR( 255 ) DEFAULT NULL ,
    `ip` INT( 10 ) UNSIGNED NOT NULL ,
    `checked_out` INT( 11 ) NOT NULL DEFAULT 0 ,
    `checked_out_time` DATETIME DEFAULT '00-00-0000 00:00:00'
) ENGINE = MYISAM ;

[Bearbeiten] Abschluss

Somit sind die ersten Schritte erledigt. Wir haben die Ordnerstruktur vorbereitet und die benötigte Datenbanktabelle erstellt. Natürlich wird es immer wieder vorkommen, dass man die Datenbanktabelle während des Entwickelns der Komponente optimieren muss oder zusätzliche Felder hinzufügen will, aber aktuell haben wir eine gute Basis um mit der Programmierung beginnen zu können.

[Bearbeiten] Siehe auch

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge