A couple of weeks ago I had several topics disappear from my phpBB Forum. On advice from the phpBB Help Forum I installed 'DB Maintenance' from phpbbhacks.com which managed to reinstate my lost topics for me.
The problem was caused by a member who had left via the Drupal part of the site. Each topic that disappeared contained posts made the member prior him leaving in which he was identified in the DB by his user_id. Deleting his Username removed his user_id from the DB and phpBB refused to publish his posts as it knew no-one with that user_id.
Now I'm in to guess work. I suspect that this is something that may not be dealt with properly in phpbb.module. It's quite a normal occurrence for members to leave a board and so there must be a mechanism to deal with their posts when they do so. However, our members join and leave via Drupal, the information being passed on to phpBB by the phpbb.module. The module certainly deletes leaving members from the phpbb_user table, but it would seem not to deal correctly with their posts.
Comments
Comment #1
arkepp commentedYeah,
looks like phpBB has changed the way it deals with users since I wrote the code the first time. If you look in the post-table you can see they have a "post_username" column. I believe it used to be filled out, so that if a member was deleted, the stuff would still stick to his name etc. I don't think the column is in use anymore, so they probably became more dependent on the user-table in other ways as well.
For now I recommend disabling the deletion of users, it should be sufficient to disable them.
Patches are welcome, as always. I'll probably be moving on to Drupal 5.0 and phpBB3 early next year, so I will have to revisit all that stuff.