vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Vbulletin API - Change Usergroup (https://vborg.vbsupport.ru/showthread.php?t=301011)

SwalyAaron 08-10-2013 05:58 AM

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

kh99 08-10-2013 10:40 AM

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.

SwalyAaron 08-15-2013 03:43 PM

Quote:

Originally Posted by kh99 (Post 2438145)
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


All times are GMT. The time now is 06:51 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.00962 seconds
  • Memory Usage 1,732KB
  • 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
  • (2)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)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