ANNAIマガジン
この記事の目次

こんにちは、ANNAIの青山です。最近めっきり記事が書けていませんでしたので久々の投稿になります。

2017/10/4に Drupal 8.4.0がリリースされました8.3.0のリリースが2017/4/6だったため、約半年ぶりのマイナーアップデートになります。このリリースの主な変更点や、新たにExperimentalとして追加されたモジュールなどの情報をご紹介していきます。詳細なリリースノートは以下を参照してください。

https://www.drupal.org/project/drupal/releases/8.4.0

Inline Form Errorsモジュールが安定版に

Drupalでは警告やエラー、成功などの各種メッセージの表示を行う機能が用意されています。

これは通常ブロックとして表示されるため、今までは以下のようにフォームとは別の領域に表示されていました。

default error message

 

Inline Error Formsモジュールを有効にすることで、メッセージをエラーが発生したフォーム項目の周辺に表示することができるようになります。UIの要件に対して開発コストをかけずに柔軟に対応できるようになりますね。

inline error message

 

Datetime Rangeモジュールが安定版に

ある日付の期間を秒単位まで保存可能にするDatetime Rangeモジュールが安定版になりました。

イベント情報やカレンダーなどのデータを表現するために利用できると思います。

Workflows モジュールが安定版に

Drupal coreの機能として、各種コンテンツを掲載または非掲載にする機能が提供されています。新規のコンテンツを作る際は、非掲載で保存して、レビュー後に指摘事項を修正し掲載、のように使えば問題ありません。しかし、一度掲載したコンテンの場合、保存してしまうとすぐに反映され公開されてしまうため、公開前のチェックができません。

この問題を解決するのがWorkflowsモジュールです。このモジュールを使うと、coreで管理される掲載、非掲載の状態とは別に、「下書き」、「レビュー待ち」などの状態と、「下書き保存」、「レビュー依頼」、「承認」などのアクションを定義できるようになります。

workflows

この機能を使うことにより、一度掲載されたコンテンツについても公開前にレビューや承認が可能になり、ロール(権限)毎にコンテンツを作成、更新する際に許可される操作を柔軟に制限することが出来るようになります。

ただし、「ノード」に対してこの機能を使う場合、WorkflowsモジュールだけではなくContent Moderationモジュールも有効にする必要があります。Content ModerationモジュールはまだExperimetalなので、セキュリティー要件や問題発生時にサポートが可能なリソースがあるかなどで、利用するかどうかの判断が必要です。

コンテンツ作成インターフェースの改善

コンテンツを保存する際、今まではドロップダウンで「Save & keep unpublished」、「Save & keep published」 のどちらかを選択するUIになっていました。

old save UI

8.4からはシンプルに「掲載するかどうかのチェックボックス」と「保存」ボタンという組合せに変更されています。

new save UI

慣れの問題もありますが、新しいUIの方がシンプルで迷わないのではないかと思います。

Symfonyのバージョンが2.8から3.2に変更

coreが依存するsymfonyのバージョンが2.8から3.2に変更されています。Symfony 3.xで削除されたAPIなどを利用している場合には注意が必要です。

Drush 8.1.12以降が必要

Drupal 8.4のサイトをdrushでメンテナンスするには、Drush 8.1.12以上のバージョンが必要になります。

8.1.12のリリースノートにそんなこと書いてないじゃん」というツッコミはあったりしますが、細かく見てみると8.4向けのTravis CIのテストがされているのが8.1.12からだということがわかります。このようにリリースノートに全ての変更が書かれているとは限らないので、詳細な情報まで見るのは大事な習慣です。

良い機会なので安定版である 8.x の最新までアップデートしておきましょう。

Media API in Core

個人的なイチオシの変更点はこれです。

Drupal coreには、ファイルだけを単体で管理するための機能が提供されていませんでした。そのため、Media モジュールを導入して、ファイルをノードなどのコンテンツとは別々に管理する方法がよく取られています。しかし、このモジュールはメンテナンス的には少し難がありました (特にwysiwygエディターと一緒に使う場合)。Drupal 7でCKEditorなどと一緒に使い、アップデートの際にうまく動かなくなった経験をお持ちの方もいるかもしれません。

今はまだモジュール一覧にも表示されず、単体で有効にすることはできません。Contribute Moduleで依存を設定すれば、自動的に有効になりAPIが利用できる、という段階のようです。

安定するにはもう少しかかりそうな気がしますが、coreに入ったため今後は利用してもメンテナンスは非常に楽になりそうです。

まとめ

ここで紹介した以外にも、パフォーマンスの向上やLayout Discoveryモジュールの安定版への昇格、Migarate関連のExperimentalモジュールの追加など、様々な変更がされています。 

Drupal 8以降、利用頻度の高いモジュールがどんどんCoreに吸収されており、あまりモジュールを追加しなくてもある程度のサイト構築ができるようになってきていると実感します。

今後のバージョンアップも楽しみですね!

連載中!:Drupal初心者講座

  • Drupal初心者講座について
  • 第1回 歴史に見るDrupal のDNA
  • 第2回 Drupalはフレームワークか?CMSか?(近日公開予定)
  • 第3回 Drupalの特徴(近日公開予定)
  • 第4回 Drupal 8のインストール(1)(近日公開予定)
  • 第5回 Drupal 8のインストール(2)(近日公開予定)
  • 第6回 コンテンツを投稿してみる(近日公開予定)
  • 第7回 ボキャブラリとタクソノミーを使う(近日公開予定)
  • 第8回 他のCMSと比較してみる(近日公開予定)