pctechnik.ch Herisau

pctechnik.ch Herisau

Joomla Extension entwickeln mit Joomla JCB Rene Grüter logo

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 zu zugreifen. 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üste 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 in diesem Artikel 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 mittlerweile mächtig, es ist meiner Meinung nach, das beste Tool für die Entwicklung von Joomla Komponenten. Erwähnen muss man, dass es noch zwei solcher Komponentengeneratoren auf dem Markt gibt, diese Arbeiten aber 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 noch, 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 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. Wie objektorientiertes programmieren OOP funktioniert, sollte man ebenso wissen, das heisst auch, die 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. Diese 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 zur Verfügung. PHP Klassen, Methoden, Custom Code usw. kann immer so, 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 mit mehr System sortiert werden. Auch mehr Step by Step Dinge würden oft schneller an das Ziel führen. Von einer anderen Seite betrachtet, zeigt der Entwickler mit viel Geduld einem alles, was er geschaffen hat und das ist schon etwas sehr grosszügiges, etwas, was ich bei ihm besonders schätze. Klar, es ist auch etwas Stolz dahinter.

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. Ich bin der Meinung, dass mehrere Jahre nötig sind um Joomla Programmierer zu werden, denn es ist wie bei allem, 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. Und umso länger ich mich mit dem Coden beschäftige, umso mehr merke ich, dass ich noch nichts kann. Und trotzdem, das Einarbeiten gelingt gut, wenn die Videos durchgegangen werden, die auf Youtube veröffentlicht sind. Und durch veröffentlichte Beispiel-Extensions, mit vollem Funktionsumfang, erkennt man bald, wo es lang geht. Der Hersteller zeigt 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

Natürlich ist jede Kritik fehl am Platz, denn das ganz Verrückte dabei ist, dass JCB 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. Oder aus einer anderen Sicht betrachtet, wenn ich einen Kurs besuche, kostet der auch. 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 sicher eines der besten CMS mit viel Abstand und so investiert man auch in die Zukunft. Und ich kann es nicht lassen zu erwähnen, dass WP (Wordpress) dagegen ein Spielzeug ist und schon gar nie, ein CMS sein kann, das ist aber sicher ein ganz anderes Thema.

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. Also auch das ist eine tolle Sache. Allerdings findet man im Netz keine Informationen oder Hilfe und man findet auch keine Erfahrungsberichte.

Support

So wie ich die guten Dinge beim Namen nennen will, will ich auch ehrlich bei Erfahrungen sein, die meiner Meinung nach nicht in Ordnung sind. Ich hatte mit dem Hersteller schon mehrmals Kontakt und ich konnte nie etwas daran aussetzen bis zu dem Tag, an dem ich ein VDM JCB Paket erworben hatte, das nicht funktionierte. Ich stellte fest, dass diese Extension, welche mit Dateien umgehen können muss (Document-Manager), auf einem Linux Datei System aufsetzt. Ich dagegen, arbeite seit vielen Jahren mit Plesk Serversystemen auf der Basis vom Windows File System. Diese beinhalten auch einen Apache, PHP und alles was es so braucht. Ich testete das Paket in vielen Umgebungen, habe aber keine Linux Maschine. Natürlich gab es vor vielen Jahren Probleme mit dem Windows File System in Webapplikationen. Mittlerweile ist es längst kein Thema mehr für Programmierer, plattformunanhängig solche Dinge im Griff zu haben, was ja Joomla selbst am besten beweist (com_media oder Virtuemart mit Ordnern ausserhalb des Webroots, Datei- und Upload Extensions aus dem JED usw.). Ok, ich kontaktierte mittels Ticket. Die Antwort war zuverlässig und etwa so: Es funktioniere alles, es sei alles getestet in vielen, vielen... und man hätte nirgends Probleme... er gehe davon aus, dass, wenn jemand ein VDM JCB Paket erwerben würde, alles mitbringen würde, um solche Probleme selbst zulösen... man müsse die API halt kennen und so weiter... Meine Meinung bleibt die, ich habe etwas gekauft, was nicht Platformunabhängig läuft und das sollte nicht sein. Man könnte ja in der Beschreibung angeben, Achtung, läuft nicht unter dem Windows File System! oder so. Also es gilt auch hier, nicht alles ist Gold was glänzt und alle machen Fehler, sind eben Menschen. Schade, dass der Hersteller null Interesse hat, für seine Kunden aufrichtig da zu sein. Eigentlich komisch, denn wenn man auf seine Arbeit JCB schaut, trifft das alles nicht zu. Aber schade für mein Vertrauen, dass ich in JCB hatte. Dieser Mann hätte Ausreden nicht nötig. Den Kunden als zu blöd hinzustellen, das kann ich nicht akzeptieren auch dann nicht, wenn ich noch nicht fähig bin oder wäre, die App kompatibel zu machen im Quellcode. Irgenwie merke ich, das Menschen Mühe haben mit Kritik.

Forum

Auch ein Forum gibt es für JCB. Dieses wird vom Hersteller selbst geführt. Es erklärt sich von selbst, dass Foren, in denen der Chef in der Runde sitzt, nicht neutral sein können. So werden eher keine kritischen Beiträge oder Fragen gestellt, die etwas anzweifeln oder eine Funktion in Frage stellen. Ich selbst habe das getan und natürlich wurde ich in meiner Ansicht bestätigt. Da war dann sofort jemand da und ging gar nicht auf den technischen Aspekt ein, sondern es wurde eine Anwort, mit viel wenn und aber. Es soll trotzdem gesagt werden, dass für gewisse Leute das Forum recht hilfreich ist. Und auch für den, der nur liesst und sich nicht einbringt, hat es viele Elemente, von denen man lernen kann. Und es hat wirklich gute Leute, die sachlich eine Lösung parat haben oder die den Beitrag zumindest genau lesen und nur dann auf das antworten, was man auch genau gefragt hat. Dann gibt es noch Leute, die einfach ignoriert werden.

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 hesst, 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, was ich in meiner Joomla Laufbahn gesehen habe. Und ich habe einiges gesehen, ich kenne Joomla bald 20 Jahre, wer weiss heute noch, dass Joomla einmal MOS (2003) genannt wurde. 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...

pctechnik.ch Herisau CMS und Ecommerce
Ohne Cookies würden die wenigsten Websites funktionieren. Auch diese Website verwendet Cookies. Was Cookies sind, können Sie unter - Weitere Informationen - nachlesen. Durch das Akzeptieren erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Weitere Informationen