in der dcaConfig den callback von onload triggern
PHP-Code:
$GLOBALS['TL_DCA']['tl_content']['config']['onload_callback'][] = array('ceGaleryChanger','onLoadCallBack');
Danach in system/modules ein neues Verzeichnis erstellen mit dem Namen ceGaleryChanger
Dort drinne auch eine Datei erstellen, mit Namen ceGaleryChanger.php mit folgendem Inhalt
PHP-Code:
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
class ceGaleryChanger extends Backend
{
public function __construct()
{
parent::__construct();
$this->import('BackendUser', 'User');
}
function onLoadCallBack($dcTable)
{
$elementType = $this->Database->prepare("SELECT type FROM tl_content WHERE id=?")
->execute($this->Input->get('id'));
if (($elementType->numRows==1) && ($elementType->type=="gallery"))
{
$GLOBALS['TL_DCA']['tl_content']['fields']['cssID']['default'] = 'defaultCSS';
$GLOBALS['TL_DCA']['tl_content']['fields']['cssID']['inputType'] = 'select';
$GLOBALS['TL_DCA']['tl_content']['fields']['cssID']['options'] = array('css1','css2','css3');
unset($GLOBALS['TL_DCA']['tl_content']['fields']['cssID']['eval']['size']);
}
}
}
?>
Das eigentlich interessante passiert in der Funtion onLoadCallBack.
Du musst evt. ein eigenes EingabeWidget machen, da das Feld cssID normalerweise ein serialisiertes Array ist, und mit zwei Daten befuellt.
EIn eigenes Widget, welches einfach zwei DropDown Boxen anbietet, mit dem jeweiligen Text fuer die CSS Klasse / ID und das dann als inputType setzen.
Fertig.