Drupal自定义HTML搜索表单

时间:2013-05-22 10:49:45

标签: php forms drupal-7 drupal-search

我想在Drupal网站上显示自定义搜索表单。

搜索表单旁边只有一个文本框和一个提交按钮,不需要任何隐藏字段。

我在模板中尝试使用一个简单的html表单,模仿正常的drupal搜索表单:

<form accept-charset="UTF-8" id="search-form" method="post" action="/drupal/?q=search/page" class="search-form">
<div id="edit-basic" class="container-inline form-wrapper">
<div class="form-item form-type-textfield form-item-keys">
<input type="text" autocomplete="off" class="form-text" maxlength="255" size="40" name="keys" id="edit-keys" value="search" onBlur="if(this.value == '') { this.value = 'search'; }" onFocus="if(this.value == 'search') { this.value = ''; }" style="right:15px;">
</div>
</div>
<input type="hidden" value="form-Og2HsMomOhfRkoS262LFbqpN2NyIGeHHYfTF43Kynjs" name="form_build_id">
<input type="hidden" value="mfLsAR-y7CVQLcWY7hgZRGPbu3F3R5uQKKpZe3ppAi4" name="form_token">
<input type="hidden" value="search_form" name="form_id">
</form>

但是这有一些问题:“表格已经过时了。复制下面表单中任何未保存的作品,然后重新加载此页面。

有没有办法可以使用自定义html表单作为Drupal搜索表单?基本上我想重新设计默认的Drupal搜索表单,以满足我的需求。

1 个答案:

答案 0 :(得分:1)

使用默认的drupal搜索表单,并根据需要使用hook_form_FORM_ID_alter

进行更改
/** Implements hook_form_FORM_ID_alter */
function mymodule_form_search_form_alter (& $form, & $form_state)
{
  /* Do your alterations here */
}

参考Form API以了解您需要做出哪些更改。

使用自定义模块的名称在上面的代码中放置mymodule。要在模板中输出表单,请使用以下代码:

$form = drupal_get_form('search_form');
print render($form);