À l'aide de hook_form_alter
, comment puis-je rediriger un utilisateur vers une page personnalisée après avoir créé ou modifié un nœud au lieu du nœud qui a été créé ou modifié?
Le code actuel pour hook_form_alter()
est le suivant:
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
la source
la source
Réponses:
Le code redirige le formulaire indépendamment du bouton cliqué pour soumettre le formulaire. Si vous souhaitez rediriger un formulaire uniquement lorsque vous cliquez sur un bouton de soumission spécifique, vous devez utiliser le code suivant.
hook_form_FORM_ID_alter()
n'en a pas vraiment besoin, car il est appelé pour une forme spécifique, tandis que les deux autres hooks sont invoqués pour plus d'une forme.$form['#node']
, qui est l'objet nœud de l'objet en cours de modification; "personnalisé" est l'ID court du type de contenu que vous souhaitez rediriger les utilisateurs une fois qu'ils ont modifié un nœud.$form_state['redirect']
dehook_form_alter()
n'a aucun effet; il doit être défini à partir d'un gestionnaire de soumission.la source
&
entréefunction custom_node_submit($form, &$form_state) {
est très importante. Sinon, vous ne passez pas l'état comme référence et les modifications que vous effectuez manuellement ne seront pas prises en compte.Ce code fonctionne sur un site Drupal 7.
la source
admin/content
page: drupal.stackexchange.com/a/192271/15055 .Cela peut être fait en définissant
$form_state['redirect']
, par exemple en utilisant l'une des lignes suivantes.Ce sont les mêmes arguments que vous transmettriez
drupal_goto()
.la source
$form_state['redirect']
elle sera remplacée si elle est($node->nid)
évaluée à TRUE.Je ne sais pas si c'est une option pour vous, mais s'il s'agit d'un type de contenu, vous pouvez y parvenir assez rapidement en utilisant le module Règles en définissant une règle à déclencher lors de la mise à jour ou de la création d'un certain type de contenu.
la source