Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
developer:extensions [2017/11/20 16:20] oesi angelegt |
developer:extensions [2025/10/27 16:15] (aktuell) oesi |
||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| Extensions sind Erweiterungen des FH-Complete Core Systems. | Extensions sind Erweiterungen des FH-Complete Core Systems. | ||
| - | Diese werden dazu verwendet um die Standardfunktionalitäten von FH-Complete zu erweitern. | + | Diese sind ab FH-Complete Version 3.3 verfügbar. |
| - | Extensions können die bestehende Datenbank um zusätzliche Tabellen Erweitern, neue Webservice Funktionalitäten hinzufügen und weitere Modifikationen am FH-Complete Core durchführen. | + | Sie werden dazu verwendet um die Standardfunktionalitäten von FH-Complete zu erweitern. |
| + | Extensions können die bestehende Datenbank um zusätzliche Tabellen erweitern, neue Webservice Funktionalitäten hinzufügen und weitere Modifikationen am FH-Complete Core durchführen. | ||
| Extensions müssen immer am selben Host wie der FH-Complete Core installiert werden. | Extensions müssen immer am selben Host wie der FH-Complete Core installiert werden. | ||
| - | Extension folgende der Namenskonvention FHC-Core-XXX | + | |
| + | Extension folgen der Namenskonvention FHC-Core-XXX | ||
| + | |||
| + | ===== Struktur ===== | ||
| + | |||
| + | {{:developer:extensionsaufbau.png|600}} | ||
| ===== Ersteinrichtung ===== | ===== Ersteinrichtung ===== | ||
| - | Vor der Verwendung von Extensions müssen ein paar im FH-Complete Core vorgenommen werden. | + | Vor der Verwendung von Extensions müssen ein paar Anpassungen im FH-Complete Core vorgenommen werden. |
| - | Der Webserver brauch Schreibzugriff auf die Extension Verzeichnisse damit diese korrekt installiert werden können. | + | Der Webserver braucht Schreibzugriff auf die Extension-Verzeichnisse damit diese korrekt installiert werden können. |
| Dazu werden folgende Befehle im FH-Complete Hauptverzeichnis ausgeführt: | Dazu werden folgende Befehle im FH-Complete Hauptverzeichnis ausgeführt: | ||
| <code> | <code> | ||
| - | chgrp www-data application/tmp/ application/config/extensions/ application/controllers/extensions/ application/helpers/extensions/ application/hooks/extensions/ application/libraries/extensions/ application/models/extensions/ application/views/extensions/ application/widgets/extensions/ | + | chgrp www-data application/extensions/ application/tmp/ application/components/extensions/ application/config/extensions/ application/controllers/extensions/ application/helpers/extensions/ application/hooks/extensions/ application/libraries/extensions/ application/models/extensions/ application/views/extensions/ application/widgets/extensions/ public/extensions/ |
| - | chmod 775 application/tmp/ application/config/extensions/ application/controllers/extensions/ application/helpers/extensions/ application/hooks/extensions/ application/libraries/extensions/ application/models/extensions/ application/views/extensions/ application/widgets/extensions/ | + | chmod 775 application/extensions/ application/tmp/ application/config/extensions/ application/components/extensions/ application/controllers/extensions/ application/helpers/extensions/ application/hooks/extensions/ application/libraries/extensions/ application/models/extensions/ application/views/extensions/ application/widgets/extensions/ public/extensions/ |
| </code> | </code> | ||
| Zeile 27: | Zeile 33: | ||
| Extensions werden üblicherweise als TGZ Archiv zur Verfügung gestellt. Auf der oben genannten Seite kann das Archiv hochgeladen werden. Dabei wird die Extension automatisch installiert und aktiviert. | Extensions werden üblicherweise als TGZ Archiv zur Verfügung gestellt. Auf der oben genannten Seite kann das Archiv hochgeladen werden. Dabei wird die Extension automatisch installiert und aktiviert. | ||
| + | |||
| + | <note important>Für die Installation von Extensions benötigen Sie die Berechtigung "system/extensions"</note> | ||
| + | |||
| + | Alternativ können Extensions auch über die Commandline installiert werden. | ||
| + | |||
| + | Der Pfad zur Extension muss URL-Kodiert angegeben werden. (%2F statt /) | ||
| + | <code> | ||
| + | php index.ci.php system/extensions/CLI_Manager uploadExtension FHC-Core-Extension %2Fhome%2Ffhcomplete%2fFHC-Core-Extension.tgz | ||
| + | </code> | ||
| + | |||
| + | <note important>Die Extension Datei wird nach der Installation gelöscht wenn die Installation über die Commandline erfolgt!</note> | ||
| ===== Update von Extensions ===== | ===== Update von Extensions ===== | ||
| Zeile 36: | Zeile 53: | ||
| Extensions können deaktiviert werden. Die Daten der Extensions bleiben dabei erhalten. Lediglich die Funktionen dieser Extension werden deaktiviert. | Extensions können deaktiviert werden. Die Daten der Extensions bleiben dabei erhalten. Lediglich die Funktionen dieser Extension werden deaktiviert. | ||
| + | ===== Extensions entwickeln ===== | ||
| + | |||
| + | Folgende Ordner werden automatisch im FH-Complete Core verlinkt um die bestehenden Funktionalitäten zu erweitern: | ||
| + | * config | ||
| + | * controllers | ||
| + | * helpers | ||
| + | * hooks | ||
| + | * libraries | ||
| + | * models | ||
| + | * views | ||
| + | * widgets | ||
| + | |||
| + | Zusätzlich muss im Hauptordner eine Datei mit dem Namen extensions.json vorhanden sein mit folgendem Aufbau: | ||
| + | |||
| + | <code> | ||
| + | { | ||
| + | "name": "FHC-Core-MyExtension", | ||
| + | "description": "My Extension", | ||
| + | "version": "1", | ||
| + | "license": "GPL", | ||
| + | "url": "https://github.com/FH-Complete/FHC-Core-MyExtension", | ||
| + | "core_version": "3.3" | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Mit folgendem Befehl kann aus dem Extension-Code ein Archiv erstellt werden: | ||
| + | <code> | ||
| + | tar --exclude=.git -cvzf FHC-Core-myextension.tgz FHC-Core-myextension | ||
| + | </code> | ||
| + | |||
| + | ==== Erweiterung von Core Funktionalitäten ==== | ||
| + | |||
| + | Core Funktionalitäten können durch Extensions erweitert werden. | ||
| + | Siehe dazu: [[developer:extensionsevents|Erweiterung von Funktionalitäten]] | ||