Folosind hook_form_alter()
, puteți adăuga un handler de trimitere care setează redirecționarea. Codul pentru gestionarea trimiterii ar fi similar cu următorul.
funcția mymodule_node_edit_submit(matrice &$form, FormStateInterface $form_state) {
$nod = $form_state->getFormObject()->getEntity();
$id = \Drupal::request()->query->get('id');
$form_state->setRedirect('entity.node.canonical', ['node' => $node->id()], [query => ['id' => $id]]);
}
Codul pentru hook_form_BASE_FORM_ID_alter()
ar fi pur și simplu următorul.
funcția mymodule_form_node_form_alter(&$form, FormStateInterface $form_state) {
$nod = $form_state->getFormObject()->getEntity();
// Deoarece acest cârlig este invocat pentru fiecare nod, verificați tipul său de conținut.
if ($node->getType() == „tipul de conținut care vă interesează”) {
$form['actions']['submit']['#submit'][] = 'mymodule_node_edit_submit';
}
}
The hook_form_FORM_ID_alter()
implementarea ar trebui denumită mymodule_form_node_<content_type_machine_name>_alter()
. (A inlocui modulul meu cu numele mașinii modulului, <content_type_machine_name>
cu numele mașinii tipului de conținut.) În acest caz, deoarece hook-ul este invocat numai pentru un tip de conținut, nu este nevoie să verifice tipul de conținut al nodului înainte de a adăuga handler-ul de trimitere.