web-dev-qa-db-ja.com

デフォルトの検索ブロックフォームテンプレートをカスタマイズする方法は?

既定の検索ブロックフォームテンプレートをカスタマイズする方法を教えてください。以下のテンプレートを使用して検索フォームブロックを表示しますが、このコードでは、このフォームの各部分を個別に編集およびカスタマイズできず、柔軟性がありません。

form--search-block-form.html.twig

<form{{ attributes.addClass('search-form', 'search-block-form') }}>
  {{ children }}
</form>

そして、以下のコードで私のテーマに印刷します:

{{ page.search_box }}

より多くの変数とカスタマイズの柔軟性を備えたより良いテンプレート名の提案はありますか?

6
Mojtaba Reyhani

Twigを使用したい場合は、次のようにカスタムモジュールを作成することで実現できます。

/themes/your_theme/templates/form--search-block-form.html.twig

{% set form = element %}

hello {{ form.keys }} world {{ form.actions }}

結果:

enter image description here

Bartikテーマ:

enter image description here

4
No Sssweat

検索ブロックは、コアモジュールSearchによって提供されます。このモジュールをインストールすると、ブロックを配置したときに、ブロックレイアウトでブロックが使用可能になります。

おそらく、標準プロファイルをインストールすることで、すでにこれを実行しているでしょう。

検索フォームをカスタマイズするには、フォーム変更フックを使用できます。

たとえば、この関数をmytheme.theme検索ボタンを変更するには:

function mytheme_form_alter(&$form, $form_state) {
  if ( $form['#form_id'] == 'search_block_form' ) {
    $form['actions']['submit']['#value'] = t('Search my Website');
  }
}
4
4k4