Hi,
ich will eine eigene Palette im Backend anzeigen lassen, wenn die Checkbox darüber gechecheckt wird. Ich habe mir dazu in Contao-Core die "Login" Box angeschaut. Jetzt sehe ich zwar die Checkbox, aber wenn ich sie checke passiert nichts. Die Felder sind definitiv beide da, wenn ich sie normal zu der Standartpalette hinzufüge, sehe ich beide, aber ich hätte es gerne wie bei "Login".
Code:
<?php
/**
* Table tl_member
*/
//Legenden hinzufügen
$GLOBALS['TL_DCA']['tl_member']['palettes']['default']=str_replace('{contact_legend','{location_legend},my_location;{staff_legend},my_isStaff;{contact_legend',$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] );
$GLOBALS['TL_DCA']['tl_member']['subpalettes'][] = array('my_isStaff' => 'my_staffCalendar');
$GLOBALS['TL_DCA']['tl_member']['palettes']['__selector__'][] = 'my_isStaff';
// Hinzufügen der Feld-Konfiguration
$GLOBALS['TL_DCA']['tl_member']['fields']['my_location'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_member']['my_location'],
'exclude' => true,
'inputType' => 'select',
'eval' => array('feEditable'=>true, 'feViewable'=>true),
'foreignKey'=> 'tl_my_location.name',
'sql' => "int(10) unsigned NOT NULL default '0'"
);
$GLOBALS['TL_DCA']['tl_member']['fields']['my_isStaff'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_member']['my_isStaff'],
'exclude' => true,
'filter' => true,
'inputType' => 'checkbox',
'sql' => "char(1) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_member']['fields']['my_staffCalendar'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_member']['my_staffCalendar'],
'exclude' => true,
'inputType' => 'select',
'eval' => array('feEditable'=>true, 'feViewable'=>true),
'foreignKey'=> 'tl_calendar.id',
'options_callback' => array('my_tl_member', 'myOptionsCallback'),
'sql' => "int(10) unsigned NOT NULL default '0'"
);
class my_tl_member extends Backend
{
/**
* options_callback: Ermöglicht das Befüllen eines Drop-Down-Menüs oder einer Checkbox-Liste mittels einer individuellen Funktion.
* @param $dc
* @return array
*/
public function myOptionsCallback(DataContainer $dc)
{
$values = array();
$calendars = $this->Database->prepare("SELECT id,title FROM tl_calendar ORDER BY title ASC")->execute();
//Array erzeugen
while($calendars->next())
{
$values[$calendars->id] = "<b>".$calendars->title."</b> ";
}
return $values;
}
}
Grüße
Der Eddi
Lesezeichen