¿Cómo obtengo el id del formulario? Acabo de comenzar a hacer mis módulos y estoy parado. Recibí este código de otra persona y estoy tratando de personalizarlo:
function hook_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'the form id for the node form') {
$form['#submit'][] = 'my_custom_submit_handler';
}
}
hook_form_alter()
. Dado también el código informado, diría que esta pregunta es diferente.Respuestas:
Intente imprimir las variables de formulario con la función PHP print_r .
Cuando visite la página en la que se encuentra el formulario, se mostrarán las variables (y el nombre).
Una forma más fácil de acceder (o más bien ver) la información sería usar la función dpm () proporcionada por el módulo Devel . Puede usarlo de la misma manera que usaría print_r.
fuente
$form
variable.dpm($form_id);
Encontrar ID de formulario sin instalar el módulo
Encontrar la identificación del formulario es muy fácil, no es necesario instalar módulos y todo
PASO 1: Ábralo desde ir a su página de edición (O inspeccione su formulario).
PASO 2: si es una forma de nodo, busque "forma de nodo " en el elemento de inspección
Comprueba que estás en el elemento de formulario .
PASO 3: vea la imagen adjunta, el texto verde resaltado es la ID del formulario
PASO 4: IMPORTANTE Finalmente, si desea usarlo,
hook_form_alter()
reemplace el hypen con guión bajoPor ejemplo:
yourform_id_with_content_type_name_form
Como sabio, puede encontrar la identificación de cualquier forma en drupal, todo lo que tiene que hacer es inspeccionar-> encontrar el elemento de la forma y buscar el atributo ID y usarlo
Espero eso ayude :)
fuente
name
atributo tenga el valor "form_id". 2) Observe elvalue
atributo del elemento de entrada : el valor del atributo es el ID de formulario deseado. Ejemplo: El formulario de comentarios en los nodos de la historia tiene el ID de formulario "comment_comment_node_story_form". Si lo desea, puede incorporar esta nueva información en su respuesta.Si su formulario web se encuentra en "www.midominio.com/nodo/351", su ID de formulario será "webform_client_form_351". Entonces, sea cual sea su nid, esa es su identificación de formulario.
fuente
Si sabe dónde está el código que define la forma que desea modificar, mire allí. La identificación del formulario es solo el nombre de la función que define ese formulario.
Por ejemplo, Vistas define la función views_ui_edit_view_form en la línea 875 de views / includes / admin.inc. El filtro de vistas de selección jerárquica busca esa identificación de formulario en la línea 50 de jerarquía-selecta / módulos / hs_taxonomy_views.module en una función hood_form_alter.
fuente
Use la
drupal_set_message()
función para mostrar la identificación del formulario.fuente
Use el ID del formulario de obtención módulo para encontrar fácilmente la identificación de cualquier formulario en Drupal.
Aquí hay una cita al respecto de su página de proyecto:
Divulgación: soy el mantenedor de estos módulos.
fuente
Como el código que informó está buscando el ID de formulario del formulario de nodo, hay dos casos.
Drupal 6
Si el código intenta alterar el formulario utilizado para establecer la configuración de un tipo de contenido, entonces debe usar la siguiente instrucción IF.
Si el código está tratando de alterar el formulario de edición de nodos, entonces el código debe usar la siguiente instrucción IF.
Drupal 7 y superior
En el primer caso, la declaración IF debería ser la siguiente:
Usando un enfoque diferente, suponiendo que mymodule es el nombre corto de su módulo, podría usarlo
mymodule_form_node_type_form_alter(&$form, &$form_state, $form_id)
. Desde Drupal 7, todos los ganchos utilizados para alterar la forma implementada por otro módulo se obtienen$form_id
como último parámetro. Ver hook_form_alter () , hook_form_FORM_ID_alter () , hook_form_BASE_FORM_ID_alter () .En el segundo caso, la declaración IF es la misma que se usa para Drupal 6.
fuente
Primero instale el módulo Devel. Luego cree un módulo como el código a continuación
Luego puede ver TODOS los detalles de un formulario, como ID de formulario, nombres de campo de un formulario, etc.
fuente