欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

如何快速查找Drupal表单的Form ID? 得到 表单id form_id 查看 form_id 开发者工具 有大用

shiping1 的头像

当然 chrome 的 web developer 也能实现同样的功能
如何快速查找Drupal表单的Form ID?

在开发Drupal网站的过程中,我们经常需要使用hook_form_alter(&$form, &$form_state, $form_id)或hook_form_Form_ID_alter(&$form, &$form_state)两个函数对Drupal的表单进行修改,以满足我们实际应用的需求。这2个函数有以下一些功能:

1、修改表单的labels、descriptions及其他属性
2、通过改变#weight改变元素在表单中的先后顺序
3、将一些元素用<div>或者<fieldset>包裹(wrapper)
4、隐藏或移除一些不必要的元素
5、为表单添加一些markup(标签)
6、为表单加上自己写的验证函数(例如加在第一个:array_unshift($form['#validate'], 'new_validate');)
6、等等等等等等

例如:下面这段语句就是将搜索表单的按键改成图形的,search_block_form就是这个搜索表单的Form ID(下面代码摘自老梁的mydrupal,老农【老农是antims的外号】稍微修改了一下)

1
2
3
4
5
6
7
function  主题名_search_block_form_alter(&$form, &$form_state) {
    $form['search_block_form']['#size'] = 30;
    $form['actions']['submit']['#value'] = t('Go');
    $form['action']['submit']['#type'] = 'image_button';
    $form['action']['submit']['#src'] = drupal_get_path('theme', '主题名') . '/images/search.png';
    $form['action']['submit']['#attributes']['class'][] = 'my-search-button';
}

 

从上面代码可以看出,修改一个Drupal表单,最重要的就是要知道它的Form ID。那么怎么才能快速查找它呢?
老农为您介绍最最方便的方法:

1、安装Firefox浏览器

2、安装web Developer插件

3、在表单页面点右键,选择Web Developer------>Form-------------->Display Form details(也可以点工具栏的Forms图标)

 

 

上图截自Drupal的官方网站,我们要查找的是首页搜索表单的ID,图最下面这个search_theme_form就是了,它存在于表单的隐藏域,如 果不登陆是看不到的哦。老农在此顺便说一下,Drupal是非常安全的CMF,符合美国军方标准(否则白宫和联合国也不会用它了),它的表单隐藏域有 form_build_id和form_token,其值是个哈希值,根据variable表里的drupal_private_key生成,此值具有唯 一性,确保是Druapl自己的表单,防止表单伪造,极大地提高了系统的安全性。

Firefox的Firebug和Web Developer是web开发者的好朋友,请一定要学会使用哦!

好文,我把它转到博客里面。

antims的头像

hook_form_Form_ID_alter(&$form, &$form_state, $form_id)

应该为:

hook_form_Form_ID_alter(&$form, &$form_state)

antims的头像

【备注】

Firefox版web developer的下载地址:

 


来自 http://www.drupalla.com/node/2306


普通分类: