Project

General

Profile

Bug(バグ) #2661

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

Added by isao sano almost 8 years ago. Updated over 2 years ago.

Status:
Won't fix(対応せず)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2011-12-02
Due date:
% Done:

0%

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

Description

説明

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

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

再現手順

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

再現バージョン

OpenPNE3.6.0


Related issues

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

History

#1 Updated by isao sano almost 8 years ago

  • Description updated (diff)

#2 Updated by Yuma Sakata almost 8 years ago

  • 3.6 で発生するか set to Yes (はい)
  • 3.4 で発生するか set to Yes (はい)

#3 Updated by Yuma Sakata almost 8 years ago

再現確認できました。

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 Updated by Akihiro KOBAYASHI about 5 years ago

#5 Updated by Akihiro KOBAYASHI about 5 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Akihiro KOBAYASHI
  • Target version set to OpenPNE 3.9.0-old
  • 3.8 で発生するか set to Yes (はい)

#6 Updated by Akihiro KOBAYASHI about 5 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 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 Updated by kaoru n over 4 years ago

  • Assignee deleted (Akihiro KOBAYASHI)

#8 Updated by isao sano about 4 years ago

#9 Updated by isao sano about 4 years ago

#10 Updated by Rimpei Ogawa almost 4 years ago

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

#11 Updated by isao sano almost 4 years ago

  • Status changed from Rejected(差し戻し) to Pending Fixing(修正待ち)
  • % Done changed from 50 to 0

#12 Updated by isao sano almost 4 years ago

  • Status changed from Pending Fixing(修正待ち) to Accepted(着手)

#13 Updated by isao sano almost 4 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • Assignee set to isao sano
  • % Done changed from 0 to 50

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

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

#14 Updated by Rimpei Ogawa almost 4 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#16 Updated by isao sano over 2 years ago

  • Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
  • % Done changed from 70 to 0

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

Also available in: Atom PDF