baserCMS 5系で管理画面テーマをカスタマイズしてみよう(その2)

はじめに

どうもこんにちは。

前回こちらの記事で管理画面テーマカスタマイズの導入方法を紹介しました。
baserCMS 5系で管理画面テーマをカスタマイズしてみよう

しかし前回記事の内容だけでは「内容を書き換えられる」というだけで具体的に何ができるのか分からない、
そう思われる方もいるかと思います。

そのため、実用的な画面のカスタマイズまで一緒に見ていければと思います。
環境は前回記事と同様にbaserCMS ver.5.2.4を使用します。

 

カスタマイズ例

例1:共通のレイアウトテンプレートを調整する

まずはレイアウトテンプレートを差し替えてみましょう。
レイアウトテンプレートは公開画面側と同じようにページの共通レイアウトが定義されており、
差し替えることで各画面共通の表示等を調整することができます。

それでは前回のダッシュボードページと同じように、コア側から元のファイルをコピーして
同じディレクトリ構成で配置することで差し替えてみましょう。

下記の通り、コア側から管理画面テーマ側へコピーします。

コピー元
vendor/baserproject/bc-admin-third/templates/Admin/layout/default.php
コピー先
plugins/BcPluginSample/templates/Admin/layout/default.php

動作確認のため、試しにページタイトル出力処理の前に「@」を付けてみましょう。

変更後@<h1 class="bca-main__header-title"><?php $this->BcAdmin->title() ?></h1>

各ページのページタイトルの頭に「@」がつくようになったかと思います。
 

動作の確認ができたら追加した「@」は削除しておいてください。

 

例2:CSSファイルを追加で読み込む

CSSについては複数の読み込み方法があると思いますが、
今回はレイアウトテンプレートにて「調整用のCSSファイルを追加で読み込む」方法をとります。

① スタイル調整用のCSSファイルを作成
下記のディレクトリ構成でCSSファイルを作成しましょう。

plugins/BcPluginSample/webroot/css/my_admin_style.css

ファイル内容については、読み込まれているか確認しやすいようにページタイトルのスタイル変更を定義しておきましょう。

.bca-main__header-title {
  font-size: 5rem;
}

②レイアウトテンプレートにCSSファイルへの参照を追加  

<?php $this->BcBaser->css([
    'vendor/bootstrap-4.1.3/bootstrap',
    'vendor/jquery-ui/jquery-ui.min',
    'vendor/jquery.timepicker',
    '../js/vendor/jquery-contextMenu-2.2.0/jquery.contextMenu.min.css',
    'admin/style',
    'BcPluginSample.my_admin_style' // この行を追加
  ]) ?>

上記手順を実施後に管理画面を確認すると、ページタイトルのフォントサイズが大きくなります。

ちなみにですが、所定の位置にCSSファイルを置くと自動的に読み込む仕組みがあるので
それを利用すればレイアウトテンプレートの変更は不要になります。

ファイル名を変更し、下記の位置に配置し直してみましょう
ファイル名は「{プラグイン名}_admin.css」で、プラグイン名はスネークケースとしてください。

plugins/BcPluginSample/webroot/css/admin/bc_plugin_sample_admin.css

この状態で②で追加した読み込み行を削除しても、自動的に読み込まれていることがわかります。
基本的にはこの方法を利用し、読み込むファイルを自分で選びたい場合や読み込み順を制御したい場合は、
レイアウトテンプレート側で指定する方法を取るようにしましょう。

こちらも確認を終えたらCSSファイルの中身を空にしておいてください。

 

例3:ログイン画面をカスタマイズしてみる

ここまでの内容を元にすれば、特定の画面のデザインを変更することも可能です。
例としてログイン画面のデザインをカスタマイズしてみます。

①ログイン画面のViewファイルをコピー

コピー元
vendor/baserproject/bc-admin-third/templates/Admin/Users/login.php
コピー先
plugins/BcPluginSample/templates/Admin/Users/login.php

②Viewファイルのカスタマイズ
今回はロゴ画像も差し替えます。
まずは任意のロゴ画像を配置します。

plugins/BcPluginSample/webroot/img/my_login_logo.png

その後、Viewファイル上で表示している画像を変更しましょう。

<?php echo $this->BcBaser->getImg('BcPluginSample.my_login_logo.png', ['alt' => $this->BcBaser->getContentsTitle(), 'class' => 'bca-login__logo']) ?>

③CSS調整
例2で作成したbc_plugin_sample_admin.cssを調整します。

/* ログイン画面上部の見出しを非表示 */
#AdminBaserCoreUsersLogin .bca-main__header-title {
  display: none;
}
/* ロゴ画像のサイズ調整 */
.bca-login__logo {
  width: 120px;
}
/* ログインボックスの背景色 */
.bca-login {
  background: #f0f7ff;
}
/* タイトル(ロゴ)下の余白 */
.bca-login__title {
  margin-bottom: 30px;
}
/* ログインボタンの色 */
.bca-login button.bca-btn--login {
  background: #1867c0;
  border-color: #1867c0;
}
こんな感じになります。(あんまり変わってない・・・?)

 

 

baserCMSバージョンアップ時の留意事項

管理画面テーマカスタマイズ機能を使うことでコア側を直接変更することがないため、
気兼ねなくbaserCMSのバージョンアップが可能です。

しかしプラグイン側にコピーしたViewファイルは自動的にはバージョンアップされないため、
もしコア側で何か変更が入っていた場合は差分が生じます。

管理画面に大幅な変更が入ることは稀だと思いますが、念の為バージョンアップ時には表示・動作を確認し、
必要に応じてコア側とプラグイン側で同期をとるようにしてください。

 

おわりに

今回はより実用的な管理画面の見た目の調整方法について説明してみました。

ご紹介したのはログイン画面の軽微なデザイン変更だけでしたが、
同じような方法でヘッダーやフッターの調整といった需要のありそうな変更も可能です。
また、JSファイルを追加で読み込むことで動的な表示制御も可能なため、その気になれば細かい調整も実現できます。

ただ冷静になって考えてみると需要がありそうな調整は管理画面から直接変更出来ると嬉しいですね。
そう思った方はぜひアイデアをIssueやフォーラムへ投稿したり、いきなりプラグイン化してマーケット申請でも良いので、
baserCMSの発展にお力添えを頂けたら嬉しいです。

それではまた。
 

[ユーザーズフォーラム]
https://forum.basercms.net/
[baserマーケット]
https://market.basercms.net/

 

baserCMSやWebサイト構築のご相談など

お気軽にお問い合わせください

 
 
  • このエントリーをはてなブックマークに追加

AUTHOR

赤坂 佑樹

赤坂 佑樹 アドバイザリエンジニア

 

群馬で生まれ育った、東京在住の赤坂佑樹です。
前々職はメーカー系SIer、前職はWebエンジニアをやってました。

趣味は強いて言うならゲームですかね。
昔は格ゲーやテレビゲームに熱中してましたが、最近ではSteamでゲームを買ったり買わなかったり程度です。
あとは知らない土地で、自然や建造物を見ながら適当に歩いたりするのが好きです。

そこそこ腰が重く、色々考えがちなところもあり、物事が勢いに乗るまで割と時間がかかったりしますが、
焦らず、周囲との折り合いも付けつつ、堅実に頑張っていければと思います。

こんな記事も書いています