私はこれは非常に最近のことでしたが、
Drupal 8(コア)にはHTMLがハードコードされていません(またはごくわずかです)。あなたはcontribモジュールとは異なる経験をしているかもしれません。
私はテーマの構造をハードルとは考えていません。 libraries.yml
ファイルに適切なファイルを含めるだけです。
右の(ブートストラップ)クラスを要素に割り当てるには、twig
ファイルをオーバーライドする必要があります。例えば
input--submit.html.twig
、これは、ボタンを提出し、すべてにブートストラップbtn
、btn-block
とbtn-lg
クラスを追加します。
また、アイコン属性(data-icon
)を受け入れるように送信ボタンをカスタマイズしました。既存のフォームの場合、属性を追加するにはhook_form_alter
を使用する必要があります。独自のフォームの場合は、配列#attributes
に追加するだけです。
{% set classes = [
'btn', 'btn-block', 'btn-lg',
] %}
<button{{ attributes.addClass(classes) }}>
<span class="glyphicon {{ attributes['data-icon'] }}"></span>
<span>{{ attributes.value }}</span>
</button>{{ children }}
input--password.html.twig
これは、パスワードのフォーム要素のためです。私はform-control
クラスを追加しました。別として
<input{{ attributes.addClass("form-control") }} />{{ children }}
block--clean-main-menu.html.twig
、最終的に、例としては、私が先頭にサイトのメニューの静的を持っていると思ったので、私はnavbar
クラスを追加する必要がありました。
{% set heading_id = attributes.id ~ '-menu'|clean_id %}
<nav {{ attributes.addClass('navbar navbar-default navbar-static-top') }}>
<div class="container">
<div class="col-lg-12">
{% block content %}
{{ content }}
{% endblock %}
</div>
</div>
</nav>
これは小さなプロジェクトでした。あなたはもっと大きなプロジェクトのためにもっと多くの仕事をするでしょう。あるいは、異なる送信ボタンのスタイルを変えたいかもしれません(ヒント:hook_theme_suggestions_field_alter
を使って新しいテーマの上書きを追加してください)。
私たちは、私の会社では100%カスタマイズテーマの多くで動作し、我々はすでにそれに慣れているので、完全にあらゆる小さい事をオーバーライドすることは一般的です。)
また、develの拡張機能をインストールすることを忘れないでください。どのファイルにどのファイルが使用されているのかを知りたい場合は、大いに役立ちます。
ありがとうございます! :)これは今私にとって外国人ですが、私はあなたの応答にとても感謝しています。そして、それは天文学ではないかもしれないので、私はカスタマイズのコストについて少なくとも会社に相談することができるかもしれないように思えます。本当にそれを感謝します! – Eirene