-
-
Notifications
You must be signed in to change notification settings - Fork 213
SaveCallback für disable Feld bei tl_member verhält sich nicht konsistent #8043
Comments
|
Den einzigen Fehler, den ich hier eventuell erkenne, ist das |
|
ich habe mir die einfach ausgeben lassen (var_dump() und die()). Entweder beim normalen Speichern (da war sie vorhanden) oder aber beim enable/disable-icon (da habe ich mir den Antwort-Body über die JS Konsole angeguckt weils ja Ajax ist). Ich finde es durchaus merkwürdig, dass der Wert im save_callback zwischen |
Ja, aber wie genau? Ich möchte mir das hier gerne nachstellen. |
|
Eigenes Modul mit Hook. dca für tl_member.php: $GLOBALS['TL_DCA']['tl_member']['fields']['disable']['save_callback'][] = array('MailOnActivation', 'activate');
class MailOnActivation extends tl_member{
public function activate($varAktiv, $dc)
{
var_dump($dc->id); die();
if($varAktiv === true || $varAktiv === '' && \MemberModel::findByPk($dc->id)->disable == '1'){
$this->sendMemberWasActivatedMail($dc->id);
}
return $varAktiv;
}
public function sendMemberWasActivatedMail($memberId){
// send Mail
}
}Ich habe den core gehackt um die ID hinzuzufügen - jetzt gehts |
|
Behoben in 1c3a5e5. |
Wenn der SaveCallback ganz normal über das Speichern-Feld des Datensatzes aufgerufen wird, kann man den bearbeiteten Datensatz über den dca-parameter rausbekommen (
$dc->id).Wird der Callback jedoch über den toggle-button aufgerufen, mit dem man member aktivieren/deaktivieren kann, gibt
$dc->idNULL zurück, weil im DC_Table-Objekt die EigenschaftintIdnicht/falsch gesetzt wird.Die wird nämlich im Konstruktor über
$this->intId = \Input::get('id');gesetzt. Der toggle-button übergib aber in diesem Fall nur einetidund keineid, was zu diesem fehlerhaften Verhalten führt.Meiner Meinung nach, sollten sich beide Fälle gleich verhalten.
Auch der erste Parameter ist konfus (bei normalen Speichern
''bzw'1'und über toggletrueundfalse). true und false sind hier beim toggle sogar noch vertauscht. true beim aktivieren bzw''beim aktivieren. Wie soll man da rausbekommen, was denn nun richtig ist?Ich vermute den "bug" (wenns denn einer ist) in dieser Zeile, wo der SaveCallback aufgerufen wird. Dort sollte eventuell nicht
sondern
stehen.
Außerdem sollte vorher die
idim$dcgesetzt werdenThe text was updated successfully, but these errors were encountered: