操作
Bug(バグ) #375
完了コミュニティに全く参加していない場合に最新情報の取得で全コミュニティを対象としてしまう
開始日:
2009-12-21
期日:
進捗率:
100%
予定工数:
3.6 で発生するか:
[QA]バグ通知済:
3.8 で発生するか:
opCommunityTopicPlugin 絞込条件:
説明
コミュニティに全く参加していない場合に
トピック/イベントの最新情報の取得で全コミュニティを対象にしてしまうため、
ホーム画面の表示に時間がかかっています。
Doctrine::getTable('Community')->getIdsByMemberId($memberId);
このメソッドはメンバーが参加しているコミュニティを返しますが、
参加数が0であった場合にarray()を返すようになっています。
->whereIn('community_id', $communityIds)
その配列で whereIn を行っているので、
配列の要素数が0であった場合に全コミュニティを対象としてしまっています。
Community::getIdsByMemberId メソッドを使用している個所は以下の通りです。
lib/model/doctrine/PluginCommunityEventTable.class.php 52: $communityIds = Doctrine::getTable('Community')->getIdsByMemberId($memberId); 67: $communityIds = Doctrine::getTable('Community')->getIdsByMemberId($memberId); lib/model/doctrine/PluginCommunityTopicTable.class.php 52: $communityIds = Doctrine::getTable('Community')->getIdsByMemberId($memberId); 101: $communityIds = Doctrine::getTable('Community')->getIdsByMemberId($memberId);対象個所:
- コミュニティ最新書き込み
- コミュニティ最新イベント
対処としては、配列の要素数が0であった場合に配列に0を挿入する事で回避できると思います。
操作