Zum Inhalt springen

RTE und valuePicker in eigener Extension

Erstellt am 3. April 2017 · 2 Antworten · letzte Antwort am 4. April 2017

Tags: TCA, Inhaltselemente, TYPO3 7, Frage

Ascawath ·

Hallo zusammen,

ich versuche mir gerade eine distribution zusammenzubasteln und bleibe jetzt nur noch beim TCA hängen...
Also, ich will mir ein neues Content Element erstellen, was an sich auch ganz gut klappt.
Allerdings möchte ich ja auch bei diesem Content Element den RTE, oder auch den valuePicker benutzen können. Das klappt allerdings gar nicht.

Ich habe folgendes probiert:

$GLOBALS['TCA']['tt_content']['columns']['testText'] = array(
	'exclude' => 1,
	'label' => 'LLL:EXT:UNKENNTLICH/Resources/Private/Language/locallang_tabs.xlf:tesText',
	'config' => array(
		'type' => 'text',
		'cols' => 40,
		'rows' => 6,
		'wizards' => array(
			'_PADDING' => 2,
			'RTE' => array(
				'notNewRecords' => 1,
				'RTEonly' => 1,
				'type' => 'script',
				'title' => 'Full Test',
				'module' => array(
					'name' => 'wizard_rte'
				),
				'icon' => 'wizard_rte2.gif'
			)
		),
        'enableRichtext' => true,
		'defaultExtras' => 'richtext[]'
	)
);

Da erscheint im Backend dann aber nur ein ganz normales TextArea Feld.
Wenn ich aber jetzt mal spßeshalber die Definition bodytext nehme:

$GLOBALS['TCA']['tt_content']['types']['UNKENNTLICH_termin'] = array(
   'showitem' => '
		 --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xml:palette.general;general,
         --palette--;LLL:EXT:UNKENNTLICH/Resources/Private/Language/locallang_tabs.xlf:general, header, bodytext, termin, termin2, platz, farbe
');

steht da immer noch nur ein TextArea.
Das gleiche ist mit dem Input Feld farbe. Da geht der valuePicker auch gar nicht.

$GLOBALS['TCA']['tt_content']['columns']['farbe'] = array(
   'label' => 'LLL:EXT:UNKENNTLICH/Resources/Private/Language/locallang_tabs.xlf:farbe',
   'config' => array(
		'type' => 'input',
		'size' => 20,
		'valuePicker' => array(
			'items' => array(
				['#496D0C', '<font color="#496D0C">Neutral</font>'],
				['#91AD33', '<font color="#91AD33">Gr&uuml;n</font>'],
				['#F59B00', '<font color="#F59B00">Gelb</font>'],
				['#CD1013', '<font color="#CD1013">Rot</font>']
			),
		)
   )
);

Was ich noch nicht probiert habe, das HTML Zeugs daraus nehmen.

Ich hoffe jemand kann mir bei diesem Problem helfen und ich freue mich auf Deine Antwort 🙂

MfG Ascawath

toifel ·

Wenn Dein Feld im Model "testText" heißt, dann musst du es im TCA wahrscheinlich als "test_text" ansprechen, da es auch so in der Datenbank angelegt sein müsste.

Also $GLOBALS['TCA']['tt_content']['columns']['test_text']

Wenn es aber selbst mit dem bodytext nicht funktioniert, dann stimmt grundsätzlich irgendwas nicht mit dem RTE. Siehst du in der Browser-console irgendwelche JavaScript Fehler?

Ascawath ·

Hallo,

ich habe die Extension anfangs nur als distribution behandelt und deswegen kein Modell benutzt.
Daran liegt es aber nicht, weil ich prima auf alle Tabelleninhalte zugreifen kann. Kann das auch bei PhpMyAdmin nachschauen.

Das einzige Problem ist das Laden der RTE und des valuePickers. Das Input Feld und die TextArea sind da, aber sie werden nicht richtig formatiert.
In der Konsole stand aber merkwürdigerweise, dass alles richtig geladen worden sei.
Fehler traten nirgends auf im Backend.