Utilizando hook_form_alter
, ¿cómo puedo redirigir a un usuario a una página personalizada después de crear o editar un nodo en lugar del nodo que se creó o editó?
El código actual para hook_form_alter()
es el siguiente:
function custom_form_alter(&$form, &$form_state, $form_id) {
if ($form['#id'] == 'custom-node-form') {
$form['actions']['submit']['#value'] = t('Add Entry');
$form['field_custom_email']['und'][0]['value']['#element_validate'] = array('_custom_form_validate_email');
}
}
7
forms
redirection
Citricguy
fuente
fuente
Respuestas:
El código redirige el formulario independientemente del botón en el que se hizo clic para enviar el formulario. Si desea redirigir un formulario solo cuando se hace clic en un botón de envío específico, debe usar el siguiente código.
hook_form_FORM_ID_alter()
realmente no lo necesita, ya que se llama para un formulario específico, mientras que los otros dos ganchos se invocan para más de un formulario.$form['#node']
, que es el objeto de nodo para el objeto que se está editando; "personalizado" es la ID corta para el tipo de contenido que desea redirigir a los usuarios una vez que editan un nodo.$form_state['redirect']
dehook_form_alter()
no tiene ningún efecto; debe configurarse desde un controlador de envío.fuente
&
en cuenta que la entradafunction custom_node_submit($form, &$form_state) {
es muy importante. De lo contrario, no pasará el estado como referencia y las ediciones que realice manualmente no tendrán efecto.Este código funciona en un sitio Drupal 7.
fuente
admin/content
página: drupal.stackexchange.com/a/192271/15055 .Esto se puede hacer configurando
$form_state['redirect']
, por ejemplo, usando una de las siguientes líneas.Son los mismos argumentos a los que pasarías
drupal_goto()
.fuente
$form_state['redirect']
se sobrescribirá si se($node->nid)
evalúa como VERDADERO.No estoy seguro de si esta es una opción para usted, pero si se trata de un tipo de contenido, puede lograrlo rápidamente utilizando el módulo Reglas configurando una regla que se activará al actualizar o crear un determinado tipo de contenido.
fuente