web-dev-qa-db-ja.com

Drupal 7の検索ブロックで送信ボタンを削除または非表示にする

Drupal 7.の検索ブロックでカスタムテーマを設定する必要があります。

具体的には、送信ボタンにクラスを追加して、それを非表示にし、コンテンツフローから削除する必要があります。だから:

<div class="form-actions form-wrapper" id="edit-actions">
  <input type="submit" id="edit-submit" name="op" value="Search" class="form-submit">
</div>

なる...

<div class="form-actions form-wrapper element-invisible" id="edit-actions">
  <input type="submit" id="edit-submit" name="op" value="Search" class="form-submit">
</div>

追加した element-invisibleをedit-actions div要素に追加します。しかし、これを行う方法がわかりません。この種のことをするためのベストプラクティスは何ですか?

5
Lester Peabody

これを行う標準的な方法の1つは、 hook_form_alter() を使用して、属性をアクション要素に直接追加することです。

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'search_block_form') {
    $form['actions']['#attributes']['class'][] = 'element-invisible';
  }
}
13
Clive

次のようなphp条件を使用して非表示にすることもできます。

<?php
function your_module_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'your_form_id') {
      unset($form['actions']['submit']);
  }
}
?>
0
houmem