2012年の baserCMS アドベントカレンダー の7記事目としての投稿です。
2020年12月16日に キャッチアップ から、baserCMS版カスタムフィールド「 CuCustomField 」 をオープンソースとしてリリースしましたので軽く紹介したいと思います。
標準のフィールドタイプは14種類
標準では、次の14つのフィールドタイプを持ちます。
- テキスト(1行)
- テキストエリア(複数行)
- 日付(年月日)
- 日付(年月日時間)
- チェックボックス
- マルチチェックボックス
- 都道府県リスト
- ラジオボタン
- 関連データ
- セレクトボックス
- ファイルアップロード
- Google Maps
- Wysiwyg Editor
- ループ
さらにフィールドタイプをプラグインとして追加できる
このフィールドタイプは、baserCMSの別プラグインとして独自で追加できるように設計されています。
作るものは4つです。
- フィールドタイプの名称などを定義する設定ファイル
- フィールドタイプを定義するための入力画面用のテンプレート
- 上記画面を制御するためのJS
- 記事編集画面での入力機能と記事表示画面での表示機能を実装するヘルパ
詳細については、GitHub の オリジナルのフィールドタイプを作成する に書かれていますので、参考にしてみてください。
PHPとJavascriptが少しわかる人であれば、比較的簡単に作れますのでチャレンジしてみてください。
補足
ブログ記事で登録したデータを、実際にテンプレート上どうやって表示させるかについて情報が足りなかったので補足します。
GitHub の cu_custom_field_block.php が参考になるのですが、ブログテンプレートの single.php
で次のような関数を書くことで表示できます。
$this->CuCustomField->get($post, 'example_field_name');
では色々試してみてください!