2022-12-07

リファレンスタグを使うと特定のエントリとかのデータの特定のフィールドのデータを流用できる #craftcms

これは Craft CMS Advent Calendar 2022 7日目の記事です。


リファレンスタグをあれこれ触っていた。

その中で改めてドキュメントを読んでいた。

Reference Tags | Craft CMS Documentation | 4.x
https://craftcms.com/docs/4.x/...

ドキュメントに以下のサンプルが紹介されていた。

{entry:blog/whats-on-tap@en:intro} – returns the value of an intro custom field on a blog section entry with the slug whats-on-tap, loaded from the site with the handle en.

エー!?まじ!?

若干話は違うかもだけど、 Obsidian とかのノートアプリでノートから別のノートの特定のブロック部分を参照できるような感じか。


ということで早速試してみた。
まずは流用するデータを用意する。

20221202 072007

testStructure セクションの sluga-2-1 のエントリで、フィールドのハンドルが testTextarea1

別のエントリの方で、以下の形でフィールドの値を持つ。

ここはテキストエリア

人数:{globalset:262:testText1}
年度:{globalset:262:testText2}

以下は別エントリの特定のフィールドをインポートしてみます。

{entry:testStructure/a-2-1@default:testTextarea1}
20221202 071938

slug が同じだけど階層違いのエントリがあるときとかがどうなるかは要調査。

これを表示してみると確かに値を流用できている!!

20221202 071933

いやー、これ知りませんでした、すみませんm(__)m

テンプレートであれこれ管理するときはエントリを指定して、フィールドを取り出すというのは簡単にできるけど。
これだとCMSの管理画面側で完結できる。

リファレンスタグの構文が複雑とかはあるかもしれないから、その辺はリッチエディタなら先日のエントリにあるようなプラグインを使う事で解決できそう。

ほんと勉強になった。
あれやこれや使い道が広がるなぁ。