Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #5  
Old 12-04-2002, 08:30 PM
sparky2 sparky2 is offline
 
Join Date: Jul 2002
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The following is PARTIALLY
code excerpted from v2.2.9 admin/misc.php
and
PARTIALLY code I added (remove EMPTY thread routine)
based on a suggestion offered by "Sadler"
which has apparently been ignored
by the vBulletin developers
----------------------------------v

PHP Code:
// ###################### Start remove EMPTY threads #######################
        // (EMPTY threads  are the buggered thread that show header/footer table cells w/ just a slice of whitespace b/t them)
if ($action=="removeemptythreads") {
  if (isset(
$perpage)==or $perpage=="") {
    
$perpage=50;
  }
  if (isset(
$startat)==or $startat=="") {
    
$startat=0;
  }
  
$finishat=$startat+$perpage;

  
$threads $DB_site->query("SELECT thread.threadid FROM thread AS thread LEFT JOIN post AS post USING(threadid) WHERE post.threadid IS NULL AND thread.open<>10 LIMIT $startat$perpage");
  while (
$thread $DB_site->fetch_array($threads)) {
    
$deleting++;
    
deletethread($thread['threadid']);
    echo 
"<p>Deleting thread $thread[threadid]</p>\n";
    
flush();
  }
  if(
$deleting) {
    
cpredirect("misc.php?s=$session[sessionhash]&action=removeemptythreads&startat=$finishat&perpage=$perpage");
  } else {
    echo 
'<p>No -=EMPTY=- threads were found</p>';
    
cpredirect("misc.php?s=$session[sessionhash]",1);
  }

}


// ###################### Start remove orphan threads #######################
if ($action=="removeorphanthreads") {
  if (isset(
$perpage)==or $perpage=="") {
    
$perpage=50;
  }
  if (isset(
$startat)==or $startat=="") {
    
$startat=0;
  }
  
$finishat=$startat+$perpage;
  
$threads $DB_site->query("SELECT thread.threadid FROM thread AS thread LEFT JOIN forum AS forum USING(forumid) WHERE forum.forumid IS NULL LIMIT $startat$perpage");
  while (
$thread $DB_site->fetch_array($threads)) {
    
$deleting++;
    
deletethread($thread['threadid']);
    echo 
"<p>Deleting thread $thread[threadid]</p>\n";
    
flush();
  }
  if(
$deleting) {
    
cpredirect("misc.php?s=$session[sessionhash]&action=removeorphanthreads&startat=$finishat&perpage=$perpage");
  } else {
    echo 
'<p>No orphan threads were found</p>';
    
cpredirect("misc.php?s=$session[sessionhash]",1);
  }

}
// ###################### Start remove orphan posts #######################
if ($action=="removeorphanposts") {
  if (isset(
$perpage)==or $perpage=="") {
    
$perpage=50;
  }
  if (isset(
$startat)==or $startat=="") {
    
$startat=0;
  }
  
$finishat=$startat+$perpage;

  
$posts $DB_site->query("SELECT post.threadid, post.postid FROM post AS post LEFT JOIN thread AS thread USING(threadid) WHERE thread.threadid IS NULL LIMIT $startat$perpage");
  while (
$post $DB_site->fetch_array($posts)) {
    
$deleting++;
    
deletepost($post['postid']);
    echo 
"<p>Deleting post $post[postid]</p>\n";
    
flush();
  }
  if(
$deleting) {
    
cpredirect("misc.php?s=$session[sessionhash]&action=removeorphanposts&startat=$finishat&perpage=$perpage");
  } else {
    echo 
'<p>No orphan posts were found</p>';
    
cpredirect("misc.php?s=$session[sessionhash]",1);
  } 
I'm still not convinced that the "remove orphaned posts" routine is quite right, though.
Heck of a lot faster to do it from the commandline
(DELETE instead of SELECT in the query and leave out the limit clause)
...and when I ran it from the v2.2.9 AdminCP (misc.php) several times consecutively, it "keep finding" (?) additional orphans with each pass. (Shouldn't be so ~~ it should have whacked all the orphans in one run.)



I'm open to additional thoughts on handling orphans.
A related problem is that a number of posts mysteriously
(continually) have post.visible='0' ~~ mysterious because users have no way of choosing this & it seems to happen at random.
Reply With Quote
 


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 12:08 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.05571 seconds
  • Memory Usage 2,450KB
  • Queries Executed 12 (?)
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)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (6)post_thanks_postbit_info
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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