Drupal 8 テーマ作成 theme名.themeファイルについて

--広告--

ポイント

Drupalの関数をフックするためのファイル、thme名.themeについての説明です。

Drupal 7 までの template.php に該当するファイルです。

閲覧数 374 回

theme名.themeファイルについて

フックしたい関数が出てきた時に、theme名.themeファイルを作成します。

テーマ名が「sample」の場合は、ファイル名は「sample.theme」となります。

theme名.themeファイルを作成しよう

それでは実際にtheme名.themeファイルを作成してみましょう。

今回はテンプレートでテーマまでのパスを取得したい時のための関数を作成します。

今回はsample.themeファイル内に下記のように記載します。

<?php
function display_preprocess_page(&$variables) {
  $variables['theme_path'] = base_path() . $variables['directory'];
}

今回関数名はdisplay_preprocess_pageとします。

base_path()」でDrupalのbasepathを取得し

「$variables['directory']」でテーマディレクトリまでのパスを取得しています。

これで、theme_pathという変数が定義されました。

page.html.twigへ記載

上記sample.theme内に記載した状態で、page.html.twigに先ほど定義した変数を記載します。

また、テーマディレクトリ配下に「image/image1.jpg」という画像ファイルがある前提での説明となります。

こちらのファイルを呼び出したい場合、page.html.twigには

<img src=" {{ theme_path }}/images/image1.jpg">

というように記載します。

※記載の際は「{{ }}」で変数を囲むようにします。

すると、ソースでは下記のように、テーマディレクトリのパスを取得します。

<img src="/themes/custom/display/images/project_1.jpg">

theme名.themeファイルのまとめ

Drupal 7まではtemplate.phpで記載されていた内容が、Drupal 8からは theme名.themeにて記載されるようになりました。

こちらはPHPで書かれており、基本的には書き方は7以前と同じようにはなります。

今回は本当に簡単な使い方ですので、詳しくはDrupal.orgをご確認ください。

カテゴリ

関連タグ

--広告--

同じカテゴリのコンテンツ

・非常に簡易的なDrupalのテーマ作成方法を説明します。

Drupalのテンプレート構造についての説明をします。

主…

ここでは「記事」「基本ページ」等のコンテンツタイプごとに

node.html.tiwgは、page.html.twigの …

ここではテーマにスタイルシートを追加する方法を説明します。