Search the FirstSpirit Knowledge Base
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
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
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
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
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