Im Moment habe ich einen LeftAndMain Abschnitt 'Anwendungen' genannt, die ein Formular mit einem Passwort-Feld enthält: Validation-Controller innerhalb CMS in Silvers
Der Code hierfür lautet:
class Applications extends LeftAndMain {
static $url_segment = 'applications';
static $menu_title = 'Applications';
static $url_rule = '$Action/$ID';
public function init(){
parent::init();
}
public function getEditForm($id = null, $fields = null) {
$fields = new FieldList(
TextField::create('Password', ' Password')
);
$actions = new FieldList(new FormAction('applicationPassword'));
return new Form($this, "EditForm", $fields, $actions);
}
public function applicationPassword($data, Form $form){
$form->sessionMessage('Correct password. I will redirect you to manage your model', 'success');
return $this->redirectBack();
}
}
Wenn Beim Absenden dieses Formulars sollte die Aktionsfunktion prüfen, ob sie mit etwas identisch ist (in meinem Fall ist es ein Schlüssel zum Entschlüsseln von Daten aus einer Datenbank) und dann das Gridfield umleiten/anzeigen.
Der zweite Punkt ist ein ModelAdmin, wo ich die Daten verwalten kann (die aus dieser Datenbank stammen) über GridField.
Der Code hierfür lautet:
class Applications2 extends ModelAdmin {
static $url_segment = 'applications2';
static $menu_title = 'Applications2';
private static $managed_models = array(
'SecureFormInput'
);
}
Und hier ist meine Frage: ist es möglich, dies zu tun? Irgendwelche Vorschläge/Hilfe becouse ich versuchte für und ohne Ergebnis.
Was Sie versuchen, ist extra Schutz für das gleiche Modell Admin zu implementieren. Nur Zustand in getEditForm() verwenden Ihre benutzerdefinierte Form zurückzukehren, oder Standard-ModelAdmin-Formular. (noPassword? showPasswordForm: parent: getEditForm) –