Respuestas:
Puede usar hook_form_alter
para agregar un controlador de envío personalizado donde puede establecer la ruta de redireccionamiento.
Consulte la FAPI para obtener más detalles sobre la redirección de formularios.
Puede crear una regla que redirija al usuario a cualquier página cuando cree o edite un tipo de contenido específico. Cuando agregue una regla, seleccione "Después de crear nuevo contenido", agregue también una condición de "El contenido tiene tipo". La sección You Do le dará la opción de redirigir a un usuario a la página que desee.
Para una redirección después de editar un nodo, simplemente cree una nueva regla y seleccione "Después de actualizar el contenido existente" como su primera opción.
Al hacer esto, asegúrese de desarmar también un posible destino existente que normalmente se agrega a la URL cuando hace clic en el botón editar para editar un nodo existente.
Vuelva a colocar article
en MYMODULE_form_article_node_form_alter
la máquina nombre de su tipo de contenido.
/**
* 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
la destination
se supone que debe manejar el caso de edición uso, pero no tienen ningún efecto en mi sitio de Drupal 7.
La documentación no es muy clara, pero debe modificar la $_GET['destination']
variable, no $_REQUEST
o $form_state['redirect']
.
en Drupal 7 puede alterar el formulario de edición de nodo para 'adjuntar' su propia función de envío, en la que puede modificar form_state del formulario de confirmación de eliminación de nodo para incluir el parámetro 'destino' ... acabo de hacer esto en un tema personalizado i ' se ha desarrollado como un subtema del tema de administración 'siete' ...
Documentación para hook_form_FORM_ID_alter
Puede agregar este gancho a una plantilla / tema, no solo a los módulos.
así que en su tema template.php
, agregue este formulario alter hook:
function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
$form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}
y luego voila. ya no se redirige a la página de inicio después de eliminar un nodo.
Solución desde aquí 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,
);
}
?>