Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 02-03-2011, 03:51 PM
ravenscape's Avatar
ravenscape ravenscape is offline
 
Join Date: Mar 2008
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default problem with PM notifications

So, I had a member send a bunch of other members a PM with private, personally identifying information re another member. After banning the perp, I deleted the PMs via mysql query.

Now the affected members have a ghost unread PM notification. I reset the unread pm count to zero, but now the count doesn't decrement correctly when they read a new PM.

Any ideas on how to fix this?
Reply With Quote
  #2  
Old 02-12-2011, 04:40 AM
ravenscape's Avatar
ravenscape ravenscape is offline
 
Join Date: Mar 2008
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

* crickets *
Reply With Quote
  #3  
Old 02-12-2011, 10:56 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Do you remember exactly what you did to delete the messages via mysql query (and how did you reset the unread count?).

It looks to me as if the total and unread pm counters get recalculated after some functions (the messages are actually counted, not just inc or dec the counters). So while I don't see any specific "fix pm counters" admin function, it looks like if a user does "mark all read" or "delete" from the pm page the counters should be fixed.

If you really wanted to you could probably write a script to fix everyone's counters using the code from build_pm_counters() in private.php.
Reply With Quote
  #4  
Old 02-12-2011, 03:08 PM
ravenscape's Avatar
ravenscape ravenscape is offline
 
Join Date: Mar 2008
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks for the suggestions, kh99!

To find and delete the PMs I did the following:

Using phpMyAdmin:

SELECT *
FROM `pmtext`
WHERE `fromusername` = "name"
LIMIT 120 , 30

I then used the checkbox in the results list to pick the offending PMs and delete them.

To change the PM count, I also used phpMyAdmin to bring up each user's profile info and edit the count number.

"mark all read" did not fix the problem. It appears to work only page-by-page, not globally, and there is no page with an unread PM.

Having the affected members delete all their PMs might do the trick, though it's potentially an inconvenience for them if they have PMs they'd like to keep.


Quote:
If you really wanted to you could probably write a script to fix everyone's counters using the code from build_pm_counters() in private.php.
I'll check this out. Thanks!
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:57 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03653 seconds
  • Memory Usage 2,183KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete