Questions & Answers

SOLVED
matthiasforberg
Occasional Collector

RULES: Property PAGE_UID in Metadaten?

Jump to solution

Hallo zusammen,

nach Vorbild dieser Lรถsung von @hoebbel habe ich die Property PAGE_UID in einer Regel verwendet, die per ValueService abfragt, ob die Seite in einem bestimmten Ordner liegt. Hier die Regel:

 

<RULE>
	<SCHEDULE delay="0" id="pagepath" service="PagePathValueService">
		<!-- the current page -->
		<PARAM name="pageUid">
			<PROPERTY name="PAGE_UID" source="#global"/>
		</PARAM>
		<!-- folder uid to be checked -->
		<PARAM name="folderUid">
			<TEXT>special_folder</TEXT>
		</PARAM>
	</SCHEDULE>
	<DO>
		<PROPERTY name="VISIBLE" source="#form.md_special"/>
	</DO>
</RULE>

 

Das funktioniert auch wunderbar, wenn ich es im Formular einer Seite verwende. Jetzt habe ich aber einen Fall, wo es ein Feld in den Metadaten einblenden soll, aber offenbar funktioniert dies nicht im Metadaten-Template. Ich bekomme dann die Warnung:

 

WARN  18.10.2024 11:38:49.142 (de.espirit.firstspirit.forms.rules.FactService): There is no fact 'PAGE_UID' for item '#global'!

 

Und der ValueService wird รผberhaupt nicht ausgefรผhrt.

Mir ist auch aufgefallen, dass die von Holger vorgeschlagene Property PAGE_UID gar nicht in der ODFS aufgelistet ist.

Ist das ein offizieller Weg, so etwas zu tun? Oder kann man noch irgendwie anders in Regeln auf die aktuelle Seite zugreifen? Und was muss ich anders machen, damit es auch in den Metadaten funktioniert?

Viele GrรผรŸe
Matthias

 

0 Kudos
2 Solutions

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Matthias,

zur Doku - den Parameter findest Du hier (Beispiel A), er kann also problemlos genutzt werden.

Kann es sein, dass Du die Metadaten im Sitestore (blau) bearbeitest und nicht im Pagestore (grรผn)?
In diesem Fall handelt kann es nicht funktionieren, da der Knoten keine PAGE_UID hat (die Seitenreferenz kann ja beliebig viele Seiten referenzieren).
In diesem Fall muss Du die ID der Seitenreferenz an den ValueService รผbergeben und im Service selber dir die Seite zu der Seitenreferenz holen.

Viele GrรผรŸe
Holger

View solution in original post

0 Kudos
matthiasforberg
Occasional Collector

Danke Holger! Die Idee mit der ID ist zwar auch nicht schlecht, aber ich habe durch diesen Hinweis erst gemerkt, dass ich zu blรถd bin. Du hattest Recht, die Metadaten werden hierbei im Sitestore bearbeitet. Den Verdacht hatte ich auch schon, dass es daran liegt und dass da PAGE_UID mรถglicherweise nicht greift.

Manchmal braucht man eben einen Schubs ๐Ÿ˜‰ Ich habe statt PAGE_UID jetzt einfach UID genommen, das geht immer und funktioniert so wie ich will.

GrรผรŸe
Matthias

View solution in original post

0 Kudos
2 Replies
hoebbel
Crownpeak employee

Hallo Matthias,

zur Doku - den Parameter findest Du hier (Beispiel A), er kann also problemlos genutzt werden.

Kann es sein, dass Du die Metadaten im Sitestore (blau) bearbeitest und nicht im Pagestore (grรผn)?
In diesem Fall handelt kann es nicht funktionieren, da der Knoten keine PAGE_UID hat (die Seitenreferenz kann ja beliebig viele Seiten referenzieren).
In diesem Fall muss Du die ID der Seitenreferenz an den ValueService รผbergeben und im Service selber dir die Seite zu der Seitenreferenz holen.

Viele GrรผรŸe
Holger

0 Kudos
matthiasforberg
Occasional Collector

Danke Holger! Die Idee mit der ID ist zwar auch nicht schlecht, aber ich habe durch diesen Hinweis erst gemerkt, dass ich zu blรถd bin. Du hattest Recht, die Metadaten werden hierbei im Sitestore bearbeitet. Den Verdacht hatte ich auch schon, dass es daran liegt und dass da PAGE_UID mรถglicherweise nicht greift.

Manchmal braucht man eben einen Schubs ๐Ÿ˜‰ Ich habe statt PAGE_UID jetzt einfach UID genommen, das geht immer und funktioniert so wie ich will.

GrรผรŸe
Matthias

0 Kudos

Type a product name