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

Reply
 
Thread Tools Display Modes
  #1  
Old 11-01-2006, 05:59 PM
manguish manguish is offline
 
Join Date: Apr 2003
Location: UK
Posts: 204
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Update User Titles and Ranks

As posted Here

As a cron job?

i have members coming in and out of subscribed member groups. Once the subscribe, they join the "premium" usergroup.

When this expires, i require the rank to be removed.

I have set the rank to be if = to this usergroup, but so far, the only way to do it is to run the update user ranks and titles in maintenance.

how would i run a cron to do this when my subscription cron runs?
Reply With Quote
  #2  
Old 11-03-2006, 05:03 PM
manguish manguish is offline
 
Join Date: Apr 2003
Location: UK
Posts: 204
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Anyone please?
Reply With Quote
  #3  
Old 11-07-2006, 05:20 PM
manguish manguish is offline
 
Join Date: Apr 2003
Location: UK
Posts: 204
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I guess for the right code, i could even cough up some paypal for the right person....

I'm struggling with this one. :/
Reply With Quote
  #4  
Old 11-07-2006, 05:29 PM
SCRIPT3R SCRIPT3R is offline
 
Join Date: Jan 2005
Posts: 1,303
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

setup a cron for this... admincp/misc.php?do=updateuser

PHP Code:
<?php

// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
if (!
is_object($vbulletin->db))
{
    exit;
}

// ########################## REQUIRE BACK-END ############################
require_once('./global.php');
require_once(
DIR '/includes/functions_databuild.php');

// ############################# LOG ACTION ###############################
log_admin_action();

// ########################################################################
// ######################### START MAIN SCRIPT ############################
// ########################################################################

// ###################### Start update user #######################
if ($_REQUEST['do'] == 'updateuser')
{
    require_once(
DIR '/includes/functions_infractions.php');

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

    
$finishat $vbulletin->GPC['startat'] + $vbulletin->GPC['perpage'];

    echo 
'<p>' $vbphrase['updating_user_info'] . '</p>';
    
$tmp_usergroup_cache = array();

    
$infractiongroups = array();
    
$groups $vbulletin->db->query_read("
        SELECT usergroupid, orusergroupid, pointlevel, override
        FROM " 
TABLE_PREFIX "infractiongroup
        ORDER BY pointlevel
    "
);
    while (
$group $vbulletin->db->fetch_array($groups))
    {
        
$infractiongroups["$group[usergroupid]"]["$group[pointlevel]"][] = array(
            
'orusergroupid' => $group['orusergroupid'],
            
'override'      => $group['override'],
        );
    }

    
$users $db->query_read("
        SELECT user.*, usertextfield.rank,
        IF(user.displaygroupid=0, user.usergroupid, user.displaygroupid) AS displaygroupid
        FROM " 
TABLE_PREFIX "user AS user
        LEFT JOIN " 
TABLE_PREFIX "usertextfield AS usertextfield USING (userid)
        WHERE user.userid >= " 
$vbulletin->GPC['startat'] . " AND user.userid < $finishat
        ORDER BY user.userid
    "
);
    while (
$user $db->fetch_array($users))
    {
        
$userdm =& datamanager_init('User'$vbulletinERRTYPE_CP);
        
$userdm->set_existing($user);
        
cache_permissions($userfalse);

        
$userdm->set_usertitle(
            (
$user['customtitle'] ? $user['usertitle'] : ''),
            
false,
            
$vbulletin->usergroupcache["$user[displaygroupid]"],
            (
$user['customtitle'] == OR $user['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canusecustomtitle']) ? true false,
            (
$user['customtitle'] == 1) ? true false
        
);

        if (
$lastpost $db->query_first("SELECT MAX(dateline) AS dateline FROM " TABLE_PREFIX "post WHERE userid = $user[userid]"))
        {
            
$lastpost['dateline'] = intval($lastpost['dateline']);
        }
        else
        {
            
$lastpost['dateline'] = 0;
        }

        
$infractioninfo fetch_infraction_groups($infractiongroups$user['userid'], $user['ipoints'], $user['usergroupid']);
        
$userdm->set('infractiongroupids'$infractioninfo['infractiongroupids']);
        
$userdm->set('infractiongroupid'$infractioninfo['infractiongroupid']);

        
$userdm->set('posts'$user['posts']); // This will activate the rank update
        
$userdm->set('lastpost'$lastpost['dateline']);
        
$userdm->save();
        unset(
$userdm);

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

    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=updateuser&startat=$finishat&pp=" $vbulletin->GPC['perpage']);
        echo 
"<p><a href=\"misc.php?" $vbulletin->session->vars['sessionurl'] . "do=updateuser&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_user_titles_successfully');
    }
}

?>
oh wait... i hadn't noticed you were using vB 3.0... the above is for vB 3.6 - i'm not familiar with dbase calls prior to vB 3.5 - sorry.
Reply With Quote
  #5  
Old 11-07-2006, 05:46 PM
manguish manguish is offline
 
Join Date: Apr 2003
Location: UK
Posts: 204
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm actually in 3.5.5 - but that may give me a start
Reply With Quote
  #6  
Old 11-07-2006, 05:48 PM
SCRIPT3R SCRIPT3R is offline
 
Join Date: Jan 2005
Posts: 1,303
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i'm thinking it should work fine for 3.5.5... just create a new php file and place it into your includes/cron directory and runwith your cron setup.
Reply With Quote
  #7  
Old 12-05-2007, 12:57 PM
Criticize Criticize is offline
 
Join Date: Jul 2006
Posts: 100
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can you please explain this a little more in depth? I am trying to do this as well on my forum and need some help. I need to update user titles and ranks that have been changed but not ALL users, only users who have made changes etc.

Any help GearTripper? Thanks a ton.
Reply With Quote
  #8  
Old 02-18-2011, 10:03 PM
RedTurtle's Avatar
RedTurtle RedTurtle is offline
 
Join Date: May 2006
Location: California
Posts: 205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Has anyone else figured out how to make this work? I keep getting an error trying to run this on 3.6.5.

The error is:

Warning: include_once(/home/user/public_html/./admincp/misc.php?do=updateuser) [function.include-once]: failed to open stream: No such file or directory in /admincp/cronadmin.php on line 108

Warning: include_once() [function.include]: Failed opening '/home/user/public_html/./admincp/misc.php?do=updateuser' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /admincp/cronadmin.php on line 108


Really trying to find a way to automate via the scheduler running the update user title and rank counter every night.

Could anyone please help? THANK YOU.
Reply With Quote
  #9  
Old 02-19-2011, 01:45 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't quite understand what SCRIPT3R was suggesting, but it seems like if you're going to put that code in a separate php file in the includes/cron directory, then you might as well take out the if ($_REQUEST['do'] == 'updateuser') (and the associate curly braces) and then take the "?do=updateuser" off the name of the file (you probably also would want to name it something more meaningful than "misc.php").

Also, I'm not sure but I think you may have to edit that code some - it looks like maybe SCRIPT3R was just showing which code to use from the admincp code, but it looks like it might have trouble running as a cron job the way it is.
Reply With Quote
Reply


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 07:18 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04355 seconds
  • Memory Usage 2,283KB
  • Queries Executed 13 (?)
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)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)postbit_wrapper
  • (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_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
  • 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