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