a-blog cms のカスタムフィールドをグローバル変数化してフォームを切替える
久しぶりに仕事ネタです。忘れない様にメモしておきます。
a-blog cms でカスタムフィールドの値をグローバル変数化する方法です。今回はブログのカスタムフィールドで、送信フォームの公開・非公開を実装する為にこの機能を利用しました。
これ何が便利かというと、カスタムフィールドをグローバル変数化する事で、インクルードする時にカスタムフィールドの値を利用出来ます。という事は、設定した値によって、インクルードするファイルを切り分けらるという事になります。そう、インクルード先のファイルにフォームを仕込む事で簡単に実装出来てしまう訳です。
1)config.server.phpの内の記述を「define('HOOK_ENABLE', 1);」に変更
2)同梱の「omake/php/ACMS/User/」から「Hook.php」をコピー
3)HOOK.phpの下記を変更(今回はブログのカスタムフィールド用)
public function extendsGlobalVars($globalVars) { if( BID ){ $Field = loadBlogField(BID); $globalVars->setField('グローバル変数名',$Field->get('カスタムフィールドの変数名') ); } }
ちなみにエントリーのカスタムフィールドの場合は、上記コードの該当箇所を下記の様に書き換えれば使えるはずです。
・BID → EID
・loadBlogField → loadEntryField
カテゴリーなら、、、想像はつきますが試してはいません。
で、最終的に下記の様にするとインクルードファイルを設定した値で分けられるという訳です。
<!--#include file="/include/entry/%{グローバル変数名}_inc.html-->
今回の様な事で、例えばフォームの受付開始・受付終了なんて事をカスタムフィールドで切替えたり出来る様になります。便利ですね。