Zeige letzte Bearbeiter
1 {{content/}}
2
3 == Schnittstelle IPluginTemplateReplacer ==
4
5 === Verwendungsmöglichkeiten ===
6
7 {{figure image="plugin_platzhalterersetzung_template.png" width="400" clear="h3"}}
8 Einordnung des Platzhalterersetzungsplugins für //Templates// in die Prozesskette von {{formcycle case="dat"/}}
9 {{/figure}}
10
11 Eine Implementierung der Schnittstelle //IPluginTemplateReplacer// ermöglicht es, eigene Ersetzungslogik für den Ersetzungsprozess von Template-Platzhaltern zu integrieren. //Templates// können unter dem Menüpunkt [[Dateien & Templates>>doc:Formcycle.UserInterface.FilesAndTemplates.WebHome]] für die Typen //HTML//, //Text//, //E-Mail// und //Link //definiert werden.
12
13 Die eigenen Implementierungen werden dabei vor dem internen Platzhaltersetzungsprozess von {{formcycle case="dat"/}} durchgeführt.
14
15 Bei der [[Platzhalterersetzung>>doc:Formcycle.UserInterface.Variables]] wird nach folgendem Muster gesucht und durch das entsprechende //Template// ersetzt:
16
17 {{code language="none"}}
18 [%$$<Eigener Platzhalterbezeichner oder Name eines Templates>%]
19 {{/code}}
20
21 {{warning}}
22 Bei Verwendung mehrerer //IPluginTemplateReplacer//-Implementierungen ist deren Ausführungs-Reihenfolge nicht fest hinterlegt. Dadurch kann es bei mehrfacher Ausführung zu unterschiedlichen Ergebnissen kommen.
23 {{/warning}}
24
25 {{warning}}
26 Die //IPluginTemplateReplacer//-Implementierungen werden grundsätzlich bei jeder Formularverarbeitung im jeweiligen Anwendungsbereich (System- oder Mandant-Plugin), in dem sie installiert wurden, ausgeführt. Es wird deshalb empfohlen, in der Implementierungslogik als erstes zu prüfen, ob der //IPluginTemplateReplacer// für die jeweilige Formularverarbeitung ausgeführt werden soll. Dies lässt sich beispielsweise mittels [[Plugin-Properties>>doc:Formcycle.PluginDevelopment.BundleProperties]] konfigurierbar gestalten.
27 {{/warning}}
28
29 === Methodensignaturen ===
30
31 Die Plugin-Schnittstelle //IPluginTemplateReplacer// referenziert alle durch die [[Basis-Schnittstelle IFCPlugin>>doc:IFCPlugin]] bereitgestellten Methoden
32 und zusätzlich noch folgende Plugin-spezifische Methodensignaturen:
33
34 {{panel title="{{code language='java'~}~}IPluginTemplateReplacerRetVal replace(IPluginTemplateReplacerParams params) throws FCPluginException{{/code~}~}" triggerable="true" fullwidth="true"}}
35
36 **Übergabewert:**
37 Der Typ //IPluginTemplateReplacerParams// stellt den Zugriff auf folgende Eigenschaften bereit:
38 * **getPlaceholder()** kompletten String des Platzhalters (dies schließt den Markup des Platzhalters mit ein)
39 * **getPlaceholderContent()** Inhalt des Platzhalters (ohne typ-spezifischen Markup)
40 * **getEntityContext()** aktueller Nutzerkontext, um beispielsweise Datenbankoperationen ausführen zu können
41 * **getMandant()** aktueller Mandant, in dessen Anwendungsbereich der TemplateReplacer ausgeführt wird
42
43 **Rückgabewerte:**
44 Der Rückgabewert muss vom Typ //IPluginTemplateReplacerRetVal// sein. Eine Referenzimplementierung wird durch die Klasse //PluginGenericReplacerRetVal// zur Verfügung gestellt, welche mit dem Ersetzungswert aus dem //IPluginTemplateReplacer// initialisiert wird.
45 {{/panel}}