View Single Post
  #1  
Old 01-20-2011, 09:58 AM
brandondrury brandondrury is offline
 
Join Date: Oct 2005
Posts: 136
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Change Usergroup/Member Instant Rank Update

Well, I've wasted all night on this stupid thing, but I now have it where I can upgrade a member to a new membergroup/usergroup and their rank image will show up instantly without the need to update User Title and Rank counters.

I used "normal" code (whatever that means) in vB3.8.6, but for some reason in vB4 I had to update counters. This is unacceptable as the people buying my high priced stuff expect a little 643kb gif image next to their name NOW.

It turns out that this junk was the solution: http://www.vbulletin.com/docs/html/m...er_programming I'm a total idiot when it comes to object programming so I just pushed button until it worked.

I'm no programmer. I haven't done anything serious in 4 years and even then I was flying by the seat of my pants. Fair warning! If someone better wants to clean up the first-grader-with-crayon-like code, be my guest. Nowhere did I find this in my searches.

It's totally unsupported because I barely got the stupid thing to work.

Explanation:
It uses the global.php file to see if the dude is logged in. If he is, it digs up any current membergroups and adds 21 (in this example) to the end. This is necessary because in the past I'd lose my previous membergroups without it. For all I know, the object stuff takes care of this.

You'll need to change the pathways. This thing runs on a normal ol' php page and doesn't use the forum theme or anything like that. I used the

if ($upgrade=1) { echo "You are upgraded!"} else { echo "you need to log in"}

Here's my code:

PHP Code:
<?php
//$curdir = getcwd ();

require_once('global.php');
require_once(
'includes/functions.php');
require_once(
'includes/class_core.php');

//chdir ($curdir);
$forumpath="http://localhost/forum_real/";
$userid=$vbulletin->userinfo['userid'];
$usergroup=$vbulletin->userinfo['usergroupid'];
$membergroupids$vbulletin->userinfo['membergroupids'];


if (
$membergroupids)
    {
    
$groupIDs explode(','$membergroupids);
    }

$countercount($groupIDs);

// Change this to the usergroup ID you'd like to add this dude/chick to
$groupIDs[$counter]=21;


if (
$userid)
{
sort($groupIDs);
$groupIDsarray_unique($groupIDs);
$comma_separated implode(","$groupIDs);
$upgrade=1;
$dataman =& datamanager_init('User'$vbulletin); 
$dataman->set_existing($vbulletin->userinfo); 
$dataman->setr('membergroupids',$comma_separated); 

 
$vbulletin->userinfo['userid'
        = 
$userid 
        
$dataman->save();
}

?>

In case anyone needs the login code, here it is:

PHP Code:
echo"<form action=\"".$forumpath."/login.php\" method=post onsubmit=md5hash(vb_login_password,vb_login_md5password,vb_login_md5password_utf)>
    <script type=text/javascript src=\""
.$forumpath."/clientscript/vbulletin_md5.js\"></script>
    User Name:<br>
    <input name=vb_login_username type=text id=navbar_username onfocus=if (this.value == '
$vbphrase[username]') this.value = ''; size=10 />
            
    <br>Password:<br>
    <input name=vb_login_password type=password size=10 />
    </br>
        
    <input name=cookieuser type=hidden id=cb_cookieuser_navbar value=1 checked=checked />

    
        
    <input type=submit title=
$vbphrase[enter_username_to_login_or_register] value=\"Log In\" />
        
    <input type=hidden name=s value=
$session[sessionhash] />
    <input type=hidden name=do value=login />        
    <input type=hidden name=vb_login_md5password />
    <input type=hidden name=vb_login_md5password_utf />

    </form>"

Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01233 seconds
  • Memory Usage 1,797KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete