【Drupal】テーマ1 
~オリジナルテーマを作成する~

Drupalをインストールすると、以下のような画面が表示されます。

私が最初に思ったのは、「ナニコレ?」でした。。
そもそも仕事で見てきた画面はこんな画面じゃなかったし、Drupalってどうやって画面をカスタマイズするの?という状態でした。
モジュールを適当にインストールしても、コンテンツを登録しても、画面の構造や色味はまったく変わらなかったためです。
それもそのはずで、画面のカスタマイズは、「テーマ」がカギを握っていたのです。

テーマとはCSSやJavaScript、コンテンツの画面配置を司る機能です。

そう言われてもよくわからないですよね。なのでとりあえず触ってみてイメージをつかんでいきましょう!

まず、Drupalに管理者ユーザでログインし、「テーマ」タブをクリックしてみてください。以下のような画面が出ますよね。

Drupalをインストールした直後は、「Bartik」というテーマが適用されている状態となります。

「Bartik」はDrupalがデフォルトで提供するシンプルなテーマですが、実態はどこにあるのでしょうか。

それは以下にあります(今後、ディレクトリパスは/var/www/html/サイト名 を省略します)。

core/themes/bartik

これを参考にテーマを作成したいと思いますが、「Bartik」はcoreディレクトリに含まれており、 Drupalのバージョンが上がると変更される可能性があります。なので「Bartik」を別の場所にコピーしてしまいましょう。
テーマを自作するときは、以下のディレクトリにて行います。

themes

また、第三者から提供されたコード(コントリビュート)と自作のコードが混ざると管理しづらいので、 以下のようなディレクトリを作っておきます。

themes/Contrib
themes/Custom

少しでも自分で変更したコードはCustomディレクトリに格納し、そうでないものはContribに格納することとします。
そうすることで、バグの原因と対処方法が特定しやすくなります(Contribの中でバグが発生していたら提供元の サイトに何か情報が無いか探せますし、Customでバグが発生したら自分で特定できますよね)。


「Bartik」はコントリビュートテーマなので、「Contrib」に格納します。

themes/Contrib/bartik

私のDrupalバージョン9.1.7だと、この状態で以下のようなエラーとなります。

The ‘core_version_requirement’ key must be present~略~

‘core_version_requirement’の設定がないとのことなので、bartik.info.ymlに以下を追加してあげます。

core_version_requirement: ^9

これは、このテーマがDrupal9に対応していることを示す設定です(なんで最初は書かれていないんだろう)。
とりあえずこれで準備は整いました。いよいよ、テーマをつくります。

テーマを作成するには、info.ymlファイルを作成するだけでいいです。
Customディレクトリ配下に適当なテーマ名のディレクトリを作成し、その中にテーマ名.info.ymlファイルを作成してみてください。
記述する内容は以下です。

themes/Custom/okitheme/okitheme.info.ymlの記述内容

name: ‘練習用テーマ’
type: theme
description: ‘練習用のテーマです。’
base theme: bartik
core_version_requirement: ^9

regions:
  header: Header
  primary_menu: ‘Primary menu’
  secondary_menu: ‘Secondary menu’
  page_top: ‘Page top’
  page_bottom: ‘Page bottom’
  highlighted: Highlighted
  featured_top: ‘Featured top’
  breadcrumb: Breadcrumb
  content: Content
  sidebar_first: ‘Sidebar first’
  sidebar_second: ‘Sidebar second’
  featured_bottom_first: ‘Featured bottom first’
  featured_bottom_second: ‘Featured bottom second’
  featured_bottom_third: ‘Featured bottom third’
  footer_first: ‘Footer first’
  footer_second: ‘Footer second’
  footer_third: ‘Footer third’
  footer_fourth: ‘Footer fourth’
  footer_fifth: ‘Footer fifth’

いろいろ書いちゃっていますが、「regions:」以下は「Bartik」のbartik.info.ymlからコピペしたものです。
それぞれの意味は以下です。

項目名意味
nameテーマを選択する画面で使用されるテーマの名前です。
typeモジュールのタイプを指定します。今回は「theme」です。
descriptionテーマを選択する画面で使用されるテーマの説明です。
baseベースとなるテーマを指定します。今回はbartikです。
core_version_requirement 対応しているコアバージョンを指定します。
region画面の領域を定義します。

この時点で、テーマ選択画面に以下のようにテーマが表示されることとなります。


「インストールしてデフォルトに設定」ボタンを押下すると、作成されたテーマがインストールされます。

テーマを作ったのにDrupalが認識しないよーという方は、 「環境設定」-「パフォーマンス」から、「すべてのキャッシュをクリアー」を押してください。

これで、とりあえずテーマを作成することができました。

次回は、このただコピペしただけのテーマを少し変更してみたいと思います。

私はこの本(Drupal 9 Module Development)でDrupalの 勉強をしています。
Drupal9に関する日本語の本にはない、Drupalの具体的な実装方法が記載されています。