Skip to content

CTO Plugin Overview

Folker Schellenberg edited this page Sep 1, 2016 · 7 revisions

Einleitung

An die neue Lösung zur Einbindung von CTO Algorithmen (CTO Apps) in das CMS Joomla wurden im Rahmen der Diskussionen im Vorfeld folgende Anforderungen gestellt:

  • die Apps sollten standalone (außerhalb von Joomla) entwickel- und testbar sein
  • eine Festlegung auf bestimmte Frameworks sollte wenn möglich vermieden werden
  • die Portierung der Lösung auf zukünftige Joomla Versionen soll so einfach wie möglich sein

Weitere Vorgaben waren:

  • Unterstützung von Angular 2 mit und ohne Typescript
  • leichte Administrierbarkeit
  • einfaches Deployment neuer Apps
  • evtl. auch React Unterstützung

Um diesen Anforderung gerecht zu werden, wurde ein sehr lose gekoppelter Lösungsansatz gewählt:

Anstelle der bisherigen Joomla Komponente mit einer rudimentären Verwaltungsoberfläche wird nur noch ein Joomla Content Plugin genutzt.

Content Plugin loadCtoApp

Die Einbindung einer CTO App in einen Joomla Artikel erfolgt mittels eines Joomla Plugin Tags in folgender Form:

  {loadCtoApp Algorithm[, Style]}

wobei Algorithm dem Namen der App entspricht und Style die Art der Einbindung bestimmt.

Algorithm

Der Algorithm entspricht dem Namen der App.

Alle Apps werden zukünftig im Verzeichnis /JOOMLA ROOT DIR/_ctoApps,

Die zum Test vorliegende Verzeichnisstruktur einer Angular2 App mit Namen test/ctoTest2 ist z.B. wie folgt:

../_ctoApps/test/ctoTest2
                    |---app
                    |---typings
                    |---node_modules
                    sytemjs.config.js
                    cto.config.json
                    style.css
                    typings.json
                    tsconfig.json
                    package.json

Die Verzeichnisstruktur unterhalb von ctoTest2 entspricht der Struktur einer Angular2 App und könnte auch gänzlich anders aussehen. CTO spezifisch ist hier lediglich die Datei cto.config.json, die alle für das Plugin erforderliche Informationen enthält (siehe unten) und unbedingt vorhanden sein muss.

Style (optional)

Der Style hat Einfluss auf die Art der Einbindung. Derzeit sind folgende Styles angedacht:

  • embedded (default)- die App Ausgabe wird direkt in den Content eingebunden
  • overlay - die App Ausgabe wird in einem Overlay dargestellt
  • arcordion - die App Ausgabe wird als Arcordion dargestellt

Konfigurationsdatei cto.config.json

Die Konfigurationsdatei benennt alle für die App zu ladende CSS (styles) und JS (scripts) Files relativ zum App Verzeichnis, sowie alle erforderlichen Tag Informationen zur Anzeige der App.

Nähere Informationen siehe https://github.com/fschell/cryptool-online/wiki/cto.config.json

Clone this wiki locally