Questions & Answers

cube
Occasional Observer

RULE um Wert einer Eingabekomponente aus zwei anderen Werten zu setzen

Ich mรถchte den Wert einer (ausgeblendeten) CMS_INPUT_TEXT-Eingabekomponente automatisch aus den Werten zweier anderer CMS_INPUT_TEXT-Eingabekomponente setzen.

Bsp. Zwei CMS_INPUT_TEXT-Eingabekomponenten tt_first_name und tt_last_name. Beide Werte sollen als zusammengesetzter String automatisch in der dritten Eingabekomponenten tt_full_name (hidden="yes") gespeichert werden ("tt_first_name + tt_last_name")

Die Idee war, dies mit einer RULE รผber eine Werteermittlung mit <WITH/> <DO/> zu erreichen. Leider habe ich noch keine Lรถsung dazu gefunden. 

Ist das via RULES รผberhaupt mรถglich?

 

 

 

0 Kudos
4 Replies
cube
Occasional Observer

Geht dann offensichtlich nicht via RULES, sondern nur รผber ein (BeanShell) Script - oder wรผsste hier doch noch jemand einen Weg? 

0 Kudos
hoebbel
Crownpeak employee

Hallo cube,

รผber Regeln sollte es mit einem ValueService funktionieren, der den Inhalt der beiden anderen Eingabekomponenten ausliest und als String zurรผck liefert. รœber den DO Teil der Regel kann der String dann in die dritte Eingabekomponente geschrieben werden. Weitere Informationen dazu findest Du in der Dokumentation:
https://docs.e-spirit.com/odfs/vorlagenentwick/regeln/anbindung-exter/index.html

Allerdings frage ich mich, warum die Daten doppelt vorgehalten werden sollen? Warum reicht es nicht, nur bei der Ausgabe (und im Schnipsel) die Daten zusammenzufรผhren?

Viele GrรผรŸe
Holger

0 Kudos
cube
Occasional Observer

Hallo Holger,

Danke fรผr Deine Antwort!

Allerdings frage ich mich, warum die Daten doppelt vorgehalten werden sollen? Warum reicht es nicht, nur bei der 
> Ausgabe (und im Schnipsel) die Daten zusammenzufรผhren?

Hintergrund ist der, dass fรผr die Personen-Profilseiten  (liegen in einer Datenbank, via Content-Projektion eingebunden) der Wunsch besteht, die generierte URL aus Name und Vorname abzubilden (z.B. ../personen/doe-john.html).

Die Idee ist, fรผr die Seitenreferenz dieser Personenseite (Daten > "Variable fรผr Text der Menรผ-รœbersicht (Sitemap)") als Attribut anstelle des lastName  hier ein Attribut urlName  zu verwenden, das sich in der oben beschriebenen Art und Weise, automatisch via RULE befรผllt.

Mรถglicherweise aber ist die Lรถsung รผber ein Script wesentlicher einfacher als via RULE und valueService.

0 Kudos
hoebbel
Crownpeak employee

Hallo cube,

bei dem Anwendungsfall wรผrde ich in dem Scheduler, der die entsprechende Generierung durchfรผhrt, vor die Generierung ein Skript hรคngen, welches รผber alle Datensรคtze iteriert, bei denen die Eingabekomponente mit dem vollstรคndigen Namen leer ist. Also etwas in der Art von:
mySelect = <content2>.getSchema().getSession().createSelect(<content2>.getEntityType().toString());
isNullConstraint = new isNull("<Spaltenname>");
mySelect.setConstraint(isNullConstraint);

Und das diese dann entsprechend fรผllt und die Datensรคtze freigibt. (im Skript muss unter Eigenschaften eine eigene Verbindung konfiguriert werden und der dort hinterlegt User muss ausreichend Rechte dafรผr haben)

Danach muss dann der Startzeitpunkt der Generierung auf "jetzt" gesetzt werden (context.setStartTime(new Date())), damit die ร„nderungen auch berรผcksichtigt werden. 

Das hat den Vorteil, dass vor jeder entsprechenden Verรถffentlichung die Daten aktualisiert werden - und auch nur dann.

Viele GrรผรŸe
Holger

0 Kudos

Type a product name