---
title: "Content-Elemente per IRRE einbinden"
url: "https://www.typo3.net/d/123380-content-elemente-per-irre-einbinden"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage","Inhaltselemente","TCA","TYPO3 7"]
created: "2016-11-14"
last_reply: "2016-11-18"
replies: 2
solved: true
page: 1
pages: 1
lang: "de"
---

# Content-Elemente per IRRE einbinden

Extensions › Entwicklung · 2 Antworten · gelöst · gestartet 2016-11-14

## Frage

**buzz-dee** · 2016-11-14 · [Beitrag #1](https://www.typo3.net/d/123380-content-elemente-per-irre-einbinden/1)

Hallo Leute,

ich versuche, in einer Extension (für Reiseberichte) Inhalte als tt_content-Elemente einzubinden. Habe dazu ein Model "Content" erzeugt und mappe das auf tt_content. Im Backend funktioniert das ganze auch. Ich kann die Inhalte per IRRE anlegen. Die Uids der Reiseberichte werden auch korrekt in tt_content abgespeichert und im Reisebericht steht auch die richtig Anzahl der zugehörigen Content-Elemente.

Das Problem ist, dass ich keinen Zugriff im FE-Plugin habe. Dort wird mir beim Debuggen der inhalte-Eigenschaft nur ein leeres ObjectStorage ausgegeben.

Habe in der Reisebericht Klasse die Eigenschaft angelegt und entsprechende Getter/Setter:

```php
 /**
     * Inhalte
     *
     * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\SGMultimedia\SgEducataidreiseberichte\Domain\Model\Content>
     * @cascade remove
     */
    protected $inhalte = null;

    /**
     * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage
     */
    public function getInhalte(){
        return $this->inhalte;
    }

    /**
     * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage $inhalte
     */
    public function setInhalte($inhalte){
	$this->inhalte = $inhalte;
    }

    /**
     * Adds a Content
     *
     * @param \SGMultimedia\SgEducataidreiseberichte\Domain\Model\Content $inhalt
     */
    public function addInhalt(\SGMultimedia\SgEducataidreiseberichte\Domain\Model\Content $inhalt){
	$this->inhalte->attach($inhalt);
    }

    /**
     * Removes a Content
     *
     * @param \SGMultimedia\SgEducataidreiseberichte\Domain\Model\Content $inhaltToRemove
     * @return void
     */
    public function removeInhalt(\SGMultimedia\SgEducataidreiseberichte\Domain\Model\Content $inhaltToRemove){
	$this->inhalte->detach($inhaltToRemove);
    }

    /**
     * __construct
     */
    public function __construct(){
        //Do not remove the next line: It would break the functionality
        $this->initStorageObjects();
    }
    
    /**
     * Initializes all ObjectStorage properties
     * Do not modify this method!
     * It will be rewritten on each save in the extension builder
     * You may modify the constructor of this class instead
     *
     * @return void
     */
    protected function initStorageObjects(){
        $this->inhalte = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
    }
```

Im TS-Setup habe ich das mapping so vorgenommen:

```php
plugin.tx_sgeducataidreiseberichte_pi1 {
	view {
		templateRootPaths.0 = {$plugin.tx_sgeducataidreiseberichte_pi1.view.templateRootPath}
		partialRootPaths.0 = {$plugin.tx_sgeducataidreiseberichte_pi1.view.partialRootPath}
		layoutRootPaths.0 = {$plugin.tx_sgeducataidreiseberichte_pi1.view.layoutRootPath}
	}

	persistence {
		storagePid = {$plugin.tx_sgeducataidreiseberichte_pi1.persistence.storagePid}
		classes {
			SGMultimedia\SgEducataidreiseberichte\Domain\Model\Content{
				mapping{
					tableName = tt_content
					columns {
						uid.mapOnProperty = uid
					}
				}
			}

		}
	}
}
```

Was muss ich noch tun, um auch im Plugin an die Inhalte zu kommen?

## Beste Antwort

**buzz-dee** · 2016-11-17 · [Beitrag #2](https://www.typo3.net/d/123380-content-elemente-per-irre-einbinden/2)

Hab's herausgefunden ;-)

(1) In der Content-Klasse habe ich einen leeren Konstruktor eingefügt:

```php
public function __construct() {
	}
```

(2) Das TS-Setup habe ich wie folgt geändert:

```php
config.tx_extbase.persistence.classes {
	SGMultimedia\SgEducataidreiseberichte\Domain\Model\Content {
		mapping {
			tableName = tt_content
			recordType =
		}
	}
}
```

Wichtig ist hier, dass recordType angegeben und leer ist.

In der Klasse des Models, das die Content-Objekte enthalten soll (die oben aus dem Thread) konnte ich "setInhalte", "addInhalt" und "removeInhalt" entfernen, da ich die Inhalte im FE ja nur auslesen möchte.

## Antworten

### [#2](https://www.typo3.net/d/123380-content-elemente-per-irre-einbinden/2) · buzz-dee · 2016-11-17 · Beste Antwort

(Text siehe oben unter „Beste Antwort“.)

### [#3](https://www.typo3.net/d/123380-content-elemente-per-irre-einbinden/3) · BastianBalthasarBux · 2016-11-18

Nur so als kurzen Hinweis: verwende doch englisch bei funktions- und klassennamen. ;)
dieses denglisch gemisch ist ja schauderhaft. ;)

---

Quelle: „Content-Elemente per IRRE einbinden“, typo3.net, https://www.typo3.net/d/123380-content-elemente-per-irre-einbinden
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
