---
title: "\"nächste Seite\" über mehrere Ebenen"
url: "https://www.typo3.net/d/89607-naechste-seite-ueber-mehrere-ebenen"
source: "typo3.net"
tags: ["TYPO3","Menüs","Frage"]
created: "2009-05-11"
last_reply: "2011-06-23"
replies: 3
solved: false
page: 1
pages: 1
lang: "de"
---

# "nächste Seite" über mehrere Ebenen

TYPO3 › Menüs · 3 Antworten · gestartet 2009-05-11

## Eröffnungsbeitrag

**Openhair** · 2009-05-11 · [Beitrag #1](https://www.typo3.net/d/89607-naechste-seite-ueber-mehrere-ebenen/1)

Hallo.

Ich versuche gerade eine Navigation zu realisieren, die (nur auf einem Teil der Seite) zur vorhergehenden oder nächsten Seite leitet. Mit einem HMENU mit special = browse lässt sich das ja recht gut implementieren. Mein Problem besteht nun darin, dass einige der Seiten auch noch Unterseiten besitzen, die auch durchlaufen werden sollen.
Das sieht dann z.B. so aus:

- Seite 1
+ Seite 2
| - Unterseite 1
| - Unterseite 2
- Seite 3
...

Die Seiten sollen in der Reihenfolge durchlaufen werden, wie sie hier stehen. Mit special=browse kann man aber nicht so navigieren, wie ich mir das vorstelle.

Wie könnte ich das Vorhaben anders realisieren?

Christian.

## Antworten

### [#2](https://www.typo3.net/d/89607-naechste-seite-ueber-mehrere-ebenen/2) · Openhair · 2009-05-11

So..., selbst ist der Mann.

Nach einiger Zeit im Hobbykeller mit Laubsäge und Vorschlaghammer habe ich folgendes zurecht gezimmert - vielleicht hilft es ja jemandem mit ähnlichem Problem:

```typoscript
# get the parent id of a page
lib.pageup = RECORDS
lib.pageup {
	source.data = leveluid:-1
	tables = pages
	conf.pages = TEXT
	conf.pages.field = pid
}
# get the id of the first child of a page
lib.pagedown = CONTENT
lib.pagedown {
	table = pages
	select {
		pidInList = this
		orderBy = sorting ASC
		where = nav_hide=0 AND hidden=0
		max = 1
	}
	renderObj = TEXT
	renderObj.field = uid
}
# get the id of a pages previous sibling
lib.pagenext = CONTENT
lib.pagenext {
	table = pages
	select {
		pidInList.cObject < lib.pageup
		orderBy = sorting ASC
		where = nav_hide=0 AND hidden=0
		andWhere.field = sorting
		andWhere.wrap = sorting > |
		max = 1
	}
	renderObj = TEXT
	renderObj.field = uid
}
# get the id of a pages next sibling
lib.pageprev = CONTENT
lib.pageprev {
	table = pages
	select {
		pidInList.cObject < lib.pageup
		orderBy = sorting DESC
		where = nav_hide=0 AND hidden=0
		andWhere.field = sorting
		andWhere.wrap = sorting < |
		max = 1
	}
	renderObj = TEXT
	renderObj.field = uid
}
# get the id of the next page in our desired order
lib.pagenavinext = TEXT
lib.pagenavinext {
	# try to go down to a lower level
	cObject < lib.pagedown
	# if not available
	ifEmpty{
		# try the next page on same level
		cObject < lib.pagenext
		# if not available
		ifEmpty{
			# try the next page on higher level
			cObject < lib.pagenext
			cObject.select.pidInList.cObject.source.data = leveluid:-2
		}
	}
}
# get the id of the previous page in our desired order
lib.pagenaviprev = TEXT
lib.pagenaviprev {
	# try to go down to a lower level
	cObject < lib.pagedown
	cObject.select.pidInList >
	cObject.select.pidInList.cObject < lib.pageprev
	# we need the last item, not the first
	cObject.select.orderBy = sorting DESC
	# if not available
	ifEmpty {
		# try the prev page on same level
		cObject < lib.pageprev
		# if not available
		ifEmpty {
			# try the prev page on a higher level
			cObject < lib.pageup
		}
	}
}
```

Angewendet könnte der Spass dann so aussehen:

```typoscript
page.10.subparts{
	PROGRESSBAR = COA
	PROGRESSBAR {
	wrap = <div id="progressbar">|</div>
	5 = TEXT
	5 {
		value = << previous
		typolink {
			parameter.cObject < lib.pagenaviprev
			# '<' needs to be html encoded, but this forum seems not to accept it
			ATagParams = class="prev" title="&lt;&lt; previous"
		}
		if.isTrue.cObject < lib.pagenaviprev
	}
	10 = HMENU
	10 {
		# usual menu to access pages directly
	}
	15 = TEXT
	15 {
		value = next >>
		typolink {
			parameter.cObject < lib.pagenavinext
			ATagParams = class="next" title="next &gt;&gt;"
		}
		if.isTrue.cObject < lib.pagenavinext
	}
}
```

Die Seite, bei der wir es angewendet haben ist leider noch nicht online, wird aber nachgereicht, sobald sie veröffentlicht wird. :D

**Kommentare, Verbesserungen, etc. sind ausdrücklich erwünscht!**

Christian.

### [#3](https://www.typo3.net/d/89607-naechste-seite-ueber-mehrere-ebenen/3) · Unbekannter Benutzer · 2009-05-12

*klatsch* Ein tolles Beispiel, was man mit Typoscript alles anstellen kann. Man könnte hier und da noch ein paar Zeilen einsparen durch kopieren, aber dafür leidet natürlich die Lesbarkeit.

### [#4](https://www.typo3.net/d/89607-naechste-seite-ueber-mehrere-ebenen/4) · j-spot · 2011-06-23

Hi Christian,

danke für das TS-Schnipsel! Da es sich vielversprechend anhörte, hab ich es gleich für meinen Fall getestet.

Leider habe ich damit noch ein Problem (siehe angehängte Grafik). Ich habe das TS als Template auf der UID 79 eingehängt.
Bis UID 130 blättert er sauber durch, danach erfolgt der Sprung auf UID 222, was ja nicht stimmt. UID 131 wäre richtig!
Habe den Eindruck das in lib.pagenext ein sorting aus der falschen Ebene genutzt wird, kann das sein?

Danke und Gruss von Jacob

[Bild: \[upl-image-preview uuid=4429c3b4-de87-567c-944f-99661eb56137 url=https://www.typo3.net/assets/files/typo3net/449-tree.jpg alt=tree.jpg thumbnail_url=https://www.typo3.net/assets/files/typo3net/449-tree.jpg\]](https://www.typo3.net/assets/files/typo3net/449-tree.jpg)

---

Quelle: „"nächste Seite" über mehrere Ebenen“, typo3.net, https://www.typo3.net/d/89607-naechste-seite-ueber-mehrere-ebenen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
