Hallo,
beschäftige mich gerade mit Contao und erweitere gerade die tl_member. Dabei will ich einen Callback nutzen, der Daten aus der Datenbank halt. Leider scheine ich da noch einen Fehler drin zu haben, finde ihn nicht.
Was ich erreichen will, ist dass der maximale Wert aus der DB geholt wird, um 1 erhöht und dann zurückgegeben wird.
PHP-Code:
/* CALLBACK */
$GLOBALS['TL_DCA']['tl_member']['config']['onsubmit_callback'][] = array('tl_member_club', 'createMitgliedsnummer');
/* GLOBALS */
$GLOBALS['TL_DCA']['tl_member']['fields']['mitgliednr'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_member']['mitgliednr'],
'search' => true,
'inputType' => 'text',
'exclude' => true,
'load_callback' => array(array('tl_member_club', 'createMitgliedsnummer')),
'eval' => array('mandatory'=>true, 'maxlength'=>10, 'tl_class'=>'w50', 'alwaysSave'=>true, 'readonly'=>true),
'sql' => "int(10) NOT NULL"
);
/* KLASSE */
class tl_member_club extends tl_member
{
public function createMitgliedsnummer($value, $dc)
{
// Keine Nummer erstellen, wenn ein Wert vorhanden ist.
if ($value != '0')
{
return $value;
}
// Neue Mitgliedsnummer generieren
$value = $this->Database->prepare("SELECT MAX(mitgliednr) FROM tl_member")->execute();
return $value++;
}
}
Danke :-)
Lesezeichen