vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Requests/Questions (Unpaid) (https://vborg.vbsupport.ru/forumdisplay.php?f=112)
-   -   Freezing postcounts during board cleanup (https://vborg.vbsupport.ru/showthread.php?t=225751)

RedTrinity 10-22-2009 04:58 AM

Freezing postcounts during board cleanup
 
Hi guys.

I'm planning to do a cleanup of our forum, however I am hoping there is a way I can 'freeze' the postcounts of all members in the meanwhile... in other words, so they have the same post amounts afterwards, even after mass topics have been deleted from the forum.

Basically just want to do a big cleanup without it affecting any post counts at all! Otherwise, with over 1,000 members, it would take too long to restore them manually afterwards.

Can anybody please point me in the right direction for a mod which would help with this, or even might be interested in helping me with their own hack/mod for it?

Thanks in advance :)

Lynne 10-22-2009 02:12 PM

I have never seen a mod to do this. What you might be able to do is create a new field in the user table and copy the post count to that new field. Then do your maintenance. Then copy the field back to the post counts field.

RedTrinity 10-23-2009 05:02 AM

Hi Lynne,

Thanks for your advice. Would this method work effectively for a board with a lot of members ie. can it be done in one hit, via an SQL query or the like? It would it have to be done manually per user (ie. one-by-one)?

I'm hoping the first is an option, with the amount of members we have it may take too long to do otherwise.

Cheers :)

dartho 10-23-2009 06:45 AM

I'm pretty sure you can delete to your hearts content and post numbers won't go down so long as you don't perform a "Update Post Counts" in the maintenance section of the admincp.

[But you should probably perform a database backup first! 1. "just in case" and 2. so you have those soon to be deleted posts save for posterity should you need to go back to them.]

Andreas 10-23-2009 07:45 AM

This is a somewhat common request which is virtually impossible to achieve, as there are a million + 1 places where the postcount gets updated.

Even if you did backup and restore the postcount, it would get updated to the real numbers the next time you run the maintenance function.

My best advice would be: Don't delete content - or don't care about post counters.

RedTrinity 10-27-2009 02:32 AM

Quote:

Originally Posted by Andreas (Post 1904184)
My best advice would be: Don't delete content - or don't care about post counters.

Unfortunately our database is getting very large, I'm looking to delete older content to free up some space and shrink things down. Otherwise for a non-profit forum, its gonna get too expensive for me to host.

We also have an established post count 'program' where members see it as a big achievement to reach certain post milestones (in fact we have a section specifically where members post about them, and get medals/trophies for it) and we also have postcount restricted areas on our forum too. So we can't really do without the post counters option.

I guess I'll have to keep searching in the meanwhile for a way to do this.

Quote:

Originally Posted by dartho (Post 1904163)
I'm pretty sure you can delete to your hearts content and post numbers won't go down so long as you don't perform a "Update Post Counts" in the maintenance section of the admincp.

[But you should probably perform a database backup first! 1. "just in case" and 2. so you have those soon to be deleted posts save for posterity should you need to go back to them.]

Thanks Dartho, I'll do some testing and see if it works :)

Lynne 10-27-2009 02:48 AM

Quote:

Originally Posted by GamerGirl27 (Post 1904126)
Hi Lynne,

Thanks for your advice. Would this method work effectively for a board with a lot of members ie. can it be done in one hit, via an SQL query or the like? It would it have to be done manually per user (ie. one-by-one)?

I was thinking you could just create a new field, like posts2, and then write a query to copy the content from posts to posts2. then, after you were done deleting posts you could just copy it back.

Adrian Schneider 10-27-2009 02:49 AM

If not, SQL for the win:

Run these before:
Code:

CREATE TABLE postcounts (
    userid INTEGER UNSIGNED NOT NULL PRIMARY KEY
  , posts  INTEGER UNSIGNED NOT NULL
);

INSERT INTO postcounts
SELECT userid
    , posts
  FROM user;

Run these after:
Code:

UPDATE user
INNER
  JOIN postcounts
    ON postcounts.userid = user.userid
  SET user.posts = postcounts.posts;

DROP TABLE postcounts;

Add your prefixes if necessary.

Lynne 10-27-2009 02:56 AM

^^ Adrian wrote out what I was thinking. :)

RedTrinity 11-24-2009 10:36 PM

Thanks so much for that, the queries are perfect for what I want to do :)

I do have one more small request though... would there be a similar one for reinstating post/topic counts for the forum stats?

Ie. Members: 1,087, Threads: 25,591, Posts: 420,667

Or where would I edit this afterwards to reflect the counts prior to the changes being made?

Thanks again SirAdrian, you've been a great help sofar!!

PS. Thought I had better note as well in regards to your suggestion Dartho - I did a test and unfortunately postcounts are affected with topic/post deletion, even without touching the maintenance section of the AdminCP! Just to let you know :) I wasn't sure of this beforehand, either.


All times are GMT. The time now is 02:00 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01041 seconds
  • Memory Usage 1,739KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete