Bug(バグ) #2310
完了[PATCH] アクセスランキングに退会者が含まれる場合、アクセスランキング画面で Fatal error が発生する
100%
説明
アクセスランキングに退会者が含まれる場合、アクセスランキング画面 ( /ranking/access ) で以下のようなエラーが発生する。
Fatal error: Call to a member function getName() on a non-object in /OPENPNE_DIR/plugins/opRankingPlugin/apps/pc_frontend/modules/ranking/templates/_access.php on line 8
確認バージョン¶
- OpenPNE 3.6beta12
- opRankingPlugin 1.0.0.1
ファイル
Kiwa Sakai さんが13年以上前に更新
- ファイル opRankingPlugin.patch opRankingPlugin.patch を追加
- 題名 を アクセスランキングに退会者が含まれる場合、アクセスランキング画面で Fatal error が発生する から [PATCH] アクセスランキングに退会者が含まれる場合、アクセスランキング画面で Fatal error が発生する に変更
修正案のパッチを添付します。
Yuya Watanabe さんが約13年前に更新
修正案でいただいているPATCHでFatal Errorは回避できるものの,順位の表示に関して不整合が発生する可能性があるので対処を行います.
Yuya Watanabe さんが約13年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
修正内容を下記pull requestで行いました.
Kousuke Ebihara さんが約13年前に更新
pull request にコメントしました。確認をお願いします。
$ashiato['member_id_to'] に該当するプライマリキーを持つレコードを取得しているのだから、 !$member が true になることはあっても !$member->getId() が true になることはないと思います。これは何を意図したコードでしょうか。
Yuya Watanabe さんが約13年前に更新
PATCHの内容は下記コミットを参考に作ったと思われます.
https://github.com/nothan/opRankingPlugin/commit/43218a74d4156f632d290442bc39e63359ce4978
ashiatoテーブルにmember_id_toの値がNULLとなるレコードを追加して動作を見るという確認をした限りでは,確かに!$memberがtrueになり,!$member->getId()がtrueになるものは存在しませんでした.よって条件!$member->getId()は削除する方向でいきます.
別件となりますが,上記コミットでの修正においてもPATCHと同様に,順位のインクリメントが行われた後に存在確認が行われています.
そのため,本チケットで対処した「順位の表示に関して不整合が発生する可能性」が存在するものと思われます.
Yuya Watanabe さんが約13年前に更新
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
下記コミットでnote-8およびnote-10の対応を行いました.
https://github.com/nise-nabe/opRankingPlugin/commit/bc16082f59c39404e521f6513cddda72ce9e092a
Kousuke Ebihara さんが約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 対象バージョン を v1.0.1 にセット
- 進捗率 を 50 から 70 に変更
master に取り込みました。
Yuma Sakata さんが約13年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
テストOKです。