Automatisches Anlegen von Modulkomponenten
Es kommt immer wieder mal vor, dass man beim Ausliefern/Deployen seines Bundles/Moduls gleich eine Modulkomponente anbieten möchte, mit der der Endanwender dann gleich arbeiten bzw. diese benutzen kann, ohne diese zuerst selber anlegen zu müssen.
Vorgehen in Kürze
-
im
resources/autocreate/moduleinstances
Verzeichnis des eigenen Bundles eineirgend_ein_name.json
anlegen -
dieses JSON muss unter anderem alle Settings der anzulegenden Modulkomponente beinhalten
Dies funktioniert mit Backend sowie mit Frontend Bundles. Die JSON im Backend Bundle abzulegen ist die empfohlene Stelle. |
Hintergrundinfo
Dein Bundle/Modul wird vom BPC Core geladen und dabei wird dieses auf JSON-Dateien in dem resources/autocreate/moduleinstances
Verzeichnis durchsucht. Wenn eine gefunden wurde, dann wird diese geladen und die Modulinstanz angelegt wenn noch nicht vorhanden. Dies wird bei jedem laden/start deines Bundles gemacht.
Umsetzung
Zuerst sicherstellen, dass in deinem Bundle unter resources
die Verzeichnisstruktur autocreate/moduleinstances
vorhanden ist. Du musst also unterhalb von resources
das Verzeichnis autocreate
und darunter das Verzeichnis moduleinstances
anlegen.
Im moduleinstances
Verzeichnis eine JSON Datei anlegen, welche die Informationen der zu erstellenden Komponente enthält.
Am übersichtlichsten ist es, wenn die ID der zu erstellenden Modulkomponente als Dateiname verwendet wird. Und die Datei muss die Dateinamenserweiterung .json
haben.
Andernfalls wird sie nicht berücksichtigt.
Sollen mehrere Modulkomponenten angelegt werden, dann müssen mehrere JSON-Dateien angelegt werden.
Der Inhalt der JSON-Dateien muss folgenden Aufbau haben.
{
"moduleId": "<ID deines Moduls>",
"instanceId": "<ID der anzulegenden Modulkomponente>",
"settings": {
"internalInstance": true,
"module_name": "Performance Monitor",
"module_iconCls": "x-fal fa-fighter-jet",
...
"<Name deines Setting>": <Wert deines Setting>
...
}
-
moduleId
- die ID welche Du in deinerModule.getModuleId()
Implementierung festgelegt hast -
instanceId
- die ID der anzulegenden Modulkomponente. Bitte selber auf Eindeutigkeit achten. -
settings
- hier werden die Werte jedes einzelnen Settings festgelegt, mit denen die zu erstellende Modulkomponente angelegt werden soll.