2022-12-05
Craft CMS のコンテンツで特定の値を複数のページで使い回す #craftcms
これは Craft CMS Advent Calendar 2022 5日目の記事です。
複数のページに同じ値を入れたい場合があったとする。
Craft CMS の場合、グローバルがあるのでそこでその設定値を持たせることができる。
これでグローバルに設定した内容はテンプレート側で取得することができる。
値を変更したければ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 のボタンが追加される。
選択するフィールドの名前が、フィールド自体の名前になってしまうのはやむなし。
グローバル側ではフィールドの label を「人数」「年度」に変更している。
これでリッチエディタに Rich Variables の値を使ってコンテンツを追加する。
表示側で確認する。
複数のページで同じ値が出力されているのが確認できる。
グローバル側で値を変更してみる。
表示側の確認。
値が変わっている事が確認できた。
GraphQL のレスポンスを確認する
GraphQL を使ってヘッドレス的に使っている場合を想定して、レスポンスを確認しておく。
グローバルで設定した値がちゃんと出力されている。
いろいろな箇所で共通の値を使いたい場合はこういう形で使うことができるので便利そう。