Mit hook_form_alter
, wie kann ich nach dem Erstellen oder Bearbeiten einen Knotens anstelle des Knotens, der erstellt oder bearbeitet wurde um einen Benutzer zu aa benutzerdefinierten Seite umleiten?
Der aktuelle Code für hook_form_alter()
ist der folgende:
function custom_form_alter(&$form, &$form_state, $form_id) {
if ($form['#id'] == 'custom-node-form') {
$form['actions']['submit']['#value'] = t('Add Entry');
$form['field_custom_email']['und'][0]['value']['#element_validate'] = array('_custom_form_validate_email');
}
}
7
forms
redirection
Citricguy
quelle
quelle
Antworten:
Der Code leitet das Formular unabhängig von der Schaltfläche weiter, auf die zum Senden des Formulars geklickt wird. Wenn Sie ein Formular nur umleiten möchten, wenn Sie auf eine bestimmte Übergabeschaltfläche klicken, sollten Sie den folgenden Code verwenden.
hook_form_FORM_ID_alter()
braucht es nicht wirklich, da es für ein bestimmtes Formular aufgerufen wird, während die anderen beiden Hooks für mehr als ein Formular aufgerufen werden.$form['#node']
das Knotenobjekt für das zu bearbeitende Objekt. "custom" ist die Kurz-ID für den Inhaltstyp, den Sie an die Benutzer weiterleiten möchten, sobald diese einen Knoten bearbeiten.$form_state['redirect']
vonhook_form_alter()
hat keine Auswirkung; Es muss von einem Submission-Handler festgelegt werden.quelle
&
infunction custom_node_submit($form, &$form_state) {
sehr wichtig ist. Andernfalls übergeben Sie den Status nicht als Referenz und die von Ihnen manuell vorgenommenen Änderungen werden nicht wirksam.Dieser Code funktioniert auf einer Drupal 7-Site.
quelle
admin/content
Seite klicken : drupal.stackexchange.com/a/192271/15055 .Dies kann beispielsweise durch Setzen
$form_state['redirect']
einer der folgenden Zeilen erfolgen.Es sind die gleichen Argumente, die Sie weitergeben würden
drupal_goto()
.quelle
$form_state['redirect']
wird überschrieben, wenn er($node->nid)
mit TRUE bewertet wird.Sie sind sich nicht sicher, ob dies eine Option für Sie ist. Wenn es sich jedoch um einen Inhaltstyp handelt, können Sie dies mithilfe des Moduls Regeln schnell erreichen, indem Sie eine Regel festlegen, die beim Aktualisieren oder Erstellen eines bestimmten Inhaltstyps ausgelöst wird.
quelle