操作
Backport(バックポート) #3281
完了opValidatorDate で「年」に 0 を入力した場合に空値として認識される
開始日:
2012-12-17
期日:
進捗率:
100%
予定工数:
説明
現象¶
opValidatorDate を使用しているフォーム(コミュニティイベントの作成画面など)で、日付を入力する項目の「年」に 0
を入力すると空値として扱われる。
- コミュニティイベントの作成画面の場合、「募集期日」の「年」に
0
と入力された状態(「月」「日」は入力しない)で送信しても「正しくありません。」と表示されずにイベントの作成が完了する。
原因¶
lib/validator/opValidatorDate.class.php の 100 行目付近
// if one date value is empty, all others must be empty too
$empties =
(!isset($value['year']) || !$value['year'] ? 1 : 0) +
(!isset($value['month']) || !$value['month'] ? 1 : 0) +
(!isset($value['day']) || !$value['day'] ? 1 : 0);
この判定で、「年」($value['year']
) に "0"
が入力されると !isset($value['year']) || !$value['year']
が true
となり空値と判定されることが原因。
修正内容¶
修正内容を記入
Yuya Watanabe さんがほぼ12年前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Yuya Watanabe にセット
Yuya Watanabe さんがほぼ12年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 cef6c1fa249022fc2415fc5aa05fbb9bb971b5ee で適用されました。
Kousuke Ebihara さんがほぼ12年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Mutsumi Imamura さんがほぼ12年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
動作確認OKです。
操作