Default-Wert in Backend-Einstellungen zuweisen
Ich versuche mich gerade an meiner ersten Erweiterung, doch gerade komme ich nicht weiter. In dca/tl_settings.php habe ich z.B. zu stehen:
Code:
$GLOBALS['TL_DCA']['tl_settings']['fields']['fen_randbreite'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_settings']['fen_randbreite'],
'default' => '1',
'inputType' => 'select',
'options' => array('1','2','3','4','5','6'),
'reference' => &$GLOBALS['TL_LANG']['tl_settings'],
'eval' => array('tl_class' => 'w50 clr')
);
Wenn noch nichts in der localconfig.php steht, sollte doch anzunehmen sein, daß das Formularfeld in den Backend-Einstellungen mit dem default-Wert vorbelegt wird. Dem ist leider nicht so. Was in dca/tl_content.php einwandfrei funktioniert, scheint für die globalen Einstellungen nicht zu gelten. Was mache ich falsch? Ich benutze Version 3.0.6
Gelöst mit dem load_callback
Ich hab das soeben mit dem load_callback gelöst.
Anhand von deinem Beispiel:
PHP-Code:
$GLOBALS['TL_DCA']['tl_settings']['fields']['fen_randbreite'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_settings']['fen_randbreite'],
/*'default' => '1',*/
'inputType' => 'select',
'options' => array('1','2','3','4','5','6'),
'reference' => &$GLOBALS['TL_LANG']['tl_settings'],
'eval' => array('tl_class' => 'w50 clr'),
'load_callback' => array
(
array('xy', 'setDefaultValue')
)
);
# DANACH in der Klasse
public function setDefaultProductsPerPage($varValue)
{
if ($varValue == "")
{
\Config::getInstance()->update("\$GLOBALS['TL_DCA']['tl_settings']['fen_randbreite']",1);
return 1;
}
else{
return $varValue;
}
}