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)

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


All times are GMT. The time now is 11:23 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.01376 seconds
  • Memory Usage 1,852KB
  • 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)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)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