vBulletin v6.1.0

vB_Library_Content_Infraction extends vB_Library_Content_Text
in package

vB_Library_Content_Infraction

Tags
access

public

Table of Contents

Constants

ACTION_ADD  = 1
ACTION_APPROVE  = 5
ACTION_DELETE  = 4
ACTION_PUBLISH  = 6
ACTION_UPDATE  = 2
ACTION_VIEW  = 3
CACHELEVEL_CONTENT  = 2
CACHELEVEL_FULLCONTENT  = 3
CACHELEVEL_NODE  = 1

Methods

__serialize()  : array<string|int, mixed>
__sleep()  : array<string|int, mixed>
__unserialize()  : void
__wakeup()  : void
add()  : array<string|int, mixed>
Adds a new infraction node
assembleContent()  : mixed
Assembles the response for detailed content
autoPopulatePreviewImage()  : mixed
DEPRECATED: This needs to remain until the corresponding API function is removed
buildInfractionGroupIds()  : mixed
Builds infraction groups for users. Also called from the cron script
canInfractNode()  : bool
Determines if the logged-in user can infract the (author of) the given node
canInfractUser()  : bool
Determines if the logged-in user can infract the given user
canViewNodeInfraction()  : bool
Determines if the logged-in user can view any infractions on the given node
checkComplete()  : bool
This function checks to see if a node is valid, and if not it deletes or fixes it.
clearCache()  : mixed
clearInfractionGroupCache()  : mixed
cloneArrayRecords()  : void
decrementUserPostCount()  : mixed
Decrements the number of posts for a user
delete()  : void
Deletes an infraction. Currently the only UI for this is in the Admin CP
deleteChildren()  : mixed
Delete the records without updating the parent info. It is used when deleting a whole channel and it's children need to be removed
fetchContentType()  : mixed
fetchContentTypeId()  : mixed
fetchFromCache()  : mixed
This attempts to get the cached data for nodes
fetchInfractionGroups()  : array<string|int, mixed>
Get the infraction group information for a user.
fetchTableName()  : array<string|int, mixed>
returns the tables used by this content type.
getAllCanView()  : mixed
Returns the fields that all users can see if they don't have canviewthreads
getAutomaticBanList()  : array<string|int, mixed>
Returns a list of automatic bans or an empty array if there are none.
getAutoparseLinks()  : mixed
Get the actual auto parse links values based on the request and context
getBareContent()  : mixed
Returns the node content plus the channel routeid and title, and starter route and title the as an associative array Caller MUST ensure that $nodeids are of the correct content type.
getCanBeLastContent()  : mixed
getCanDelete()  : bool
Determines whether the current user can soft-delete or hard-delete
getCanEdit()  : bool
Determines whether the current user can edit a node
getCanModerate()  : bool
Determines whether the current user can moderate
getCannotDelete()  : bool
Whether this type can be deleted. Infractions, for example, cannot be.
getContent()  : int
Returns the node content as an associative array
getContentApi()  : vB_Api_Content
Returns a content api of the appropriate type
getContentInstance()  : mixed
getContentLib()  : mixed
Returns a content api of the appropriate type
getConversationParent()  : array<string|int, mixed>
Gets the conversation starter for a node. If the node is a channel it returns the channel record.
getFullContent()  : array<string|int, mixed>
Returns the node content as an associative array with fullcontent
getIndexableContent()  : array<string|int, mixed>
The classes that inherit this should implement this function It should return the content that should be indexed If there is a title field, the array key for that field should be 'title', the rest of the text can have any key
getIndexableFromNode()  : mixed
getInfraction()  : array<string|int, mixed>|false
Returns an infraction node based on its nodeid
getInfractionGroups()  : array<string|int, mixed>
gets the infraction groups
getInfractionLevels()  : array<string|int, mixed>
Returns an array of information for the infraction levels that are currently set up
getInfractionsByType()  : mixed
returns a certain type of infractions
getInlist()  : int
Returns inlist property
getNodeDescription()  : mixed
getNodeInfraction()  : array<string|int, mixed>|false
Returns the infraction node for the given node (if it has an infraction)
getParticipants()  : array<string|int, mixed>
Returns the displaynames of users that participated in an infraction conversation.
getQuotes()  : array<string|int, mixed>|string
This returns a string with quoted strings in bbcode format.
getQuotesFromNodes()  : mixed
Helper function to allow getQuotes in the API and Library classes to generate the node list independantly (so that the API can check perms without loading the nodes twice).
getStarter()  : int
Gets the conversation starter for a node. If the node is a channel it returns the channelid.
getTextCountChange()  : int
Returns textCountChange property
getUserInfractions()  : array<string|int, mixed>|false
Returns the infraction nodes for infractions that the given user has received.
incrementUserPostCount()  : mixed
Increments the number of posts for a user. This function will also update user's "lastpost" field
instance()  : static
Returns singleton instance of self.
isPublished()  : bool
Is this record in a published state based on the times?
isVisitorMessage()  : bool
determines whether a specific node is a visitor message
mergeContent()  : type
Performs the merge of content and updates the node.
mergeContentInfo()  : mixed
Adds content info to $result so that merged content can be edited.
monitorWords()  : mixed
Checks if the text contains monitored words, and if so, sends notifications to admins and moderators if the setting is on.
parseAndStrip()  : mixed
postBbcodeParseCleanRawtext()  : mixed
Cleans the input in the $data array, specifically *after* any html/wysiwyg -> bbcode parsing.
reloadOptions()  : mixed
Reload options from datastore. Currently only used by unit tests.
removePrivateDataFromNode()  : void
Examines the node record returned from the node library and determines if any information needs to be removed before passing beyond the API layer.
reverseInfraction()  : mixed
Reverse an infraction
setDoIncompleteNodeCleanup()  : mixed
Sets the $doIncompleteNodeCleanup flag
update()  : void
Cannot update an infraction (you can only reverse them)
validate()  : bool
Validates that the current can create a node with these values
writeToCache()  : void
writes new cached data for nodes

Constants

ACTION_ADD

public mixed ACTION_ADD = 1

ACTION_APPROVE

public mixed ACTION_APPROVE = 5

ACTION_DELETE

public mixed ACTION_DELETE = 4

ACTION_PUBLISH

public mixed ACTION_PUBLISH = 6

ACTION_UPDATE

public mixed ACTION_UPDATE = 2

ACTION_VIEW

public mixed ACTION_VIEW = 3

CACHELEVEL_CONTENT

public mixed CACHELEVEL_CONTENT = 2

CACHELEVEL_FULLCONTENT

public mixed CACHELEVEL_FULLCONTENT = 3

CACHELEVEL_NODE

public mixed CACHELEVEL_NODE = 1

Methods

__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>

add()

Adds a new infraction node

public add(array<string|int, mixed> $data[, array<string|int, mixed> $options = [] ][, mixed $convertWysiwygTextToBbcode = true ]) : array<string|int, mixed>
Parameters
$data : array<string|int, mixed>

-- Array of field => value pairs which define the record.

$options : array<string|int, mixed> = []

-- Array of options for the content being created -- skipTransaction, --skipFloodCheck, -- floodchecktime, -- skipDupCheck, -- skipNotification, -- nl2br: if TRUE, all \n will be converted to
so that it's not removed by the html parser (e.g. comments). -- autoparselinks.

$convertWysiwygTextToBbcode : mixed = true
Return values
array<string|int, mixed>

-- nodeid (int), -- success (bool), -- cacheEvents (array of strings), -- nodeVals (array of field => value), -- attachments (array of attachment records).

assembleContent()

Assembles the response for detailed content

public assembleContent(mixed &$content[, mixed $permissions = false ]) : mixed
Parameters
$content : mixed

getRawContent() response array. Each element is a nodeid-keyed array. Each subarray must have the following data at minimum: nodeid, channelid, contenttypeid, starter, showopen, userid, setfor (if VM), nodeoptions

$permissions : mixed = false
Return values
mixed

formatted data

autoPopulatePreviewImage()

DEPRECATED: This needs to remain until the corresponding API function is removed

public autoPopulatePreviewImage(mixed $nodeId[, array<string|int, mixed> $node = null ]) : mixed

Superceded by getPreviewImage

Populates the previewimage field for this node. To be called after the node is saved and the attachments added.

Finds the first image in the post text that can be used as a previewimage (uploaded here), or uses the first image attachment.

Parameters
$nodeId : mixed
$node : array<string|int, mixed> = null

(optional) Node content array returned by getFullContent

buildInfractionGroupIds()

Builds infraction groups for users. Also called from the cron script

public buildInfractionGroupIds(array<string|int, mixed> $userids) : mixed
Parameters
$userids : array<string|int, mixed>

canInfractNode()

Determines if the logged-in user can infract the (author of) the given node

public canInfractNode(mixed $nodeid[, array<string|int, mixed>|null $node = null ]) : bool
Parameters
$nodeid : mixed
$node : array<string|int, mixed>|null = null
Return values
bool

The node (user) can be infracted by current user (or not)

canInfractUser()

Determines if the logged-in user can infract the given user

public canInfractUser(mixed $userid) : bool
Parameters
$userid : mixed
Return values
bool

The user can be infracted by current user (or not)

canViewNodeInfraction()

Determines if the logged-in user can view any infractions on the given node

public canViewNodeInfraction(mixed $nodeid[, array<string|int, mixed>|null $node = null ]) : bool
Parameters
$nodeid : mixed
$node : array<string|int, mixed>|null = null
Return values
bool

The current user can view any infractions on this node (or not)

checkComplete()

This function checks to see if a node is valid, and if not it deletes or fixes it.

public checkComplete(array<string|int, mixed> $node) : bool
Parameters
$node : array<string|int, mixed>

-- node array

Return values
bool

clearCache()

public static clearCache() : mixed

clearInfractionGroupCache()

public clearInfractionGroupCache() : mixed

cloneArrayRecords()

public cloneArrayRecords(int $oldnodeid, int $newnodeid) : void
Parameters
$oldnodeid : int
$newnodeid : int

decrementUserPostCount()

Decrements the number of posts for a user

public decrementUserPostCount(array<string|int, mixed> $node[, mixed $action = '' ]) : mixed

When hard-deleting items, this is called from the content library, For all other state changes (unapprove, soft-delete, etc) it is called from the node library

Parameters
$node : array<string|int, mixed>
$action : mixed = ''

delete()

Deletes an infraction. Currently the only UI for this is in the Admin CP

public delete(mixed $nodeid) : void
Parameters
$nodeid : mixed

deleteChildren()

Delete the records without updating the parent info. It is used when deleting a whole channel and it's children need to be removed

public deleteChildren(array<string|int, mixed> $childrenIds) : mixed
Parameters
$childrenIds : array<string|int, mixed>
  • list of node ids

fetchContentType()

public fetchContentType() : mixed

fetchContentTypeId()

public fetchContentTypeId() : mixed

fetchFromCache()

This attempts to get the cached data for nodes

public static fetchFromCache(array<string|int, mixed>|int $nodeids, int $level) : mixed
Parameters
$nodeids : array<string|int, mixed>|int
$level : int

-- one of the constants for level of data

Tags
@return

['found' => array of node values per the constant, 'notfound' => array of nodeids];

fetchInfractionGroups()

Get the infraction group information for a user.

public fetchInfractionGroups(mixed $ipoints, mixed $usergroupid) : array<string|int, mixed>
Parameters
$ipoints : mixed
$usergroupid : mixed
Return values
array<string|int, mixed>

User's final infraction groups

fetchTableName()

returns the tables used by this content type.

public fetchTableName() : array<string|int, mixed>
Return values
array<string|int, mixed>

getAllCanView()

Returns the fields that all users can see if they don't have canviewthreads

public getAllCanView() : mixed
Return values
mixed

array of strings

getAutomaticBanList()

Returns a list of automatic bans or an empty array if there are none.

public getAutomaticBanList() : array<string|int, mixed>
Return values
array<string|int, mixed>

Array of automatic bans

Get the actual auto parse links values based on the request and context

public getAutoparseLinks(mixed $parents, mixed $autoparselinks) : mixed

For the moment we assume that we us autoparse if

  1. It is requested by the caller AND
  2. It is allowed by channel context

There is currently no "force" auto parse. Currently the channel option is not hierarchical, we'll check the containing channel at the lowest level and allow autoparse if that channel allows it regardless of if the parents allow it or not (currently we only have an on/off flag and would need on/off/default to handle hierachy in a reasonable way since we might want to allow it for a child while prohibiting it at the parent level or vice versa.

Parameters
$parents : mixed

-- the parents array the first element should be either the node itself (for updates) or the node's parent (for adds). It will work either way.

$autoparselinks : mixed

-- the requested autoparse value

getBareContent()

Returns the node content plus the channel routeid and title, and starter route and title the as an associative array Caller MUST ensure that $nodeids are of the correct content type.

public getBareContent(mixed $nodeids) : mixed
Parameters
$nodeids : mixed
Return values
mixed

Requested data, keyed by the nodeid.

getCanBeLastContent()

public getCanBeLastContent() : mixed

getCanDelete()

Determines whether the current user can soft-delete or hard-delete

public getCanDelete(mixed $node[, mixed $userContext = null ][, mixed $channelPerms = [] ][, mixed $hard = false ]) : bool
Parameters
$node : mixed
$userContext : mixed = null
$channelPerms : mixed = []
$hard : mixed = false
Return values
bool

getCanEdit()

Determines whether the current user can edit a node

public getCanEdit(mixed $node[, mixed $userContext = null ][, mixed $channelPerms = [] ]) : bool
Parameters
$node : mixed
$userContext : mixed = null
$channelPerms : mixed = []
Return values
bool

getCanModerate()

Determines whether the current user can moderate

public getCanModerate(mixed $node[, mixed $userContext = null ][, mixed $channelPerms = [] ][, mixed $nodeid = 0 ]) : bool
Parameters
$node : mixed
$userContext : mixed = null
$channelPerms : mixed = []
$nodeid : mixed = 0
Return values
bool

getCannotDelete()

Whether this type can be deleted. Infractions, for example, cannot be.

public getCannotDelete() : bool
Return values
bool

getContent()

Returns the node content as an associative array

public getContent(mixed $nodeids) : int
Parameters
$nodeids : mixed
Return values
int

getContentApi()

Returns a content api of the appropriate type

public static getContentApi(mixed $contenttypeid) : vB_Api_Content
Parameters
$contenttypeid : mixed
Return values
vB_Api_Content

content api object

getContentInstance()

public static getContentInstance(mixed $contenttypeid) : mixed
Parameters
$contenttypeid : mixed

getContentLib()

Returns a content api of the appropriate type

public static getContentLib(mixed $contenttypeid) : mixed
Parameters
$contenttypeid : mixed
Return values
mixed

content api object

getConversationParent()

Gets the conversation starter for a node. If the node is a channel it returns the channel record.

public getConversationParent(int $nodeid) : array<string|int, mixed>
Parameters
$nodeid : int
Return values
array<string|int, mixed>

The starter node array

getFullContent()

Returns the node content as an associative array with fullcontent

public getFullContent(int|array<string|int, mixed> $nodes) : array<string|int, mixed>
Parameters
$nodes : int|array<string|int, mixed>

-- node id(s) to get content for

Return values
array<string|int, mixed>

getIndexableContent()

The classes that inherit this should implement this function It should return the content that should be indexed If there is a title field, the array key for that field should be 'title', the rest of the text can have any key

public getIndexableContent(int $nodeId[, mixed $include_attachments = true ]) : array<string|int, mixed>
Parameters
$nodeId : int
  • it might be the node (assiciative array)
$include_attachments : mixed = true
Return values
array<string|int, mixed>

$indexableContent

getIndexableFromNode()

public getIndexableFromNode(mixed $content[, mixed $include_attachments = true ]) : mixed
Parameters
$content : mixed
$include_attachments : mixed = true

getInfraction()

Returns an infraction node based on its nodeid

public getInfraction(mixed $nodeid) : array<string|int, mixed>|false
Parameters
$nodeid : mixed
Return values
array<string|int, mixed>|false

Array of infraction info, or false

getInfractionGroups()

gets the infraction groups

public getInfractionGroups() : array<string|int, mixed>
Return values
array<string|int, mixed>

infraction groups with infractiongroupid as key >

getInfractionLevels()

Returns an array of information for the infraction levels that are currently set up

public getInfractionLevels() : array<string|int, mixed>
Return values
array<string|int, mixed>

Infraction levels

getInfractionsByType()

returns a certain type of infractions

public getInfractionsByType([string $type = '' ][, bool $replied_by_me = false ]) : mixed
Parameters
$type : string = ''
$replied_by_me : bool = false
  • if true, only infractions that the user commented on type = 'user' => infractions given to a user type = 'post' => infractions given to a post by a user

getInlist()

Returns inlist property

public getInlist() : int
Return values
int

getNodeDescription()

public getNodeDescription(mixed $data, mixed $convertWysiwygTextToBbcode) : mixed
Parameters
$data : mixed
$convertWysiwygTextToBbcode : mixed

getNodeInfraction()

Returns the infraction node for the given node (if it has an infraction)

public getNodeInfraction(mixed $nodeid) : array<string|int, mixed>|false
Parameters
$nodeid : mixed
Return values
array<string|int, mixed>|false

Array of infraction info, or false if there is no infraction

getParticipants()

Returns the displaynames of users that participated in an infraction conversation.

public getParticipants(mixed $nodeids) : array<string|int, mixed>
Parameters
$nodeids : mixed
Return values
array<string|int, mixed>

displaynames first level key is the nodeid, second level key is the userid

getQuotes()

This returns a string with quoted strings in bbcode format.

public getQuotes(array<string|int, mixed>|int $nodeids) : array<string|int, mixed>|string
Parameters
$nodeids : array<string|int, mixed>|int
Return values
array<string|int, mixed>|string

either the quote for the node or an array of $nodeid => $quotes for the array of nodes

getQuotesFromNodes()

Helper function to allow getQuotes in the API and Library classes to generate the node list independantly (so that the API can check perms without loading the nodes twice).

public getQuotesFromNodes(array<string|int, mixed> $nodes) : mixed
Parameters
$nodes : array<string|int, mixed>

-- array of nodes arrays from getContent (API or Library version) does not accept a single node array

getStarter()

Gets the conversation starter for a node. If the node is a channel it returns the channelid.

public getStarter(int $nodeid) : int
Parameters
$nodeid : int
Return values
int

The conversation starter's nodeid

getTextCountChange()

Returns textCountChange property

public getTextCountChange() : int
Return values
int

getUserInfractions()

Returns the infraction nodes for infractions that the given user has received.

public getUserInfractions(mixed $userid[, mixed $offset = 0 ][, mixed $limit = 20 ]) : array<string|int, mixed>|false
Parameters
$userid : mixed
$offset : mixed = 0
$limit : mixed = 20
Return values
array<string|int, mixed>|false

Array of infraction info, or false if there are no infractions

incrementUserPostCount()

Increments the number of posts for a user. This function will also update user's "lastpost" field

public incrementUserPostCount(array<string|int, mixed> $node) : mixed

When creating items, this is called from the content library, For all other state changes (approve, undelete, etc) it is called from the node library

Parameters
$node : array<string|int, mixed>

instance()

Returns singleton instance of self.

public static instance(mixed $class) : static
Parameters
$class : mixed
Return values
static
  • Reference to singleton instance of the requested library class

isPublished()

Is this record in a published state based on the times?

public isPublished(mixed $data) : bool
Parameters
$data : mixed
Return values
bool

isVisitorMessage()

determines whether a specific node is a visitor message

public isVisitorMessage(mixed $nodeid) : bool
Parameters
$nodeid : mixed
Return values
bool

mergeContent()

Performs the merge of content and updates the node.

public mergeContent(type $data) : type
Parameters
$data : type
Return values
type

mergeContentInfo()

Adds content info to $result so that merged content can be edited.

public mergeContentInfo(array<string|int, mixed> &$result, array<string|int, mixed> $content) : mixed
Parameters
$result : array<string|int, mixed>
$content : array<string|int, mixed>

monitorWords()

Checks if the text contains monitored words, and if so, sends notifications to admins and moderators if the setting is on.

public monitorWords(mixed $text, mixed $type, mixed $nodeid[, mixed $userid = null ][, mixed $insertNotifications = true ][, mixed $currentuserid = 0 ]) : mixed

use the functions from the notification library directly.

Parameters
$text : mixed
$type : mixed
$nodeid : mixed
$userid : mixed = null
$insertNotifications : mixed = true
$currentuserid : mixed = 0

parseAndStrip()

public parseAndStrip(mixed $text[, mixed $wysiwyg = true ]) : mixed
Parameters
$text : mixed
$wysiwyg : mixed = true

postBbcodeParseCleanRawtext()

Cleans the input in the $data array, specifically *after* any html/wysiwyg -> bbcode parsing.

public postBbcodeParseCleanRawtext(array<string|int, mixed> &$data) : mixed
Parameters
$data : array<string|int, mixed>

Array of fieldname => data pairs, passed by reference.

reloadOptions()

Reload options from datastore. Currently only used by unit tests.

public reloadOptions() : mixed

removePrivateDataFromNode()

Examines the node record returned from the node library and determines if any information needs to be removed before passing beyond the API layer.

public removePrivateDataFromNode(array<string|int, mixed> &$node) : void

This is part of the library layer because its needed for a number of API classes that return node data in various forms.

Parameters
$node : array<string|int, mixed>

the node array to be cleaned.

reverseInfraction()

Reverse an infraction

public reverseInfraction(mixed $nodeid, mixed $reason) : mixed
Parameters
$nodeid : mixed
$reason : mixed

setDoIncompleteNodeCleanup()

Sets the $doIncompleteNodeCleanup flag

public setDoIncompleteNodeCleanup(mixed $value) : mixed
Parameters
$value : mixed

update()

Cannot update an infraction (you can only reverse them)

public update(mixed $nodeid, mixed $data[, mixed $convertWysiwygTextToBbcode = true ]) : void
Parameters
$nodeid : mixed
$data : mixed
$convertWysiwygTextToBbcode : mixed = true
Tags
throws
vB_Exception_Api

validate()

Validates that the current can create a node with these values

public validate(array<string|int, mixed> $data[, int $action = self::ACTION_ADD ][, int $nodeid = false ][, array<string|int, mixed> $nodes = false ][, mixed $userid = null ]) : bool

Note that if an array is passed it returns true only if all nodes pass the constraint.

Parameters
$data : array<string|int, mixed>

Array of field => value pairs which define the record.

$action : int = self::ACTION_ADD

The action const, used to be checked for permission

$nodeid : int = false
$nodes : array<string|int, mixed> = false

-- $node records corresponding to the $nodeid variable. If not passed will be fetched from the DB

$userid : mixed = null
Return values
bool

writeToCache()

writes new cached data for nodes

public static writeToCache(mixed $nodes, mixed $level) : void

Note that this is affected by the 'cache_node_data' admin option. If that is not true then this function does nothing.

Parameters
$nodes : mixed
$level : mixed

        
On this page

Search results