vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Update Users (https://vborg.vbsupport.ru/showthread.php?t=300537)

Tyluur 07-28-2013 04:15 AM

Update Users
 
I am adding members with sql only, and that being said the counter on the bottom of forum.php does not update, and neither does the newest member. I have ran a few tests and the option "Update User Names" in "General Update Tools" fixes this. How would I run a task for this every 15 minutes or so?

This is what is done to update the users:

Code:

if ($_REQUEST['do'] == 'updateusernames')
{
        if (empty($vbulletin->GPC['perpage']))
        {
                $vbulletin->GPC['perpage'] = 1000;
        }

        echo '<p>' . $vbphrase['updating_usernames'] . '</p>';
        $users = $db->query_read("
                SELECT *
                FROM " . TABLE_PREFIX . "user
                WHERE userid >= " . $vbulletin->GPC['startat'] . "
                ORDER BY userid
                LIMIT " . $vbulletin->GPC['perpage']
        );

        $finishat = $vbulletin->GPC['startat'];
        while ($user = $db->fetch_array($users))
        {
                $userman =& datamanager_init('User', $vbulletin, ERRTYPE_SILENT);
                $userman->set_existing($user);
                $userman->update_username($user['userid'], $user['username']);
                unset($userman);

                echo construct_phrase($vbphrase['processing_x'], $user['userid']) . "<br />\n";
                vbflush();

                $finishat = ($user['userid'] > $finishat ? $user['userid'] : $finishat);
        }

        $finishat++; // move past the last processed user

        if ($checkmore = $db->query_first("SELECT userid FROM " . TABLE_PREFIX . "user WHERE userid >= $finishat LIMIT 1"))
        {
                print_cp_redirect("misc.php?" . $vbulletin->session->vars['sessionurl'] . "do=updateusernames&startat=$finishat&pp=" . $vbulletin->GPC['perpage']);
                echo "<p><a href=\"misc.php?" . $vbulletin->session->vars['sessionurl'] . "do=updateusernames&amp;startat=$finishat&amp;pp=" . $vbulletin->GPC['perpage'] . "\">" . $vbphrase['click_here_to_continue_processing'] . "</a></p>";
        }
        else
        {
                define('CP_REDIRECT', 'misc.php');
                print_stop_message('updated_usernames_successfully');
        }
}


kh99 07-30-2013 01:04 PM

I think you just need to call the function build_user_statistics(), which is in includes/function_databuild.php. I don't understand exactly what that update username function does, but I'm guessing that the reason it works for you is because the user dm calls build_user_statistics() at some point.

If you wanted to have it run periodically you could create a scheduled task. Look at the files in includes/cron, find a simple example, and copy it to a new file name. The code just needs to include includes/function_databuild.php and call build_user_statistics(). Then you can use the Schedule Task manager to add a new scheduled task and specify your new php file as the file to run.

If you could live with it running only once per hour you could create a plugin using hook cron_script_cleanup_hourly, which is run from the existing "Hourly Cleanup" task.


All times are GMT. The time now is 10:43 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.01142 seconds
  • Memory Usage 1,716KB
  • 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
  • (1)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (2)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