ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 11 years ago

Closed 11 years ago

#2373 closed defect (fixed)

BIZで使用されている画像を管理画面から削除するとユーザ画面で画像がリンク切れの状態になる

Reported by: kiwa Owned by: shingo
Priority: minor Milestone: OpenPNE2.12.4
Component: pne-biz Version: 2.10.x & 2.12.x & 2.14.x
Keywords: OpenPNE2.10.10 OpenPNE2.13.3 Cc:

Description (last modified by shingo)

■現象

BIZで使用している画像(グループ画像・施設画像)を管理画面(admin_page_list_c_image / admin_page_edit_c_image)から削除すると、ユーザ画面から確認したときに画像がNoImageではなく画像がリンク切れした状態で表示される

■原因

管理画面からの削除実行時、画像データがデータベースの画像テーブル(c_image)からは削除されているがグループテーブル(biz_group)・施設テーブル(biz_shisetsu)からは削除されていない為。

■修正内容

管理画面からの削除実行時、画像データをグループテーブル(biz_group)・施設テーブル(biz_shisetsu)から削除するように修正。 biz_group・biz_shisetsuのimage_filenameに0がinsertされているのを(空文字列)に変更。

■関連情報

Change History (17)

comment:1 Changed 11 years ago by ogawa

Version: 2.8.x & 2.10.x & 2.11.x2.10.x & 2.12.x & 2.13.x

comment:2 Changed 11 years ago by ebihara

Keywords: OpenPNE2.10.10 OpenPNE2.13.3 added
Milestone: OpenPNE2.12.4

comment:3 Changed 11 years ago by shingo

Owner: changed from nobody to shingo
Status: newassigned

修正します。

comment:4 Changed 11 years ago by shingo

Description: modified (diff)
Keywords: 確認中 added

以下のリビジョンで修正しました。ご確認ください。

comment:5 Changed 11 years ago by shingo

修正リビジョンの追加です。

comment:6 Changed 11 years ago by ebihara

Keywords: 差し戻し added; 確認中 removed

biz_shisetsu にも image_filename が存在しますが、こちらについても削除の必要があるのではないでしょうか。

mysql> DESC biz_shisetsu;
+-----------------+---------+------+-----+---------+----------------+
| Field           | Type    | Null | Key | Default | Extra          |
+-----------------+---------+------+-----+---------+----------------+
| biz_shisetsu_id | int(11) | NO   | PRI | NULL    | auto_increment | 
| name            | text    | NO   |     | NULL    |                | 
| image_filename  | text    | NO   |     | NULL    |                | 
| info            | text    | NO   |     | NULL    |                | 
+-----------------+---------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

また PHP においては、特別な事情(変数の展開を文字列内でおこなう必要がある・可読性が著しく低下するなど)がない限り文字列をダブルクオートではなくシングルクオートで囲むことをお勧めします。

comment:7 in reply to:  6 Changed 11 years ago by ebihara

Replying to ebihara:

また PHP においては、特別な事情(変数の展開を文字列内でおこなう必要がある・可読性が著しく低下するなど)がない限り文字列をダブルクオートではなくシングルクオートで囲むことをお勧めします。

失礼しました、この指摘は別のチケットについてのものでした。

comment:8 Changed 11 years ago by shingo

Keywords: 確認中 added; 差し戻し removed

以下のリビジョンで修正しました。ご確認ください。

→「ダブルクオート・シングルクオート」の件

了解です。以後気をつけます。

comment:9 Changed 11 years ago by ebihara

Keywords: 差し戻し added; 確認中 removed
  • これでは、 admin_do_delete_c_image から画像削除をおこなった場合に biz_group や biz_shisetsu の image_filename が空になりません。 db_admin_delete_c_image_link4image_filename() 内で削除処理をおこなうべきです
  • addslashes() は不要ではないでしょうか
  • UPDATE 後の image_filename の値は空文字列にするのが望ましいです
  • biz_group の画像削除処理に対してはコメントを記述しているのに、 biz_shisetsu の画像削除処理についてはコメントを記述していないのはなぜでしょうか
  • Desription を最新の情報に書き換えてください

comment:10 Changed 11 years ago by shingo

Description: modified (diff)
Keywords: 確認中 added; 差し戻し removed

以下のリビジョンで修正しました。ご確認ください。

comment:11 Changed 11 years ago by shingo

Description: modified (diff)

◆biz_group・biz_shisetsuのimage_filenameに0がinsertされている

上記のバグを発見しましたので、 以下のリビジョンで修正しました。ご確認ください。

comment:12 in reply to:  11 Changed 11 years ago by ebihara

Keywords: 差し戻し added; 確認中 removed
  • db_admin_delete_c_image_link4image_filename() 内の他の画像削除処理に従ってください
  • biz_deleteShisetsuImage() と biz_deleteGroupImage() の UPDATE 文で image_filename を 0 にしてしまっています

comment:13 Changed 11 years ago by shingo

Keywords: 確認中 added; 差し戻し removed

以下のリビジョンで修正しました。ご確認ください。

comment:14 Changed 11 years ago by ebihara

Keywords: 差し戻し added; 確認中 removed

ついでなので biz_deleteShisetsuImage() と biz_deleteGroupImage() は db_update() を使う形に変更してください。

comment:15 Changed 11 years ago by shingo

Keywords: 確認中 added; 差し戻し removed

以下のリビジョンで修正しました。ご確認ください。

comment:16 Changed 11 years ago by ebihara

Keywords: テスト待ち added; 確認中 removed

comment:17 Changed 11 years ago by kiwa

Keywords: テスト待ち removed
Resolution: fixed
Status: assignedclosed

確認しました。問題ありません。

Note: See TracTickets for help on using tickets.