6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

baserCMS初心者のためのカスタマイズガイドライン

Posted at

2019年の baserCMS アドベントカレンダー の12記事目としての投稿です。

baserCMSは、Webサイト制作プラットフォームとして、様々な方法でカスタマイズする事ができるのですが、ここでは目的別にガイドラインを示します。

デザインのカスタマイズ

1. 既存のテーマを調整する方法

最も早くWebサイトを公開する手法はこの方法です。
baserマーケットに登録し、お好みのデザインのテーマをダウンロードして導入します。

テーマ設定機能に対応しているテーマであれば、メインイメージやメイン・サブカラーを管理システムで簡単に変更する事ができます。

テーマ設定機能に対応していないテーマの場合は、FTPツールで画像を直接差し替えたり、テンプレートやCSSを調整する必要があります。 一度、サーバー上にアップロードしたファイルを差し替えたり、調整する場合は、FTPツールでの再アップロードが必要ですが、テーマ内のファイルに書き込み権限がある場合は、管理システムの「テーマ管理機能」より編集する事も可能です。

2. 静的HTMLをCMS化する方法

既に制作が完了している静的HTMLをbaserCMSで更新可能とする為には、HTMLにbaserCMSの専用タグを埋め込み、baserCMSで読み込み可能なテンプレートにする必要があります。
この方法であれば、CMS化できないデザインはないと言っても過言ではありません。

静的HTMLをテンプレート化するには、テーマガイドや、テンプレートガイド関数リファレンスを参考に、テーマフォルダ内にPHPファイルを作成します。
テーマ制作チュートリアルを参考にするとCMS化する流れを理解しやすいのでおすすめです。

機能のカスタマイズ

1. 既存のプラグインを利用する

最も手軽に機能をカスタマイズする手法はこの方法です。
baserマーケットに登録し、お好みのプラグインをダウンロードして導入します。
ただし、現時点において、baserCMSのプラグインはまだまだ多くありませんので、欲しい機能要望があれば、ユーザーズフォーラムのプラグイン開発フォーラムに登録しておくと誰かが開発してくれるかもしれません。

2. プラグインを開発する

baserCMSは、CakePHPをベースに開発されていますので、CakePHPのプラグイン開発とほぼ同じ手法でプラグインを開発する事ができます。 プラグイン作成ガイドを参考にご自分でプラグインの開発に挑戦してみてもいいかもしれません。

独自にデータベーステーブルを作成し、管理画面で管理するような仕組みを作ることもできますし、baserCMSのイベント機構(WordPressでいうアクションフックやフィルターフックのようなもの)で、baserCMS本体の振る舞いを変えることもできます。例えば、ブログ記事一覧で表示する記事に特定のフィルターをかけたり、ブログ記事にカスタム項目を追加するなどです。

ただ、残念なことに、baserCMSの最新版で利用している CakePHPは、旧バージョンの2系となります。現在、3系または4系に移行中ですのでご期待ください。(2019/12/23現在)

ちなみに、baserCMSでは、メンテナンス性確保の観点から、app フォルダ内直下の ControllerModelView の中で開発することを推奨していません。プログラムを書く場合は、プラグインとして作りましょう。

3. コアファイルのカスタマイズ

これは最終手段です。メンテナンス性確保の観点からいっておすすめはできません。
baserCMSは、オーバーライド機構と呼ばれるコアの機能をカスタマイズしやすい仕組みを導入しています。

baserCMSのコアとなるプログラムは、 lib/Baser/ フォルダの中に入っているのですが、このファイルを直接編集した場合、baserCMSコアのアップデートの際、上書きする事になってしまい、メンテナンスが大変です。
オーバーライド機構とは、baserCMSのコアファイルを、app フォルダや、利用中のテーマフォルダの同階層にコピーする事で、そちらを優先して利用する仕組みです。

コピーして変更した際に、どういう変更を行ったかを記録しておかないと、baserCMSのバージョンアップ時に、baserCMSコア側で変更された内容を反映できないという問題はありますが、カスタマイズしたファイルがどれかすぐにわかるので、アップデート時の負担は軽減できます。

コアの開発に参加する

もう現在のbaserCMSには満足できない!と思われた優秀な方はぜひbaserCMSコアの開発に参加しましょう。
baserCMSのソースコードは GitHub で管理されています。baserCMSコアパッケージ開発者ガイドを参考に、Issue や Pull Request を送りつけましょう。
毎月第3水曜日に開催されている、baser井戸端もくもく会 に参加すれば、コアの開発方針にも口を出すことができます。

あなたのヒトコトが baser を変える。

ぜひお待ちしてます。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?