
--- 環境
NetCommons2.x系
--- 現象
maple の validate のDate チェックを使うと、日付のスラッシュ外れる。
yyyy/mm/dd ⇒ yyyymmdd
--- 対処方法
1.スラッシュ外れて欲しくないので、Dateソースをカスタマイズする。
・maple の validate のDateソース
netcommons\maple\validator\Validator_Date.class.php
-- 52行目付近コメントアウト
switch (_INPUT_DATE_FORMAT) {
case "Y/m/d":
$check = checkdate($matches[2], $matches[3], $matches[1]);
// $dateString = $matches[1]. $matches[2]. $matches[3];
break;
case "m/d/Y":
$check = checkdate($matches[1], $matches[2], $matches[3]);
// $dateString = $matches[3]. $matches[1]. $matches[2];
break;
case "d/m/Y":
$check = checkdate($matches[2], $matches[1], $matches[3]);
// $dateString = $matches[3]. $matches[2]. $matches[1];
break;
}
if (!$check) {
return $errStr;
}
// $container =& DIContainerFactory::getContainer();
// $request =& $container->getComponent("Request");
// $key = $this->getKeys(0);
// $request->setParameter($key, $dateString);
return;2.スラッシュ外れて欲しくないので、コピーしてカスタマイズする。
・maple の validate のDateソース(コピー元)
netcommons\maple\validator\Validator_Date.class.php
・(コピー先)
netcommons\maple\validator\Validator_Date2.class.php
// 1.の修正入れる-- maple.ini
[ValidateDef]
input_name_hoge.date2 ="1:lang._invalid_date,ほげ"
3.スラッシュ外れて欲しくないので、使いたいモジュールのvalidateにコピーして独自実装する。
・maple の validate のDateソース(コピー元)
netcommons\maple\validator\Validator_Date.class.php
・(コピー先)
netcommons\webapp\modules\モジュール名\validator\Validator_Date.class.php
// 1.の修正入れる
// クラス名変更(20行目)class Validator_Date extends Validator
⇒ class モジュール名_Validator_Date extends Validator
-- maple.ini
[ValidateDef]
input_name_hoge.モジュール名.date ="1:lang._invalid_date,ほげ"