SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Drupal 9で始めるWebサイト開発入門

ノンコーディングでサイト構築~Drupalの多言語機能とメディア管理

Drupal 9で始めるWebサイト開発入門 第3回

Drupal内のメディアを再利用する

 これまでの方法では、記事やカスタムブロックなどDrupalサイト内で利用される画像は再利用ができませんでした。Drupal 8の新しいメディア機能は画像、ビデオ、PDFなどのメディアアセットのアップロード、管理、再利用できる統合的なUIを備えています。堅牢で使いやすく、カスタマイズ可能なインターフェイスを使用して、メディアアイテムを検索、並べ替え、作成できます。エンティティ参照フィールドにメディアアイテムを追加し、テキストエディタを介してコンテンツにメディアを埋め込むことができます。ではWebサイトにメディア管理を導入してみましょう。

モジュールの有効化

 メディア管理はDrupalのコア機能の一部ではありますが、デフォルトでは有効化されていません。機能拡張ページに移動し、「Media」「Media Library」の2つのモジュールを有効にします。

 なお、各モジュールの概要は下記の通りです。

  • Media:画像、動画などのメディアアイテムの作成、設定、表示を管理します。
  • Media Library:メディアリストを強化し、既存のメディアアイテムをより簡単に検索して使用できるようにします。

画像を追加する

 コンテンツ画面に移動すると、新しく「メディア」セクションが追加されていることがわかります。ここではDrupalサイト内の全てのメディアがリストされ、管理されます。試しに、「メディアを追加」から、1つ画像を追加してみます。

 「Image」を選択し、適当な画像と代替テキストを挿入し、他はデフォルトのまま保存します。

 メディアが1つ追加されました。

記事コンテンツタイプでメディアを使えるようにする

 メディアを、サイト構築>コンテンツタイプ>記事>フィールドの管理>フィールドの追加 に遷移し、以下の項目を入力します。

   
新しいフィールドの追加 メディア
ラベル メディア
システム内部名所 media

 フィールドの設定画面ではデフォルトのまま進み、次の編集画面の「参照タイプ」の「Media type」には「Image」のみチェックをして、他はデフォルトのまま保存します。

 今しがた追加したメディアフィールドは、このままだとページの下部に表示されてしまい見栄えがよくないので、フィールドの位置を調整します。記事コンテンツタイプの「表示管理」セクションに移動し、十字キーをドラッグしてメディアフィールドを一番上に移動させ、保存します。

 それでは記事を追加します。コンテンツ>コンテンツを追加>記事 にて、以下の項目を入力します。

 そして、記事に画像を追加するため、「メディアを追加」をクリックします。

 モーダル画面に、先ほど追加した画像がリストされ、選択できるようになっています。また、この場で他の画像を追加することもできます。その場合も、そのメディアアセットが他のコンテンツで再利用できるようにメディア管理の配下に置かれます。

 ここでは、既存の画像ではなく、別の画像を挿入したいと思います。「ファイルを選択」をクリックして適当な画像を選択し、代替テキストを入力して保存します。

 先ほど追加した画像が選択された状態になっているので、このまま「Insert selected」をクリックし、記事を保存します。

 メディア機能を使って、記事ページに再利用可能な画像を挿入できました。

タイトル 季節限定メニューを開始
本文 本日より、夏の季節限定メニューを開始します!今年はマンゴータピオカです。
URLエイリアス(右カラムのドロップダウン) /news/summer-seasonal-item-2020

CKEditorでメディアを埋め込む

 エンティティ参照フィールドを設置してメディアを挿入する方法だけではなく、テキストエディタを設定してメディアライブラリにアクセスし、それを使用してコンテンツにメディアを埋め込むことも可能です。

 環境設定>テキストフォーマットとエディタ に移動します。テキストエディタが「CKEditor」のものであれば設定が可能です。今回は「ベーシック HTML」に設定を追加したいと思いますので、「設定」をクリックします。

 「利用可能なボタン」から、メディアライブラリボタンを「Media」グループ内にドラッグ&ドロップで移動させます。

 「有効なフィルター」内の「Embed media」にチェックを入れます。後はデフォルト設定のまま保存します。

 それでは早速テキストエディタでメディアを埋め込んでみます。コンテンツ>コンテンツを追加>記事 にて、以下の項目を入力します。

   
タイトル テイクアウトを開始しました!
本文 本日より弊社では、より多くのお客さまにまる茶のタピオカドリンクをお楽しみいただけるようテイクアウトサービスを開始いたしました。なお、テイクアウトサービスは一部商品のみの対応となっておりますが、定番商品の抹茶タピオカや夏季限定のマンゴータピオカなどご注文可能です。[ここにエディタから画像を挿入します]より便利に、身近に楽しめるようになったまる茶のドリンクメニューをぜひこの機会にお楽しみください!
URLエイリアス(右カラムのドロップダウン) /news/offering-takeout

 そして、本文内エディタのツールバーの「メディアライブラリボタン」をクリックします。

 モーダル画面にメディア管理画面が表示されました。ここでは、既存の画像を再利用したいと思います。リストから適当な画像を選択し、「Insert selected」をクリックします。

 本文中央に画像が挿入されました。最後に記事を保存します。

 CKEditorを使ってコンテンツにメディアを埋め込むことができました。

まとめ

 第3回では、Drupal 8以降の新機能の一部をご紹介しながらGUI上でサイト構築を行いました。Webサイトのあらゆる部分を翻訳することができる多言語機能、画像などのデジタルアセットを管理するための直感的なUIを持つメディア管理機能など、Drupalのコア機能でできることをご紹介しました。次回も引き続きDrupalの新機能の中から「レイアウトビルダー」「ワークフロー」「JSON:API」について解説します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Drupal 9で始めるWebサイト開発入門連載記事一覧

もっと読む

この記事の著者

丸山 ひかる(マルヤマ ヒカル)

2014年、独立系ソフトウェア開発会社に新卒入社。 Web APIの開発をメインに、保守、運用、顧客サポートまで幅広く携わったのちに、テクニカルエバンジェリストとしてプロダクトの普及に貢献。 現在はDrupalを基盤としたエンタープライズ向けCMSプラットフォームを提供するAcquia(アク...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/12860 2020/10/01 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー