Absatz Anzeigename über Regeln auslesen
Hallo zusammen,
ich versuche über die Regeln den Anzeigename zur aktuellen Sprache eines Absatzes zu bestimmen. Für den Referenznamen habe ich es selber hinbekommen, leider aber nicht für den Anzeigename.
Beispiel Referenznamen:
<RULE><IF><PROPERTY name="EMPTY" source="st_anchorUrlText"/></IF><WITH><PROPERTY name="UID" source="#global"/></WITH><DO><PROPERTY name="VALUE" source="st_anchorUrlText"/></DO></RULE>
Patrick
-
Hallo Patrick,
ich fürchte, dass geht nur über einen Value Service. Da es hier ja nur um eine Kleinigkeit geht, sollte der ScriptValueService ausreichend sein. Das könnte dann so aussehen:
Regel:<RULE>
<SCHEDULE delay="1000" id="setDisplayName" service="ScriptValueService">
<PARAM name="script">
<TEXT><UID des Skriptes></TEXT>
</PARAM>
<PARAM name="language">
<PROPERTY name="LANG" source="#global"/>
</PARAM>
<PARAM name="sectionid">
<PROPERTY name="ID" source="#global"/>
</PARAM>
</SCHEDULE>
<DO>
<PROPERTY name="VALUE" source="<Name der Eingabekomponente>"/>
</DO>
</RULE>Mit dieser Regel wird das entsprechende Skript aufgerufen. Dieses muss sich dann darum kümmern, aus den übergebenen Daten (ID des Absatzes und Abbreviation der Sprache) den Displaynamen zu ermitteln und diesen dann zurückgeben. Das Skript könnte dann wiederum so aussehen:
import de.espirit.firstspirit.agency.StoreAgent;
import de.espirit.firstspirit.agency.LanguageAgent;
import de.espirit.firstspirit.access.store.Store;
storeAgent = context.requestSpecialist(StoreAgent.TYPE);
languageAgent = context.requestSpecialist(LanguageAgent.TYPE);
pageStore = storeAgent.getStore(Store.Type.PAGESTORE);
section = pageStore.getStoreElement(sectionid);
lang = languageAgent.getProjectLanguages(false).get(language);
return section.getDisplayName(lang);Viele Grüße
Holger1 -
Super danke! Danke auch für die Lösung!
0
Please sign in to leave a comment.
Comments
2 comments