Smarty-3.1.3のバグ? [プログラム]
Smartyが3.1.3になったのでアップデートしてみたら、Noticeエラーが表示。
Notice: Uninitialized string offset: 1 in Smarty-3.1.3/libs/plugins/function.html_select_date.php on line 355
私が以前は、Smarty-3.0.7だったため、どのバージョンからこのように変わったかは不明。
Smarty-3.1.3/libs/plugins/function.html_select_date.phpのソースを見ると
どうやら3桁を想定して処理されているようだ。
ま、あまりよろしくない仕様ですかね。
defaultケースの場合が記載されていないし。
354行目の
354 for ($i=0; $i <= 2; $i++) {
を
354 for ($i=0; $i <= count($field_order); $i++) {
に修正で直るはずですが、申請すればいいんだろうか?
これの何が問題かというと、今まで日本語の
2011年10月10日
のように表示するために、一つずつ、
{Smarty表記}年{Smarty表記}月{Smarty表記}日
としていたため、
field_orderは
field_order = "Y"
と1桁で表記していた。
詳細はこのページを参照してください。
http://techblog.crooz.jp/?p=4210
しかし、上記のソースに変わったため、これは使えない。
ということで、元を修正するのは、今後のバージョンアップに反映してくれないと意味がないため、開発者側で3桁にすればいいのだから、
field_order = "Y--"
field_order = "M--"
field_order = "d--"
とすることで解決。
「--」は、「YyMmDd」以外なら3桁にするため何の文字でもOK。
Smartyの時刻表示はYMDとセパレータ「/など」のみでの表示のため、すぐには改善してくれないかも。
Smartyは、
2011/10/10
や
2011-10-10
を想定していると思うので。
Notice: Uninitialized string offset: 1 in Smarty-3.1.3/libs/plugins/function.html_select_date.php on line 355
私が以前は、Smarty-3.0.7だったため、どのバージョンからこのように変わったかは不明。
Smarty-3.1.3/libs/plugins/function.html_select_date.phpのソースを見ると
354 for ($i=0; $i <= 2; $i++) { 355 switch ($field_order[$i]) { 356 case 'Y': 357 case 'y': 358 if (isset($_html_years)) { 359 if ($_html) { 360 $_html .= $field_separator; 361 } 362 $_html .= $_html_years; 363 } 364 break;
どうやら3桁を想定して処理されているようだ。
ま、あまりよろしくない仕様ですかね。
defaultケースの場合が記載されていないし。
354行目の
354 for ($i=0; $i <= 2; $i++) {
を
354 for ($i=0; $i <= count($field_order); $i++) {
に修正で直るはずですが、申請すればいいんだろうか?
これの何が問題かというと、今まで日本語の
2011年10月10日
のように表示するために、一つずつ、
{Smarty表記}年{Smarty表記}月{Smarty表記}日
としていたため、
field_orderは
field_order = "Y"
と1桁で表記していた。
詳細はこのページを参照してください。
http://techblog.crooz.jp/?p=4210
しかし、上記のソースに変わったため、これは使えない。
ということで、元を修正するのは、今後のバージョンアップに反映してくれないと意味がないため、開発者側で3桁にすればいいのだから、
field_order = "Y--"
field_order = "M--"
field_order = "d--"
とすることで解決。
「--」は、「YyMmDd」以外なら3桁にするため何の文字でもOK。
Smartyの時刻表示はYMDとセパレータ「/など」のみでの表示のため、すぐには改善してくれないかも。
Smartyは、
2011/10/10
や
2011-10-10
を想定していると思うので。
コメント 0