vB_DataManager_User
extends vB_DataManager
in package
Abstract class to do data save/delete operations for a particular data type (such as user, thread, post etc.)
Table of Contents
Properties
- $condition : string
- Condition to be used. Can be either ['keyfield' => 'value'] or a valid assertor vB_dB_Query::CONDITIONS_KEY setting.
- $error_handler : string
- The error handler for this object
- $errors : array<string|int, mixed>
- Array to store any errors encountered while building data
- $existing : array<string|int, mixed>
- Array to store existing data
- $info : array<string|int, mixed>
- Array to store information
- $insertedadmin : bool
- Whether or not we have inserted an administrator record
- $list_types : array<string|int, mixed>
- Types of lists stored in usertextfield, named <X>list.
- $table : string
- The main table this class deals with
- $user : mixed
- $userfield : mixed
- $usertextfield : mixed
Methods
- __construct() : mixed
- Constructor - Checks for necessity of registry object
- __serialize() : array<string|int, mixed>
- __sleep() : array<string|int, mixed>
- __unserialize() : void
- __wakeup() : void
- any_other_admin_exists() : true
- Returns true if any admin OTHER THAN the user specified exists.
- check_password_history() : bool
- Checks to see if a password is in the user's password history
- check_required() : bool
- Checks through the required fields for this object and ensures that all required fields have a value
- db_insert() : int
- Creates and runs an INSERT query to save the data from the object into the database
- db_update() : bool
- Creates and runs an UPDATE query to save the data from the object into the database
- delete() : mixed
- Deletes a user
- do_set() : mixed
- Takes valid data and sets it as part of the data to be saved
- do_unset() : mixed
- Unsets a values that has already been set
- error() : mixed
- Shows an error message and halts execution
- fetch_field() : mixed
- Fetches info about the current data object - if a new value is set, it returns this, otherwise it will return the existing data
- get_errors() : array<string|int, mixed>
- Returns the array of errors
- get_exception() : mixed
- has_errors() : bool
- Check if the DM currently has errors. Will kill execution if it does and $die is true.
- is_admin() : bool
- Checks usergroupid and membergroupids to see if the user has admin privileges
- is_bitfield_set() : bool
- Determines if a bitfield value has been set
- is_field_defined() : mixed
- is_field_set() : mixed
- Determines if a field is set
- is_supermod() : bool
- Checks usergroupid and membergroupids to see if the user has super moderator privileges
- post_delete() : mixed
- Any code to run after deleting
- post_save_each() : mixed
- Additional data to update after a save call (such as denormalized values in other tables).
- post_save_once() : mixed
- Additional data to update after a save call (such as denormalized values in other tables).
- pre_save() : bool
- Any checks to run immediately before saving. If returning false, the save will not take place.
- save() : int
- Saves the data from the object into the specified database tables
- send_welcomepm() : mixed
- Sends a welcome pm to the user
- set() : bool
- Sets the supplied data to be part of the data to be saved. Use setr() if a reference to $value is to be passed
- set_admin() : mixed
- Inserts or deletes a record from the administrator table if necessary
- set_bitfield() : bool
- Sets a bit in a bitfield
- set_condition() : mixed
- Sets the condition to be used in WHERE clauses, based upon the $this->existing data and the $this->condition_constuct condition template.
- set_dst() : mixed
- Sets DST options
- set_existing() : bool
- Sets the existing data
- set_info() : mixed
- Rather like set(), but sets data into the $this->info array instead. Use setr_info if $value if a reference to value is to be passed
- set_ladder_usertitle() : false|string
- Sets the ladder-based or group based user title for a particular amount of posts.
- set_ladder_usertitle_relative() : false|string
- Sets the ladder usertitle relative to the current number of posts.
- set_supermod() : mixed
- Inserts or deletes a record from the moderators table if necessary
- set_userfields() : string
- Validates and sets custom user profile fields
- set_usertitle() : mixed
- Sets the values for user[usertitle] and user[customtitle]
- setr() : bool
- Sets the supplied data to be part of the data to be saved
- setr_info() : mixed
- Rather like set(), but sets reference to data into the $this->info array instead
- update_ban_status() : mixed
- update_language_cookie() : mixed
- Resets the languageid cookie to the user's profile choice
- update_password_history() : mixed
- Inserts a record into the password history table if the user's password has changed
- update_style_cookie() : mixed
- Resets the session styleid and styleid cookie to the user's profile choice
- update_threadedmode_cookie() : mixed
- Resets the threadedmode cookie to the user's profile choice
- update_username() : mixed
- Updates all denormalized tables that contain a 'username' or 'displayname' field (or field that holds a username or displayname)
- usergroups_changed() : bool
- Checks to see if a user's usergroup memberships have changed
- verify() : bool
- Verifies that the supplied data is one of the fields used by this object
- verify_birthday() : bool
- Verifies that the provided birthday is valid
- verify_date_array() : bool
- Verifies a date array as a valid unix timestamp
- verify_displaygroupid() : bool
- Verifies that the provided displaygroup ID is valid
- verify_displayname() : mixed
- verify_email() : bool
- Verifies that an email address is valid
- verify_emailnotification() : bool
- Verifies that an email notification choice is valid and workable
- verify_homepage() : bool
- Verifies that the user's homepage is valid
- verify_link() : bool
- Verifies that a hyperlink is valid
- verify_maxposts() : bool
- Verifies the value of user.maxposts, setting the forum default number if the value is invalid
- verify_md5() : bool
- Verifies that a string is an MD5 string
- verify_parentemail() : bool
- Verifies that the provided parent email address is valid
- verify_referrerid() : bool
- Verifies a specified referrer
- verify_reputation() : bool
- Verifies a valid reputation value, and sets the appropriate reputation level
- verify_skype() : bool
- Verifies a Skype name
- verify_threadedmode() : bool
- Verifies that $threadedmode is a valid value, and sets the appropriate options to support it.
- verify_useremail() : bool
- Verifies that everything is hunky dory with the user's email field
- verify_usergroupid() : bool
- Verifies that the usergroup provided is valid
- verify_username() : bool
- Verifies that the provided username is valid, and attempts to correct it if it is not valid
Properties
$condition
Condition to be used. Can be either ['keyfield' => 'value'] or a valid assertor vB_dB_Query::CONDITIONS_KEY setting.
public
string
$condition
= \null
$error_handler
The error handler for this object
public
string
$error_handler
= \vB_DataManager_Constants::ERRTYPE_STANDARD
$errors
Array to store any errors encountered while building data
public
array<string|int, mixed>
$errors
= []
$existing
Array to store existing data
public
array<string|int, mixed>
$existing
= []
$info
Array to store information
public
array<string|int, mixed>
$info
= []
$insertedadmin
Whether or not we have inserted an administrator record
public
bool
$insertedadmin
= \false
$list_types
Types of lists stored in usertextfield, named <X>list.
public
array<string|int, mixed>
$list_types
= ['buddy', 'ignore']
$table
The main table this class deals with
public
string
$table
= 'user'
$user
public
mixed
$user
= []
$userfield
public
mixed
$userfield
= []
$usertextfield
public
mixed
$usertextfield
= []
Methods
__construct()
Constructor - Checks for necessity of registry object
public
__construct([vB_Registry $registry = NULL ][, int $errtype = NULL ]) : mixed
Note that this method will accept only the $errtype parameter (via some magic checking of the parameters) and this is the preferred way of calling the datamanager functions. The registry object is deprecated and will be created internally for those managers that still need it.
Parameters
- $registry : vB_Registry = NULL
-
-- Instance of the vBulletin data registry object - expected to have the database object as one of its $this->db member.
- $errtype : int = NULL
-
--One of the ERRTYPE_x constants
__serialize()
public
__serialize() : array<string|int, mixed>
Return values
array<string|int, mixed>__sleep()
public
__sleep() : array<string|int, mixed>
Return values
array<string|int, mixed>__unserialize()
public
__unserialize(array<string|int, mixed> $serialized) : void
Parameters
- $serialized : array<string|int, mixed>
__wakeup()
public
__wakeup() : void
any_other_admin_exists()
Returns true if any admin OTHER THAN the user specified exists.
public
any_other_admin_exists(int $userid) : true
Note that this function does not check if specified user is an admin.
Parameters
- $userid : int
-
User ID of user to be checked
Return values
true —if any user other than the specified user is an admin.
check_password_history()
Checks to see if a password is in the user's password history
public
check_password_history(mixed $password, mixed $historylength) : bool
Parameters
- $password : mixed
- $historylength : mixed
Return values
bool —Returns true if password is in the history
check_required()
Checks through the required fields for this object and ensures that all required fields have a value
public
check_required() : bool
Return values
bool —Returns true if all required fields have a valid value set
db_insert()
Creates and runs an INSERT query to save the data from the object into the database
public
db_insert(mixed $tableprefix, mixed $table[, mixed $doquery = true ][, mixed $replace = false ]) : int
Parameters
- $tableprefix : mixed
- $table : mixed
- $doquery : mixed = true
- $replace : mixed = false
Return values
int —Returns the ID of the inserted record
db_update()
Creates and runs an UPDATE query to save the data from the object into the database
public
db_update(mixed $tableprefix, mixed $table[, mixed $condition = null ][, mixed $doquery = true ][, mixed $delayed = false ][, mixed $affected_rows = false ]) : bool
Parameters
- $tableprefix : mixed
- $table : mixed
- $condition : mixed = null
- $doquery : mixed = true
- $delayed : mixed = false
- $affected_rows : mixed = false
Return values
bool —Returns true on success
delete()
Deletes a user
public
delete([mixed $doquery = true ]) : mixed
Parameters
- $doquery : mixed = true
Return values
mixed —The number of affected rows
do_set()
Takes valid data and sets it as part of the data to be saved
public
do_set(mixed $fieldname, mixed &$value[, mixed $table = null ]) : mixed
Parameters
- $fieldname : mixed
- $value : mixed
- $table : mixed = null
do_unset()
Unsets a values that has already been set
public
do_unset(mixed $fieldname[, mixed $table = null ]) : mixed
Parameters
- $fieldname : mixed
- $table : mixed = null
error()
Shows an error message and halts execution
public
error(mixed $errorphrase) : mixed
Parameters
- $errorphrase : mixed
fetch_field()
Fetches info about the current data object - if a new value is set, it returns this, otherwise it will return the existing data
public
& fetch_field(mixed $fieldname[, mixed $table = null ]) : mixed
Parameters
- $fieldname : mixed
- $table : mixed = null
Return values
mixed —The requested data
get_errors()
Returns the array of errors
public
get_errors() : array<string|int, mixed>
Return values
array<string|int, mixed> —--
get_exception()
public
get_exception() : mixed
has_errors()
Check if the DM currently has errors. Will kill execution if it does and $die is true.
public
has_errors([mixed $die = true ]) : bool
Parameters
- $die : mixed = true
Return values
bool —True if there are errors, false otherwise
is_admin()
Checks usergroupid and membergroupids to see if the user has admin privileges
public
is_admin(mixed $usergroupid, mixed $membergroupids) : bool
Parameters
- $usergroupid : mixed
- $membergroupids : mixed
Return values
bool —Returns true if user has admin privileges
is_bitfield_set()
Determines if a bitfield value has been set
public
is_bitfield_set(mixed $fieldname, mixed $bitname) : bool
Parameters
- $fieldname : mixed
- $bitname : mixed
Return values
boolis_field_defined()
public
is_field_defined(mixed $fieldname) : mixed
Parameters
- $fieldname : mixed
is_field_set()
Determines if a field is set
public
is_field_set(mixed $field) : mixed
Parameters
- $field : mixed
is_supermod()
Checks usergroupid and membergroupids to see if the user has super moderator privileges
public
is_supermod(mixed $usergroupid, mixed $membergroupids) : bool
Parameters
- $usergroupid : mixed
- $membergroupids : mixed
Return values
bool —Returns true if user has super moderator privileges
post_delete()
Any code to run after deleting
public
post_delete([mixed $doquery = true ]) : mixed
Parameters
- $doquery : mixed = true
post_save_each()
Additional data to update after a save call (such as denormalized values in other tables).
public
post_save_each([mixed $doquery = true ]) : mixed
Parameters
- $doquery : mixed = true
post_save_once()
Additional data to update after a save call (such as denormalized values in other tables).
public
post_save_once([mixed $doquery = true ]) : mixed
In batch updates, is executed once after all records are updated.
Parameters
- $doquery : mixed = true
pre_save()
Any checks to run immediately before saving. If returning false, the save will not take place.
public
pre_save([mixed $doquery = true ]) : bool
Parameters
- $doquery : mixed = true
Return values
bool —True on success; false if an error occurred
save()
Saves the data from the object into the specified database tables
public
save([mixed $doquery = true ][, mixed $delayed = false ][, mixed $affected_rows = false ][, mixed $replace = false ]) : int
Parameters
- $doquery : mixed = true
- $delayed : mixed = false
- $affected_rows : mixed = false
- $replace : mixed = false
Return values
int —Returns the user id of the affected data
send_welcomepm()
Sends a welcome pm to the user
public
send_welcomepm([mixed $fromuser = null ][, mixed $recipient = false ]) : mixed
Parameters
- $fromuser : mixed = null
- $recipient : mixed = false
set()
Sets the supplied data to be part of the data to be saved. Use setr() if a reference to $value is to be passed
public
set(mixed $fieldname, mixed $value[, mixed $clean = true ][, mixed $doverify = true ][, mixed $table = null ]) : bool
Parameters
- $fieldname : mixed
- $value : mixed
- $clean : mixed = true
- $doverify : mixed = true
- $table : mixed = null
Return values
bool —Returns false if the data is rejected for whatever reason
set_admin()
Inserts or deletes a record from the administrator table if necessary
public
set_admin(mixed $userid, mixed $usergroups_changed, mixed $isadmin[, mixed $wasadmin = false ]) : mixed
Parameters
- $userid : mixed
- $usergroups_changed : mixed
- $isadmin : mixed
- $wasadmin : mixed = false
set_bitfield()
Sets a bit in a bitfield
public
set_bitfield(mixed $fieldname, mixed $bitname, mixed $onoff) : bool
Parameters
- $fieldname : mixed
- $bitname : mixed
- $onoff : mixed
Return values
boolset_condition()
Sets the condition to be used in WHERE clauses, based upon the $this->existing data and the $this->condition_constuct condition template.
public
set_condition([mixed $params = null ]) : mixed
Parameters
- $params : mixed = null
set_dst()
Sets DST options
public
set_dst(mixed &$dst) : mixed
Parameters
- $dst : mixed
set_existing()
Sets the existing data
public
set_existing(mixed $existing) : bool
Parameters
- $existing : mixed
Return values
bool —Returns true if successful
set_info()
Rather like set(), but sets data into the $this->info array instead. Use setr_info if $value if a reference to value is to be passed
public
set_info(mixed $fieldname, mixed $value) : mixed
Parameters
- $fieldname : mixed
- $value : mixed
set_ladder_usertitle()
Sets the ladder-based or group based user title for a particular amount of posts.
public
set_ladder_usertitle(mixed $posts) : false|string
Parameters
- $posts : mixed
Return values
false|string —False if they use a custom title or can't process, the new title otherwise
set_ladder_usertitle_relative()
Sets the ladder usertitle relative to the current number of posts.
public
set_ladder_usertitle_relative(mixed $relative_post_offset) : false|string
Parameters
- $relative_post_offset : mixed
Return values
false|string —Same return values as set_ladder_usertitle
set_supermod()
Inserts or deletes a record from the moderators table if necessary
public
set_supermod(mixed $userid, mixed $usergroups_changed, mixed $issupermod[, mixed $wassupermod = false ]) : mixed
Parameters
- $userid : mixed
- $usergroups_changed : mixed
- $issupermod : mixed
- $wassupermod : mixed = false
set_userfields()
Validates and sets custom user profile fields
public
set_userfields(mixed &$values[, mixed $verify = true ][, mixed $all_fields = 'normal' ][, mixed $bypasses = [] ]) : string
Parameters
- $values : mixed
- $verify : mixed = true
- $all_fields : mixed = 'normal'
- $bypasses : mixed = []
Return values
string —Textual description of set profile fields (for email phrase)
set_usertitle()
Sets the values for user[usertitle] and user[customtitle]
public
set_usertitle(mixed $customtext, mixed $reset, mixed $usergroup, mixed $canusecustomtitle, mixed $isadmin) : mixed
Parameters
- $customtext : mixed
- $reset : mixed
- $usergroup : mixed
- $canusecustomtitle : mixed
- $isadmin : mixed
setr()
Sets the supplied data to be part of the data to be saved
public
setr(mixed $fieldname, mixed &$value[, mixed $clean = true ][, mixed $doverify = true ]) : bool
Parameters
- $fieldname : mixed
- $value : mixed
- $clean : mixed = true
- $doverify : mixed = true
Return values
bool —Returns false if the data is rejected for whatever reason
setr_info()
Rather like set(), but sets reference to data into the $this->info array instead
public
setr_info(mixed $fieldname, mixed &$value) : mixed
Parameters
- $fieldname : mixed
- $value : mixed
update_ban_status()
public
update_ban_status(int $userid) : mixed
Parameters
- $userid : int
update_language_cookie()
Resets the languageid cookie to the user's profile choice
public
update_language_cookie(mixed $userid) : mixed
Parameters
- $userid : mixed
update_password_history()
Inserts a record into the password history table if the user's password has changed
public
update_password_history(mixed $userid) : mixed
Parameters
- $userid : mixed
update_style_cookie()
Resets the session styleid and styleid cookie to the user's profile choice
public
update_style_cookie(mixed $userid) : mixed
Parameters
- $userid : mixed
update_threadedmode_cookie()
Resets the threadedmode cookie to the user's profile choice
public
update_threadedmode_cookie(mixed $userid) : mixed
Parameters
- $userid : mixed
update_username()
Updates all denormalized tables that contain a 'username' or 'displayname' field (or field that holds a username or displayname)
public
update_username(mixed $userid[, mixed $username = null ][, mixed $displayname = null ]) : mixed
Parameters
- $userid : mixed
- $username : mixed = null
- $displayname : mixed = null
usergroups_changed()
Checks to see if a user's usergroup memberships have changed
public
usergroups_changed() : bool
Return values
bool —Returns true if memberships have changed
verify()
Verifies that the supplied data is one of the fields used by this object
public
verify(mixed $fieldname, mixed &$value[, mixed $doverify = true ]) : bool
Also ensures that the data is of the correct type, and attempts to correct errors in the supplied data.
Parameters
- $fieldname : mixed
- $value : mixed
- $doverify : mixed = true
Return values
bool —Returns true if the data is one of the fields used by this object, and is the correct type (or has been successfully corrected to be so)
verify_birthday()
Verifies that the provided birthday is valid
public
verify_birthday(mixed &$birthday) : bool
Parameters
- $birthday : mixed
Return values
boolverify_date_array()
Verifies a date array as a valid unix timestamp
public
verify_date_array(mixed &$date) : bool
Parameters
- $date : mixed
Return values
boolverify_displaygroupid()
Verifies that the provided displaygroup ID is valid
public
verify_displaygroupid(mixed &$displaygroupid) : bool
Parameters
- $displaygroupid : mixed
Return values
boolverify_displayname()
public
verify_displayname(mixed &$displayname) : mixed
Parameters
- $displayname : mixed
verify_email()
Verifies that an email address is valid
public
verify_email(mixed &$email) : bool
Parameters
- $email : mixed
Return values
boolverify_emailnotification()
Verifies that an email notification choice is valid and workable
public
verify_emailnotification(mixed &$emailnotification) : bool
Parameters
- $emailnotification : mixed
Return values
boolverify_homepage()
Verifies that the user's homepage is valid
public
verify_homepage(mixed &$homepage) : bool
Parameters
- $homepage : mixed
Return values
boolverify_link()
Verifies that a hyperlink is valid
public
verify_link(mixed &$link[, mixed $strict = false ]) : bool
Parameters
- $link : mixed
- $strict : mixed = false
Return values
boolverify_maxposts()
Verifies the value of user.maxposts, setting the forum default number if the value is invalid
public
verify_maxposts(mixed &$maxposts) : bool
Parameters
- $maxposts : mixed
Return values
boolverify_md5()
Verifies that a string is an MD5 string
public
verify_md5(mixed &$md5) : bool
Parameters
- $md5 : mixed
Return values
boolverify_parentemail()
Verifies that the provided parent email address is valid
public
verify_parentemail(mixed &$parentemail) : bool
Parameters
- $parentemail : mixed
Return values
boolverify_referrerid()
Verifies a specified referrer
public
verify_referrerid(mixed &$referrerid) : bool
Parameters
- $referrerid : mixed
Return values
boolverify_reputation()
Verifies a valid reputation value, and sets the appropriate reputation level
public
verify_reputation(mixed &$reputation) : bool
Parameters
- $reputation : mixed
Return values
boolverify_skype()
Verifies a Skype name
public
verify_skype(mixed &$skype) : bool
Parameters
- $skype : mixed
Return values
boolverify_threadedmode()
Verifies that $threadedmode is a valid value, and sets the appropriate options to support it.
public
verify_threadedmode(mixed &$threadedmode) : bool
Parameters
- $threadedmode : mixed
Return values
boolverify_useremail()
Verifies that everything is hunky dory with the user's email field
public
verify_useremail(mixed &$email) : bool
Parameters
- $email : mixed
Return values
boolverify_usergroupid()
Verifies that the usergroup provided is valid
public
verify_usergroupid(mixed &$usergroupid) : bool
Parameters
- $usergroupid : mixed
Return values
boolverify_username()
Verifies that the provided username is valid, and attempts to correct it if it is not valid
public
verify_username(mixed &$username) : bool
Parameters
- $username : mixed
Return values
bool —Returns true if the username is valid, or has been corrected to be valid