#2856 closed defect (fixed)
コミュニティを退会したメンバーがイベントの参加メンバーに残ってしまう
Reported by: | imamura623 | Owned by: | shingo |
---|---|---|---|
Priority: | minor | Milestone: | OpenPNE2.12.4 |
Component: | 指定しない | Version: | 2.10.x & 2.12.x & 2.14.x |
Keywords: | OpenPNE2.10.10 OpenPNE2.13.3 | Cc: |
Description (last modified by )
■現象
コミュニティを退会したメンバーが、そのままイベントの参加メンバーに残ってしまう。
■原因
コミュニティを退会処理実行時、参加イベントメンバー情報(c_event_member)が削除されていない為。
■修正内容
コミュニティを退会処理実行時、参加イベントメンバー情報(c_event_member)を削除するように修正。
■関連情報
元のDescription
http://sns.openpne.jp/?m=pc&a=page_c_topic_detail&target_c_commu_topic_id=3875 より転記
お世話になっております。質問に伺いました。 環境:OpenPNE2.10.2 を利用しています 閲覧:PC、携帯の両方 コミュニティでイベントを立ち上げ、参加者を募集している最中、参加を予定していたメンバーがコミュニティを退会しました。 しかし、「イベント参加者一覧」に名前は残ったままで、コミュニティ管理者・イベント作成者ともに、「メンバーの参加取消」ができません。 この場合、参加予定だった本人がもう一度コミュニティに入り、イベント参加を解除するしか方法はないでしょうか?
Change History (14)
comment:1 Changed 12 years ago by
Keywords: | 再現待ち removed |
---|
comment:2 Changed 12 years ago by
Owner: | changed from nobody to shingo |
---|---|
Status: | new → assigned |
修正します。
comment:3 Changed 12 years ago by
Keywords: | OpenPNE2.10.10 OpenPNE2.13.3 確認中 added |
---|---|
Milestone: | → OpenPNE2.12.4 |
comment:4 Changed 12 years ago by
Description: | modified (diff) |
---|
comment:5 Changed 12 years ago by
Keywords: | 差し戻し added; 確認中 removed |
---|
- 参加イベントの取得の際にはマスタDBを読むようにするべきでしょう
- この場合、 db_get_all() よりも db_get_col() を利用した方がいいでしょう
- PHP においては、特別な事情(変数の展開を文字列内でおこなう必要がある・可読性が著しく低下するなど)がない限り文字列をダブルクオートではなくシングルクオートで囲むことをお勧めします
comment:6 Changed 12 years ago by
Keywords: | 確認中 added; 差し戻し removed |
---|
comment:7 Changed 12 years ago by
Keywords: | 差し戻し added; 確認中 removed |
---|
2722 $c_event_list = db_get_col($sql, $params, 'main'); 2723 foreach ($c_event_list as $c_event) { 2724 db_commu_delete_c_event_member($c_event['c_commu_topic_id'], $c_member_id); 2725 } 2726
これでは、 c_commu_topic_id が2桁以上になった場合に問題が生じます。
$c_event は c_commu_topic_id を格納する文字列です。そのため、 [] でアクセスする必要はありません。
文字列に対して [] でアクセスする場合、キーに数値ではなく文字列を指定すると、常に一文字目が返されます。そのため、 c_commu_topic_id が1桁の場合は正しい値が取得できますが、2桁になると1文字目(10 の場合 1 )が返されるため、問題となります。
comment:8 Changed 12 years ago by
Keywords: | 確認中 added; 差し戻し removed |
---|
comment:9 Changed 12 years ago by
Keywords: | 差し戻し added; 確認中 removed |
---|
- db_commu_delete_c_commu_member() では、 $params を c_commu_review の削除処理にて定義しており、以降はそれを使い回しています。そのため、 c_event_member の削除処理において再び定義する必要はありません。この定義を削除するか、もしくはその他のすべての削除処理にて必ず $params を定義し直すように修正してください
- 以下の $c_event という変数名は適切ではないのではないでしょうか。
2780 foreach ($c_event_list as $c_event) {
comment:10 Changed 12 years ago by
Keywords: | 確認中 added; 差し戻し removed |
---|
comment:11 Changed 12 years ago by
Keywords: | テスト待ち added; 確認中 removed |
---|
comment:12 Changed 12 years ago by
Keywords: | テスト待ち removed |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
確認しました。問題ありません。
comment:13 Changed 12 years ago by
Description: | modified (diff) |
---|
comment:14 Changed 12 years ago by
Description: | modified (diff) |
---|
Note: See
TracTickets for help on using
tickets.
以下のような確認を行ったところ再現できました。
■確認ブラウザ
■確認バージョン
■手順