vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Requests/Questions (Unpaid) (https://vborg.vbsupport.ru/forumdisplay.php?f=112)
-   -   My idea for thread archiving (https://vborg.vbsupport.ru/showthread.php?t=20544)

TurboFC3S 06-17-2001 08:01 PM

I would love to see some sort of archiving features in vBulletin. But just archive everything over x days old isn't exactly what I would like to see. Running a technical based forum, the same questions come up over and over again, so here's my idea for how to archive them.

Basically you would have a forum, and a corresponding archive for that forum. Then if a thread reaches a set rating with a minimum number of votes, the thread is automatically moved to a non-writable archive for that forum. That way only the good threads are archived, and you can then prune the forum without losing anything good.

Options for it could be:
Moderator approval - have an admin page where the threads are stored in queue. If the moderator ok's the move to the archive, then the thread is moved.
Choices of where to move - give users the choice of moving threads from one or many forums into one or many archives.
Archiving variables - allow the rating and minimum number of votes to be set in the control panel, or another admin page.

And something else that might be an entirely different hack would be download archive. Something to basically turn the entire archive into one big HTML or zip file that you download for your own use at home.

So what do you think? Feedback?

TurboFC3S 06-20-2001 12:48 PM

So I guess nobody likes this idea? Or would it be to hard to implement?

Deacon Frost 07-21-2001 05:09 PM

well, I like this idea...

My Problem is, on my host, I can't create DBs bigger than 100 MB... So I've to prune old threads all the time... this is very depressing, because there aren't still all threads available.

So I'm lookin' for a hack, which is archiving all old threads (which have no new posts since XX days) in static html-files and create links to them in a (maybe) "Archiv-Forum".

Sorry for my english:)

Deacon Frost 07-29-2001 07:04 AM

*bump* there are lots of great hack-writers, an noone wants to help me? I can't believe it :)

TurboFC3S 08-20-2001 06:24 PM

It's looking like I'm going to have to pay to get this one done...

theflow 08-21-2001 09:30 PM

Turbo, it's been my experience that a number of the great hack writers here do not even look at the "Requests" subforum. Try reposting your request in the "free for all" area here:

http://www.vbulletin.com/forum/forum...p?s=&forumid=8

**Note: I've suggested to the vB Moderators that they re-org this whole hacks forum because they say "be sure to make requests in the Requests forum", yet 95% of all requests are actualy made in this free-for-all area. It's an inconsistent mess, even if the intentions were good.

You might also try a PM to Firefly, who is new to vB, but who has just kicked ass with a number of great hacks which have been very helpful to me. Also, I have made several attempts to pay people to accomplish some desired hacks. In general, no responses. One person who was willing to attempt some hacking for a reasonable hourly fee was:

s.molinari:
PM:
http://www.vbulletin.com/forum/priva...age&userid=626

Good luck

Admin 08-22-2001 05:34 AM

[high]* FireFly bookmarks this page :)[/high]

Admin 08-22-2001 01:16 PM

Ok I started working on it.

It will be a part of moving threads (where you have the option to move by username or date). You will be able to move all, or selectively.
I'll keep you informed of my progress.

Wish me luck! :D

EDIT:
I could really use a testing forum. I would test everything on a copy of my forum, but it's not very popular and has no thread votes.
So I would really appreciate if you (TurboFC3S) could send me a backup of your forum, with fake passwords (so I won't see them.
It would really really help me.
Thanks.

Admin 08-22-2001 02:48 PM

Looks like I'm done, now I only need a forum to test this on. :rolleyes:
Any volunteers in the audience? :p

Admin 08-22-2001 04:26 PM

1 Attachment(s)
Just so you can see what I came up with, take a look at the screen shot I attached. :)

Forgot to mention that if you want I can make it close the threads, so you won't have to make the archive forums "read only". :)

theflow 08-22-2001 06:46 PM

Firefly, I'd let you use my forums but they're not open yet and no traffic yet either... plus I've got a headcold and groggy. But if you accomplished the task, again, great work. You are at one with vBulletin :)

Admin 08-22-2001 07:03 PM

Thanks Richard. :D

I really just need a database, just so I could install it somewhere and test the added functions on it.

Admin 08-24-2001 05:10 AM

Um... TurboFC3S? Anyone?
Tell me I didn't do this for nothing.

TurboFC3S 08-24-2001 09:25 PM

FireFly, WOW! I didn't expect somebody to just whip it out. Tell me what exactly you need me to do. You can either reply here or e-mail me at turbo@nothnbut.net

Thanks!

Admin 08-27-2001 01:27 PM

Open thread.php under your admin folder.
Add this code
PHP Code:

// ###################### Start Move by Rate #######################
if ($HTTP_POST_VARS['action']=="moverate") {
  if (
$numvotes=="" or $minrate=="") {
    echo 
"<p>Please enter number of votes and average rate</p>";
    exit;
  }

  if (
$confirm!=1) {

    if (
$forumid==-1) {
      
$forumtitle="all";
    } else {
      
$forum=$DB_site->query_first("SELECT title FROM forum WHERE forumid=$forumid");
      
$forumtitle=$forum[title];
    }
    echo 
"<p>You are about to move all threads from the $forumtitle forum older than $daysmove day(s).";

    
doformheader("thread","moverate");
     
maketableheader("Move All Threads Automatically");
     
makehiddencode("forumid""$forumid");
     
makehiddencode("numvotes""$numvotes");
     
makehiddencode("minrate""$minrate");
     
makehiddencode("destforumid""$destforumid");
     
makehiddencode("confirm""1");
     
doformfooter("Click Here to Move All Threads Automatically","",2);

     
doformheader("thread","moveratesel");
     
maketableheader("Move Threads Selectively");
     
makehiddencode("forumid""$forumid");
     
makehiddencode("numvotes""$numvotes");
     
makehiddencode("minrate""$minrate");
     
makehiddencode("destforumid""$destforumid");
     
doformfooter("Click Here to Move Threads Selectively","",2);

    exit;
  }

  
$forumcheck=iif($forumid!=-1,"forumid=$forumid AND ","");

  
$DB_site->query("UPDATE thread SET forumid=$destforumid WHERE $forumcheck votenum>=$numvotes AND votetotal/votenum>=$minrate");

  echo 
"<p>Posts moved successfully! It is recommend that you <a href=\"misc.php?s=$session[sessionhash]\">update counters</a> now.</p>";
}

// ###################### Start Move by rate selector #######################
if ($action=="moveratesel") {

  
doformheader("thread","domoverate");
  
makehiddencode("destforumid",$destforumid);
  
maketableheader("Move Threads Selectively");

  
$forumcheck=iif($forumid!=-1,"forumid=$forumid AND ","");

  
$threads=$DB_site->query("SELECT threadid,title,votenum,votetotal,replycount,postusername,postuserid FROM thread WHERE $forumcheck votenum>=$numvotes AND votetotal/votenum>=$minrate ORDER BY lastpost DESC");
  while (
$thread=$DB_site->fetch_array($threads)) {
    
$threadavg $thread[votetotal]/$thread[votenum];
    
makeyesnocode("<a href=\"../showthread.php?s=$session[sessionhash]&threadid=$thread[threadid]\" target=\"_blank\">$thread[title]</a><br>&nbsp;&nbsp;With <b>$thread[votenum]</b> and an average of <b>$threadavg</b><br>&nbsp;&nbsp;Started by <a href=\"../member.php?s=$session[sessionhash]&action=getinfo&userid=$thread[postuserid]\" target=\"_blank\">$thread[postusername]</a><br>&nbsp;&nbsp;$thread[replycount] replies","move[$thread[threadid]]",1);
  }

  
doformfooter("Submit - only click here if you are ABSOLUTELY certain");
}

// ###################### Start Move by rate selected #######################
if ($HTTP_POST_VARS['action']=="domoverate") {

  echo 
"<p>Moving...</p>";

  while (list(
$key,$val)=each($move)) {
    if (
$val==1) {
      
$DB_site->query("UPDATE thread SET forumid=$destforumid WHERE threadid=$key");
    }
  }

  echo 
"<p>Posts moved successfully! It is recommend that you <a href=\"misc.php?s=$session[sessionhash]\">update counters</a> now.</p>";


right before
PHP Code:

// ###################### Start by Move Date ####################### 

Now add
PHP Code:

  doformheader("thread","moverate");
  
maketableheader("Move by rate");
  
makeinputcode("Move threads with at least x votes:","numvotes");
  
makeinputcode("Move threads with average rate of at least x:","minrate");
  
makeforumchoosercode("Source Forum","forumid",-1,"All forums");
  
makeforumchoosercode("Destination Forum","destforumid");
  
makelabelcode("Note: this will not move posts from sub forums!");

  
doformfooter("Move"); 

right before
PHP Code:

  doformheader("thread","movedate");
  
maketableheader("Move by date");
  
makeinputcode("Move threads with last post older than x days:","daysmove","0");
  
makeforumchoosercode("Source Forum","forumid",-1,"All forums");
  
makeforumchoosercode("Destination Forum","destforumid");
  
makelabelcode("Note: this will not move posts from sub forums!");

  
doformfooter("Move"); 

And that's it. :)

TurboFC3S 08-28-2001 02:35 AM

So you used that database I gave you and it tested fine?

Impressive list of hacks btw. If this works, you'll be my hero.

TurboFC3S 08-28-2001 02:52 AM

One more request. I want to use this for a way to archive threads, so to keep it from moving active threads, could you throw one more variable in for date. Basically just to move if (number of votes = x) and (rating = x) and (date is before xx/xx/xx)

I know you could do it in like 5 seconds, but I'm going to play along at home and see if I can do it... then compare to how you do it :D

Admin 08-29-2001 04:27 PM

Replace the whole huge block of PHP you added last post with this block:
PHP Code:

// ###################### Start by Move Rate #######################
if ($HTTP_POST_VARS['action']=="moverate") {
  if (
$numvotes=="" or $minrate=="") {
    echo 
"<p>Please enter number of votes and average rate</p>";
    exit;
  }

  if (
$confirm!=1) {

    if (
$forumid==-1) {
      
$forumtitle="all";
    } else {
      
$forum=$DB_site->query_first("SELECT title FROM forum WHERE forumid=$forumid");
      
$forumtitle=$forum[title];
    }
    echo 
"<p>You are about to move all threads from the $forumtitle forum older than $daysmove day(s) with an average rate of at least $minrate and at least $numvotes votes.";

    
doformheader("thread","moverate");
     
maketableheader("Move All Threads Automatically");
     
makehiddencode("forumid""$forumid");
     
makehiddencode("numvotes""$numvotes");
     
makehiddencode("minrate""$minrate");
     
makehiddencode("daysmove""$daysmove");
     
makehiddencode("destforumid""$destforumid");
     
makehiddencode("confirm""1");
     
doformfooter("Click Here to Move All Threads Automatically","",2);

     
doformheader("thread","moveratesel");
     
maketableheader("Move Threads Selectively");
     
makehiddencode("forumid""$forumid");
     
makehiddencode("numvotes""$numvotes");
     
makehiddencode("minrate""$minrate");
     
makehiddencode("daysmove""$daysmove");
     
makehiddencode("destforumid""$destforumid");
     
doformfooter("Click Here to Move Threads Selectively","",2);

    exit;
  }

  
$forumcheck=iif($forumid!=-1,"forumid=$forumid AND ","");

  if (
$daysmove) {
    
$datecut=time()-($daysmove*86400);
    
$datecheck="AND lastpost<=$datecut";
  }
  
$DB_site->query("UPDATE thread SET forumid=$destforumid WHERE $forumcheck votenum>=$numvotes AND votetotal/votenum>=$minrate $datecheck");

  echo 
"<p>Posts moved successfully! It is recommend that you <a href=\"misc.php?s=$session[sessionhash]\">update counters</a> now.</p>";
}

// ###################### Start Move by rate selector #######################
if ($action=="moveratesel") {

  
doformheader("thread","domoverate");
  
makehiddencode("destforumid",$destforumid);
  
maketableheader("Move Threads Selectively");

  
$forumcheck=iif($forumid!=-1,"forumid=$forumid AND ","");

  if (
$daysmove) {
    
$datecut=time()-($daysmove*86400);
    
$datecheck="AND lastpost<=$datecut";
  }
  
$threads=$DB_site->query("SELECT threadid,title,votenum,votetotal,replycount,postusername,postuserid,lastpost FROM thread WHERE $forumcheck votenum>=$numvotes AND votetotal/votenum>=$minrate $datecheck ORDER BY votetotal/votenum DESC, votenum DESC, lastpost");
  while (
$thread=$DB_site->fetch_array($threads)) {
    
$threadavg $thread[votetotal]/$thread[votenum];
    
makeyesnocode("<a href=\"../showthread.php?s=$session[sessionhash]&threadid=$thread[threadid]\" target=\"_blank\">$thread[title]</a><br>&nbsp;&nbsp;With <b>$thread[votenum]</b> and an average of <b>$threadavg</b><br>&nbsp;&nbsp;Started by <a href=\"../member.php?s=$session[sessionhash]&action=getinfo&userid=$thread[postuserid]\" target=\"_blank\">$thread[postusername]</a><br>&nbsp;&nbsp;$thread[replycount] replies","move[$thread[threadid]]",1);
  }

  
doformfooter("Submit - only click here if you are ABSOLUTELY certain");
}

// ###################### Start Move by rate selected #######################
if ($HTTP_POST_VARS['action']=="domoverate") {

  echo 
"<p>Moving...</p>";

  while (list(
$key,$val)=each($move)) {
    if (
$val==1) {
      
$DB_site->query("UPDATE thread SET forumid=$destforumid WHERE threadid=$key");
    }
  }

  echo 
"<p>Posts moved successfully! It is recommend that you <a href=\"misc.php?s=$session[sessionhash]\">update counters</a> now.</p>";


And now add
PHP Code:

  makeinputcode("Move threads with last post older than x days:","daysmove","0"); 

right after
PHP Code:

  makeinputcode("Move threads with average rate of over x:","minrate"); 

(everything in thread.php)
That should do what you want. :)

Admin 08-29-2001 04:42 PM

Ok I updated a little language mistake, and also tested it while at it - works just like I anticipated. :)

TurboFC3S 08-30-2001 12:10 AM

Thanks again! You are the man ... I actually hacked it and had it working, but I like your way better. Want a job :D

Admin 08-30-2001 04:48 AM

God I hear that a lot these days. :p

You're welcome (I actually use this myself ya know ;)).

smees 10-04-2006 09:41 AM

I wonder if this is usable for vbulletin 3.6.

Since this thread is not the youngest, i wonder why such a function is not implemented in standard installation.

We are now looking several days for a modification like this and are getting nearly none replies in the vbulletin boards.

Any help is appreciated :-)

Quarterbore 10-04-2006 12:13 PM

Here was an idea I threw out there....

https://vborg.vbsupport.ru/showthread.php?t=114702

Same concept... take the old threads and posts and move them to a read only database... when a member wants and old post they can go to the read only archive and see what was posted years ago...

I have not had time to work on this...

Paul M 10-04-2006 11:06 PM

Quote:

Originally Posted by smees
I wonder if this is usable for vbulletin 3.6.

No, this is over five years old and relates to vbulletin version 2.


All times are GMT. The time now is 11:11 AM.

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.01326 seconds
  • Memory Usage 1,884KB
  • 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
  • (7)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (24)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
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete