Réponses:
Vous pouvez utiliser hook_form_alter
pour ajouter un gestionnaire d'envoi personnalisé dans lequel vous pouvez définir le chemin de redirection.
Voir le FAPI pour plus de détails sur la redirection de formulaires.
Vous pouvez créer une règle qui redirige l'utilisateur vers n'importe quelle page lorsqu'il crée ou modifie un type de contenu spécifique. Lorsque vous ajoutez une règle, sélectionnez "Après la création de nouveau contenu", ajoutez également une condition de "Contenu de type". La section You Do vous donnera la possibilité de rediriger un utilisateur vers la page de votre choix.
Pour une redirection après avoir modifié un nœud, créez simplement une nouvelle règle et sélectionnez "Après la mise à jour du contenu existant" comme première option.
Lors de cette opération, assurez-vous également de ne pas définir une destination existante possible qui est normalement ajoutée à l'URL lorsque vous cliquez sur le bouton Modifier pour modifier un nœud existant.
Remplacer article
dans MYMODULE_form_article_node_form_alter
avec le nom de la machine de votre type de contenu.
/**
* Implements hook_form_BASE_FORM_ID_alter().
*/
function MYMODULE_form_article_node_form_alter(&$form, &$form_state, $form_id) {
$form['actions']['submit']['#submit'][] = '_MYMODULE_node_form_redirect';
}
/**
* Submit callback.
*/
function _MYMODULE_node_form_redirect($form, &$form_state) {
// Unset destination first.
unset($_GET['destination']);
unset($_REQUEST['edit']['destination']);
$form_state['redirect'] = 'FOO/BAR';
}
unset
l' destination
est censé gérer l'utilisation de modifier le cas, mais ils ont aucun effet sur mon site Drupal 7.
La documentation n'est pas très claire à ce sujet, mais vous devez modifier la $_GET['destination']
variable, pas $_REQUEST
ou $form_state['redirect']
.
dans Drupal 7, vous pouvez modifier le formulaire d'édition de nœud pour 'attacher' votre propre fonction d'envoi, dans laquelle vous pouvez modifier form_state du formulaire de confirmation de suppression de nœud pour inclure le paramètre 'destination' ... venez de le faire dans un thème personnalisé i ' ai été développé comme un sous-thème du thème d'administration «sept» ...
Documentation pour hook_form_FORM_ID_alter
Vous pouvez ajouter ce crochet à un modèle / thème, pas seulement aux modules.
donc dans votre thème template.php
, ajoutez ce formulaire alter hook:
function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
$form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}
et puis, le tour est joué. n'est plus redirigé vers la page d'accueil après la suppression d'un nœud.
Solution d'ici http://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7#comment-18139
<?php
function FORM_NAME_form_submit($form, &$form_state) {
$form_state['redirect'] = array(
// $path
'path/to/redirect/to',
// $options
array('query' => array('key' => 'value')),
// $http_response_code
302,
);
}
?>