Submitted by Yudo on
Bonjour,
Je suis dans un impasse, j'essaye de rediriger l'utilisateur après la création d'un sujet de discussion mais sans succès. Je vous montre les différentes méthodes que j'ai utilisé :
-
Méthode 1 (non recommandé d'après mes recherches) :
<?php
function monmodule_form_alter(&$form, $form_state, $form_id)
{
switch ($form_id) {
case 'forum_node_form':
$form['#submit'][] = 'monmodule_forum_submit';
break;
}
}
function monmodule_forum_submit($form, &$form_state)
{
drupal_goto('le-node-créé');
}
?> -
Méthode 2 (fonctionne pas) :
<?php
function monmodule_form_alter(&$form, $form_state, $form_id)
{
switch ($form_id) {
case 'forum_node_form':
$form['#submit'][] = 'monmodule_forum_submit';
break;
}
}
function monmodule_forum_submit($form, &$form_state)
{
$form_state['redirect'] = 'le-node-créé';
}
?> -
Méthode 3 (fonctionne pas) :
<?php
function monmodule_form_alter(&$form, $form_state, $form_id)
{
switch ($form_id) {
case 'forum_node_form':
$form['#redirect'] = 'le-node-créé';
break;
}
}
?>
Pouvez-vous m'aidez s'il vous plait ?
Effectivement, le
Permalien Soumis par mouize le 15 Avril, 2009 - 17:17
Effectivement, le drupal_goto n'est pas à utilisé pour les formulaires.
La bonne solution devrait être la methode 3, et la syntaxe semble correct. Es tu sur que l'id que tu souhaites changé est bien le forum_node_form?
Merci de m'avoir
Permalien Soumis par Yudo le 15 Avril, 2009 - 18:09
Merci de m'avoir répondu,
Et bien pour vérifier l'id, j'ai tous simplement fais un echo/print de $form_id. Quand j'arrive sur page de création d'un nouveau sujet de discussion j'ai bien forum_node_form qui s'affiche.
Pourquoi ne pas utiliser un
Permalien Soumis par lektum le 16 Avril, 2009 - 09:02
Pourquoi ne pas utiliser un déclencheur associé à une action ?
utiliser form_alter et
Permalien Soumis par nyl auster le 16 Avril, 2009 - 14:19
utiliser form_alter et $form['#redirect'] fonctionne normalement, j'ai déjà utilisé cette méthode. C'est bien la manière qui me parait la plus logique pour modifier la chemin de destination du formulaire. Je fais ça sur drupal 5 sans probleme.
passer par un hook submit me parait un peu alambiqué alors que le paramètre redirect du formulaires sert justement à ça.
Je ne sais pas pourquoi ton exemple ne marche pas, essaie d'altérer une autre partie du formulaire voir si ça marche, comme changer le label du champ titre par exemple. Au moins tu sauras si ton hook fonctionne comme il faut pour commencer.