Shirai022

(Shirai022): カレンダーのイベントの終了時刻の初期値を23:55にする (2014/04/25)

Moodle2.6以降

 Moodleのカレンダーで新しいイベントの入力を開始する際のフォームの初期値を変更する.

 厳密に言うと,入力フォームの”期間”(デフォルトでは折り畳まれている)の2項目目,”終了日時”の初期値を「イベント開始日の23:55」に設定する改良である.

 初期値として,イベントの開始時刻が00:00なのは悪くない.これを09:00などに変えるのは簡単で,(Shirai020)辺りを参照して貰うと良い.
 問題は終了時刻である.デフォルト値はなぜか”いま”である.入力している今この瞬間.過去の予定でも未来の予定でも”いま”.過去の予定の場合はエラーにこそならないが,未来の予定で終了日時が”いま”(つまり予定からすれば過去だ)だと,”変更を保存”する際にvalidationのチェックに掛かってエラーになるはずだ.ではなぜ問題にならないかと言えば,デフォルトではduration(期間)が”期間なし”になっているから.でももし,これを”終了日時”にラジオボックスの選択を変えただけで”変更を保存”したらエラーになる.慎重に,終了日時を入れなくてはならない.でも大抵の予定は,開始日の内に終わりますよね.1時間とか2時間とか.時刻だけを変更する予定だったが,(多分,コードを入れ忘れて,その結果,デフォルトとして”いま”の時刻をtime()で補う処理が安全のために入れてあるのだろう),現状は予想以上にイイカゲンだった.
 前置きが長くなってしまったが,なぜ終了時刻の初期値を「23:55」にしたいのかと言うと,iCal形式でのエクスポート(ファイル,リンク)において「終日」イベントの判断が「開始時刻00:00で終了時刻23:55」のイベントをそう判断する仕様であるためである.つまりいま入力しているイベントが「終日イベント」ならば,「期間」フィールドをクリックして開き,ラジオボックスの選択を「終了日時」に変更するだけでOKになってとても簡単なためである.

https://moodle.org/mod/forum/discuss.php?d=147580#p645265
/>
https://www.suzuka-ct.ac.jp/mech/moodle2/mod/forum/discuss.php?d=3993
/>https://tracker.moodle.org/browse/MDL-45306


calendar/event.php