Respostas:
Você pode usar hook_form_alter
para adicionar um manipulador de envio personalizado, onde é possível definir o caminho de redirecionamento.
Consulte a FAPI para obter mais detalhes sobre o redirecionamento de formulário.
Você pode criar uma regra que redirecione o usuário para qualquer página ao criar ou editar um tipo de conteúdo específico. Quando você adiciona uma regra, selecione "Após criar novo conteúdo" e adicione também uma condição de "Conteúdo com tipo". A seção Você faz oferece a opção de redirecionar um usuário para qualquer página que você desejar.
Para redirecionar após editar um nó, basta criar uma nova regra e selecione "Após atualizar o conteúdo existente" como sua primeira opção.
Ao fazer isso, certifique-se de desconfigurar também um possível destino existente que normalmente é adicionado à URL quando você clica no botão editar para editar um nó existente.
Substitua article
pelo MYMODULE_form_article_node_form_alter
nome da máquina do seu tipo de conteúdo.
/**
* 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
o destination
é suposto para lidar com o caso de edição uso, mas eles não têm nenhum efeito no meu site Drupal 7.
A documentação não é muito clara sobre isso, mas você deve modificar $_GET['destination']
variável, não $_REQUEST
ou $form_state['redirect']
.
no Drupal 7, você pode alterar o formulário de edição do nó para 'anexar' sua própria função de envio, na qual é possível alterar o form_state do formulário de confirmação de exclusão do nó para incluir o parâmetro 'destination' ... apenas fiz isso em um tema personalizado i ' desenvolvi como um subtema do tema administrativo dos 'sete' ...
Documentação para hook_form_FORM_ID_alter
Você pode adicionar esse gancho a um modelo / tema, não apenas a módulos.
Assim, no seu tema template.php
, adicione este formulário alter hook:
function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
$form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}
e então, voila. não é mais redirecionado para a página inicial depois que um nó é excluído.
Solução a partir daqui 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,
);
}
?>