Typo3 Extensions mit IRRE: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 1: Zeile 1:
 
Stichpunkte:
 
Stichpunkte:
  
* Kindtabellen (n-Tabelle) benötigen die Felder parenttable und parentid (kann auch anders benannt werden) diese enthalten später die Elterntabelle und die uid des Elterndatensatzes (weak entity - der Kind Datensatz weiß wohin er gehört)
+
* '''Kindtabellen''' (n-Tabelle) '''benötigen die Felder parenttable und parentid''' (kann auch anders benannt werden) diese enthalten später die Elterntabelle und die uid des Elterndatensatzes (weak entity - der Kind Datensatz weiß wohin er gehört). Elterntabellen enthalten ein Feld das aussagt welche Kindtabelle dazugehört (siehe Beispiel) Dieses Feld kann im EM als Integer angelegt werden.
  
** Diese Felder kann man im Extension Manager als Typ PassThrough anlegen, das werden dann tinytext-Felder ist geht aber trotzdem.
+
** Die Felder parenttable und parentid kann man im Extension Manager als Typ PassThrough anlegen, das werden dann tinytext-Felder angelegt, geht aber trotzdem.  
  
 
* tca.php anpassen
 
* tca.php anpassen
** Die tca Definition der Elterntabelle enthält die Verweise auf die Kindtabelle z.B.:
+
** Die tca Definition der Elterntabelle enthält die Verweise auf die Kindtabelle (das Integer Feld) und muß als Inline Feld umdeklariert werden z.B.:
 
<pre>
 
<pre>
 
$TCA["tx_irrehotel_hotel"] = Array (
 
$TCA["tx_irrehotel_hotel"] = Array (

Version vom 26. Juli 2007, 15:54 Uhr

Stichpunkte:

  • Kindtabellen (n-Tabelle) benötigen die Felder parenttable und parentid (kann auch anders benannt werden) diese enthalten später die Elterntabelle und die uid des Elterndatensatzes (weak entity - der Kind Datensatz weiß wohin er gehört). Elterntabellen enthalten ein Feld das aussagt welche Kindtabelle dazugehört (siehe Beispiel) Dieses Feld kann im EM als Integer angelegt werden.
    • Die Felder parenttable und parentid kann man im Extension Manager als Typ PassThrough anlegen, das werden dann tinytext-Felder angelegt, geht aber trotzdem.
  • tca.php anpassen
    • Die tca Definition der Elterntabelle enthält die Verweise auf die Kindtabelle (das Integer Feld) und muß als Inline Feld umdeklariert werden z.B.:
$TCA["tx_irrehotel_hotel"] = Array (
	"ctrl" => $TCA["tx_irrehotel_hotel"]["ctrl"],
	"interface" => Array (
		"showRecordFieldList" => "hidden,title,programs"
	),
	"feInterface" => $TCA["tx_irrehotel_hotel"]["feInterface"],
	"columns" => Array (
                [...],
		"programs" => Array (		
			"exclude" => 1,		
			"label" => "LLL:EXT:irre_hotel/locallang_db.xml:tx_irrehotel_hotel.programs",		
			"config" => Array (
				"type" => "inline",
				"foreign_table" => "tx_irrehotel_program",
				"foreign_field" => "parentid",
				"foreign_table_field" => "parenttable",
				"maxitems" => 10,
			)
		),
	),
	"types" => Array (
		"0" => Array("showitem" => "hidden;;1;;1-1-1, title;;;;2-2-2, programs;;;;3-3-3")
	),
	"palettes" => Array (
		"1" => Array("showitem" => "")
	)
);