vB_Library_Content_Channel
extends vB_Library_Content
in package
vB_Library_Content_Channel
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
Methods
- __serialize() : array<string|int, mixed>
- __sleep() : array<string|int, mixed>
- __unserialize() : void
- __wakeup() : void
- add() : mixed
- Adds a new channel.
- assembleContent() : mixed
- Assembles the response for detailed content
- checkComplete() : bool
- This function checks to see if a node is valid, and if not it deletes or fixes it.
- clearCache() : mixed
- cloneArrayRecords() : void
- decrementUserPostCount() : mixed
- Decrements the number of posts for a user
- delete() : bool
- Permanently deletes a channel
- 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
- fetchChannelByGUID() : array<string|int, mixed>
- Returns a channel record based on its node guid
- fetchChannelIdByGUID() : int
- Returns a channel id based on its node guid
- fetchContentType() : mixed
- fetchContentTypeId() : mixed
- fetchFromCache() : mixed
- This attempts to get the cached data for nodes
- fetchTableName() : array<string|int, mixed>
- returns the tables used by this content type.
- fetchTopLevelChannelIds() : array<string|int, mixed>
- Fetches the top level Channels/Categories
- getAllCanView() : mixed
- Returns the fields that all users can see if they don't have canviewthreads
- getAutocomplete() : array<string|int, mixed>
- Get autocomplete results for channels.
- getBareContent() : int
- Returns the node content as an associative array. Like getFullContent but without the permissions data.
- 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.
- getForumHomeChannel() : mixed
- 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
- getInlist() : int
- Returns inlist property
- getMainChannel() : mixed
- getStarter() : int
- Gets the conversation starter for a node. If the node is a channel it returns the channelid.
- getTextCountChange() : int
- Returns textCountChange property
- getUniqueUrlIdent() : string
- This creates an urlident from a title, and guarantees it will not be a duplicate
- incompleteNodeCleanup() : mixed
- This function either deletes the channel if it has no children, or fixes it.
- 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
- mergeContentInfo() : mixed
- monitorWords() : mixed
- Checks if the text contains monitored words, and if so, sends notifications to admins and moderators if the setting is on.
- 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.
- setDoIncompleteNodeCleanup() : mixed
- Sets the $doIncompleteNodeCleanup flag
- switchForumCategory() : bool
- Toggles the channel between acting like a forum (can have threads in it) and acting like a category (can only have subchannels in it)
- update() : mixed
- updates a record
- 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>
__wakeup()
public
__wakeup() : void
add()
Adds a new channel.
public
add(mixed $data[, array<string|int, mixed> $options = ['nodeonly' => false] ]) : 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> = ['nodeonly' => false]
-
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).
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
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
boolclearCache()
public
static clearCache() : 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()
Permanently deletes a channel
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
fetchChannelByGUID()
Returns a channel record based on its node guid
public
fetchChannelByGUID(mixed $guid) : array<string|int, mixed>
Parameters
- $guid : mixed
Return values
array<string|int, mixed> —Channel information
fetchChannelIdByGUID()
Returns a channel id based on its node guid
public
fetchChannelIdByGUID(mixed $guid) : int
Parameters
- $guid : mixed
Return values
int —Channel id
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
fetchTableName()
returns the tables used by this content type.
public
fetchTableName() : array<string|int, mixed>
Return values
array<string|int, mixed>fetchTopLevelChannelIds()
Fetches the top level Channels/Categories
public
fetchTopLevelChannelIds() : array<string|int, mixed>
Return values
array<string|int, mixed> —Array of channel information
getAllCanView()
Returns the fields that all users can see if they don't have canviewthreads
public
getAllCanView() : mixed
Return values
mixed —array of strings
getAutocomplete()
Get autocomplete results for channels.
public
getAutocomplete(string $searchStr, int $limitstart, int $limitnumber, bool $currentuseronly) : array<string|int, mixed>
Parameters
- $searchStr : string
-
-- Will return channels that match this as a prefix.
- $limitstart : int
-
-- Place to start in the list.
- $limitnumber : int
-
-- Place to start in the list.
- $currentuseronly : bool
-
-- only return channels the current user has access to.
Return values
array<string|int, mixed>getBareContent()
Returns the node content as an associative array. Like getFullContent but without the permissions data.
public
getBareContent(mixed $nodeids) : int
Parameters
- $nodeids : mixed
Return values
intgetCanBeLastContent()
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
boolgetContent()
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
getForumHomeChannel()
public
getForumHomeChannel() : mixed
getFullContent()
Returns the node content as an associative array
public
getFullContent(mixed $nodeids) : array<string|int, mixed>
Parameters
- $nodeids : mixed
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
getInlist()
Returns inlist property
public
getInlist() : int
Return values
intgetMainChannel()
public
getMainChannel() : mixed
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
intgetUniqueUrlIdent()
This creates an urlident from a title, and guarantees it will not be a duplicate
public
getUniqueUrlIdent(mixed $title) : string
Parameters
- $title : mixed
Return values
stringincompleteNodeCleanup()
This function either deletes the channel if it has no children, or fixes it.
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
boolmergeContentInfo()
public
mergeContentInfo(mixed &$result, mixed $content) : mixed
Parameters
- $result : mixed
- $content : 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
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.
setDoIncompleteNodeCleanup()
Sets the $doIncompleteNodeCleanup flag
public
setDoIncompleteNodeCleanup(mixed $value) : mixed
Parameters
- $value : mixed
switchForumCategory()
Toggles the channel between acting like a forum (can have threads in it) and acting like a category (can only have subchannels in it)
public
switchForumCategory(bool $makeCategory, int $nodeId[, bool $force = false ]) : bool
Parameters
- $makeCategory : bool
- $nodeId : int
- $force : bool = false
-
- If true, it will force page recreation even if the category field matches
Tags
Return values
boolupdate()
updates a record
public
update(mixed $nodeid, mixed $data) : mixed
Parameters
- $nodeid : mixed
- $data : mixed
-
information to update the content with
@return boolean
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
boolwriteToCache()
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