簡単に独自の設定画面を追加作成できるbaserCMSプラグイン「AddConfig」さわってみた

baserCMSのプラグイン「AddConfig」が公開されていたので触ってみました。

どうやら「【ちょっとした入力項目】を作るためのカスタムフィールド」という内容で、インストールすることで独自の設定を保存できるようになるようです。
これはなんとも便利そうです。

AddConfig プラグイン

https://github.com/BigFly3/AddConfig
■ 作者さんの記事: CakePHPユーザーがbaserCMSを開発しやすくするためのカスタムフィールドを作ってみた。 - Qiita

インストールについて

baserCMSのプラグインは、app/Plugin/配下に、プラグインのパッケージをフォルダごと配置すると良いので、そんな感じで配置してインストール実行です。
※元記事には「テーマ配下推奨」とあります。その理由も明記してあります。
 https://qiita.com/BigFly/items/eccbe4e1ce14b46a9c75#注意点など
 ひとまず確認なので今回はapp配下で。

インストールすると、良く使う項目に「カスタムコンフィグ 管理」が追加されます。
すぐに設定画面にアクセスできます。
入ってみると、サンプルで設定してある入力項目一覧が表示されます。
サンプルの充実って大事ですよね。。これは見てみると、どんな項目ができるの?というのがぱっと見てつかみやすくて素敵です。

データの方はどうなってるのかな?と覗いてみると、DB内にテーブル「mysite_add_configs」が追加されてました。

実際に保存してみる

とりあえず適当に入力して保存してみると、
「入力チェックはOKです。AddConfigの設定で更新されないようになっています。」と表示されて保存されません。

なるほど。。設定で確認だけできるようになってるですね。
baserCMSの設定ファイルは、たいてい Config/setting.php で定義されているのでその辺りを覗いてみます。

$config['AddConfig']['debug'] = false; //trueにしておくとフォーム項目のテスト中にデータ更新が出来ないようにすることができます。バリデーションチェックは可能です。

ん!?falseになってるけどなんだろう。。なんか間違えたかな( ▽|||)
と、あちこち見て回っていると、サンプルで入ってるフォームのビューファイルに記載がありました。

app/Plugin/AddConfig/Config/sample-form.php
$config['AddConfig']['debug'] = true; //無駄なデータが誤って登録されないようにデバッグモードにしています。

あくまでサンプル用なので、安全設計がなされている状態でした。
この行をコメントアウトして再度保存に挑戦。
。。。今度はうまく行って一安心です。

sc_01_addconfig.png

サンプルフォームはサンプルなので、別で作って利用する

初期インストール時に利用されるビュー用のファイルはあくまでサンプルなので、
(AddConfig/Config/sample-form.php)
実際に利用するときには、
AddConfig/Config/sample-form.php → ファイル複製とかして AddConfig/Config/addconfig-form.php のようにして置いて利用する、というのが良さそうです。

あとは設定ファイルの中で、以下の行箇所でファイル名の指定を行うこと。
(AddConfig/Config/setting.php)

include "sample-form.php"; //使用時にコメントアウトするか削除してください。

各設定項目について説明が載せてあるのでとてもわかりやすく作成してあるなぁ、と思いました。

フロント側での利用

公開側ではこんな感じでデータを取ってきて利用できました。

■ テキスト: <?php echo $this->AddConfig->f('text01'); ?>
■ テキストエリア: <?php echo $this->AddConfig->f('textarea01'); ?>
■ セレクト: 
<?php
$selectList = Hash::extract(Configure::read('AddConfig'), 'form.{n}.fields.select01.parts.options');
echo $this->BcText->arrayValue($this->AddConfig->get('select01'), $selectList[0]);
?>
■ ラジオ: 
<?php
$radioSelectList = Hash::extract(Configure::read('AddConfig'), 'form.{n}.fields.radio01.parts.options');
echo $this->BcText->arrayValue($this->AddConfig->get('radio01'), $radioSelectList[0]);
?>
■ チェックボックス: <?php echo $this->AddConfig->f('checkbox01'); ?>
■ CkEditor: <?php echo $this->AddConfig->get('editor01'); ?>
■ 年月日: <?php echo $this->AddConfig->f('datepicker01'); ?>
■ 年月日日時: <?php echo $this->AddConfig->f('dateTimePicker01'); ?>
■ アップロードファイル(アップローダ): <?php echo $this->AddConfig->img('upload01'); ?>
■ マルチチェックボックス: 
<?php foreach ($this->AddConfig->explodeArray('multicheck01') as $multiCheckboxValue): ?>
	<?php echo h($multiCheckboxValue); ?>
<?php endforeach; ?>
■ 都道府県選択: <?php echo $this->AddConfig->f('pref01'); ?>

個々に設定した値が簡単に取れますね。

あとがき

設定ファイルの記述で、入力項目の追加や削除を簡単に管理できて、設定した項目の値はグローバル扱いでどこでも基本的に利用できます。

アップローダで上げたファイルを自由に設定できるのもすごいですね。
この仕組みって、baserCMSコアが持っているテーマコンフィグに入れちゃっても良いんじゃないでしょうかね。
アップローダが、Wordpressでいうところのメディア管理みたいに利用できそうです。

なんとも便利ですごいプラグインが出てますので、baserCMSでサイト構築される際には導入すると良いと思います。
すばらしいプラグインだと思います。

▲ to Top

▲ to Top