プロジェクト

全般

プロフィール

Bug(バグ) #2661

年齢が0歳の場合にプロフィールに年齢が表示されない

isao sano12年以上前に追加. 約7年前に更新.

ステータス:
Won't fix(対応せず)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2011-12-02
期日:
進捗率:

0%

3.6 で発生するか:
Yes (はい)
3.8 で発生するか:
Yes (はい)

説明

説明

プロフィール詳細ページにて、年齢が0歳の場合に年齢の項目が表示されていません。

また、他ユーザからプロフィール詳細を見た場合に、
年齢の公開範囲が「全員に公開」となっていても表示がされません。

再現手順

1. 任意のユーザーでログイン
2. プロフィール編集画面(/member/edit/profile)に遷移
3. 生年月日を本日より1年未満に設定し、「送信」ボタンを押下
4. プロフィール確認画面(/member/profile)に遷移する

再現バージョン

OpenPNE3.6.0


関連するチケット

関連している OpenPNE 3 - Bug(バグ) #2431: op_preset_birthday の日付範囲が制限されていない New(新規) 2011-09-26
関連している OpenPNE 3 - Backport(バックポート) #3857: 年齢が0歳の場合にプロフィールに年齢が表示されない Fixed(完了) 2015-11-06
関連している OpenPNE 3 - Backport(バックポート) #3858: 年齢が0歳の場合にプロフィールに年齢が表示されない Fixed(完了) 2015-11-06

履歴

#1 isao sano12年以上前に更新

  • 説明 を更新 (diff)

#2 Yuma Sakata12年以上前に更新

  • 3.6 で発生するかYes (はい) にセット
  • 3.4 で発生するかYes (はい) にセット

#3 Yuma Sakata12年以上前に更新

再現確認できました。

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歳の場合、プロフィールに年齢が表示されるように修正お願いします。

#4 Akihiro KOBAYASHI9年以上前に更新

  • 関連している Bug(バグ) #2431: op_preset_birthday の日付範囲が制限されていない を追加

#5 Akihiro KOBAYASHI9年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Akihiro KOBAYASHI にセット
  • 対象バージョンOpenPNE 3.9.0-old にセット
  • 3.8 で発生するかYes (はい) にセット

#6 Akihiro KOBAYASHI9年以上前に更新

  • ステータス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を解決すれば必然的に対応できるようになる)

#7 kaoru nほぼ9年前に更新

  • 担当者 を削除 (Akihiro KOBAYASHI)

#8 isao sano8年以上前に更新

#9 isao sano8年以上前に更新

#10 Rimpei Ogawa8年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更
  • getAge() の第一引数 $viewableCheck を無効にしてはいけません。
  • bool 型が返りうる文脈で -1 と比較すると暗黙的に型変換が起こり挙動がわかりにくいです。多少記述が長くなっても false は別扱いした方がよいと思います。 http://php.net/manual/ja/language.operators.comparison.php

#11 isao sano8年以上前に更新

  • ステータスRejected(差し戻し) から Pending Fixing(修正待ち) に変更
  • 進捗率50 から 0 に変更

#12 isao sano8年以上前に更新

  • ステータスPending Fixing(修正待ち) から Accepted(着手) に変更

#13 isao sano8年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 担当者isao sano にセット
  • 進捗率0 から 50 に変更

https://github.com/openpne/OpenPNE3/pull/283
にて修正いたしました。
再レビューお願いします。

年齢の入力できるべき範囲に関しては #2431 にて対応中のため、このプルリクエストでは表題である「年齢が0歳の場合にプロフィールに年齢が表示されない」 だけを修正しました。

#14 Rimpei Ogawa8年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#16 isao sano約7年前に更新

  • ステータスPending Testing(テスト待ち) から Won't fix(対応せず) に変更
  • 進捗率70 から 0 に変更

OpenPNE 3.8.18 にて対応済みであったため、対応せずとします。

他の形式にエクスポート: Atom PDF