Craft CMS の場合、エントリの編集画面ではそこまでカスタマイズしなくとも大体のことはできるのだけど、やはりカスタマイズがしたいという需要もあるようで。

管理画面にそういった処理を加えるためのフックに使うための class を振ってくれる Control Panel Body Classes をためしてみた。

Control Panel Body Classes
https://plugins.craftcms.com/c...

とりあえずはどういうのが振られるのか、というのを確認してみた。

プラグインの設定としてはこんな感じで、どこでどういう class を振るか?という設定ができる。

ログインユーザーを元に
・ログインしているユーザーが所属するユーザーグループ
・ログインしているユーザーが管理者かどうか
・ログインしているユーザーのID

ユーザーのプロフィール編集ページで
・ログインしているユーザーが所属するユーザーグループ
・ログインしているユーザーが管理者かどうか
・ログインしているユーザーのID

開いている管理画面の
・セクションの情報
・ページの情報

エントリ一覧のページで
・セクションの情報
・サイトの情報

この状態でみてみるとダッシュボードは body にこんな感じで class が振られている。

class="ltr usergroup-bp1admin userlevel-admin"

プラグインの設定画面

class="ltr usergroup-bp1admin userlevel-admin currentsection-settings currentpage-settings-plugins-cp-body-classes"

エントリの一覧画面

class="ltr usergroup-bp1admin userlevel-admin currentsection-entries currentpage-entries"

エントリの編集画面

class="edit-entry site--default ltr usergroup-bp1admin userlevel-admin currentsection-entries currentpage-entries-product-88-製品7"

プラグインの設定でこんな感じでチェックを追加しておく。

エントリ一覧画面

class="ltr usergroup-bp1admin userlevel-admin currentsection-entries currentpage-entries-product entriessection-product"

エントリ編集画面

class="edit-entry site--default ltr usergroup-bp1admin userlevel-admin currentsection-entries currentpage-entries-product-88-製品7 entriessection-product entriessite-default"

マルチサイト

class="edit-entry site--sampleglobal_jp ltr usergroup-bp1admin userlevel-admin currentsection-entries currentpage-entries-sample_global-1091-sample2 entriessection-sample_global entriessite-default"

ぱっと見だとわからないのだけど、こんな感じである程度細かく振られていれば、必要に応じて class を元に調整が可能そう。

そもそもとして、権限をだいぶ絞るとこんな感じで、他の人のエントリも編集できないと何も出てこない感じになる。

これ以上削れるところはないと思うけど、ものによってはCMS的には権限があるけど、 class をみながら css, js でカスタマイズするってことはありそう。

もう少しその辺を調べてみる。