Zum Inhalt springen

tt_address erweitern

Erstellt am 16. Juni 2015 · 4 Antworten · letzte Antwort am 16. Juni 2015

Tags: tt_address, Frage

tom_meier ·

Hallo,
ich wollte die tt_address Tabelle um drei Felder erweitern. Unter TYPO3 4.xx habe ich eine Extension mit den neuen Felder erzeugt und dann die Felder z.b im Directmail subscription eingefügt Typoscript von Directmail subriction angepasst und es lief.

Nun in TYPO3 6.2 läuft diese Extentiosn nicht mehr. Die Datenfelder werden zwar in der DB angelegt, nicht aber im TCA von tt_address. Folglich werden die neuen Felder auch nich angezeigt und nicht gespeichert.

Auch eine neue Extension mit dem Extensionbuilder hat das gleiche Ergebnis. Dort werden die Felder zwar dem TCA von tt_address hinzugefügt aber denoch nicht angezeigt und nicht gespeichert.

Habe ich da was übersehen? Gibt es ein Beispiel zur Erweiterung von tt_address unter TYPO3 6.2.

VG
Tom

toifel ·

Ich schätze, dir fehlen nur die passenden Einträge in "showitem".

Es reicht nicht, wenn du die Felder nur in $TCA['tt_address']['columns']['FeldYYY'] definierst. Diese neuen Felder müssen auch in $TCA['tt_address']['types']['1']['showitem'] hinzugefügt werden, dann sollten sie auch im Backend angezeigt werden.

tom_meier ·

Hallo,

das habe ich auch schon probiert.

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_address',$tmp_directmaildse_columns);

$GLOBALS['TCA']['tt_address']['types']['Tx_Directmaildse_Directmaildse']['showitem'] = $TCA['tt_address']['types']['1']['showitem'];
$GLOBALS['TCA']['tt_address']['types']['Tx_Directmaildse_Directmaildse']['showitem'] .= ',--div--;LLL:EXT:directmaildse/Resources/Private/Language/locallang_db.xlf:tx_directmaildse_domain_model_directmaildse,';
$GLOBALS['TCA']['tt_address']['types']['Tx_Directmaildse_Directmaildse']['showitem'] .= 'datenschutzmail, datenschutzprint, datenschutztelefon';

$GLOBALS['TCA']['tt_address']['columns'][$TCA['tt_address']['ctrl']['type']]['config']['items'][] = array('LLL:EXT:directmaildse/Resources/Private/Language/locallang_db.xlf:tt_address.tx_extbase_type.Tx_Directmaildse_Directmaildse','Tx_Directmaildse_Directmaildse');

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('tt_address', $GLOBALS['TCA']['tt_address']['ctrl']['type'],'','after:' . $TCA['tt_address']['ctrl']['label']);

usw.

Die Felder werden einfach nicht angezeigt. Auch wenn ich das Post Array des Formulars auslese sind die Werte leer. Warum aich immer. Nur die "alten" Name Vorname usw. funktionieren.

Habe es auch schon mit Konfiguration/TCA/Overrides/tt_address.php veruscht. Geht auch nicht.

Vg
Tom

tom_meier ·

So nun habe ich es soweit das die Felder bei tt_address im Datensatz angezeigt werden. Allerdings werden die Werte aus dem subscriptionformular nicht gespeichert. Wenn ich das im Datensatz mache, werden die Daten gespeichert.

Weiss jemand woran das liegen kann das jetzt nicht gespeichert wird?

PS: Es lag anscheindend doch am showitem obwohl ist das schon drin hatte. Evtl. cache Problem.

Vg
Tom

tom_meier ·

So, nun geht alles.

ich musste noch mit $GLOBALS['TCA']['tt_address']['feInterface']['fe_admin_fieldList'] .= XXX,xXX
die felder hinzufügen.

Allerdings gibt es eine Bug den ich musste .=', xxx,xxx,xxx' schreiben, also mit führendem Komma.

Vg
Tom