Nochmal Danke für das CSV-Löschen inkl. wählbarem Blacklist-Eintrag.
Leider haben wir einen Kunden, der auf diese Weise immer seinen Verteiler leert aber ohne Blacklist-Eintrag. Die Standardeinstellung "mit Blacklist" lässt sich leider per DCA nicht änder da hier per Callback ein fester Wert (true) eingetragen wird.
Ein Versuch per
PHP-Code:
$GLOBALS['TL_DCA']['tl_avisota_recipient_remove']['fields']['blacklist']['default'] = false;
den Standardeintrag zu manipulieren scheitert an der Callback Funktion.
Wenn es dafür keinen Workarround gibt, dann hätte ich mit 2 zusätzlichen Zeilen Code einen geschmeidigen Weg, wie trotz Callback eine individuelle Einstellung möglich ist.
Sollte aber von Tristan in den Code eingebaut werde, sonst ist es nicht updatesicher.
Man nehme die tl_avisota_recipient_remove.php und ergänze zuerst mal den Standardwert für die Blacklist:
PHP-Code:
'blacklist' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_avisota_recipient_remove']['blacklist'],
'inputType' => 'checkbox',
'eval' => array('tl_class'=> 'm12'),
'default' => true // Standardwert festlegen
)
Dann ergänze man noch in der Callbackfunktion
PHP-Code:
public function onload_callback(DataContainer $dc)
{
$varData = $this->Session->get('AVISOTA_TRACKING_REMOVE');
if ($varData && is_array($varData) && time() - $varData['tstamp'] < 300) {
$dc->setData('blacklist', $varData['blacklist']);
}
else {
// Standardwert abfragen
$blnBlacklist = $GLOBALS['TL_DCA']['tl_avisota_recipient_remove']['fields']['blacklist']['default'] ? true : false;
$dc->setData('blacklist', $blnBlacklist);
}
}
Aber ich werde dafür wahrscheinlich ein Ticket aufmachen müssen. ;-)
Gruß Andy
Lesezeichen