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

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

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

/themes/system/admin/schedule/edit-data.html
をサイトで利用しているテーマへコピーします。
例えば、siteテーマを利用している場合は、
/themes/site/admin/schedule/edit-data.html
へコピーします。フォルダが無い場合は新規に作成します。

<!-- BEGIN_MODULE Admin_Schedule_View -->内にある<!-- BEGIN 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のラベルブロック内ではありません。