category

Guide プラグインでウィジェットの内容をテンプレート管理する #craftcms

2019-12-17

このエントリは Craft CMS Advent Calendar 2019 17日目のエントリです。
昨日は「Craft CMS の Guide プラグインをつかってログイン直後のダッシュボード(ウィジェット)をカスタマイズする」でした。

先日 Guide プラグインを使った方法を書いた。

2019-12-16

テンプレートを用意してそれを使う方法を試してみる。

templates/.guide/dashboard.twig という感じでファイルを用意。

管理画面でGuideのソースとしてテンプレートを選択して(右カラム)、どのテンプレートを使うか設定する。

これでダッシュボード(Guide)の内容をテンプレートで管理することができる。

こんな感じでログインしているユーザーが属するユーザーグループを変数に入れておく。

{% set usergroups = currentUser.groups %}

こんな感じでテンプレート書けば

{% if 'bp1yy' in usergroups %}
<p>bp1yy ユーザーグループに所属しているユーザーにのみ見えているエリア</p>
<grid grid-type="2-column">
  <div>
    <h2>お知らせ管理</h2>
    <a class='btn submit add icon' href="REPLACE_URL">新規作成</a></li>
        <a class='btn' href="REPLACE_URL">編集</a>
  </div>
〜〜〜
</grid>
{% endif %}

そのグループにいるユーザーにのみ見える。

例えば管理者にだけ出すとかは

{% if currentUser.admin %}
<p>管理者にのみ見えているエリア</p>
<grid grid-type="2-column">
  <div>
    <h2>メーカー管理</h2>
    <a class='btn submit add icon' href="REPLACE_URL">新規作成</a></li>
        <a class='btn' href="REPLACE_URL">編集</a>
  </div>
〜〜〜〜
{% endif %}

こんなかんじで判定しておけば、管理者だけに表示される。

別のグループのユーザーには見えていない。

MTのサンプルを作った時も思ったけど、ユーザーグループが多いとちょっと大変だったりする。
その辺はもう少し効率的に管理する方法を検討する余地がありそう。