vB_Library_Content_Photo
        
        extends vB_Library_Content
    
    
            
            in package
            
        
    
    
    
vB_Library_Content_Photo
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
- Add photo record
- assembleContent() : array<string|int, 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
- Delete photo record
- 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
- fetchParent() : int
- Fetches photo's parentid
- 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
- 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 plus the channel routeid and title, and starter route and title the 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
- getStarter() : int
- Gets the conversation starter for a node. If the node is a channel it returns the channelid.
- getTextCountChange() : int
- Returns textCountChange property
- 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.
- isOwner() : bool
- Checks if user owns a gallery
- 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
- update() : mixed
- updates a record
- validate() : bool
- validates that the current can do something with 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()
Add photo record
    public
                    add(mixed $data[, array<string|int, mixed> $options = array() ]) : 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). 
assembleContent()
Assembles the response for detailed content
    public
                    assembleContent(array<string|int, mixed> &$content) : array<string|int, mixed>
    Parameters
- $content : array<string|int, 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 
Return values
array<string|int, mixed> —Nodeid-keyed array of the $content data, plus additional data such as contenttypeclass, createpermissions, moderatorperms, channeltype, permissions, etc, @TODO: complete this list Also the expanded nodeoptions of: allow_post, moderate_comments, approve_membership, invite_only, autoparselinks, disablesmilies, disable_bbcode, hide_title, hide_author, hide_publishdate, display_fullincategory, display_pageviews, hide_comment_count
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()
Delete photo record
    public
                    delete(mixed $photoId) : bool
    Parameters
- $photoId : 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
 
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
fetchParent()
Fetches photo's parentid
    public
                    fetchParent(mixed $photoId) : int
    Parameters
- $photoId : mixed
Return values
int —Parent Id of the given photo
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
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
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
getFullContent()
Returns the node content plus the channel routeid and title, and starter route and title the as an associative array
    public
                    getFullContent(mixed $nodeids) : array<string|int, mixed>
    Parameters
- $nodeids : mixed
Return values
array<string|int, mixed> —Nodeid-keyed array of node content, including node.*, channel & starter id, title, route and other common data, and content-specific data. @see $this->getRawContent()
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 $node[, mixed $include_attachments = true ]) : mixed
    Parameters
- $node : mixed
- $include_attachments : mixed = true
getInlist()
Returns inlist property
    public
                    getInlist() : int
    Return values
intgetStarter()
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
intincrementUserPostCount()
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
isOwner()
Checks if user owns a gallery
    public
                    isOwner(mixed $galleryId, mixed $userId) : bool
    Parameters
- $galleryId : mixed
- $userId : mixed
Return values
bool —Flag indicating if user is or not owner
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
update()
updates a record
    public
                    update(int $nodeid, array<string|int, mixed> $data) : mixed
    Parameters
- $nodeid : int
- $data : array<string|int, mixed>
- 
                    information to update the content with @return boolean 
validate()
validates that the current can do something with a node with these values
    public
                    validate(mixed $data[, mixed $action = self::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 = self::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
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