Bug(バグ) #2661
完了
年齢が0歳の場合にプロフィールに年齢が表示されない
isao sano さんがほぼ13年前に追加.
7年以上前に更新.
説明
プロフィール詳細ページにて、年齢が0歳の場合に年齢の項目が表示されていません。
また、他ユーザからプロフィール詳細を見た場合に、
年齢の公開範囲が「全員に公開」となっていても表示がされません。
再現手順¶
1. 任意のユーザーでログイン
2. プロフィール編集画面(/member/edit/profile)に遷移
3. 生年月日を本日より1年未満に設定し、「送信」ボタンを押下
4. プロフィール確認画面(/member/profile)に遷移する
再現バージョン¶
OpenPNE3.6.0
- 3.6 で発生するか を Yes (はい) にセット
- 3.4 で発生するか を Yes (はい) にセット
再現確認できました。
Environment (再現バージョン)¶
OpenPNE3.4.18
OpenPNE3.6.1
Way to repro (再現手順)¶
1. プロフィール編集ページ(/member/edit/profile)にアクセスする
2. 生年月日を本日より1年未満に設定後、「送信」ボタンをクリックする
3. プロフィール確認画面(/member/profile)にアクセスする
4. 年齢が0歳の場合、プロフィールに年齢が表示されない
Way to fix (修正内容)¶
年齢が0歳の場合、プロフィールに年齢が表示されるように修正お願いします。
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Akihiro KOBAYASHI にセット
- 対象バージョン を OpenPNE 3.9.0-old にセット
- 3.8 で発生するか を Yes (はい) にセット
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
プルリクエスト:https://github.com/openpne/OpenPNE3/pull/232
原因
従来のapps/pc_frontend/modules/member/templates/_profileListBox.php内if ($member->getAge(true))は”getAge()で値が取れたら”ということを分岐条件しているわけではなく、
”getAge()でとれた変数”を分岐条件にしている。そのため、getAge()で取れた値が0(つまり0歳のとき)はfalseを返し、if文内をスルーしてしまう(その他の数値("-1"等)は通してしまうため、年齢のところが-1でも素直に表示されてしまう)
対策
getAge()で取れる値が-1よりも上のときのみ年齢を表示するようにする.これによって、プロフィールの設定時に年月日を間違えてしまった結果、年がマイナスになってしまった場合にも年が表示されないようにすることができる. ただ、統一性を保つためにも、そもそもプロフィールの設定時に年月日を間違えるということをなくさないようにする必要もあるだろう(関連チケット #2431を解決すれば必然的に対応できるようになる)
- 担当者 を削除 (
Akihiro KOBAYASHI)
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
- ステータス を Rejected(差し戻し) から Pending Fixing(修正待ち) に変更
- 進捗率 を 50 から 0 に変更
- ステータス を Pending Fixing(修正待ち) から Accepted(着手) に変更
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 担当者 を isao sano にセット
- 進捗率 を 0 から 50 に変更
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
- ステータス を Pending Testing(テスト待ち) から Won't fix(対応せず) に変更
- 進捗率 を 70 から 0 に変更
OpenPNE 3.8.18 にて対応済みであったため、対応せずとします。
他の形式にエクスポート: Atom
PDF