Zum Inhalt springen

TCA, Label wird bei foreign_table Feld nicht angezeigt -> ["no title"]

Erstellt am 7. Oktober 2014 · 2 Antworten · letzte Antwort am 7. Oktober 2014

Tags: TCA, tt_news, TYPO3 4.x, Frage

dan33 ·

Hallo Community!

Nachdem ich nun über 8 Stunden an einem Problem gewerkt habe hoffe ich, dass mir hier jemand helfen kann.

Ich habe die tt_news um ein feld erweitert (eigentlich bereits um mehrere, aber es geht hier nur um ein spezielles Feld).
Dieses Feld soll eine Select Box mit Werten aus einer anderen Tabelle sein.

Die Box wird auch angezeigt - nur der korrekte Spaltentitel wird nicht angezeigt. Statt dessen bekomme ich ein "['no title']" bzw. wird auf ein alternatives Feld zurück gefallen (hier geht aber auch nur das UID Feld).

Anbei die wichtigen Code-Teile:

Tables.sql

CREATE TABLE tx_my_jobs (
	uid INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
	pid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
	tstamp INT(11) UNSIGNED NULL DEFAULT '0',
	crdate INT(11) UNSIGNED NULL DEFAULT '0',
	cruser_id INT(11) UNSIGNED NULL DEFAULT '0',
	sorting INT(10) NULL DEFAULT '0',
	my_job_desc tinytext,
	MY_JOB_ID INT(10) NULL DEFAULT NULL,
	MY_JOB_STANDORT INT(10) NULL DEFAULT NULL,
	MY_JOB_COMBINED VARCHAR(100) NULL DEFAULT NULL,
	PRIMARY KEY (uid),
	INDEX `parent` (pid)
);

tables.php

$TCA['tx_kpmg_bmd_jobs'] = array (
    'ctrl' => array (
        'title'     => 'my_job_desc_title',        
        'label'     => 'my_job_desc',    
        'label_alt'     => 'uid',    
        'tstamp'    => 'tstamp',
        'crdate'    => 'crdate',
        'cruser_id' => 'cruser_id',
        'default_sortby' => 'ORDER BY crdate',    
    ),
 		'interface' => array (
        'showRecordFieldList' => 'my_job_desc,my_job_id,my_job_combined'
    ),
);

$tempColumns = array (

	'tx_ttnewsevent_jobid' => Array (
			'disabled' => 1,
			'exclude' => 1,
			'label' => 'LLL:EXT:tt_news_event/locallang_db.xml:tt_news.tx_ttnewsevent_jobid',
			'config' => Array (
				'type' => 'input',
				'size' => '4',
				'default' => '0'
			)
		),
	'bmd_job_desc' => Array (
			'disabled' => 0,
			'exclude' => 1,
			'label' => 'my_job_bmd_desc',
			'config' => Array (
        'items' => array(
                array(' --- Bitte waehlen --- ',0)
                        ), 				


        'type' => 'select',
      	'foreign_table' => 'tx_my_jobs',

        'size' => 1,
 				'rootLevel' => 1,
        'minitems' => 0,
        'maxitems' => 1		
      	)
		),
		
	/* einige andere Felder */



);


// Alle Felder in einen neuen Tab anzeigen
t3lib_div::loadTCA('tt_news');
t3lib_extMgm::addTCAcolumns('tt_news',$tempColumns,1);
t3lib_extMgm::addToAllTCAtypes('tt_news','tx_ttnewsevent_jobid,my_job_desc');  /* + weitere felder */


?>

Verwende ich als foreign_table irgendeine andere Tabelle klappt es. Nur bei meiner Tabelle wird immer "no title" bzw. eben das label_alt Feld angezeigt (aber hier klappt auch nur die uid).

Ich hoffe irgendwer hat noch eine Idee 😉

lg,
Dan

Schweriner ·

$TCA['tx_kpmg_bmd_jobs'] entspricht nicht dem Tabellennamen? (tx_my_jobs)
Und was ist das schon wieder für ein Feld...: 'label' => 'my_job_bmd_desc', ?

dan33 ·

stimmt, hier lag ein copy fehler vor (weil ich einige Teile ausgetauscht habe, da der Code sonst ewig lange ist).

Ich konnte das Problem jetzt nur lösen indem ich für die Tabelle eine eigene Extension geschrieben habe.
Auf diese Tabelle verweise ich dann in der Original-Extension wo ich das Feld angezeigt bekommen möchte.
So klappt es nun.

Warum auch immer schaffe ich es leider nicht die beiden Extensions zu verbinden was eigentlich mein Plan war. Aber soll mir jetzt auch recht sein.

Danke auf jedenfall für die Hilfe.