Opened 15 years ago
Closed 14 years ago
#1688 closed defect (fixed)
誕生日の設定されていないメンバーのフレンドホームに「もうすぐお誕生日です!」のメッセージが表示される
Reported by: | kiwa | Owned by: | yamaji |
---|---|---|---|
Priority: | minor | Milestone: | OpenPNE2.10.4 |
Component: | その他 | Version: | 2.8.x & 2.10.x & 2.11.x |
Keywords: | OpenPNE2.8.9 OpenPNE2.11.4 | Cc: |
Description (last modified by )
■現象
- 管理画面のメンバー管理、csvインポートでメンバーを作成する。ニックネームとメールアドレスとパスワードしかないので誕生日は0月0日として登録される。
- 携帯からCSVインポートで作成したメンバーのフレンドホームを表示させる
- 「☆もうすぐお誕生日です!☆」のメッセージが表示されている
■原因
誕生日等のある日付までの日数を計算している関数で0月0日に対応していなかった。推測ですが0月は前年の12月として解釈されているのではないか?
■修正内容
今日と次の誕生日までの日数を計算するところで、誕生日が0月0日ならば、エラーとして扱い。表示用のテンプレートではエラーのときに何も表示させない処理を入れる
修正リビジョン
■関連情報
webapp/lib/utilのgetCountdownDays
Change History (14)
comment:1 Changed 14 years ago by
Priority: | minor → major |
---|
comment:2 Changed 14 years ago by
Keywords: | 再現待ち removed |
---|---|
Priority: | major → minor |
comment:3 Changed 14 years ago by
Owner: | changed from nobody to yamaji |
---|---|
Status: | new → assigned |
comment:4 Changed 14 years ago by
CSVアップロード機能で作成されたメンバーは誕生日が0月0日であることが分かったので、今日と次の誕生日までの日数を計算するところで、誕生日が0月0日ならば、次の誕生日までは4999年などの大きな値を返すようにすれば、問題は解消するはずです。
comment:5 Changed 14 years ago by
CSVインポートでメンバー追加すると、 項目の順序「ニックネーム」「登録メールアドレス」「パスワード」 しか登録されないのか。。。 選択肢としては、 1) 誕生日がDB登録されて無い状態でも、OpenPNEを動くようにする 2) csvインポート時は、固定で誕生日を1970 1/1 とかにしてしまう。 3) OpenPNEのシステムとしての必須項目なので、初回ログイン時に入力してもらう(だが入力する前もc_memberはあるので、お誕生日メールとか挙動確かめる必要有り)。 ぐらいかな? 僕の感覚だと「3)」だけど、どうかな?また、他に選択肢はないかな。 [14:34:18] おがわおがわの発言: OpenPNE君も0月0日ですよ [14:34:27] おがわおがわの発言: 1でしょう [14:35:13] おがわおがわの発言: 誕生日まであと何日かを計算する関数が [14:35:14] おがわおがわの発言: どこかにあるので [14:35:28] おがわおがわの発言: その辺を何とかするとうまくいくと思います [14:35:43] 山路 正樹の発言: getCountdownDays です [14:40:00] kunitada@shinjukuの発言: なるほど、では1で。 getCountdownDaysが0/0だと-1返すとかがいいんじゃないかな? そんでそれ受ける処理でエラー処理とか。
comment:6 Changed 14 years ago by
Description: | modified (diff) |
---|
comment:7 Changed 14 years ago by
[14:52:50] おがわおがわの発言: んーこれはちょっと難しいですね [14:53:12] おがわおがわの発言: 一概にどちらがいいとは言えないですが [14:55:02] おがわおがわの発言: テンプレート内の条件式が ({if $days_birthday == 0})({* 誕生日当日 *}) ({elseif $days_birthday <= 3})({* 誕生日3日以内 *}) [14:55:08] おがわおがわの発言: のようになっているので [14:55:51] おがわおがわの発言: このあたりを変更しないということであれば、山路さん案が有力になります [14:58:36] おがわおがわの発言: 条件式を変更するんだということになれば國忠さん案の方が素直かなあという気もします [15:01:18] kunitada@shinjukuの発言: 僕的には國忠案でいきたいなぁ。tpl書き換えても良いと思うので。。。 その方がきれいだと思う。後でソース見た人もわかりやすいだろうし。。。 (なぜ4999年!?とかなくなるとおもう) [15:19:08] 山路 正樹の発言: 多少手間がかかりますが、-1をエラーコードとして誕生日が来てから1秒経過にならないようにエラー処理を行うことにしましょう [15:31:10] kunitada@shinjukuの発言: では、それで。携帯・PCのテンプレートがあるので注意って感じでお願いします [15:32:39] 山路 正樹の発言: 了解
comment:10 Changed 14 years ago by
Keywords: | 確認中 added |
---|
comment:11 Changed 14 years ago by
Description: | modified (diff) |
---|
comment:12 Changed 14 years ago by
Keywords: | OpenPNE2.8.9 OpenPNE2.11.4 added |
---|---|
Milestone: | → OpenPNE2.10.4 |
comment:13 Changed 14 years ago by
comment:14 Changed 14 years ago by
Keywords: | 確認中 removed |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
書き込みしたとき(2007/12/14)には全バージョンでPC・携帯ともに表示されていましたが、
本日(2008/1/17)確認したら表示されなくなっていました。
0月0日の誕生日判定がどこかにあるものと思われます。