Puncte:0

un handler specific de trimitere la formularul de utilizator

drapel us

Am un handler de trimitere la formularul de utilizator. Redirecționează utilizatorul către o anumită pagină.

utilizați Symfony\Component\HttpFoundation\RedirectResponse ca RedirectResponse;

/**
 * @fișier
 * Cârlige pentru modulul primar pentru modulul EHESS Propositions 3.
 *
 * @DCG
 * Acest fișier nu mai este necesar în Drupal 8.
 * @vezi https://www.drupal.org/node/2217931
 */
funcția ehess_propositions_3_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_form') {
    foreach (array_keys($form['actions']) ca $action) {
      if (isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'trimite') {
        $form['actions'][$action]['#submit'][] = '_ehess_propositions_3_user_profile_submit';
      }
    }
  }
}

funcția _ehess_propositions_3_user_profile_submit($form, &$form_state) {
  $response = new RedirectResponse('/admin/content/reglement/');
  $răspuns->trimite();
}

Dar problema este că handlerul de trimitere este declanșat atât pentru actualizarea utilizatorului, cât și pentru ștergerea utilizatorului. Aceasta blochează redirecționarea către pagina „confirmare ștergere” a utilizatorului.

Există o acțiune specifică doar pentru actualizarea formularului de utilizator și nu pentru ștergerea utilizatorului?

4uk4 avatar
drapel cn
Atașați gestionarea de trimitere la toate butoanele de trimitere, inclusiv la butonul de anulare. BTW nu trimiteți răspunsul, adăugați-l la $form_state. Consultați https://drupal.stackexchange.com/questions/5861/how-to-redirect-to-a-page-after-submitting-a-form
Frédéric Hébert avatar
drapel us
Dar nimic din exemplu nu distinge între utilizatorul de actualizare și utilizatorul de ștergere. Aceasta a fost întrebarea mea la care acțiune a atașat handlerul? Există o acțiune de „trimitere-actualizare” precum?
Puncte:0
drapel cn

$actiune poate fi Trimite și șterge. Nu aveți nevoie de bucla foreach dacă nu doriți să atașați handlerul de trimitere la toate butoanele de trimitere.

Adăugați direct managerul la butonul de salvare:

funcția ehess_propositions_3_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_form') {
    $form['actions']['submit']['#submit'][] = '_ehess_propositions_3_user_profile_submit';
  }
}

Pentru modul corect de redirecționare într-un formular, consultați https://drupal.stackexchange.com/a/191594/47547

Frédéric Hébert avatar
drapel us
multumesc cu adevarat. Este evident acum!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.