Como obtenho o ID do formulário? Eu apenas comecei a fazer meus módulos e estou parado. Eu recebi esse código de outra pessoa e estou tentando personalizá-lo:
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 também o código relatado, eu diria que esta pergunta é diferente.Respostas:
Tente imprimir as variáveis de formulário com a função PHP print_r .
Quando você visita a página em que o formulário está, as variáveis (e nome) serão exibidas.
Uma maneira mais fácil de acessar (ou melhor, visualizar) as informações seria usar a função dpm () fornecida pelo módulo Devel . Você pode usá-lo da mesma maneira que usaria print_r.
fonte
$form
variável.dpm($form_id);
Localizando o FORM ID sem instalar o módulo
Encontrar o ID do formulário é muito fácil, não é necessário instalar módulos e todos
PASSO 1: Abra você na página de edição (OU inspecione seu formulário).
PASSO 2: se for um nó, encontre " nó-forma " no elemento de inspeção
verifique se você está no elemento do formulário .
PASSO 3: veja a imagem anexada, o texto verde destacado é o ID do formulário
PASSO 4: IMPORTANTE Finalmente, se você quiser usá-lo,
hook_form_alter()
substitua o hypen por sublinhadoPor exemplo:
yourform_id_with_content_type_name_form
Da mesma forma, você pode encontrar o ID de qualquer formulário no drupal. Tudo o que você precisa fazer é inspecionar-> encontrar o elemento do formulário e procurar o atributo ID e usá-lo
Espero que ajude :)
fonte
name
atributo tenha o valor "form_id". 2) Observe ovalue
atributo do elemento de entrada - o valor do atributo é o ID do formulário desejado. Exemplo: o formulário de comentário nos nós da história possui o ID do formulário "comment_comment_node_story_form". Se você quiser, pode incorporar essas novas informações na sua resposta.Se o seu formulário da web estiver localizado em "www.meudominio.com/node/351", o ID do seu formulário será "webform_client_form_351". Portanto, qualquer que seja o seu nid - esse é o seu ID de formulário.
fonte
Se você souber onde está o código que define o formulário que deseja alterar, procure lá. O ID do formulário é apenas o nome da função que define esse formulário.
Por exemplo, Views define a função views_ui_edit_view_form na linha 875 de views / includes / admin.inc. O filtro de visualizações Seleção Hierárquica procura o ID do formulário na linha 50 de hierarchical_select / modules / hs_taxonomy_views.module em uma função hood_form_alter.
fonte
Use a
drupal_set_message()
função para exibir o ID do formulário.fonte
Use o módulo Obter ID do formulário para descobrir facilmente o ID de qualquer formulário no Drupal.
Aqui está uma citação sobre ele na página do projeto:
Divulgação: Eu sou mantenedor desses módulos.
fonte
Como o código que você relatou está procurando o ID do formulário do nó, há dois casos.
Drupal 6
Se o código estiver tentando alterar o formulário usado para definir as configurações de um tipo de conteúdo, use a seguinte instrução IF.
Se o código estiver tentando alterar o formulário de edição do nó, o código deverá usar a seguinte instrução IF.
Drupal 7 e superior
No primeiro caso, a declaração IF deve ser a seguinte:
Usando uma abordagem diferente, supondo que mymodule seja o nome abreviado do seu módulo, você pode usar
mymodule_form_node_type_form_alter(&$form, &$form_state, $form_id)
. Desde o Drupal 7, todos os ganchos usados para alterar a forma implementada por outro módulo recebem$form_id
o último parâmetro. Veja hook_form_alter () , hook_form_FORM_ID_alter () , hook_form_BASE_FORM_ID_alter () .No segundo caso, a declaração IF é a mesma usada para o Drupal 6.
fonte
Primeiro instale o módulo Devel. Em seguida, crie um módulo como o código abaixo
Em seguida, você poderá ver TODOS os detalhes de um formulário, como ID do formulário, nomes de campos, etc.
fonte