Ich habe nach einiger Recherche eine Lösung gefunden.
Um den Editor (um den Button + Funktionen) zu erweitern benötige ich ein Plugin.
Um Inhalte, im Dialogfenster, was vom Editor geöffnet wird anzuzeigen benötige ich eine Componente.
Das Plugin und die Componente verpacke ich in ein Package und erstelle dann aus dem Package meine zu installierende Erweiterung.
In meiner Componente habe ich das Model so abgeändert, dass es die Daten nicht aus der DB, sondern über eine externe API lädt.
---
Evtl. kann mir wer einen Tipp zu folgenden zwei Fragen geben.
1.
Wenn ich das Package jetzt über den Extension Manager deinstalliere, bekomme ich noch eine Warnung und das Package lässt sich (ausser über die DB) nicht richtig entfernen.
Package Uninstall: Missing manifest file.
In meinem Nginx log kann ich folgenden Fehler sehen:
PHP Warning: simplexml_load_file(): I/O warning : failed to load external entity "/var/www/html/joomla/administrator/manifests/packages/pkg_meinpackage.xml" in /var/www/html/joomla/libraries/src/Installer/Manifest.php on line 114"
Die Datei existiert aber im angegebenen Verzeichniss und da ich Sie auch über den Extension Manager installiert habe hat sie auch die richtigen Rechte.
2.
Ich benötige zu der Erweiterung drei Variablen die vom Benutzer angegeben werden müssen (z.B. den API-Key).
Jetzt habe ich in der Manifest-Datei des Plugins unter <config> Parameter angegeben, die dann auch über das Plugin von Benutzer eingegeben werden können.
Dann greife ich von meiner Componente aus folgendermaßen auf diese zu:
// Get the plugin
$plugin = JPluginHelper::getPlugin('editors-xtd', 'plg_meinplugin');
// Get plugin params
$pluginParams = new JRegistry($plugin->params);
$this->myConfig['api_key'] = $pluginParams->get('api_access_key');
Ich führe den Code in einer Init-Methode in meiner view.html.php aus und übergebe $this->myConfig dann immer an das Model.
Passt das so oder gibt es da einen eleganteren Weg?
Vielen Dank