继续昨天的教程,在很多时候,我们有一个很常见的对搜索框的定制需求:用图片搜索按钮代替文本搜索按钮。Drupal默认使用了文本搜索按钮,那么怎样实现图片搜索按钮呢?其实很简单,还是要使用Drupal的hook_form_alter()钩子函数,请看代码(这段代码的上下文环境就不废话了,不清楚的朋友可以查看昨天的文章):
1 2 3 4 5 6 7 |
function mytheme_form_alter(&$form, &$form_state, $form_id) { if ($form_id == 'search_block_form') { $form['action']['submit']['#type'] = 'image_button'; $form['action']['submit']['#src'] = drupal_get_path('theme', 'mytheme') . '/images/search.png'; $form['action']['submit']['#attributes']['class'][] = 'my-search-button'; } } |
$form['action']['submit']['#type']变量用于设定搜索提交按钮的类型,我们把它设为image_button,这表示该提交按钮的类型是图片形式。$form['action']['submit']['#src']变量用于设定提交按钮图片的路径,其中的drupal_get_path()函数用于获得当前主题的路径,它有两个参数,第一个参数指明函数将获得某个主题的路径,第二个参数指明主题的具体名称。$form['action']['submit']['#attributes']['class'][]变量为我们的搜索表单提交按钮增加了一个名为my-search-button的CSS类,可以通过它为我们的图片提交按钮定义样式。


老乡,写的太好了,参考了!!!
不过,写错了一丢丢,害的我失眠一周总算找到原因了:
$form[‘action’][‘submit’][‘#type’] = ‘image_button’;
…
…
————————————–
这个参数【’action’】不应该+s 么?
[‘actions’] ,这样就能实现效果了
为人民服务