---
title: "Page-Tree mit Extbase Modellieren klappt nicht richtig"
url: "https://www.typo3.net/d/114288-page-tree-mit-extbase-modellieren-klappt-nicht-richtig"
source: "typo3.net"
tags: ["Extensions","Extbase","Frage","Seiten & Seitenbaum"]
created: "2013-03-21"
last_reply: "2013-03-21"
replies: 1
solved: true
page: 1
pages: 1
lang: "de"
---

# Page-Tree mit Extbase Modellieren klappt nicht richtig

Extensions › Extbase · 1 Antwort · gelöst · gestartet 2013-03-21

## Frage

**Unbekannter Benutzer** · 2013-03-21 · [Beitrag #1](https://www.typo3.net/d/114288-page-tree-mit-extbase-modellieren-klappt-nicht-richtig/1)

Hallo,

ich erstelle gerade eine Extbase-Fluid Extension, die den Kompletten Seitenbaum darstellen soll. Damit ich das Rekursiv in meinem Template machen kann benötige ich daher eine Iteration/Array der Kinder und Kindes-Kinder der jeweiligen Seiten.

Daher habe ich ein Model für "Page" erstellt und mappe diese auf die Tabelle "pages". Ebenso habe ich dem Model noch eine Relation auf sich selbst gegeben "subpages" und diese als ObjectStorage definiert. Das hat auch der Extension Builder sauber generiert (mapping musste ich natürlich selber machen).

Nun bau ich mir gerade eine methode im PageRepository um den kompletten Seitenbaum generieren zu lassen. Dies habe ich auch schon umgesetzt indem ich erstmal eine manuelle Query auf alle Seiten ablassen, die Seiten nach pid und sorting Sortiere.

Danach muss ich merkwürdigerweise für alle Seiten den jeweiligen "subpages" ObjectStorage erzeugen - was schon sehr merkwürdig ist, denn dieser hätte von der Query aus schon erzeugt werden müssen, da ja Instanzen/Klassen von "Page" erzeugt wurden und daher auch der Konstruktur aufgerufen werden müsste.

Der rest ist ziemlich trivial, man erzeugt einen neuen ObjectStorage indem die ersten Seiten reingepackt werden. Also alle Seiten ab pid = 0. Danach rufe ich eine Methode auf die mir dieses ObjectStorage mit den Unterseiten befüllt. Diese ruft sich dann selbst auf (Rekursion um die Kindes-Kinder der Seite dann zu befüllen usw.

Das Endergebnis ist aber das ich immer nur 1 Seite pro ObjectStorage zurückgeliefert bekomme, auch wenn diese mehrere Unterseiten hat. Irgendwas ist faul mit dem ObjectStorage und ich weiss nicht was.

Ich bin relativ neu im Entwicklen mit Extbase, daher wäre es super wenn Ihr mir Helfen könntet.

Model: <http://pastebin.com/P87th0h3>
Source im Repository:

```php
class PageRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
	private function findSubpages($storage, $allPages, $pid) {
		foreach ($allPages as $pageKey => $page) {
			if ($pid === $page->getPid()) {
				$storage->attach($page);
				$subpages_storage = $page->getSubpages();
				$this->findSubpages($subpages_storage, $allPages, $page->getUid());
			}
		}
		return $storage;
	}
		
	public function findAll() {
		$query = $this->createQuery();
		$query->getQuerySettings()->setRespectStoragePage(false);
		$ordering = array(
			'pid' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
			'sorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
		);
		$query->setOrderings($ordering);
		$allPages = $query->execute();
		
		// Initialize storages for all pages
		for ($i = 0; $i < count($allPages); $i++) {
			$allPages[$i]->setSubpages(new \TYPO3\CMS\ExtBase\Persistence\ObjectStorage());
		}
		
		$storage = new \TYPO3\CMS\ExtBase\Persistence\ObjectStorage();
		$this->findSubpages($storage, $allPages, 0);
		return $storage;
	}
}
```

## Beste Antwort

**Unbekannter Benutzer** · 2013-03-21 · [Beitrag #2](https://www.typo3.net/d/114288-page-tree-mit-extbase-modellieren-klappt-nicht-richtig/2)

Problem behoben, Foreach rekursiv zu verwenden in php ist eine schlechte idee. In Java/.NET/C++ oder so ist das kein Problem, in php wohl schon. Naja passt alles.

## Antworten

### [#2](https://www.typo3.net/d/114288-page-tree-mit-extbase-modellieren-klappt-nicht-richtig/2) · Unbekannter Benutzer · 2013-03-21 · Beste Antwort

(Text siehe oben unter „Beste Antwort“.)

---

Quelle: „Page-Tree mit Extbase Modellieren klappt nicht richtig“, typo3.net, https://www.typo3.net/d/114288-page-tree-mit-extbase-modellieren-klappt-nicht-richtig
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
