Inline Relational Record Editing - IRRE

Per Relation verknüpfte Datensätze über sogenanntes IRRE anlegen und verwalten, ist ein praktisches Feature, dass viele Extensions nicht nutzen, obwohl TYPO3 dieses schon seit längerer Zeit unterstützt.

Ein gutes Beispiel ist die weit verbreitete Extension Powermail.

Inline Relational Record Editing kurz: IRRE ist das Anlegen von zugehörigen Datensätzen innerhalb eines TYPO3-Datensatzes. Hierbei ist es demnach nicht mehr notwendig das Fenster zu verlassen, sondern kann alles auf einen Blick bearbeiten.

Beispiel, noch in pibase:

Es existieren zwei Datenbank-Tabellen: Schüler und Hobbys.

Jeder Schüler kann beliebig viele Hobbys haben. In diesem Beispiel werden die Hobbys für jeden Schüler extra gespeichert, d.h. z.B. Fußball wird evtl. mehrfach vorkommen, was uns aber erst mal nicht stören sollte.

Vereinfachte Datenbankstruktur:

Tabelle tx_cinexample_schueler

  • uid
  • title
  • hobbys

Tabelle tx_cinexample_hobbys

  • uid
  • title
  • schueler

Jedes Hobby ist also über seinen Fremdschlüssel "schueler" mit der fremden Tabelle Schüler verbunden. Schüler wiederrum benötigt für die umgekehrte Richtung ein Feld hobbys, welches später zu unserem IRRE-Feld wird.

Wenn Ihr mit dem Kickstarter arbeitet, legt zunächst ein Feld unter tx_cinexample_schueler als Datenbank-Relation zu Hobbys an. "Max Number Of Relations" könnt Ihr hochsetzen und True M-M relations sind nicht notwendig. Wir werden aus diesem Feld im tca eh später ein INLINE Feld machen. 

Wenn diese Struktur steht, öffnet die Datei tca.php der Extension und sucht das Feld hobbys in der Tabelle tx_cinexample_schueler.

Hier macht folgende Anpassungen:

'tx_cinexample_schueler' => array (
			'exclude' => 0,
			'label' => 'LLL:EXT:cin_example/locallang_db.xml:tx_cinexample_schueler.hobbys',
			'config' => array (
				'type' => 'inline',
				'foreign_table' => 'tx_cinexample_hobbys',
				'foreign_field' => 'schueler',
				'size' => 1,
				'minitems' => 0,
				'maxitems' => 100,
			)
		),

Natürlich müsst Ihr die Werte eurer Extension entsprechend abändern.

Das war es aber auch schon. Speichert die Datei und legt einen neuen Schüler-Datensatz an. Wenn Ihr alles richtig gemacht habt, ist es jetzt möglich innerhalb eines Schüler-Datensatzes zugehörige Hobbys anzulegen.