Einleitung / Aufgabenstellung

Ja, wie der Titel des Beitrages es sagt, und das sei betont, handelt es sich bei nachfolgenden Beschreibungen der Erstellung diese Joomla-Plugins nicht um die Anzeige einer Excel-Tabelle über die Browser-Plugins oder Add Ons. Das wäre programmiertechnisch recht einfach zu lösen, hat aber den enormen Nachteil, dass man immer auf die vorhanden Fähigkeit des Browsers angewiesen ist, ein installiertes Plugin zu haben, mit dem Excel-Sheets angezeigt werden können. Für weltoffene Webseiten eine unzulässige Einschränkung. Deshalb wurde eben die Aufgabenstellung formuliert, die Anzeige der Excel-Tabellen als reines HTML vorzunehmen.



Auf dem Server befindet sich eine beliebige Excel-Datei, die durch das Plugin geparst wird und in HTML ausgegeben wird. Dabei soll über Plugin-Parameter und die Content-Plugin-Syntax die Anzeige der Tabellen beeinflusst werden können.

Grundsätzliche Umsetzung der Aufgabenstellung

  1. Zunächst muss eine Import- und Parsing-Schnittstelle geschaffen werden, die es in der Joomla-Umgebung ermöglicht, Excel-Tabellen zu lesen. Nach etwas mühseliger Forschung im Internet und dem Ausprobieren diverser Bibliotheken oder Scripte kam auf Basis von PHP ein Lösung in Frage die recht stabil, leistungsfähig und schlank diese Aufgabenstellungen erfüllt. Herangezogen wurde dazu eine fertig XLSReader-PHP-Bibliothek. Diese Bibliothek wurde in das Verzeichnis JOOMLAROOT/libraries/xmlreader kopiert. Mehr dazu weiter unten.
    An dieser Stelle sei eine Überlegung für den verwendeten Pfad geäußert: Eigentlich ist der XLSReader eine J!-fremde Bibliothek und gehört von daher in eben dieses Verzeichnis. Allerdings ist es für EasyCreator nicht möglich Dateien zu verwalten die sich in diesem Verzeichnis befinden. Hier wäre es besser evtl. dieses Verzeichnis zu erstellen /plugins/content/xmlreader/ und die Bibliothek quasi als helper-Files für unser Plugin dort hinein zu legen. Diese hätte dann den Vorteil, dass im Installationspaket für unser Plugin auch gleich die XLSReader-Bibliothek-Datei automatisch und in einem Ruck mit installiert werden könnten - nur eben dass diese dort lt. Joomla-Architektur eigentlich nicht hingehören. Ich habe mich entschieden diese is libraries-Verzeichnis zu legen und ein eigenes Paket nur für diese Library zu schnüren, welches separat durch Entpacken und kopieren per FTP auf den Webserver installiert werden muss. Nicht eben benutzerfreundlich, dafür aber J!konform.
  2. Über die J!Komponente EasyCreator wurde ein neues eigenes Plugin vom Typ Content erstellt, von mir benannt als XLSReader. EasyCreator ist ein wirklich tolles Tool, welches einem eine Menge Arbeit beim Erstellen und Verwalten von eignenen J!-C+M+P-Grundgerüsten abnimmt. Hiermit wurden also die notw. Dateien für das Plugin erstellt und in J! registriert. Nicht vergessen das Plugin gleich mal zu aktivieren, damit es für die Entwicklung auch tätig werden kann! Wie gesagt wird hiermit nur ein Grundgerüst bestehend aus den beiden Dateien xlsreader.php und xlsreader.xml erstellt, die im Folgenden mit Funktionalität befüllt werden müssen.
  3. Dann müssen wir uns entscheiden wo wie die XLS-Datei hinkopieren wollen, auf die das Plugin dann zugreifen soll. Vorgesehen ist in J! hierfür das Verzeichnis /media/. Es kann Gründe geben nicht dieses Verzeichnis zu verwenden, z.B. wenn man die Datei nicht per FTP hochläd sondern lieber den Media-Manager im J!Adminbereich verwenden will, der ja seine Daten ins image-Verzeichnis abkippt. Jedes andere Verzeichnis ist möglich, denn das kann in und für unser Plugin als Parameter eingestellte und übergeben werden.

Damit haben wir unsere Grundlagen geschaffen:

  • ein eigenes (noch funktionsloses) Plugin,
  • eine zu lesende XLS-Datei auf dem Server
  • und eine XLS-Reader-PHP-Bibliothek.