arnbae
I'm new here

Verhalten von pageRefFolder.findStartNode() (API)?

Hallo,

was ist denn das korrekte Verhalten von .findStartNode(), wenn ich einen Strukturordner habe, der zwar wiederum Ordner mit Seitenreferenzen enthält, aber weder eine gültige Startseite, noch einen als Startmenü definierten Unterordner.

Das beobachtete Verhalten ist, dass FS dann den irgendeinen (ersten? erstbesten?) Startknoten aus einem der Unterordner zurückliefert. In diesem Fall hätte ich aber erwartet, dass null zurückgeliefert wird, weil eigentlich der Zustand undefiniert ist (weder Startseite noch Startmenü mit gültiger Startseite). Das beschriebene Verhalten erscheint mir willkürlich und nicht nachvollziehbar.

Und: Ist das dasselbe Verhalten, welches auch der Navigation-Funktion in den Templates zugrund liegt?

Grüße,

Arndt Bär

Labels (2)
Tags (3)
0 Kudos
5 Replies
Peter_Jodeleit
Crownpeak employee
Crownpeak employee

Re: Verhalten von pageRefFolder.findStartNode() (API)?

Die API-Doc sagt: "[..] The returned node [..] must not be a direct child of this folder.".

Du willst glaube ich getStartNode() benutzen: "Returns the startnode of this folder which is a direct child of this folder or null if no start node is defined."

Peter
0 Kudos
arnbae
I'm new here

Re: Verhalten von pageRefFolder.findStartNode() (API)?

Hallo,

ich berüchsichtige jetzt mal nicht, dass der Satz übersetzt eigentlich heißt (Achtung, Klugsch...-Alarm Smiley Wink): "[...] Der zurückgegebene Knoten [...] darf kein direktes Kind dieses Ordners sein". Meiner ursprünglichen Fragestellung lag schon das Verständnis "muss nicht (unbedingt)" zugrunde.

Ich formuliere aber meine Frage nochmal anders: Wie ist denn das definierte Verhalten, wenn ein Ordner weder einen Startordner noch ein Startdokument enthält? Ich vermute, dass das Interface das nicht zulassen sollte, aber es passiert doch ab und an. Wird dann das Startdokument des ersten Kindordners hergenommen? "Erster" im Sinne von "Menüreihenfolge", "ID", ...? Oder ist dieser Fall überhaupt nicht explizit definiert?

Ich will einfach nur das Verhalten verstehen, um besser drauf reagieren zu können. GetStartNode() und getStartFolder() habe ich übrigens schon verwendet, um die Gültigkeit in meinem Sinne zu prüfen, aber das ist natürlich eine recht aufwändige Schleife, wo evtl. nur ein Befehl notwendig gewesen wäre.

Danke & Grüße,

Arndt

0 Kudos
gockel
Crownpeak employee
Crownpeak employee

Re: Verhalten von pageRefFolder.findStartNode() (API)?

Wie ist denn das definierte Verhalten, wenn ein Ordner weder einen Startordner noch ein Startdokument enthält?

Es wird der erste Startknoten zurückgeliefert, der sich aufgrund der zugrundeliegenden Depth-First-Iteration ergibt, falls in dem Teilbaum überhaupt irgendwo ein Startknoten definiert ist, ansonsten null. Die Reihenfolge ergibt sich aus der Kindliste (in der Strukturverwaltung also der Menüreihenfolge).

arnbae
I'm new here

Re: Verhalten von pageRefFolder.findStartNode() (API)?

Danke! Noch eine Frage: Verhält sich die Navigation genauso?

Bevor ich übrigens versuche, das meinen Redakteuren zu erklären, werde ich meine bisherige Strategie weiter beibehalten: Im Baum rekursieren, und wenn ich keine explizit festgelegte Startseite finde, eine Warnung ausgeben.

Wir hatten schon verschiedene Supportfälle, wo der Redakteur mich frage, wie er/sie denn erkennen können, welche Seite denn bei einem Mausklick erscheint. Die Antwort ging da ins Leere, wo die Startseite / der Startordner auf einer Ebene fehlte.:smileyplain:

0 Kudos
gockel
Crownpeak employee
Crownpeak employee

Re: Verhalten von pageRefFolder.findStartNode() (API)?

> Noch eine Frage: Verhält sich die Navigation genauso?

Ja, die Navigationsfunktion verwendet die gleiche Methode.

0 Kudos