スケジュールにカスタムフィールドを利用する

営業日等のカレンダーを表示する機能として、「サイト管理>スケジュール」があります。
標準機能として、テキストを自由に登録する入力欄と選択肢の中から選んで登録する機能を用意しています。今回は、カスタムフィールドを使って登録項目を自由に追加する方法を説明します。

カスタムフィールドの入力欄を登録側に追加する

下記のファイルを利用しているテーマ内の同じ階層へコピーします(テーマファイルの継承)
/themes/system/admin/schedule/edit-data.html
例えば、siteテーマを利用している場合は、下記の場所へコピーをします。フォルダが無い場合は新規に作成します。
/themes/site/admin/schedule/edit-data.html

 
上記"day:loop"ブロックの中に、カスタムフィールドを記述します。下記の例では、{color}の項目を追加しています。

<!-- BEGIN_MODULE Admin_Schedule_View -->
<!-- BEGIN unit:loop -->
<!-- BEGIN month:loop -->
<!-- BEGIN week:loop -->
<!-- BEGIN day:loop -->
 
<input type="text" name="color{id}[]" value="{color}" />
<input type="hidden" name="field{id}[]" value="color{id}" />
 
<!-- END day:loop -->
<!-- END week:loop -->
<!-- END month:loop -->
<!-- END unit:loop -->
<!-- END_MODULE Admin_Schedule_View -->

カスタムフィールドの値を表示する

テンプレートファイルにカスタムフィールドの値を表示する記述を追加します。

<!-- BEGIN_MODULE Plugin_Schedule  id="xxxxx" -->
<!-- BEGIN unit:loop -->
<!-- BEGIN month:loop -->
<!-- BEGIN week:loop -->
<!-- BEGIN day:loop -->
 
{color}
 
<!-- END day:loop -->
<!-- END week:loop -->
<!-- END month:loop -->
<!-- END unit:loop -->
<!-- END_MODULE Plugin_Schedule -->

※モジュールの記述例では、既存のフィールドを省略しています。
※カスタムフィールドの出力は"plan"のブロック内ではありません。