category

Craft CMS のコンテンツで特定の値を複数のページで使い回す #craftcms

2022-12-05

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


複数のページに同じ値を入れたい場合があったとする。

Craft CMS の場合、グローバルがあるのでそこでその設定値を持たせることができる。

20221201 073132

これでグローバルに設定した内容はテンプレート側で取得することができる。

値を変更したければCMS側でグローバルの値を変更すれば複数の箇所が変更される。

固定値をリッチエディタで利用したい場合

テンプレート側で管理するのであれば前述の方法で良いが、 Redactor のコンテンツに埋め込みたい場合がある。
そういったときは Rich Variables plugin を利用するとよい。

Rich Variables
https://plugins.craftcms.com/r...

プラグインをインストールして、 Redactor を設定しているフィールドの、Redactor の設定ファイル(例:Standard.json)にプラグインを追加する。

{
        "buttons": ["format","kbd","bold","italic","lists","link","file","horizontalrule"],
        "plugins": ["source","fullscreen","richvariables"] << richvariables を追加
    }

これで、リッチエディタに Rich Variables のボタンが追加される。

20221201 073434

選択するフィールドの名前が、フィールド自体の名前になってしまうのはやむなし。

20221201 073518

グローバル側ではフィールドの label を「人数」「年度」に変更している。

20221201 073132

これでリッチエディタに Rich Variables の値を使ってコンテンツを追加する。

20221201 073529

表示側で確認する。

20221201 074154

複数のページで同じ値が出力されているのが確認できる。

グローバル側で値を変更してみる。

20221201 074231

表示側の確認。

20221201 074245

値が変わっている事が確認できた。

GraphQL のレスポンスを確認する

GraphQL を使ってヘッドレス的に使っている場合を想定して、レスポンスを確認しておく。

20221201 080207

グローバルで設定した値がちゃんと出力されている。

いろいろな箇所で共通の値を使いたい場合はこういう形で使うことができるので便利そう。