Joomla Extensions mit Generatoren?
Die Joomla Komponenten - Entwicklung, erfolgt heute oftmals mit Software, mit sogenannten Komponenten Generatoren. Da heute fast alles schon irgendwann irgendwo von irgend Jemandem programmiert wurde, wird es immer leichter, auf solche Code-Blöcke zuzugreifen. Mit automatisierten Abläufen, Grundgerüsten, Frameworks für die Programmierung zu erstellen, ist heute möglich. JCB ist ein solches Tool, welches das erforderliche Grundgerüst von Joomla als Basis verwendet, beinhaltet und generieren kann. Auch andere Arbeitsschritte, wie die Abfrage von Datenbanken, die Darstellung von Datensätzen usw. lassen sich automatisieren und es muss nicht jede Zeile Code neu geschrieben werden.
Ich gehe auf die Extension Programmierung mit einem in Joomla installierbaren Komponenten-, sprich Extension Generator ein. Ich will aber bereits am Anfang erwähnt haben, dass diese Software mehr ist als ein Generator, es ist nicht ein Automat, der das Joomla MVC in einen Ordner kopiert. JCB ist eine Software für den anspruchsvolleren Programmierer. JCB ist in seiner Logik durchdacht aufgebaut.
JCB lässt sich in Joomla installieren und der Funktionsumfang ist mächtig, es ist das beste Tool für die Entwicklung von Joomla Komponenten. Ees gibt noch zwei solcher Komponentengeneratoren auf dem Markt, diese Arbeiten sind online, das heisst, dass das was generiert wird, auf einem Fremdsystem liegt. Der Zugriff auf die Quelle, also die Dateien selbst, ist nicht möglich. Dazu kommt, dass beide Tools kostenpflichtig sind, will man sie erweitert benutzen. Die beiden Online Joomla Komponenten Generatoren kommen nie an den Funktionsumfang von JCB heran. Zu gunsten dieser Online-Software muss gesagt werden, dass weniger Kenntnisse von PHP, vom Joomla Framework selbst oder gar von objektorientierter Programmierung nötig sein müssen, um mit diesen beiden Tools einfache Extensions zu erstellen.
Das Arbeiten mit JCB
Um mit JCB zu arbeiten, ist es erforderlich, dass man mindestens gute Vorkenntnisse bezüglich der Joomla Programmierung mitbringt. Denn ohne zu wissen, wie das MVC Joomla Framework aufgebaut ist, also wie MVC - Modell View Controller - von Joomla arbeitet, wird man nicht weit kommen, die Einstiegsschwelle ist hoch. Wissen um OOP und das API von Joomla ist gefragt.
In der professionellen Anwendung JCB hat man viele Snippets bereits zur Verfügung, die dann eingearbeitet werden können. JCB unterstützt alle Joomla Standard Felder aber auch Custom Fields können angelegt werden, die zum Beispiel Querverweise auf andere Datenbank-Tabellen beinhalten. Für das ganze "Modelling" der Datenbank steht ein Werkzeug zur verfügung, welches, "dynamicGet" benannt wurde. In diesem Bereich erstellt man die Datenbankabfragen, es beinhaltet sämtliche SQL Funktionen, also alles was mit dem Modell zu tun hat. Dieser Bereich ist mächtig, man kann sämtliche Abfragen zusammenstellen und das auf relativ einfache Weise, sofern man versteht um was es geht.
Auch für eigenen Code wurde ein Bereich geschaffen. Dieser ermöglicht es Custom Code an vielen vordefinierten Stellen mit Platzhaltern einzufügen. Diesen Code kann man immer wieder verwenden. Eine Funktion stellt die Möglichkeit dar, mit seiner IDE zu arbeiten und JCB synchronisiert diesen Code. Selbstverständlich sind sämtliche Joomla Standard Funktionen also Status, Sortieren, Filtern, Veröffentlichung, Joomla Felder, Kategorie usw. auswählbar. Es können PHP Klassen, Methoden, Custom Code usw., wie es vom Joomla Framework her sein muss, eingefügt werden.
Tutorials und JCB lernen
Die über 100 Videos auf Youtube erschlagen einem fast, manchmal sind sie wirklich zu langatmig aber um den Umgang mit JCB zu erlernen, ist sicher vieles davon nötig. Der Nebeneffekt ist der, dass man zu einem Joomla Programmierer werden kann durch JCB, wenn man Wille, Bereitschaft und Zeit zum Lernen hat. Die Dokumentationen, die Tutorials könnten besser sein, ich meine, sie könnten mit mehr System sortiert werden. Auch mehr Step by Step Dinge würden oft schneller an das Ziel führen. Der Entwickler zeigt einem mit viel Geduld alles, was er geschaffen hat und das ist schon sehr grosszügig. Ich schätze das ganz besonders.
Man sollte einen Basiskurs in PHP absolvieren und danach mindestens den Einstieg in OOP hinter sich gebracht haben. Das Joomla Tutorial "Hello World", das auf der Joomla Website zu finden ist, sollte durchprogrammiert werden. Es sind mehrere Jahre nötig um Joomla Programmierer zu werden und der Weg nach oben ist offen. Ich musste mehrere Anläufe nehmen, bis ich die Schwelle nehmen konnte, obwohl ich mit Joomla, Websites für Kunden erstelle, seit es das CMS gibt. Umso länger ich mich mit dem Coden beschäftige, umso mehr merke ich, dass ich noch nichts kann. Durch veröffentlichte Beispiel-Extensions, mit vollem Funktionsumfang, erkennt man bald, wo es lang geht. Leider zeigt der Hersteller fast keine Step by Step Anleitungen, sondern kommentiert an Hand von bereits schon recht komplexen Extensions, die als Vorlage dienen, die Prinzipien. Er erklärt den Ablauf eines Vorganges, also das Prinzip soll verstanden werden, um die Zusammenhänge vertieft zu verstehen. Mittlerweile gibt es noch andere Videos, die eher die "Step by Step" Variante zeigen. Da gibt es eine Serie, in der man eine Rezepte Extension baut, die sehr gut gelungen ist.
Kosten
JCB ist frei erhältlich ist. Und nicht nur die Extension ist frei verfügbar, der Hersteller gibt auch enormes Wissen frei. Zeigt jedem Interessierten, wie man damit arbeitet. Ich habe selten ein so freigiebiger Mensch in diesem Bereich angetroffen. Das ist ganz besonders zu schätzen. Es ist darum wichtig, dass wir, wir die mit diesem Tool arbeiten, den Entwickler finanziell unterstützen, ansonsten wird das ganze doch sehr unfair. Zumindest, wer Extensions programmiert, die mit JCB entwickelt werden und diese dann verkauft, sollte auch JCB unterstützen. Man lernt ja nicht nur die Extension JCB kennen, man erlernt die Programmierung von Joomla Extensions und somit lernt man Joomla sehr vertieft kennen. Joomla ist eines der besten CMS und so investiert man auch in die Zukunft.
Community JCB Pakete
Für JCB gibt es viele sogenannte JCB Community Pakete, die frei erhältlich sind. Die, in nicht kompilierter Form ausgelieferten Pakete, werden dann in JCB importiert. Es sind vollfunktionsfähige Extensions und man kann durch Analyse nachvollziehen, wie etwas programmiert ist. Zum Beispiel findet man vordefinierte Felder, die immer wieder verwendet werden können, diese kann man in eigene Views, in eine Ansicht, zum Beispiel in ein Administratorenbackend laden. Auch CSS und Javascript Bibliotheken, wie UIkit, Bootstrap oder FooTable usw. werden in diesen JCB Paketen verwendet.
VDM JCB Pakete
Für JCB gibt es Pakete, die kostenpflichtig sind. Es sind ausgearbeitete Extensions mit grossem Funktionsumfang. Sie dürfen als Basis verwendet werden, können umgebaut oder angepasst und weiterverkauft werden. Allerdings findet man im Netz keine Informationen oder Hilfe und man findet auch keine Erfahrungsberichte.
Updates?
JCB wird aktuell gehalten und ich hoffe, dass es so bleibt und um das zu unterstützen, helfe ich JCB finanziell mit dem Kauf der Pro-Erweiterung auch wenn ich diese gar nicht benötige. Die Joomla Kenner wissen, dass es in der Vergangenheit sicher noch drei solcher Lösungen gab, mit zum Teil recht guter Ausgangslage, leider wurden diese Projekte fallen gelassen. Hoffen wir, dass JCB bestehen bleibt und auch auf Joomla 4.0 mitkommt. Und wie ich mitbekommen habe, soll es eine eigene JCB Variante geben für Joomla 4. Ich bin gespannt.
Fazit
JCB generiert Code, der in der Quelle kommentiert ist. Ein "Backend" für eine Extension, generiert JCB beinahe automatisch, sofern man das will. Für das bearbeiten oder neu anlegen von Inhalten kann auch das Frontend bedient werden. So generiert JCB die "Edit-Views" also die Formulare vollumfänglich für das Frontend. Leider fehlt dort aber das ACL des gesammten Formulars obwohl die Felder diesem unterliegen, das heisst, man muss das selbst lösen. Der vielen Möglichkeiten wegen und weil diese nicht eingeschränkt werden sollen, ist es nicht empfohlen Frontansichten zu generieren, heisst es, sondern man sollte diese selbst einarbeiten. Es wird also etwas empfohlen, die Formulare selbst zu erstellen, obwohl JCB das kann. Hingegen erstellt man Listen auf einfache weise mit JCB, auch wenn sie Tabellen übergreifend sind.
Die JCB Extension ist etwas vom Besten für Joomla, ich erlaube mir JCB als ein Meilenstein zu betrachten in der Extension-Entwicklung, ein tolles Tool. Aber weil die Programmierung für Joomla komplex sein kann, ist es nicht für Leute die meinen, ich mach mal schnell...