[TYPO3-german] Model erweitern

Eike Starkmann starkmann at undkonsorten.com
Tue Jan 6 10:34:36 CET 2015


Am 05.01.2015 um 19:23 schrieb Philipp Gampe:
> Die "neue" Methode ist identisch zu alten mit den kleinen Ausnahme, dass das 
> TCA gecached wird und nicht jedes mal neue evaluiert wird.

Das ist aber komisch.

ext_tables.php:

$tmp_extend_eventmgmt_columns = array(

	'projects' => array(
		'exclude' => 1,
		'label' =>
'LLL:EXT:extend_eventmgmt/Resources/Private/Language/locallang_db.xlf:tx_extendeventmgmt_domain_model_event.projects',
		'l10n_mode' => 'exclude',
		'config' => array(
			'type' => 'select',
			'foreign_table' => 'tx_extendeventmgmt_domain_model_projects',
			'foreign_table_where' => 'AND
tx_extendeventmgmt_domain_model_projects.hidden=0 AND
tx_extendeventmgmt_domain_model_projects.sys_language_uid=0 ORDER BY
tx_extendeventmgmt_domain_model_projects.title',
			'MM' => 'tx_extendeventmgmt_event_projects_mm',
			'size' => 10,
			'autoSizeMax' => 30,
			'maxitems' => 9999,
			'multiple' => 0,
			'wizards' => array(
				'_PADDING' => 1,
				'_VERTICAL' => 1,
				'edit' => array(
					'type' => 'popup',
					'title' => 'Edit',
					'script' => 'wizard_edit.php',
					'icon' => 'edit2.gif',
					'popup_onlyOpenIfSelected' => 1,
					'JSopenParams' =>
'height=350,width=580,status=0,menubar=0,scrollbars=1',
					),
				'add' => Array(
					'type' => 'script',
					'title' => 'Create new',
					'icon' => 'add.gif',
					'params' => array(
						'table' => 'tx_extendeventmgmt_domain_model_projects',
						'pid' => '###CURRENT_PID###',
						'setValue' => 'prepend'
						),
					'script' => 'wizard_add.php',
				),
			),
		),
	),
	'lectures' => array(
		'exclude' => 1,
		'label' =>
'LLL:EXT:extend_eventmgmt/Resources/Private/Language/locallang_db.xlf:tx_extendeventmgmt_domain_model_event.lectures',
		'l10n_mode' => 'exclude',
		'config' => array(
			'type' => 'select',
			'foreign_table' => 'tx_extendeventmgmt_domain_model_lecture',
			'foreign_table_where' => 'AND
tx_extendeventmgmt_domain_model_lecture.hidden=0 AND
tx_extendeventmgmt_domain_model_lecture.sys_language_uid=0 ORDER BY
tx_extendeventmgmt_domain_model_lecture.title',
			'MM' => 'tx_extendeventmgmt_event_lecture_mm',
			'size' => 10,
			'autoSizeMax' => 30,
			'maxitems' => 9999,
			'multiple' => 0,
			'wizards' => array(
				'_PADDING' => 1,
				'_VERTICAL' => 1,
				'edit' => array(
					'type' => 'popup',
					'title' => 'Edit',
					'script' => 'wizard_edit.php',
					'icon' => 'edit2.gif',
					'popup_onlyOpenIfSelected' => 1,
					'JSopenParams' =>
'height=350,width=580,status=0,menubar=0,scrollbars=1',
					),
				'add' => Array(
					'type' => 'script',
					'title' => 'Create new',
					'icon' => 'add.gif',
					'params' => array(
						'table' => 'tx_extendeventmgmt_domain_model_lecture',
						'pid' => '###CURRENT_PID###',
						'setValue' => 'prepend'
						),
					'script' => 'wizard_add.php',
				),
			),
		),
	),
);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tx_eventmgmt_domain_model_event',$tmp_extend_eventmgmt_columns);

$GLOBALS['TCA']['tx_eventmgmt_domain_model_event']['types']['Tx_ExtendEventmgmt_Event']['showitem']
=
$TCA['tx_eventmgmt_domain_model_event']['types']['tx_eventmgmt_event']['showitem'];
$GLOBALS['TCA']['tx_eventmgmt_domain_model_event']['types']['Tx_ExtendEventmgmt_Event']['showitem']
.=
',--div--;LLL:EXT:extend_eventmgmt/Resources/Private/Language/locallang_db.xlf:tx_extendeventmgmt_domain_model_event.tab,';
$GLOBALS['TCA']['tx_eventmgmt_domain_model_event']['types']['Tx_ExtendEventmgmt_Event']['showitem']
.= 'projects, lectures';

//Add the new type
$GLOBALS['TCA']['tx_eventmgmt_domain_model_event']['columns'][$TCA['tx_eventmgmt_domain_model_event']['ctrl']['type']]['config']['items'][]
=
array('LLL:EXT:extend_eventmgmt/Resources/Private/Language/locallang_db.xlf:tx_eventmgmt_domain_model_event.tx_extbase_type.Tx_ExtendEventmgmt_Event','Tx_ExtendEventmgmt_Event','EXT:extend_eventmgmt/Resources/Public/Icons/tx_eventmgmt_domain_model_event.png');

//Show the type field
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
	'tx_eventmgmt_domain_model_event',
	', tx_extbase_type',
	'',
	'after: calendar ');

Das funktioniert.

Wann ich den Code in die
Configuration/TCA/Overrides/tx_eventmgmt_domain_model_event.php einfüge
(muss doch der Tabellenname sein!?) funktioniert es nicht. -> Die neuen
Felder werden nicht angezeigt.

Bis denne, Eike


More information about the TYPO3-german mailing list