Twig編集の際に変数を拡張する方法(Twig Tweakモジュール)


Post:2020/10/23

Update:2020/11/02

フロントエンド モジュール
bg-image
Twig編集の際に変数を拡張する方法(Twig Tweakモジュール)

Yohei Higashi

今回は効率よくTwig開発を進めることができるようになるTwigTweakモジュールをご紹介します。

 

Twig Tweakの特徴

Twig Tweakモジュールをインストールすると、twigファイルに出力できる関数やフィルターを拡張することができます。

拡張できる内容一覧

  • Drupal View
  • Drupal View Result
  • Drupal Block
  • Drupal Region
  • Drupal Entity
  • Drupal Entity Form
  • Drupal Field
  • Drupal Menu
  • Drupal Form
  • Drupal Image
  • Drupal Token
  • Drupal Config
  • Drupal Dump
  • Drupal Title
  • Drupal URL
  • Drupal Link
  • Drupal Messages
  • Drupal Breadcrumb
  • Drupal Breakpoint
  • Contextual Links
  • Token Replace Filter
  • Preg Replace Filter
  • Image Style Filter
  • Transliterate Filter
  • Check Markup Filter
  • Truncate Filter
  • View Filter
  • With Filter
  • Children Filter
  • File URL Filter
  • File URI Filter
  • PHP Filter

今回はその中でもよく使うものに厳選してご紹介しようと思います。

 

Drupal View

ブロックレイアウトからではなく、Twig側からもViewsを出力することができます。

{{ drupal_view('who_s_new', 'block_1') }}

 

Drupal Block

ブロックを出力するための関数です。詳しくはこちらをご覧ください。

{{ drupal_block('search_form_block') }}

 

Drupal Region

リージョンを出力することができます。その際にテーマを指定することも可能です。

{# Print 'Sidebar First' region of the default site theme. #} {{ drupal_region('sidebar_first') }}

{# Print 'Sidebar First' region of Bartik theme. #} {{ drupal_region('sidebar_first', 'bartik') }}

 

Drupal Field

特定のフィールドを指定して出力することもできます。

{# nodeID1の画像フィールドを出力する場合 #}

{{ drupal_field('field_image', 'node', 1) }}

 

{# 上記に加えてティーザーを利用する場合 #}

{{ drupal_field('field_image', 'node', 1, 'teaser') }}

 

{# typeやスタイルなど、より詳細な設定をすることも可能です。 #}

{{ drupal_field('field_image', 'node', 1, {type: 'image_url', settings: {image_style: 'large'}}) }}

 

Drupal Token

Tokenで取得した値を表示する場合はこちら。

{{ drupal_token('site:name') }}

 

最後に

いかがでしたでしょうか。
Twig Tweakを使いこなすことで効率よくTwigファイルの編集を進められるようになると思います。
今回ご紹介した以外にも様々な出力を拡張することが出来ますので、こちらもあわせて確認してみてください。

最後まで読んでいただきありがとうございました。

Profile picture for user Yohei Higashi
Yohei Higashi
フルスタックエンジニア
石川県金沢市出身。2020年8月〜web業界未経験からアクレットに入社した駆け出しエンジニアです。 未経験者ならではの視点で、わかりやすい記事を心がけて情報発信していきます!