vBulletin v6.1.0

vB_Library_Content_Attach extends vB_Library_Content
in package

vB_Library_Content_Attach

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 node.
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.
checkConfigImageResizeLimitsForFile()  : mixed
clearCache()  : mixed
cloneArrayRecords()  : void
decrementUserPostCount()  : mixed
Decrements the number of posts for a user
delete()  : bool
Remove an attachment
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
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
getAttachmentHeaders()  : array<string|int, string>
Get array of http headers for this attachment file extension
getAttachmentPermissions()  : mixed
getAttachmentsFromType()  : mixed
Get attachments for a content type
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.
getBaseTypes()  : mixed
Get array of http headers for this attachment file extension
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
getHeadersForTypes()  : mixed
Get array of http headers for this attachment file extension
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
See base class for information
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.
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.
removeAttachment()  : mixed
Remove an attachment
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.
removeSignaturePicture()  : mixed
saveThemeIcon()  : mixed
setDoIncompleteNodeCleanup()  : mixed
Sets the $doIncompleteNodeCleanup flag
update()  : mixed
updates a record
uploadAttachment()  : array<string|int, mixed>
Processes an uploaded file and saves it as an attachment
uploadUrl()  : mixed
Upload an image based on the url
validate()  : bool
Validates that the current can create a node with these values
writeToCache()  : void
writes new cached data for nodes
zapAttachmentType()  : mixed
Remove all attachments for content type

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 node.

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

This function will add a new attachment node & attach table record, increment refcount for the associated filedata table record, and set the parent node record's hasphoto to 1

Parameters
$data : mixed

Array of field => value pairs which define the record. Must have all data required by vB_Library_Content::add(). At the minium, must have: int 'parentid' @see vB_Library_Content::add() int 'filedataid' Additional data may include: string 'caption' Optional. Caption for the image. If caption is set, it will overwrite the description. string 'description' Optional. If description is set but caption is not set, the caption will be set to description. @see vB_Library_Content::add() for more details It can also contain data corresponding to the attach table fields, such as: int 'visible' ??? int 'counter' ??? string 'filename' ??? int 'reportthreadid' ??? string 'settings' Serialized array of attachment settings that are used by vB5_Template_BbCode's attachReplaceCallback() to render the image with the specified settings. @see vB_Api_Content_Attach::getAvailableSettings() for a list of the avaliable settings @param array $options Array of options for the content being created. Understands skipTransaction, skipFloodCheck, floodchecktime

@return array Contains the data of the added node. Array with data-types & keys: int 'nodeid' bool 'success' string[] 'cacheEvents' array 'nodeVals' Array of field => value pairs representing the node table field values that were added to the node table. @see vB_Library_Node::getNodeFields() or the node table structure for these fields

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

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
bool

checkConfigImageResizeLimitsForFile()

public checkConfigImageResizeLimitsForFile(mixed $filepath) : mixed
Parameters
$filepath : mixed

clearCache()

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()

Remove an attachment

public delete(mixed $nodeid) : bool
@param	INT	nodeid
Parameters
$nodeid : mixed
Return values
bool

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];

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

getAttachmentHeaders()

Get array of http headers for this attachment file extension

public getAttachmentHeaders(string $extension) : array<string|int, string>
Parameters
$extension : string

file extension, e.g. 'doc', 'gif', 'pdf', 'jpg'

Return values
array<string|int, string>

Array containing the 'content-type' http header string for $extension. If $extension is not found in attachmenttype table, the default 'Content-type: application/octet-stream' is returned in the array.

getAttachmentPermissions()

public getAttachmentPermissions(mixed $data) : mixed
Parameters
$data : mixed

getAttachmentsFromType()

Get attachments for a content type

public getAttachmentsFromType(mixed $typeid) : mixed
@param	INT	nodeid
Parameters
$typeid : mixed

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.

getBaseTypes()

Get array of http headers for this attachment file extension

public getBaseTypes(array<string|int, mixed> $extensions) : mixed
Parameters
$extensions : array<string|int, mixed>

-- array of file extensions, e.g. 'doc', 'gif', 'pdf', 'jpg'

Tags
@return

array. Array of ('ext' => 'basetype')

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 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()

getHeadersForTypes()

Get array of http headers for this attachment file extension

public getHeadersForTypes(array<string|int, mixed> $extensions) : mixed
Parameters
$extensions : array<string|int, mixed>

-- array of file extensions, e.g. 'doc', 'gif', 'pdf', 'jpg'

Tags
@return

array. Array of ['ext' => header array] for each attachment. The ext keys will be returned as lower case. If no extension is found or the header is black, the default 'Content-type: application/octet-stream' is returned in the array.

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()

See base class for information

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
int

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

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

mergeContentInfo()

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

removeAttachment()

Remove an attachment

public removeAttachment(mixed $id) : mixed
@param	INT	nodeid
Parameters
$id : 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.

removeSignaturePicture()

public removeSignaturePicture(mixed $userid) : mixed
Parameters
$userid : mixed

saveThemeIcon()

public saveThemeIcon(mixed $userid, mixed $filearray, mixed $fileContents, mixed $filesize, mixed $extension[, mixed $imageOnly = false ][, mixed $skipUploadPermissionCheck = false ]) : mixed
Parameters
$userid : mixed
$filearray : mixed
$fileContents : mixed
$filesize : mixed
$extension : mixed
$imageOnly : mixed = false
$skipUploadPermissionCheck : mixed = false

setDoIncompleteNodeCleanup()

Sets the $doIncompleteNodeCleanup flag

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

update()

updates a record

public update(mixed $nodeid, mixed $data) : mixed
Parameters
$nodeid : mixed
$data : mixed

information to update the content with

@return boolean

uploadAttachment()

Processes an uploaded file and saves it as an attachment

public uploadAttachment(int $userid, array<string|int, mixed> $file[, bool $cheperms = true ][, bool $imageOnly = false ]) : array<string|int, mixed>
Parameters
$userid : int

Userid of the user who is uploading the file

$file : array<string|int, mixed>

Uploaded file data. The object or array should have the following properties or elements with data-types and names: string 'name' Filename int 'size' Filesize string 'type' Filetype string 'uploadfrom' Optional. Where the file was uploaded from. E.g. 'profile', 'sgicon', 'signature', 'newContent' or null int 'parentid' Optional. The nodeid/channelid this file should be saved under. Used for permission checks If it is an object, it should also have the following property: string 'contents' Contents of the file If it is an array, it should also have the following element: string 'tmp_name' Filepath to the temporary file created on the server

$cheperms : bool = true

Optional, whether or not to check attachment permissions. Default true

$imageOnly : bool = false

Optional, whether or not to only allow an image attachment. Default false

Tags
throws
vB_Exception_Api

If file upload by PHP failed with error code UPLOAD_ERR_INI_SIZE or UPLOAD_ERR_FORM_SIZE

throws
vB_Exception_Api

If file upload by PHP failed with error code UPLOAD_ERR_PARTIAL

throws
vB_Exception_Api

If file upload by PHP failed with error code UPLOAD_ERR_NO_FILE

throws
vB_Exception_Api

If file upload by PHP failed with error code UPLOAD_ERR_NO_TMP_DIR

throws
vB_Exception_Api

If file upload by PHP failed with error code UPLOAD_ERR_CANT_WRITE

throws
vB_Exception_Api

If file upload by PHP failed with error code UPLOAD_ERR_EXTENSION

throws
Exception

If file upload by PHP failed with an error code that's not included above

throws
vB_Exception_Api

If $file['tmp_name'] contains no data

throws
vB_Exception_Api

If user exceeded their usergroup's attachlimit

throws
vB_Exception_Api

If the uploaded file exceeds allowed dimensions and resizing the image failed

throws
vB_Exception_Api

If fetching getAttachmentPermissions() failed for specified file type & upload method

access

public

Return values
array<string|int, mixed>

Array of attachment data @see saveUpload()

uploadUrl()

Upload an image based on the url

public uploadUrl(mixed $userid, mixed $url[, mixed $attachment = false ][, mixed $uploadfrom = '' ]) : mixed

@param int user ID

Parameters
$userid : mixed
$url : mixed
$attachment : mixed = false
$uploadfrom : mixed = ''
Return values
mixed

array of data, includes filesize, dateline, htmltype, filename, extension, and filedataid

validate()

Validates that the current can create 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
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

zapAttachmentType()

Remove all attachments for content type

public zapAttachmentType(mixed $typeid) : mixed
@param	INT	Content Type id
Parameters
$typeid : mixed

        
On this page

Search results