TYPO3-Turorial: Faxnummer zu lang? Vordefinierte TCA-Felder ändern

TYPO3 Tutorials by undkonsorten BerlinDarf eine Faxnummer länger als 20 Zeichen sein? Nein. Zumindest nicht, wenn es nach TYPO3 geht. In der Backend-Eingabemaske für die Frontend-User (FE-User) ist standardgemäß eine Länge von 20 Zeichen vorgesehen. Unsere Berliner Faxnummer 0049 - 30 - 20236354 - 9 hat aber 25 Zeichen. Wir hatten die Wahl: Umzug in eine kleinere Stadt mit kleineren Telefonnummern oder die Anpassung des TYPO3-Backends. Nach langen Diskussionen haben wir uns dann für die letzte Variante entschieden. Um auch Euch einen Umzug zu ersparen, wird nachfolgend beschrieben, wie man im TCA (TYPO3 Configuration Array) solche Angaben ändern kann. Angenommen wir möchten die Länge des Feldes fax in fe_user ändern (dieser Wert ist standardgemäß auf 20 Zeichen gesetzt). Um sich einen Überblick zu verschaffen wie die Felder im TCA definiert sind sollte man sich die Datei /typo3/sysext/cms/tbl_cms.php einmal anschauen. Hier sind u.a. die Standarddefinitionen der Tabelle fe_users abgelegt. Dies sieht wie folgt aus:
TCA['fe_users'] = Array (
...
'columns' => Array (
	'fax' => Array (
		'exclude' => 1,
		'label' => 'LLL:EXT:lang/locallang_general.php:LGL.fax',
		'config' => Array (
			'type' => 'input',
			'size' => '20',
			'eval' => 'trim',
			'max' => '20'
		)
	)
)
...
)

Um jetzt size und max zu überschreiben ändern wir aber nicht diese Datei. Nein, nein, nein. Das Überschreiben findet in der /typo3conf/extTables.php statt. Um Ändern von size und max muss man hier einfach Folgendes einfügen:

$GLOBALS['TCA']['fe_users']['columns']['fax']['config']['size'] = 30; $GLOBALS['TCA']['fe_users']['columns']['fax']['config']['max'] = 30; In der /typo3conf/localconf.php muss nun noch sichergestellt werden, das die /typo3conf/extTables.php auch eingebunden ist. Dazu einfach an das Ende der Datei folgenden Eintrag hinzufügen:

$typo_db_extTableDef_script = 'extTables.php';

Fertig. Problem ohne Umzug gelöst!


Kommentare

Heutzutage (TYPO3 v9) muss die Änderung in `typo3conf/ext/yourextension/Configuration/TCA/Overrides/fe_users.php`stehen und in der `ext_tables.sql` fehlt dann noch das hier:

`CREATE TABLE fe_users (

fax varchar(255) DEFAULT '' NOT NULL

);`

Dann klappts.

Man muss noch bei den Feldern in der Datenbank die erlaubte Size erhöhen, z.B. über phpmyadmin

[...] TYPO3-Turorial: Faxnummer zu lang? Vordefinierte TCA-Felder ändern [...]

DB-Compare kann man gerne laufen lassen, hat aber bei mir auch ohne funktioniert. Im Zweifelsfall aber laufen lassen, damit die TCA Einstellungen auch in der Datenbank übernommen werden.

Eike

Ich komme für ihnen fax nicht weiter als 24 Zeichen. Aber wichtiger ist meine frage: "Soll man nicht die db-compare im installtool laufen lassen?"

Grüsse,

Daniel


Kommentar schreiben

* Diese Felder sind erforderlich