Zum Inhalt springen

tca.php Konstante

Erstellt am 27. August 2011 · 2 Antworten · letzte Antwort am 31. August 2011

Tags: TCA, Frage

typo3_hp ·

Hallo!

Für eine Erweiterung habe ich je nach Pageid andere Uploadverzeichnisse.
D.h. wenn auf der PID 2 per Oberfläche ein Datensatz bearbeitet wird, soll das neue/vorhandene Bild im einen anderen Ordner gespeichert/gesucht werden als wenn ich das ganze in dem Ordner mit der PID 3 bearbeite!

Habe bereits folgendes Versucht:

TS-Constants:

meine_variable = pfad/zu_erstem_bildordner

TS-Setup:

plugin.tx_meineext_pi1 {
   meine_variable = {$meine_variable}
}

Auszug aus tca.php (Versuch sieht man bei uploadfolder):

'bild' => array (		## WOP:[tables][1][fields][3][fieldname]
			'exclude' => 0,		## WOP:[tables][1][fields][3][excludeField]
			'label' => 'LLL:EXT:cpg_movie_integration/locallang_db.xml:tx_meineext_cont.bild',		## WOP:[tables][1][fields][3][title]
			'config' => array (
				'type' => 'group',
				'internal_type' => 'file',
				'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],	## WOP:[tables][1][fields][3][conf_files_type]
				'max_size' => $GLOBALS['TYPO3_CONF_VARS']['BE']['maxFileSize'],	## WOP:[tables][1][fields][3][conf_max_filesize]
				'uploadfolder' => $meine_variable,
				'show_thumbs' => 1,	## WOP:[tables][1][fields][3][conf_files_thumbs]
				'size' => 1,	## WOP:[tables][1][fields][3][conf_files_selsize]
				'minitems' => 0,
				'maxitems' => 1,	## WOP:[tables][1][fields][3][conf_files]
			)

Was mache ich falsch?
Leider funktioniert es nicht!

Danke und Grüße

freshman17 ·

Hi,

das kannst du mit einem Hook lösen. Ein sauberes Beispiel bietet z.B. tt_address, in der ext_localconf.php die eigene Datei einbinden:

if (TYPO3_MODE)    {
   require_once(t3lib_extMgm::extPath('tt_address').'class.tx_ttaddress_compat.php');
}
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = 'tx_ttaddress_compat';

und in der class.tx_ttaddress_compat.php deine Logik einbinden

class tx_ttaddress_compat {

    function processDatamap_postProcessFieldArray($status, $table, $id, &$fieldArray, $pObj) {

        if($table == 'tx_mytable' && ($status == 'new' || $status == 'update')) {
	/* hier kommt dann deine Logik rein */
        }
    }
}

Grüße freshman