Page 1 of 1

[gelöst] Wie prüfe ich die node->hierarchy?

Posted: Mon Aug 16, 2010 1:22 pm
by nicmare
Ich habe eine Seite die so aufgebaut ist:

Code: Select all

- Abschnittsüberschrift 1
- - Seite 1
- - Seite 2
- - Seite 3
- - Seite 4
- Abschnittsüberschrift 2
- - Seite 1
- - Seite 2
Alle seiten verwenden das selbe Template. Standardmäßig werden im Menü aber nur die Seiten 1.1 - 1.4 angezeigt:

Code: Select all

{menu start_level="2" number_of_levels="1" collapse="1"}
(Seite 1.1 ist die Standardseite)
Ich möchte aber dass die Seiten aus 1 auf die erste Seite 2.1 linken. Drum habe ich im Template einen Link eingefügt. Das funktioniert. Wenn ich aber nun in 2.1 bin, möchte ich wieder zurück zu 1.1 verlinken. Was mir also fehlt, ist eine Abfrage, die prüft wo ich mich gerade befinde. Ich möchte es vermeiden für diese Kleinigkeit ein extra Template anzulegen! Darum die Abfrage. Wie könnte ich das machen?

Re: Wie prüfe ich die node->hierarchy?

Posted: Mon Aug 16, 2010 1:39 pm
by nockenfell
Schau dir mal die Node-Infos an. Mit $node->hierarchy und $node->depth findest du bereits einiges heraus.

Re: Wie prüfe ich die node->hierarchy?

Posted: Mon Aug 16, 2010 1:42 pm
by nicmare
genau. das habe ich ja schon herausgefunden (siehe threadtitel).
wobei die depth ja überall identisch ist.
einziger unterschied ist bei hierarchy zu finden.
Problem ist aber dass diese ja so aufgebaut ist: 1.1,1.2,1.3 und 2.1,2.2 usw.
Also dachte ich mir dass man vielleicht irgendwie das erste Zeichen die hierarchy abfragen kann. Aber wie?

Re: Wie prüfe ich die node->hierarchy?

Posted: Mon Aug 16, 2010 1:46 pm
by nockenfell
Wenn du nur einen Teil der hierarchy brauchst, kannst du diesen mittels PHP zurecht schnippseln:
http://www.smarty.net/forums/viewtopic.php?t=9821

Code: Select all

{$node->hierarchy|substr:0:1} 

Re: Wie prüfe ich die node->hierarchy?

Posted: Mon Aug 16, 2010 1:48 pm
by nicmare
komisch.

Code: Select all

{if $node->hierarchy.value == 1}<a href="link.html">Link</a>{/if}
hat schon gereicht?!
also hierarchy gibt mir schon lediglich das erste Zeichen aus.

geht übrigens auch mit {if $friendly_position.value == 1}