最近めっきり記事が書けていませんでしたので久々の投稿になります。
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では警告やエラー、成功などの各種メッセージの表示を行う機能が用意されています。
これは通常ブロックとして表示されるため、今までは以下のようにフォームとは別の領域に表示されていました。
Inline Error Formsモジュールを有効にすることで、メッセージをエラーが発生したフォーム項目の周辺に表示することができるようになります。UIの要件に対して開発コストをかけずに柔軟に対応できるようになりますね。
Datetime Rangeモジュールが安定版に
ある日付の期間を秒単位まで保存可能にするDatetime Rangeモジュールが安定版になりました。
イベント情報やカレンダーなどのデータを表現するために利用できると思います。
Workflows モジュールが安定版に
Drupal coreの機能として、各種コンテンツを掲載または非掲載にする機能が提供されています。新規のコンテンツを作る際は、非掲載で保存して、レビュー後に指摘事項を修正し掲載、のように使えば問題ありません。しかし、一度掲載したコンテンの場合、保存してしまうとすぐに反映され公開されてしまうため、公開前のチェックができません。
この問題を解決するのがWorkflowsモジュールです。このモジュールを使うと、coreで管理される掲載、非掲載の状態とは別に、「下書き」、「レビュー待ち」などの状態と、「下書き保存」、「レビュー依頼」、「承認」などのアクションを定義できるようになります。
この機能を使うことにより、一度掲載されたコンテンツについても公開前にレビューや承認が可能になり、ロール(権限)毎にコンテンツを作成、更新する際に許可される操作を柔軟に制限することが出来るようになります。
ただし、「ノード」に対してこの機能を使う場合、WorkflowsモジュールだけではなくContent Moderationモジュールも有効にする必要があります。Content ModerationモジュールはまだExperimetalなので、セキュリティー要件や問題発生時にサポートが可能なリソースがあるかなどで、利用するかどうかの判断が必要です。
コンテンツ作成インターフェースの改善
コンテンツを保存する際、今まではドロップダウンで「Save & keep unpublished」、「Save & keep published」 のどちらかを選択するUIになっていました。
8.4からはシンプルに「掲載するかどうかのチェックボックス」と「保存」ボタンという組合せに変更されています。
慣れの問題もありますが、新しい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に吸収されており、あまりモジュールを追加しなくてもある程度のサイト構築ができるようになってきていると実感します。
今後のバージョンアップも楽しみですね!
関連コンテンツ
- Dries Buytaert氏の基調講演が明らかにしたDrupalの未来
- Drupalが提供する高度なコンテンツ構造と管理方法
- 柔軟で堅牢なオープンソースCMS: Drupalの特長と利点
- Drupal 導入前に必ず考えたい「保守」のこと
- 手軽に本格的な Drupal のローカル開発環境を構築してみよう
- 9 つのシンプルなステップで Drupal 9 のテーマを作成してみよう
- Drupal 9: 一般的なエクスプロイトの経路をブロックする方法
- エンジニア新人研修のご紹介
- Headless CMS というトレンドに Drupal は適応している!?
- Drupal 9.1 が登場!アップグレードの準備はできていますか?
Drupal 初心者講座バックナンバー
- Drupal 9/10 初心者講座
- 第 1 回 歴史に見る Drupal の DNA
- 第 2 回 Drupal はフレームワークか?CMS か?他の CMS との比較
- 第 3 回 Drupal の特徴
- 第 4 回 Drupal 9 / 10 のインストール (1)
- 第 5 回 Drupal 9 / 10 のインストール (2)
- 第 6 回 Drupal にコンテンツを投稿してみる
- 第 7 回 Drupal のボキャブラリとタクソノミーの使い方
- 第 8 回 コンテンツ管理における Drupal と他の CMS との比較
- 第 9 回 Drupal のブロックシステム
- 第 10 回 Drupal の標準クエリビルダー Views の使い方
- 第 11 回 Drupal と他の CMS のクエリビルダー機能を比較
- 第 12 回 Drupal の多言語機能と他の CMS やサービスとの比較
- 第 13 回 Drupal の権限設定と WordPress や Movable Type との比較
- 第 14 回 Drupal のテーマシステムについて
- 第 15 回 Drupal の拡張モジュールの選定と使い方
- 第 16 回 Drupal をもっと知りたい方に向けた各種情報