0

Drupal サイトにカスタム検索フォームを表示したいと考えています。

検索フォームには、テキストボックスとその横にある送信ボタンだけがあり、非表示のフィールドは必要ありません。

テンプレートで、通常の drupal 検索フォームを模倣した単純な html フォームを試してみました。

<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>

しかし、それには次のような問題があります。未保存の作品を下のフォームにコピーしてから、このページをリロードしてください。」</p>

カスタム html フォームを Drupal 検索フォームとして使用する方法はありますか? 基本的に、私のニーズに合わせて、デフォルトの Drupal 検索フォームを再設計したいと考えています。

4

1 に答える 1

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 */
}

フォーム APIを参照して、どのような変更を行う必要があるかを確認してください。

上記のコードの mymodule をカスタム モジュールの名前に置き換えます。テンプレートでフォームを出力するには、次のコードを使用します。

$form = drupal_get_form('search_form');
print render($form);
于 2013-05-24T01:16:04.163 に答える