The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Add new Users (automatically)
As this is a common request for integration purposes, I thought I should write up another HowTo If you want to add a new user to the vBulletin database, you can use Class vB_Datamanager_User. This Calss does make sure that everything is OK, it will also take care of the default registration options. Example PHP Code:
PHP Code:
If everything is OK PHP Code:
You can also set many other info too:
Besides that, you can also set the options Bitfield (Receive Admin PMs, etc.) PHP Code:
Value must be 0 or 1 (false or true), depending if you want to set the option or not. If the Options are not set, the Default Registration Options/Board Default Options will be used. Important Notice It is assumed that you are using this code from 'within' vBulletin, eg with the vBulletin backend loaded. If this is not the case, you must include smth. like the following code in global context: PHP Code:
This How-To is (C) 2005 by KirbyDE and you are not allowed to redistribute it in any way without my explicit consent. |
#12
|
||||
|
||||
Quote:
|
#13
|
|||
|
|||
What files need to be included to get this to work?
I don't see the function datamanager_init in class_dm_user.php Thanks |
#14
|
|||
|
|||
Quote:
|
#15
|
|||
|
|||
Quote:
|
#16
|
|||
|
|||
Quote:
Perhaps I am missing something...but I cannot get the above code to work. Could you provide a complete, self contained script that can be executed on the cmd line (or exec'd or remote require'd from another program)? I have searched through this forum and found examples of creating a thread , but this is the only code reference to creating a user --- which is exactly what I am after! My goal in this is to have my own CMS manage the registration: The user will register in my CMS (custom designed CMS -- this is not a 3rd party off-the-shelf CMS), then call a script to add the user to the forum. Thanks! -Scott vB 3.5 |
#17
|
|||
|
|||
yes I also cannot get the script above to work.. do I need to initialize $vbulletin via a constructor?
|
#18
|
|||
|
|||
Quote:
|
#19
|
|||
|
|||
What would be necessary to use the user data-manager from outside a vbulletin-powered page?
|
#20
|
||||
|
||||
The vBulletin backend, which makes it a vBulletin powered page
|
#21
|
|||
|
|||
I finally got a working script to add a user to vB offline. I maintain a separate Membership System. When a user registers in this separate system, an account is automatically created for them in vB.
When they register (again, this is in my own Member System -- on a different domain), I collect those variables that I need specifically (and minimally) to create an account in vB. I then cURL those variables to a custom script (called bb_add_user.php) which resides in the root folder of the forum. The results of bb_add_user.php are printed, which are then collected in the result of the cURL. If there are errors, the Membership System takes appropriate action. If successul, then I grab the vbuserid from the cURL result and go about my business. Although I am still proving this system on a development server, my goal will be to change all of the 'register.php' links on vBulletin and point them to the register script on my Membership System. Here is the bb_add_user.php code. Code:
<?php # Add a user to vBulletin (offline) function qpc_post($varname) { return trim(stripslashes((get_magic_quotes_gpc()) ? $_POST[$varname] : addslashes($_POST[$varname]))); } define('THIS_SCRIPT', 'bb_add_user.php'); require_once('./global.php'); require_once('./includes/class_dm.php'); require_once('./includes/class_dm_user.php'); $userdm = new vB_DataManager_User($vbulletin, ERRTYPE_ARRAY); $userdm->set('username', qpc_post('username')); $userdm->set('email', qpc_post('email')); $userdm->set('password', qpc_post('password')); $userdm->set('usergroupid', 2); $userdm->set('ipaddress', qpc_post('ipaddress')); $userdm->set('referrerid', qpc_post('referrername')); $userdm->set('timezoneoffset', qpc_post('timezoneoffset')); $userdm->set_bitfield('options', 'adminemail', intval(qpc_post('adminemail'))); $userdm->set_bitfield('options', 'showemail', intval(qpc_post('showemail'))); $dst_setting = intval(qpc_post('dst')); switch ($dst_setting) { case 0: case 1: $userdm->set_bitfield('options', 'dstonoff', $dst_setting); break; case 2: $userdm->set_bitfield('options', 'dstauto', 1); break; } #If there are errors (eMail not set, eMail banned, Username taken, etc.) you can check for errors using if (count($userdm->errors)) { for($i=0; $i<count($userdm->errors); $i++) { print "ERROR{$i}:{$userdm->errors[$i]}\n"; } } else { # If everything is OK $newuserid = $userdm->save(); print "vbuserid:$newuserid\n"; } ?> |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|