Questions & Answers

SOLVED
Schmatrick
Returning Observer

Aus Absatzreferenz die Pagereferenz ermitteln

Jump to solution

Hallo Zusammen, 

ich muss von einer Absatzreferenz den Ursprung ermitteln und die dazugehรถrige Page mittels $CMS_REF$ verlinken. 

Geschafft habe ich das bisher mit folgenden Audruck:

$CMS_REF(#this.getReferences.toArray[0].getReferencedElement.getParent.getParent)$

Geht das auch irgendwie eleganter?

Viele GrรผรŸe, 
Patrick Wittke

 

EDIT: Ah, klappt doch noch nicht, da ich hier auf den Pagestore verweise

EDIT: so klappt es $CMS_REF(#this.getReferences.toArray[0].getReferencedElement.getParent.getParent.getPageRefs.toArray[0])$

Geht das irgendwie hรผbscher? Hier wird vorrausgesetzt, dass es immer nur eine Referenz gibt. 

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Patrick,

erst einmal die Frage, warum Du das brauchst?

Hintergrund der Frage ist, dass mit FirstSpirit 2022.7 im ContentCreator die Mรถglichkeit geschaffen wird, zum Quellabsatz einer Absatzreferenz zu springen. (รผber einen modifizierten Standardreport, der รผber die Absatzreferenz aufgerufen werden kann)

Der korrekt Templatecode, um zum Quellabsatz zu springen, wรคre รผbrigens:

 

$CMS_SET(set_element,#global.section)$
$CMS_IF(set_element.isReference())$
	$CMS_FOR(for_index,[1..20])$
		$CMS_SET(set_element,set_element.getReference())$
		$CMS_IF(!set_element.isReference())$$CMS_SET(void, #for.BREAK)$$CMS_END_IF$
	$CMS_END_FOR$	
$CMS_END_IF$

 

Der berรผcksichtigt auch, dass eine Absatzreferenz auf einer Absatzreferenz beruhen kann. Wenn im Projekt solche Ketten mit mehr als 20 Elementen vorhanden sein kรถnnen, muss die FOR Schleife entsprechend grรถรŸer definiert werden.

Fรผr eine einfache Template-Lรถsung, um den Quellabsatz direkt zu bekommen, kรถnntest Du einen Feature Request einstellen. Den brauche ich (mit mรถglichst vielen Kudos), um ein entsprechendes Feature intern auf den Weg bringen zu kรถnnen.

Vom Absatz zur [ersten] Seitenreferenz hast Du den Weg dann ja "gefunden", auch wenn ich anstelle von ".toArray[0]" lieber ".first" nehmen wรผrde ๐Ÿ˜‰

Viele GrรผรŸe
Holger

View solution in original post

0 Kudos
1 Reply
hoebbel
Crownpeak employee

Hallo Patrick,

erst einmal die Frage, warum Du das brauchst?

Hintergrund der Frage ist, dass mit FirstSpirit 2022.7 im ContentCreator die Mรถglichkeit geschaffen wird, zum Quellabsatz einer Absatzreferenz zu springen. (รผber einen modifizierten Standardreport, der รผber die Absatzreferenz aufgerufen werden kann)

Der korrekt Templatecode, um zum Quellabsatz zu springen, wรคre รผbrigens:

 

$CMS_SET(set_element,#global.section)$
$CMS_IF(set_element.isReference())$
	$CMS_FOR(for_index,[1..20])$
		$CMS_SET(set_element,set_element.getReference())$
		$CMS_IF(!set_element.isReference())$$CMS_SET(void, #for.BREAK)$$CMS_END_IF$
	$CMS_END_FOR$	
$CMS_END_IF$

 

Der berรผcksichtigt auch, dass eine Absatzreferenz auf einer Absatzreferenz beruhen kann. Wenn im Projekt solche Ketten mit mehr als 20 Elementen vorhanden sein kรถnnen, muss die FOR Schleife entsprechend grรถรŸer definiert werden.

Fรผr eine einfache Template-Lรถsung, um den Quellabsatz direkt zu bekommen, kรถnntest Du einen Feature Request einstellen. Den brauche ich (mit mรถglichst vielen Kudos), um ein entsprechendes Feature intern auf den Weg bringen zu kรถnnen.

Vom Absatz zur [ersten] Seitenreferenz hast Du den Weg dann ja "gefunden", auch wenn ich anstelle von ".toArray[0]" lieber ".first" nehmen wรผrde ๐Ÿ˜‰

Viele GrรผรŸe
Holger

0 Kudos

Type a product name