vB_DataManager_PrefixSet
extends vB_DataManager
in package
Class to do data save/delete operations for thread prefix sets
Tags
Table of Contents
- $condition : string
- Condition to be used. Can be either array('keyfield' => 'value') or a valid assertor vB_dB_Query::CONDITIONS_KEY setting.
- $condition_construct : array<string|int, mixed>
- Condition for update query
- $dbobject : vB_Database
- The vBulletin database object
- $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
- $failure_callback : callable
- Callback to execute just before an error is logged.
- $info : array<string|int, mixed>
- Array to store information
- $keyField : mixed
- $prefixset : array<string|int, mixed>
- Array to store stuff to save to prefixset table
- $presave_called : null|bool
- This variable prevents the pre_save() method from being called more than once.
- $rawfields : array<string|int, mixed>
- Array to store the names for fields that will be taking raw SQL
- $registry : vB_Registry
- The vBulletin registry object
- $table : string
- The main table this class deals with
- $validfields : array<string|int, mixed>
- Array of recognised and required fields for prefix sets, and their types
- $assertor : vB_dB_Assertor
- The vBulletin dB_Assertor object
- $bitfields : array<string|int, mixed>
- Array of field names that are bitfields, together with the name of the variable in the registry with the definitions.
- $datastore : vB_Datastore
- The vBulletin vB_Datastore object
- $needRegistry : mixed
- flag for vb5 transition. A subclass can set this to false and we won't set up $vbulletin *
- $options : array<string|int, mixed>
- The options array from vB_Datastore object
- $session : vB_Session
- The vBulletin vB_Session object
- $setfields : array<string|int, mixed>
- Array to store the names of fields that have been sucessfully set
- $userinfo : array<string|int, mixed>
- The userinfo array from vB_Session object
- __construct() : mixed
- Constructor - Checks for necessity of registry object
- __serialize() : mixed
- __sleep() : mixed
- __unserialize() : mixed
- __wakeup() : mixed
- check_required() : bool
- Checks through the required fields for this object and ensures that all required fields have a value
- db_delete() : int
- Generates the SQL to delete a record from a database table, then executes it
- 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() : int
- Deletes the specified data item from the database
- deleteFile() : mixed
- Check if a file exists, and then delete it if it does.
- 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 - use this in the same way as print_stop_message();
- 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_bitfield_set() : bool
- Determines if a bitfield value has been set
- is_field_set() : mixed
- Determines if a field is set
- post_delete() : mixed
- Additional data to update after a delete call (such as denormalized values in other tables).
- 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_delete() : mixed
- Additional data to update before a delete 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() : mixed
- Saves the data from the object into the specified database tables
- 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_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_existing() : bool
- Sets the existing data
- set_failure_callback() : mixed
- Sets the function to call on an error.
- 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
- setErrorHandler() : bool
- Sets the error handler for the object
- 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
- verify() : bool
- Verifies that the supplied data is one of the fields used by this object
- verify_date_array() : bool
- Verifies a date array as a valid unix timestamp
- verify_email() : bool
- Verifies that an email address is valid
- verify_link() : bool
- Verifies that a hyperlink is valid
- verify_md5() : bool
- Verifies that a string is an MD5 string
- verify_prefixsetid() : bool
- Verify that the prefix set is specified and meets the correct format.
- verify_serialized() : bool
- Verifies that input is a serialized array (or force an array to serialize)
- verify_userid() : bool
- Verifies that the specified user exists
- verify_username() : bool
- Verifies that the provided username is valid, and attempts to correct it if it is not valid
- fetchQueryInfo() : array<string|int, mixed>
- Returns an array with object info required for query methods as first argument
- fetchTableBase() : string
- Fetches the base table name even if the parameter contains the package prefix.
- forceItemInSet() : bool
- Checks that data is in the valid array. If it is not, set data to the $default.
- loadExisting() : mixed
- verify_commalist() : bool
- Verifies that a variable is a comma-separated list of integers
- verify_ipaddress() : bool
- Verifies an IP address
- verify_list() : bool
- Creates a valid string of comma-separated integers
- verify_nonempty() : bool
- Verifies that a string is not empty
- verify_nonzero() : bool
- Verifies that an integer is greater than zero
- verify_nonzero_or_negone() : bool
- Verifies that an integer is greater than zero or the special value -1 this rule matches a fair number of id columns
- verify_spacelist() : bool
- Verifies that a variable is a space-separated list of integers
Properties
$condition
Condition to be used. Can be either array('keyfield' => 'value') or a valid assertor vB_dB_Query::CONDITIONS_KEY setting.
public
string
$condition
=
ull
$condition_construct
Condition for update query
public
array<string|int, mixed>
$condition_construct
= array('prefixsetid = '%1$s'', 'prefixsetid')
$dbobject
The vBulletin database object
public
vB_Database
$dbobject
=
ull
$error_handler
The error handler for this object
public
string
$error_handler
= B_DataManager_Constants::ERRTYPE_STANDARD
$errors
Array to store any errors encountered while building data
public
array<string|int, mixed>
$errors
= array()
$existing
Array to store existing data
public
array<string|int, mixed>
$existing
= array()
$failure_callback
Callback to execute just before an error is logged.
public
callable
$failure_callback
=
ull
$info
Array to store information
public
array<string|int, mixed>
$info
= array('title' =>
ull)
$keyField
public
mixed
$keyField
= 'prefixsetid'
$prefixset
Array to store stuff to save to prefixset table
public
array<string|int, mixed>
$prefixset
= array()
$presave_called
This variable prevents the pre_save() method from being called more than once.
public
null|bool
$presave_called
=
ull
In some classes, it is helpful to explicitly call pre_save() before calling save as additional checks are done. This variable is used to prevent pre_save() from being executed when save() is called. If null, pre_save() has yet to be called; else, it is the return value of pre_save().
$rawfields
Array to store the names for fields that will be taking raw SQL
public
array<string|int, mixed>
$rawfields
= array()
$registry
The vBulletin registry object
public
vB_Registry
$registry
=
ull
$table
The main table this class deals with
public
string
$table
= 'vBForum:prefixset'
$validfields
Array of recognised and required fields for prefix sets, and their types
public
array<string|int, mixed>
$validfields
= array('prefixsetid' => array(B_Cleaner::TYPE_STR, B_DataManager_Constants::REQ_YES, B_DataManager_Constants::VF_METHOD), 'displayorder' => array(B_Cleaner::TYPE_UINT, B_DataManager_Constants::REQ_YES))
$assertor
The vBulletin dB_Assertor object
protected
vB_dB_Assertor
$assertor
=
ull
$bitfields
Array of field names that are bitfields, together with the name of the variable in the registry with the definitions.
protected
array<string|int, mixed>
$bitfields
= array()
For example: var $bitfields = array('options' => 'bf_misc_useroptions', 'permissions' => 'bf_misc_moderatorpermissions')
$datastore
The vBulletin vB_Datastore object
protected
vB_Datastore
$datastore
= array()
$needRegistry
flag for vb5 transition. A subclass can set this to false and we won't set up $vbulletin *
protected
mixed
$needRegistry
= rue
$options
The options array from vB_Datastore object
protected
array<string|int, mixed>
$options
= array()
$session
The vBulletin vB_Session object
protected
vB_Session
$session
=
ull
$setfields
Array to store the names of fields that have been sucessfully set
protected
array<string|int, mixed>
$setfields
= array()
$userinfo
The userinfo array from vB_Session object
protected
array<string|int, mixed>
$userinfo
= array()
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
Return values
mixed —__serialize()
public
__serialize() : mixed
Return values
mixed —__sleep()
public
__sleep() : mixed
Return values
mixed —__unserialize()
public
__unserialize(mixed $serialized) : mixed
Parameters
- $serialized : mixed
Return values
mixed —__wakeup()
public
__wakeup() : mixed
Return values
mixed —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_delete()
Generates the SQL to delete a record from a database table, then executes it
public
db_delete(mixed $tableprefix, mixed $table[, mixed $condition = '' ][, mixed $doquery = true ]) : int
Parameters
- $tableprefix : mixed
- $table : mixed
- $condition : mixed = ''
- $doquery : mixed = true
Return values
int —The number of records deleted
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 the specified data item from the database
public
delete([mixed $doquery = true ]) : int
Parameters
- $doquery : mixed = true
Return values
int —The number of rows deleted
deleteFile()
Check if a file exists, and then delete it if it does.
public
deleteFile(mixed $file) : mixed
Parameters
- $file : mixed
Return values
mixed —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
Return values
mixed —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
Return values
mixed —error()
Shows an error message and halts execution - use this in the same way as print_stop_message();
public
error(mixed $errorphrase) : mixed
Parameters
- $errorphrase : mixed
Return values
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
Return values
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_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
bool —is_field_set()
Determines if a field is set
public
is_field_set(mixed $field) : mixed
Parameters
- $field : mixed
Return values
mixed —post_delete()
Additional data to update after a delete call (such as denormalized values in other tables).
public
post_delete([mixed $doquery = true ]) : mixed
Parameters
- $doquery : mixed = true
Return values
mixed —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
In batch updates, is executed for each record updated.
Parameters
- $doquery : mixed = true
Return values
mixed —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
Return values
mixed —pre_delete()
Additional data to update before a delete call (such as denormalized values in other tables).
public
pre_delete([mixed $doquery = true ]) : mixed
Parameters
- $doquery : mixed = true
Return values
mixed —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 ]) : mixed
Parameters
- $doquery : mixed = true
- $delayed : mixed = false
- $affected_rows : mixed = false
- $replace : mixed = false
Return values
mixed —If this was an INSERT query, the INSERT ID is returned
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_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
bool —set_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
Return values
mixed —set_existing()
Sets the existing data
public
set_existing(mixed $existing) : bool
Parameters
- $existing : mixed
Return values
bool —Returns true if successful
set_failure_callback()
Sets the function to call on an error.
public
set_failure_callback(mixed $callback) : mixed
Parameters
- $callback : mixed
Return values
mixed —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
Return values
mixed —setErrorHandler()
Sets the error handler for the object
public
setErrorHandler([mixed $errtype = vB_DataManager_Constants::ERRTYPE_STANDARD ]) : bool
Parameters
- $errtype : mixed = vB_DataManager_Constants::ERRTYPE_STANDARD
Return values
bool —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
Return values
mixed —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_date_array()
Verifies a date array as a valid unix timestamp
public
verify_date_array(mixed &$date) : bool
Parameters
- $date : mixed
Return values
bool —verify_email()
Verifies that an email address is valid
public
verify_email(mixed &$email) : bool
Parameters
- $email : mixed
Return values
bool —verify_link()
Verifies that a hyperlink is valid
public
verify_link(mixed &$link[, mixed $strict = false ]) : bool
Parameters
- $link : mixed
- $strict : mixed = false
Return values
bool —verify_md5()
Verifies that a string is an MD5 string
public
verify_md5(mixed &$md5) : bool
Parameters
- $md5 : mixed
Return values
bool —verify_prefixsetid()
Verify that the prefix set is specified and meets the correct format.
public
verify_prefixsetid(mixed &$prefixsetid) : bool
Parameters
- $prefixsetid : mixed
Return values
bool —verify_serialized()
Verifies that input is a serialized array (or force an array to serialize)
public
verify_serialized(mixed &$data) : bool
Parameters
- $data : mixed
Return values
bool —verify_userid()
Verifies that the specified user exists
public
verify_userid(mixed &$userid) : bool
Parameters
- $userid : mixed
Return values
bool —Returns true if user exists
verify_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
fetchQueryInfo()
Returns an array with object info required for query methods as first argument
protected
fetchQueryInfo(string $tableName) : array<string|int, mixed>
Parameters
- $tableName : string
Return values
array<string|int, mixed> —fetchTableBase()
Fetches the base table name even if the parameter contains the package prefix.
protected
fetchTableBase(mixed $tablename) : string
Parameters
- $tablename : mixed
Return values
string —The proper table name.
forceItemInSet()
Checks that data is in the valid array. If it is not, set data to the $default.
protected
forceItemInSet(mixed &$data, array<string|int, mixed> $validarray, mixed $default) : bool
This doesn't so much check if the data is valid as cleans the data to make it valid, which a number of validate functions do. This doesn't match the signature for verification functions because it's intended to build verification functions by passing the correct array and default.
Parameters
- $data : mixed
-
-- scalar value
- $validarray : array<string|int, mixed>
-
-- array of valid values
- $default : mixed
-
-- value to set data to if its not in the array this valid must be in the array.
Return values
bool —-- should always return true as $data will be set to a valid value if used correctly. Will return false if $data and $default are not in $validarray
loadExisting()
protected
loadExisting(mixed $keyValue) : mixed
Parameters
- $keyValue : mixed
Return values
mixed —verify_commalist()
Verifies that a variable is a comma-separated list of integers
protected
verify_commalist(mixed &$list) : bool
Parameters
- $list : mixed
Return values
bool —verify_ipaddress()
Verifies an IP address
protected
verify_ipaddress(mixed &$ipaddress) : bool
Parameters
- $ipaddress : mixed
Return values
bool —verify_list()
Creates a valid string of comma-separated integers
protected
verify_list(mixed &$list[, mixed $glue = ',' ][, mixed $dropzero = false ]) : bool
Parameters
- $list : mixed
- $glue : mixed = ','
- $dropzero : mixed = false
Return values
bool —verify_nonempty()
Verifies that a string is not empty
protected
verify_nonempty(mixed &$string) : bool
Parameters
- $string : mixed
Return values
bool —verify_nonzero()
Verifies that an integer is greater than zero
protected
verify_nonzero(mixed &$int) : bool
Parameters
- $int : mixed
Return values
bool —verify_nonzero_or_negone()
Verifies that an integer is greater than zero or the special value -1 this rule matches a fair number of id columns
protected
verify_nonzero_or_negone(mixed &$int) : bool
Parameters
- $int : mixed
Return values
bool —verify_spacelist()
Verifies that a variable is a space-separated list of integers
protected
verify_spacelist(mixed &$list) : bool
Parameters
- $list : mixed