marcfr
Elite Observer

Format-Template in Java-Modul ansprechen

Hallo zusammen,

im HTML-Ausgabekanal wird eine Format-Vorlage wie folgt aufgerufen:

$CMS_RENDER(template:"color_by_role",role_id:page.get("page_reference").getPageRef().getPage().getData().get("pt_role").getEditor().get(#global.language))$

-> Dies liefert einen einfachen String zurück.

Nun meine Frage:

Wie könnte ich das nun stattdessen innerhalb eines Java-Modules realisieren?

0 Kudos
3 Replies
marcfr
Elite Observer

Momentan habe ich folgendes:

Store templateStore = context.getUserService().getStore(de.espirit.firstspirit.access.store.Store.Type.TEMPLATESTORE, true);

FormatTemplate element = (FormatTemplate) templateStore.getStoreElement("color_by_role", IDProvider.UidType.TEMPLATESTORE_FORMATTEMPLATE);

//set param "role_id":       

HashMap map = new HashMap();

map.put("role_id", "64");  

element.setStyleAttributes(map);

       

TemplateSet templateSet = context.getProject().getTemplateSets().get(0);

FormatTemplateChannel formatTemplateChannel = element.getChannel(templateSet);

formatTemplateChannel.getContent();

-> Würde getContent() das Ergebnis des ContentSelects (siehe Erklärung unten) zurückliefern oder nur den Code im HTML-Ausgabe-Kanal?

Zur Erklärung:

In der Formatvorlage wird ein ContentSelect durchgeführt, der anschließend ein Ergebnis zurückliefert.

0 Kudos

Hallo Herr Friedemann,

hat es einen speziellen Grund wieso sie das Rendering der Formatvorlage mit API-Mitteln nachstellen wollen?

Das Standardvorgehen wäre eine Methode des Moduls mit dem gewünschten Parameter aufzurufen und innerhalb des Moduls dann das Query durchzuführen und danach das Ergebnis zurück zu geben.

Viele Grüße

Jörg Stephan

Hallo Herr Stephan,

nein, dafür gibt es keinen speziellen Grund. Es hatte mich nur interessiert, ob das überhaupt ohne Weiteres über die API möglich wäre.

Dann werde ich es so machen, wie Sie es vorgeschlagen haben.

Besten Dank,

Marc Friedemann

0 Kudos