First off Lynne thank you for helping out in this matter here is the code I have would this be correct.
PHP Code:
<?php
// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
if (!is_object($vbulletin->db))
{
exit;
}
// ########################################################################
// ######################### START MAIN SCRIPT ############################
// ########################################################################
// ###################### Start build search index #######################
if ($_REQUEST['do'] == 'buildpostindex')
{
$vbulletin->input->clean_array_gpc('r', array(
'doprocess' => TYPE_UINT,
'autoredirect' => TYPE_BOOL,
'totalposts' => TYPE_UINT,
));
$starttime = microtime();
if (empty($vbulletin->GPC['perpage']))
{
$vbulletin->GPC['perpage'] = 250;
}
echo '<p>' . $vbphrase['building_search_index'] . ' ';
vbflush();
$foruminfo = array('indexposts' => 1);
$firstpost = array();
$posts = $db->query_read("
SELECT postid, post.title, post.pagetext, post.threadid, thread.title AS threadtitle
FROM " . TABLE_PREFIX . "post AS post
INNER JOIN " . TABLE_PREFIX . "thread AS thread ON(thread.threadid = post.threadid)
INNER JOIN " . TABLE_PREFIX . "forum AS forum ON(forum.forumid = thread.forumid)
WHERE (forum.options & " . $vbulletin->bf_misc_forumoptions['indexposts'] . ")
AND post.postid >= " . $vbulletin->GPC['startat'] . "
ORDER BY post.postid
LIMIT " . $vbulletin->GPC['perpage']
);
echo $vbphrase['posts_queried'] . '</p><p>';
vbflush();
$finishat = $vbulletin->GPC['startat'];
while ($post = $db->fetch_array($posts) AND (!$vbulletin->GPC['doprocess'] OR $vbulletin->GPC['totalposts'] < $vbulletin->GPC['doprocess']))
{
$vbulletin->GPC['totalposts']++;
echo construct_phrase($vbphrase['processing_x'], $post['postid']) . ' ... ';
vbflush();
if (empty($firstpost["$post[threadid]"]))
{
echo '<i>' . $vbphrase['querying_first_post_of_thread'] . '</i> ';
vbflush();
$getfirstpost = $db->query_first("
SELECT MIN(postid) AS postid
FROM " . TABLE_PREFIX . "post
WHERE threadid = $post[threadid]
");
$firstpost["$post[threadid]"] = $getfirstpost['postid'];
}
build_post_index($post['postid'], $foruminfo, iif($post['postid'] == $firstpost["$post[threadid]"], 1, 0), $post);
echo $vbphrase['done'] . "<br />\n";
vbflush();
$finishat = ($post['postid'] > $finishat ? $post['postid'] : $finishat);
}
$finishat++;
require_once(DIR . '/includes/functions_misc.php');
$pagetime = vb_number_format(fetch_microtime_difference($starttime), 2);
echo '</p><p><b>' . construct_phrase($vbphrase['processing_time_x'], $pagetime) . '<br />' . construct_phrase($vbphrase['total_posts_processed_x'], $vbulletin->GPC['totalposts']) . '</b></p>';
vbflush();
if (($vbulletin->GPC['totalposts'] < $vbulletin->GPC['doprocess'] OR !$vbulletin->GPC['doprocess']) AND $checkmore = $db->query_first("SELECT postid FROM " . TABLE_PREFIX . "post WHERE postid >= $finishat LIMIT 1"))
{
if ($vbulletin->GPC['autoredirect'] == 1)
{
print_cp_redirect("misc.php?" . $vbulletin->session->vars['sessionurl'] . "do=buildpostindex&startat=$finishat&pp=" . $vbulletin->GPC['perpage'] . "&autoredirect=" . $vbulletin->GPC['autoredirect'] . "&doprocess=" . $vbulletin->GPC['doprocess'] . "&totalposts=" . $vbulletin->GPC['totalposts']);
}
echo "<p><a href=\"misc.php?" . $vbulletin->session->vars['sessionurl'] . "do=buildpostindex&startat=$finishat&pp=" . $vbulletin->GPC['perpage'] . "&autoredirect=" . $vbulletin->GPC['autoredirect'] . "&doprocess=" . $vbulletin->GPC['doprocess'] . "&totalposts=" . $vbulletin->GPC['totalposts'] . "\">" . $vbphrase['click_here_to_continue_processing'] . "</a></p>";
}
else
{
define('CP_REDIRECT', 'misc.php');
print_stop_message('rebuilt_search_index_successfully');
}
}
?>