vB_Library_Content_Privatemessage
extends vB_Library_Content_Text
in package
vB_Library_Content_Privatemessage
Tags
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
- DELETED_ITEMS_FOLDER = 'deleted_items'
- INFRACTION_FOLDER = 'infractions'
- MESSAGE_FOLDER = 'messages'
- NOTIFICATION_FOLDER = 'your_notifications'
- NOTIFICATION_TYPE_COMMENT = 'comment'
- NOTIFICATION_TYPE_FOLLOW = 'follow'
- NOTIFICATION_TYPE_FOLLOWING = 'following'
- NOTIFICATION_TYPE_MODERATE = 'moderate'
- NOTIFICATION_TYPE_MONITOREDWORD = 'monitoredword'
- NOTIFICATION_TYPE_RATE = 'rate'
- NOTIFICATION_TYPE_REPLY = 'reply'
- NOTIFICATION_TYPE_REPORTEDPOST = 'reportedpost'
- NOTIFICATION_TYPE_SPAMPOST = 'spampost'
- NOTIFICATION_TYPE_SUBSCRIPTION = 'subscription'
- NOTIFICATION_TYPE_THREADCOMMENT = 'threadcomment'
- NOTIFICATION_TYPE_UNAPPROVEDPOST = 'unapprovedpost'
- NOTIFICATION_TYPE_USERMENTION = 'usermention'
- NOTIFICATION_TYPE_VM = 'vm'
- NOTIFICATION_TYPE_VOTE = 'vote'
- NOTIFICATION_TYPE_VOTEREPLY = 'vote_reply'
- PENDING_FOLDER = 'pending_posts'
- REQUEST_FOLDER = 'requests'
- SENT_FOLDER = 'sent_items'
- TRASH_FOLDER = 'trash'
Methods
- __serialize() : array<string|int, mixed>
- __sleep() : array<string|int, mixed>
- __unserialize() : void
- __wakeup() : void
- acceptRequest() : bool
- This function accepts a user follow request or a channel ownership/moderation/membership request
- add() : array<string|int, mixed>
- This adds a new message
- addMessageInfo() : mixed
- Returns the node content as an associative array
- addMessageNoFlood() : int
- Adds a message without triggering the flood check.
- assembleContent() : mixed
- Assembles the response for detailed content
- autoPopulatePreviewImage() : mixed
- DEPRECATED: This needs to remain until the corresponding API function is removed
- buildPmTotals() : mixed
- Calculates the number of private messages that a user has in the system Used to limit pm abilities based on overage of this count
- checkCanReceivePM() : mixed
- checkCanSee() : int
- Checks nodes to ensure that the current user can see them.
- checkComplete() : bool
- This function checks to see if a node is valid, and if not it deletes or fixes it.
- checkFolders() : array<string|int, mixed>
- This function checks that we have all the folders for the current user, and the set folders are there.
- clearCache() : mixed
- cloneArrayRecords() : void
- convertLegacyNotificationAboutString() : string|bool
- Translates the legacy notification type string into the new notification typename
- convertNotificationTypeToLegacyAboutString() : string
- Translates the legacy notification type string into an array of type information
- createMessageFolder() : int|false
- This creates a new message folder. It returns false if the record already exists and the id if it is able to create the folder
- decrementUserPostCount() : mixed
- Decrements the number of posts for a user
- delete() : bool
- Permanently deletes a node
- 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
- deleteMessage() : bool
- Permanently deletes a message
- deleteMessages() : bool
- Delete messages
- deleteMessagesForUser() : int
- Deletes all pms for a given user
- deleteSentMessagesForUser() : mixed
- denyRequest() : array<string|int, mixed>
- This function denies a user follow request
- fetchContentType() : mixed
- fetchContentTypeId() : mixed
- fetchFolders() : mixed
- returns the cached folder information
- fetchFromCache() : mixed
- This attempts to get the cached data for nodes
- fetchNotificationTypes() : mixed
- Return all the valid notification types
- fetchSummary() : mixed
- This summarizes messages for specified 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
- 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.
- getChannelRequestTypes() : mixed
- Returns array of Request message types
- 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.
- getDeletedItemsFolderId() : int
- Get the deleted_items folder id
- getFolderFromId() : array<string|int, mixed>
- Gets the folder information from a given folderid. The folderid requested should belong to the user who is requesting.
- getFullContent() : array<string|int, mixed>
- Returns the node content as an associative array
- 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
- getInfractionFolderId() : int
- Get the infraction folder id
- getInlist() : int
- Returns inlist property
- getMessage() : array<string|int, mixed>
- Get a message and all replies and sets the message to "read" for the current user.
- getMessageTree() : array<string|int, mixed>
- Get a message and all replies and sets the message to "read"
- getNodeDescription() : mixed
- getPendingPostFolderId() : int
- Get the pending posts folder id
- 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).
- getRequest() : array<string|int, mixed>
- Get a single request
- getStarter() : int
- Gets the conversation starter for a node. If the node is a channel it returns the channelid.
- getTextCountChange() : int
- Returns textCountChange property
- incompleteNodeCleanup() : mixed
- This cleans up for a node that was found to be incomplete by deleting the child nodes and subsidiary table records
- 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
- listFolders() : mixed
- This lists the folders.
- listMessages() : array<string|int, mixed>
- This lists messages for current user
- listNotifications() : array<string|int, mixed>
- listSpecialPrivateMessages() : mixed
- This lists messages for current user
- 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.
- moveMessage() : bool
- Moves a message to a different folder
- 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.
- resetFolders() : mixed
- Clears the cached folder information
- setDoIncompleteNodeCleanup() : mixed
- Sets the $doIncompleteNodeCleanup flag
- setRead() : mixed
- This sets a message to read
- toTrashcan() : mixed
- Moves a node to the trashcan. Wrapper for deleteMessage()
- undeleteMessage() : bool
- Move a message back to user inbox folder
- unsetFolders() : mixed
- returns the cached folder information
- update() : bool
- Updates a text node.
- userReceivesNotification() : bool
- Checks if userid's notification options for notification type
- validate() : bool
- Validates the data according to the action to be taken
- validateRequest() : array<string|int, mixed>
- Verifies that the request exists and its valid.
- 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
DELETED_ITEMS_FOLDER
public
mixed
DELETED_ITEMS_FOLDER
= 'deleted_items'
INFRACTION_FOLDER
public
mixed
INFRACTION_FOLDER
= 'infractions'
MESSAGE_FOLDER
public
mixed
MESSAGE_FOLDER
= 'messages'
NOTIFICATION_FOLDER
public
mixed
NOTIFICATION_FOLDER
= 'your_notifications'
NOTIFICATION_TYPE_COMMENT
public
mixed
NOTIFICATION_TYPE_COMMENT
= 'comment'
NOTIFICATION_TYPE_FOLLOW
public
mixed
NOTIFICATION_TYPE_FOLLOW
= 'follow'
NOTIFICATION_TYPE_FOLLOWING
public
mixed
NOTIFICATION_TYPE_FOLLOWING
= 'following'
NOTIFICATION_TYPE_MODERATE
public
mixed
NOTIFICATION_TYPE_MODERATE
= 'moderate'
NOTIFICATION_TYPE_MONITOREDWORD
public
mixed
NOTIFICATION_TYPE_MONITOREDWORD
= 'monitoredword'
NOTIFICATION_TYPE_RATE
public
mixed
NOTIFICATION_TYPE_RATE
= 'rate'
NOTIFICATION_TYPE_REPLY
public
mixed
NOTIFICATION_TYPE_REPLY
= 'reply'
NOTIFICATION_TYPE_REPORTEDPOST
public
mixed
NOTIFICATION_TYPE_REPORTEDPOST
= 'reportedpost'
NOTIFICATION_TYPE_SPAMPOST
public
mixed
NOTIFICATION_TYPE_SPAMPOST
= 'spampost'
NOTIFICATION_TYPE_SUBSCRIPTION
public
mixed
NOTIFICATION_TYPE_SUBSCRIPTION
= 'subscription'
NOTIFICATION_TYPE_THREADCOMMENT
public
mixed
NOTIFICATION_TYPE_THREADCOMMENT
= 'threadcomment'
NOTIFICATION_TYPE_UNAPPROVEDPOST
public
mixed
NOTIFICATION_TYPE_UNAPPROVEDPOST
= 'unapprovedpost'
NOTIFICATION_TYPE_USERMENTION
public
mixed
NOTIFICATION_TYPE_USERMENTION
= 'usermention'
NOTIFICATION_TYPE_VM
public
mixed
NOTIFICATION_TYPE_VM
= 'vm'
NOTIFICATION_TYPE_VOTE
public
mixed
NOTIFICATION_TYPE_VOTE
= 'vote'
NOTIFICATION_TYPE_VOTEREPLY
public
mixed
NOTIFICATION_TYPE_VOTEREPLY
= 'vote_reply'
PENDING_FOLDER
public
mixed
PENDING_FOLDER
= 'pending_posts'
REQUEST_FOLDER
public
mixed
REQUEST_FOLDER
= 'requests'
SENT_FOLDER
public
mixed
SENT_FOLDER
= 'sent_items'
TRASH_FOLDER
public
mixed
TRASH_FOLDER
= 'trash'
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>
__wakeup()
public
__wakeup() : void
acceptRequest()
This function accepts a user follow request or a channel ownership/moderation/membership request
public
acceptRequest(mixed $nodeid) : bool
Parameters
- $nodeid : mixed
Return values
booladd()
This adds a new message
public
add(mixed $data[, array<string|int, mixed> $options = array() ][, mixed $convertWysiwygTextToBbcode = true ]) : array<string|int, mixed>
Parameters
- $data : mixed
-
Array of field => value pairs which define the record. Data-types & key names: int 'parentid' Nodeid of the parent, i.e. node this attachment is being added under. int 'userid' Optional. Userid of the user who is adding this record. If not provided, it will use the current session's user. string 'authorname' Optional. Name of the user who is adding this record. If not provided, it will use the username of userid above. string 'ipaddress' Optional. IP of request. Will be fetched from current request if skipped. ??? 'protected' ??? int 'starter' ??? int 'routeid' ??? ??? 'prefixid' ??? ??? 'iconid' ??? int 'created' Optional. Unix timestamp of creation date. If skipped it will use the value returned by vB::getRequest()->getTimeNow() (TIMENOW). int 'publishdate' Optional. Unix timestampe of publish date. If skipped, it will use TIMENOW. If 'publish_now' is provided, publishdate will be overwritten by TIMENOW mixed 'publish_now' Optional. If not empty, publishdate will be overwritten by TIMENOW int 'viewperms' Optional, default 2. Who can view this group. 0 = subscribed only, 1 = subscribed & registered users, 2 = everyone. ??? 'featured' Optional. ???(purpose/description)??? Will only be used if the CURRENT USER has the moderatorpermissions.cansetfeatured channel permission. string 'title' ??? string 'htmltitle' ??? string 'urlident' ??? int 'setfor' Only used by visitor messages. Userid of intended visitor message recipient. ??? ??? ??? Can also contain node fields. @see vB_Library_Node::getNodeFields() or the node table structure for these fields
- $options : array<string|int, mixed> = array()
-
Array of options for the content being created. Understands skipTransaction, skipFloodCheck, floodchecktime, many subclasses have skipNotification.
@return mixed array with nodeid (int), success (bool), cacheEvents (array of strings), nodeVals (array of field => value).
- $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)
addMessageInfo()
Returns the node content as an associative array
public
addMessageInfo(mixed $nodes) : mixed
Parameters
- $nodes : mixed
Return values
mixed —array of content records with extra "about" information for notifications.
addMessageNoFlood()
Adds a message without triggering the flood check.
public
addMessageNoFlood(mixed $data[, mixed $options = array() ]) : int
Parameters
- $data : mixed
- $options : mixed = array()
Return values
int —The nodeid of the created message/notification
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
buildPmTotals()
Calculates the number of private messages that a user has in the system Used to limit pm abilities based on overage of this count
public
buildPmTotals(mixed $userids) : mixed
Parameters
- $userids : mixed
checkCanReceivePM()
public
checkCanReceivePM(mixed $recipient) : mixed
Parameters
- $recipient : mixed
checkCanSee()
Checks nodes to ensure that the current user can see them.
public
checkCanSee(mixed $nodeids) : int
Parameters
- $nodeids : mixed
Return values
intcheckComplete()
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
boolcheckFolders()
This function checks that we have all the folders for the current user, and the set folders are there.
public
checkFolders(mixed $userid[, mixed $skipNonExistentRecipients = false ]) : array<string|int, mixed>
Parameters
- $userid : mixed
- $skipNonExistentRecipients : mixed = false
Return values
array<string|int, mixed> —Array with the 'result' element, indicating if the folders were loaded, were already loaded, or if the user was skipped.
clearCache()
public
static clearCache() : mixed
cloneArrayRecords()
public
cloneArrayRecords(int $oldnodeid, int $newnodeid) : void
Parameters
- $oldnodeid : int
- $newnodeid : int
convertLegacyNotificationAboutString()
Translates the legacy notification type string into the new notification typename
public
convertLegacyNotificationAboutString(string $aboutString) : string|bool
Parameters
- $aboutString : string
Return values
string|bool —New notification typename, or False if mapping is unknown
convertNotificationTypeToLegacyAboutString()
Translates the legacy notification type string into an array of type information
public
convertNotificationTypeToLegacyAboutString(string $typename) : string
Parameters
- $typename : string
Return values
string —Returns the legacy NOTIFICATION_TYPE_X string for the typename. If the mapping is unknown, an empty string is returned.
createMessageFolder()
This creates a new message folder. It returns false if the record already exists and the id if it is able to create the folder
public
createMessageFolder(mixed $folderName, mixed $userid) : int|false
Parameters
- $folderName : mixed
- $userid : mixed
Return values
int|falsedecrementUserPostCount()
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()
Permanently deletes a node
public
delete(mixed $nodeid) : bool
Parameters
- $nodeid : mixed
Return values
booldeleteChildren()
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
deleteMessage()
Permanently deletes a message
public
deleteMessage(mixed $nodeid[, mixed $userid = false ]) : bool
Parameters
- $nodeid : mixed
- $userid : mixed = false
Return values
bool —did the deletion succeed?
deleteMessages()
Delete messages
public
deleteMessages(mixed $nodeids) : bool
Parameters
- $nodeids : mixed
Tags
Return values
bool —Indicating if deletion were succesfully done or will throw exception.
deleteMessagesForUser()
Deletes all pms for a given user
public
deleteMessagesForUser(mixed $userid) : int
This will mark all "sentto" records for the given user as deleted. In addtion it will mark any PM records for deletion that no longer have any users attached to them. The actual deletion is handled via cron script.
Parameters
- $userid : mixed
Return values
int —number of sentto items marked for delete (the users pms)
deleteSentMessagesForUser()
public
deleteSentMessagesForUser(mixed $userid) : mixed
Parameters
- $userid : mixed
denyRequest()
This function denies a user follow request
public
denyRequest(mixed $nodeid, mixed $cancelRequestFor) : array<string|int, mixed>
Parameters
- $nodeid : mixed
- $cancelRequestFor : mixed
Return values
array<string|int, mixed> —- array('result' => resultphrase) if resultphrase is empty, there is nothing useful to say about what happened
fetchContentType()
public
fetchContentType() : mixed
fetchContentTypeId()
public
fetchContentTypeId() : mixed
fetchFolders()
returns the cached folder information
public
fetchFolders(mixed $userid) : mixed
Parameters
- $userid : 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
fetchNotificationTypes()
Return all the valid notification types
public
fetchNotificationTypes() : mixed
Return values
mixed —array of strings
fetchSummary()
This summarizes messages for specified user
public
fetchSummary(mixed $userid) : mixed
Parameters
- $userid : mixed
Return values
mixed —- array-includes folderId, title, quantity not read.
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
getAutoparseLinks()
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
- It is requested by the caller AND
- 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
boolgetCanEdit()
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
boolgetCanModerate()
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
boolgetCannotDelete()
Whether this type can be deleted. Infractions, for example, cannot be.
public
getCannotDelete() : bool
Return values
boolgetChannelRequestTypes()
Returns array of Request message types
public
getChannelRequestTypes() : mixed
Return values
mixed —array of strings *
getContent()
Returns the node content as an associative array
public
getContent(mixed $nodeids) : int
Parameters
- $nodeids : mixed
Return values
intgetContentApi()
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
getDeletedItemsFolderId()
Get the deleted_items folder id
public
getDeletedItemsFolderId() : int
Return values
int —The deleted_items folder id from messagefolder.
getFolderFromId()
Gets the folder information from a given folderid. The folderid requested should belong to the user who is requesting.
public
getFolderFromId(mixed $folderid, mixed $userid) : array<string|int, mixed>
Parameters
- $folderid : mixed
- $userid : mixed
Return values
array<string|int, mixed> —The folder information such as folder title, titlephrase and if is custom folder.
getFullContent()
Returns the node content as an associative array
public
getFullContent(int $nodeid) : array<string|int, mixed>
Parameters
- $nodeid : int
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
getInfractionFolderId()
Get the infraction folder id
public
getInfractionFolderId() : int
Return values
int —The infraction folder id from messagefolder.
getInlist()
Returns inlist property
public
getInlist() : int
Return values
intgetMessage()
Get a message and all replies and sets the message to "read" for the current user.
public
getMessage(int $nodeid) : array<string|int, mixed>
Parameters
- $nodeid : int
Return values
array<string|int, mixed> —[ 'message' => array first message node 'messages' => array of message nodes with content 'otherRecipients' => int count of other recipients 'firstRecipient' => array{userid:int, username: string}, the first recipient info 'included' => bool true if $userid is in otherRecipients ]
getMessageTree()
Get a message and all replies and sets the message to "read"
public
getMessageTree(int $nodeid, mixed $exclude, int $userid) : array<string|int, mixed>
Parameters
- $nodeid : int
- $exclude : mixed
-
no longer used
- $userid : int
-
Fetch information as this user
Return values
array<string|int, mixed> —[ 'message' => array first message node 'messages' => array of message nodes with content 'otherRecipients' => int count of other recipients 'firstRecipient' => array{userid:int, username: string}, the first recipient info 'included' => bool true if $userid is in otherRecipients ]
getNodeDescription()
public
getNodeDescription(mixed $data, mixed $convertWysiwygTextToBbcode) : mixed
Parameters
- $data : mixed
- $convertWysiwygTextToBbcode : mixed
getPendingPostFolderId()
Get the pending posts folder id
public
getPendingPostFolderId() : int
Return values
int —The pending posts folder id from messagefolder.
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
getRequest()
Get a single request
public
getRequest(mixed $nodeid) : array<string|int, mixed>
Parameters
- $nodeid : mixed
Return values
array<string|int, mixed> —The node data array for the request
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
intincompleteNodeCleanup()
This cleans up for a node that was found to be incomplete by deleting the child nodes and subsidiary table records
public
incompleteNodeCleanup(mixed $node) : mixed
Parameters
- $node : mixed
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
boolisVisitorMessage()
determines whether a specific node is a visitor message
public
isVisitorMessage(mixed $nodeid) : bool
Parameters
- $nodeid : mixed
Return values
boollistFolders()
This lists the folders.
public
listFolders([mixed $suppress = array() ]) : mixed
Parameters
- $suppress : mixed = array()
Return values
mixed —array of folderid => title
listMessages()
This lists messages for current user
public
listMessages(array<string|int, mixed> $data, mixed $userid) : array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>
-
'sortDir' 'pageNum 'perpage' 'folderid' 'showdeleted' 'ignoreRecipients'
- $userid : mixed
Return values
array<string|int, mixed> —- list of messages.
listNotifications()
public
listNotifications(array<string|int, mixed> $data, int $userid) : array<string|int, mixed>
Only used by unit tests
This lists notifications for current user
Parameters
- $data : array<string|int, mixed>
-
@see vB_Library_Notification::fetchNotificationsForCurrentUser()
- $userid : int
-
Not used.
Return values
array<string|int, mixed> —@see vB_Library_Notification::fetchNotificationsForCurrentUser()
listSpecialPrivateMessages()
This lists messages for current user
public
listSpecialPrivateMessages([mixed $data = array() ]) : mixed
Parameters
- $data : mixed = array()
Return values
mixed —- array-includes folderId, title, quantity not read. Also 'page' is array of node records for page 1.
mergeContent()
Performs the merge of content and updates the node.
public
mergeContent(type $data) : type
Parameters
- $data : type
Return values
typemergeContentInfo()
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
moveMessage()
Moves a message to a different folder
public
moveMessage(mixed $nodeid, mixed $newFolderid, mixed $existing) : bool
Parameters
- $nodeid : mixed
- $newFolderid : mixed
- $existing : mixed
Return values
bool —did it succeed?
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.
resetFolders()
Clears the cached folder information
public
resetFolders() : mixed
setDoIncompleteNodeCleanup()
Sets the $doIncompleteNodeCleanup flag
public
setDoIncompleteNodeCleanup(mixed $value) : mixed
Parameters
- $value : mixed
setRead()
This sets a message to read
public
setRead(mixed $nodeid, mixed $read, mixed $userid[, mixed $folderKey = false ]) : mixed
Parameters
- $nodeid : mixed
- $read : mixed
- $userid : mixed
- $folderKey : mixed = false
toTrashcan()
Moves a node to the trashcan. Wrapper for deleteMessage()
public
toTrashcan(mixed $nodeid) : mixed
Parameters
- $nodeid : mixed
undeleteMessage()
Move a message back to user inbox folder
public
undeleteMessage(mixed $nodeid, mixed $existing) : bool
Parameters
- $nodeid : mixed
- $existing : mixed
Tags
Return values
bool —True if succesfully done.
unsetFolders()
returns the cached folder information
public
unsetFolders(mixed $userid) : mixed
Parameters
- $userid : mixed
update()
Updates a text node.
public
update(mixed $nodeid, mixed $data[, mixed $convertWysiwygTextToBbcode = true ]) : bool
Parameters
- $nodeid : mixed
- $data : mixed
-
information to update the content with
@return boolean
- $convertWysiwygTextToBbcode : mixed = true
Return values
booluserReceivesNotification()
Checks if userid's notification options for notification type
public
userReceivesNotification(mixed $userid, mixed $notificationType) : bool
Parameters
- $userid : mixed
- $notificationType : mixed
Return values
bool —true if user should receive the notificationType
validate()
Validates the data according to the action to be taken
public
validate(mixed $data[, mixed $action = vB_Library_Content::ACTION_ADD ][, mixed $nodeid = false ][, mixed $nodes = false ][, mixed $userid = null ]) : bool
Parameters
- $data : mixed
-
Array of field => value pairs which define the record.
- $action : mixed = vB_Library_Content::ACTION_ADD
-
The action const, used to be checked for permission
- $nodeid : mixed = false
- $nodes : mixed = false
-
-- $node records corresponding to the $nodeid variable. If not passed will be fetched from the DB
- $userid : mixed = null
Return values
boolvalidateRequest()
Verifies that the request exists and its valid.
public
validateRequest(int $userid, int $nodeid) : array<string|int, mixed>
Returns the message if no error is found. Throws vB_Exception_Api if an error is found.
Parameters
- $userid : int
- $nodeid : int
Return values
array<string|int, mixed> —- message info
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