Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 08-10-2013, 05:58 AM
SwalyAaron SwalyAaron is offline
 
Join Date: Jan 2013
Posts: 86
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Vbulletin API - Change Usergroup

Hey looking for a command/function from the vbulletin API (3.8.7) - I've read the documentation but found nothing useful in there, also did some searches found nothing.

Heres my plan, I have an automated donation system that is mostly linked to a 3rd party game, I made it so once this donation system gets a positive response from the paypal IPN, to send a confirmation PM to the user which is working fine ATM, the problem I'm having is I cant find a proper function to promote the user to a different usergroup.

Any help will be appreciated
Reply With Quote
  #2  
Old 08-10-2013, 10:40 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't think there's a function just for doing that, but you can use the user datamanager. I was looking at includes/cron/promotion.php which changes usergroups based on the Promotions you have configured. For reasons I don't understand (maybe efficiency), it changes the database directly to update some of the fields, then uses the datamanger to update others. So there might be something there that would be useful.

I haven't tested this, but taking some code from promotions.php, you might be able to do this:

PHP Code:
// $userid must already be set to the user's id. If you have the user's info array 
// you can use that in place of $user below
$userdm =& datamanager_init('User'$vbulletinERRTYPE_SILENT);
$user = array('userid' => $userid);
$userdm->set_existing($user);
$userdm->set('usergroupid'X); // X is new primary usergroup id
$userdm->save(); 

Of course that changes the primary group. If you wanted to add a secondary group instead that would be a bit more complicated.


ETA: You could just use an SQL query to update the usergroupid field in the user table, and that's probably enough as long as the change in group doesn't result in changes to titles or ranks or anything like that.
Reply With Quote
  #3  
Old 08-15-2013, 03:43 PM
SwalyAaron SwalyAaron is offline
 
Join Date: Jan 2013
Posts: 86
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
I don't think there's a function just for doing that, but you can use the user datamanager. I was looking at includes/cron/promotion.php which changes usergroups based on the Promotions you have configured. For reasons I don't understand (maybe efficiency), it changes the database directly to update some of the fields, then uses the datamanger to update others. So there might be something there that would be useful.

I haven't tested this, but taking some code from promotions.php, you might be able to do this:

PHP Code:
// $userid must already be set to the user's id. If you have the user's info array 
// you can use that in place of $user below
$userdm =& datamanager_init('User'$vbulletinERRTYPE_SILENT);
$user = array('userid' => $userid);
$userdm->set_existing($user);
$userdm->set('usergroupid'X); // X is new primary usergroup id
$userdm->save(); 

Of course that changes the primary group. If you wanted to add a secondary group instead that would be a bit more complicated.


ETA: You could just use an SQL query to update the usergroupid field in the user table, and that's probably enough as long as the change in group doesn't result in changes to titles or ranks or anything like that.
Nah that didn't work, I'll try and make it a function instead and see what happens
Reply With Quote
Reply

Thread Tools
Display Modes

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 02:52 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.04331 seconds
  • Memory Usage 2,184KB
  • Queries Executed 11 (?)
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
  • (2)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)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_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