Risposte:
È possibile utilizzare hook_form_alter
per aggiungere un gestore di invio personalizzato in cui è possibile impostare il percorso di reindirizzamento.
Consulta la FAPI per maggiori dettagli sul reindirizzamento dei moduli.
È possibile creare una regola che reindirizza l'utente a qualsiasi pagina quando crea o modifica un tipo di contenuto specifico. Quando aggiungi una regola seleziona "Dopo aver creato il nuovo contenuto" aggiungi anche una condizione di "Il contenuto ha il tipo". La sezione Fai ti darà la possibilità di reindirizzare un utente a qualsiasi pagina desideri.
Per un reindirizzamento dopo aver modificato un nodo, basta creare una nuova regola e selezionare "Dopo l'aggiornamento del contenuto esistente" come prima opzione.
Nel fare ciò, assicurati anche di deselezionare una possibile destinazione esistente che normalmente viene aggiunta all'URL quando fai clic sul pulsante Modifica per modificare un nodo esistente.
Sostituire article
in MYMODULE_form_article_node_form_alter
con il nome della macchina del tipo di contenuto.
/**
* 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
il destination
si suppone per gestire il caso di modifica uso, ma non hanno alcun effetto sul mio sito Drupal 7.
La documentazione non è molto chiara su di essa, ma è necessario modificare la $_GET['destination']
variabile, no $_REQUEST
o $form_state['redirect']
.
in Drupal 7 puoi modificare il modulo di modifica del nodo per "allegare" la tua funzione di invio, in cui puoi modificare form_state del modulo di conferma dell'eliminazione del nodo per includere il parametro "destinazione" ... ho appena fatto questo in un tema personalizzato i " si è sviluppato come un sottotema del tema "sette" dell'amministratore ...
Documentazione per hook_form_FORM_ID_alter
È possibile aggiungere questo hook a un modello / tema, non solo ai moduli.
quindi nel tuo tema template.php
, aggiungi questo modulo alter hook:
function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
$form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}
e poi voilà. non reindirizzato più alla homepage dopo l'eliminazione di un nodo.
Soluzione da qui 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,
);
}
?>