When I, as an admin, delete an image, its ID remains in lightbox table, so it still counts for the user who had it in his lightbox. I've tried a search but nothing, is there a way to solve this? I show in user_logininfo the total number of images the user has in his lightbox, but after deleting one of them it is still counted...
Here is the fix:
in admin/images.php find:1 2 3 4 5
| $sql = "SELECT image_id, cat_id, user_id, image_name, image_media_file, image_thumb_file FROM ".IMAGES_TABLE." WHERE image_id IN ($image_ids)"; $image_result = $site_db->query($sql); while ($image_row = $site_db->fetch_array($image_result)) { |
replace it with:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| $sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_media_file, i.image_thumb_file, l.lightbox_image_ids FROM ".IMAGES_TABLE." i LEFT JOIN ".LIGHTBOXES_TABLE." l ON (l.user_id = i.user_id) WHERE i.image_id IN ($image_ids)"; $image_result = $site_db->query($sql); while ($image_row = $site_db->fetch_array($image_result)) { if ($image_row['user_id'] != GUEST) { $lightbox_array = explode(" ",$image_row['lightbox_image_ids']); foreach ($lightbox_array as $key => $val) { if ($val == $image_row['image_id']) { unset($lightbox_array[$key]); } } $lightbox_image_ids = trim(implode(" ", $lightbox_array)); $sql = "UPDATE ".LIGHTBOXES_TABLE." SET lightbox_image_ids = '".$lightbox_image_ids."' WHERE user_id = ".$image_row['user_id']; $site_db->query($sql); } |
This should work as with original admin/images.php as with the v2.x and v3.x from the MODs forum. But it will not work for GUESTs ("Lighbox for guests" MOD)