Der AddOn-Key

Der AddOnKey – der eindeutige Schlüssel eines AddOns – ist von zentraler Bedeutung.

Der Key dient erstens dazu, dass sich verschiedene AddOns nicht in die Quere kommen. Sonst könnte es passieren, dass verschieden AddOns die gleichen Verzeichnisnamen verwenden, den gleichen Präfix bei der Namensvergabe von Datenbanktabellen oder bei der Benennung von systemweiten Variablen.

Und zweitens könnte ein versehentlich identischer Key zu Konfusion führen bei der automatischen Aktualisierung, die in neueren Redaxo-Versionen möglich ist. Durch dieses automatische Update könnte ein AddOn ein anderes überschrieben, wenn hier keine Eindeutigkeit gegeben ist.

Wie erhält man einen eindeutigen AddOnKey?

Im Normalfall wird man sein AddOn hier im Downloadbereich der Allgemeinheit zur Verfügung stellen. Nachdem man sich by myREDAXO angemeldet hat, findet man im Menüpunkt “meine AddOns” den Link “Neues AddOn eintragen”.
In der dortigen Eingabemaske gibt es das Feld AddOnKey / Ordnername. Nach dem Abschicken findet bei der Registrierung des AddOns eine Prüfung auf Eindeutigkeit statt.

Gut – wir haben nun einen eindeutigen AddOnKey.

Ordnername

Zunächst sollte der Ordnername des AddOns identisch sein mit dem AddOnKey. Da der Update-Mechanismus auf den Ordnernamen zurückgreift, ist – wie schon weiter oben erwähnt – eine Eindeutigkeit des AddOn-Ordnernamens eminent wichtig.

Wie wird dieser Key im AddOn weiter verarbeitet?

Üblicherweise hinterlegt man den Key in der config-Datei eines AddOns:

$mypage = 'news';

Diesen Key kann man nun an verschiedenen Stellen innerhalb des AddOns wieder aufnehmen und weiter verarbeiten.

Hinweis
Früher wurde als Key üblicherweise die bei Anmeldung des AddOns automatisch vergebene ID verwendet. Dies ist nicht mehr aktuell.

Der ober definierte Key sollte natürlich auch bei der Namensvergabe eventueller Addon-Tabellen berücksichtigt werden. Mit folgender Zeile würde man die Voraussetzung schaffen, dass der Key im Präfix eines Tabellennamens enthalten ist:

$REX['ADDON']['dbpref'][$mypage]=$REX['TABLE_PREFIX'].$mypage.'_';

Hier wäre der Präfix also beispielsweise:
rex_news_

Wenn dieser Präfix bei der weiteren Programmierung im AddOn konsequent verwendet wird, ist sichergestellt, dass kein anderes AddOn den gleichen Tabellennamen nutzen kann – sofern der Key wirklich eindeutig definiert wurde und sich alle anderen AddOns an diese Konvention halten.
In der Listenausgabe etwa könnte der Prefix also wie folgt eingesetzt werden:

$list = new rex_list('SELECT id, datum, titel FROM '.$REX['ADDON']['dbpref'][$mypage].'meldungen order by datum', 200);

Ältere AddOns sollten – sofern sie auch über den automatischen Updatemechanismus aktualisiert werden sollen – an diese neue Konvention angepasst werden.

Der API-Key

Mit dem Installer-AddOn können AddOns aus dem Downloadbereich heruntergeladen und aktualisiert werden.

Bei der Aktualisierung wird je nach Einstellung ein Backup des alten AddOn-Ordners angelegt, ein Datenbank-Backup wird jedoch nicht ausgeführt. Falls das AddOn Einstellungen direkt im AddOn-Ordner ablegt, gehen diese bei einem Update verloren.

AddOn-Entwickler sollten Einstellungen deshalb nicht mehr wie früher in der config.inc.php oder in anderen Dateien innerhalb des AddOn-Ordners ablegen. Stattdessen sollte der Data-Ordner

/redaxo/include/data/addons/<addonkey>

verwendet werden.

Außerdem kann dem AddOn ein Updateskript (update.inc.php) beigelegt werden, das während des Updates Änderungen an der Datenbank etc. durchführt.

Wenn in den Einstellungen der Benutzer und der API-Key für myREDAXO hinterlegt werden, können über den Installer auch die eigenen Addons in den Downloadbereich hochgeladen werden. Der API-Key ist im Login-Bereich unter Mein-API-Key einzusehen.
Da mit dem Key die eigenen AddOns über die API verändert werden können, sollte der Key nicht weitergegeben werden.