Storage Entities + Inline Entity Form

hagi に投稿

以前このブログでStorage Entities取り上げたが、Talking Drupal #349でStorage Entitiesが取り上げられていたので、Youtubeで聞いた。

今回はInline Entity Formを組み合わせて使ってみた。Inline Entity Formはこの記事の執筆時点で、8.x-1.0-rc11とまだ完全公開に至っていないが、Talking Drupalでは十分安定的だと言われていた。Commerce関連のモジュールを見ている人がメンテナなのでリリースが保守的というコメントもあった。rcなのに既に10万サイト以上が利用している。一方、Storage Entitiesは世紀リリースながら、まだ165サイトにしか利用されていない。十分安定していると思われるのだが、まだ人気モジュールの仲間入りはしていない。

操作感としては、通常のフィールドよりは使いにくいが、実用的には問題ない感じだ。Storage Entityを用いた会員情報コンテンツタイプのコンテンツの例は以下の通り。

画像

これを編集すると、

画像

となり、Storage Entityへのリンクが出てくる感じになる。ここで、削除して、他のEntityに差し替えることも、新規に作ることもできるが、この例では編集にトライする。

画像

名前を変えて、Update ストレージで保存。注意しなければいけないのは、この段階ではStorage Entityはまだ更新されていない。

画像

親コンテンツを保存して完了する。3クリックほど増えるが、型の分離ができるのは便利だと思う。

twigを使ってレンダリングを制御することもできるだろうから、汎用化の限界はあるだろうが、Themesなど一定の環境が決まっているところでの応用であれば、結構やれることは多そうだと思った。もちろんレイアウトビルダーも使えるので、Storage Entityタイプに共通なレイアウト設定も可能となる。

画像

親コンテンツにもレイアウト設定を行うと以下のような表示も可能となる。

画像

もちろん、nodeやtermを使ってもよいのだが、Titleを必要としない軽量なデータ型が使えるのは便利だ。今後、本番サイトでも積極的に使っていきたいと考えている。

タグ