Hallo zusammen,
ich habe eine ctlg_kurse in der verschiedene Kurstypen erstellt werden (mit ein paar Standardangaben wie z.B. Beschreibung des Kurses).
in jedem tl_calendar_events wird aus ctlg_kurse der entsprechende Kurstyp per select-Feld geholt und die zugehörige ID gespeichert, so dass ich im Event-Template die Standardausgaben ausgeben kann.
PHP-Code:
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['kurstitelID'] = [
'inputType' => 'select',
'foreignKey' => "ctlg_kurse.kurstitel",
'eval' => ['mandatory'=>true, 'tl_class' => 'clr', 'includeBlankOption' => true, 'blankOptionLabel' => 'Bitte wählen ...' ],
'sql' => "int(10) NOT NULL default '0'",
];
In der ctlg_kurse werden auch weitere Standardwerte gesetzt (z.B. Kursleitung, Zielgruppe, Fortbildungsstunden), die jedoch für einzelne Termine veränderbar sein sollen.
Bisher habe ich es so gelöst, dass es eine Checkbox gibt "nimm den Wert aus ctlg_kurse" und ein Feld "für dieses Event geltender Wert"
PHP-Code:
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['leitungStandard'] = [
'label' => ['Leitung (Standard)', 'Die in der Kursliste hinterlegte Information wird ausgegeben.'],
'inputType' => 'checkbox',
'default' => '1',
'eval' => ['tl_class' => 'clr w50'],
'sql' => "char(1) NOT NULL default ''",
];
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['leitung'] = [
'label' => ['Leitung', 'Speziell für diese Veranstaltung (überschreibt die Standardangabe)'],
'search' => true,
'inputType' => 'text',
'eval' => ['maxlength'=>255, 'tl_class' => 'w50'],
'sql' => "text NULL",
];
Die Redakteure würden gerne an der Stelle sehen, was als Standardwert hinterlegt ist, um einfacher entscheiden zu können "Nimm Standard" oder "überschreibe Standard". Und da hänge ich....
Gibt es eine Möglichkeit, die in ctlg_kurse hinterlegten Werte in tl_calendar_events in Abhängigkeit von dem select-Feld anzuzeigen?
Ich hatte gedacht, ich könnte dazu ein weiteres Feld in tl_calendar_events mit
HTML-Code:
eval => ['readonly"=>true]
anlegen und dort die Standard-Werte ausgeben lassen. Nur wie??? Dieser Wert müsste sich halt je nach Auswahl im select-Feld ändern.
Ich hatte es versucht mit einem select-Feld und einem options_callback in Abhängigkeit von dem Selcet-Feld "kurstitleID". Aber das funktioniert nicht.
PHP-Code:
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['leitungStandardWert'] = [
'exclude' => true,
'inputType' => 'select',
'options_callback' => function() {
$array=array();
$result = $db->executeQuery("SELECT kursleitung FROM ctlg_kurse WHERE id ='$this->kurstitelID'")->fetch();
while($result->next()){
$array[]=$result->kursleitung;
}
return $array;
},
'eval' => array('readonly'=>true, 'mandatory'=>false, 'decodeEntities'=>true,'maxlength'=>255, 'includeBlankOption'=>true, 'tl_class'=>'clr'),
'sql' => "varchar(255) NOT NULL default ''",
];
Hat jemand einen Tipp für mich?
Lesezeichen