vBulletin 5.6.5 API

vB_Api_SocialGroup extends vB_Api_Blog
in package

vB_Api_Socialgroup

Tags
access

public

Table of Contents

$assertor  : object
$controller  : string
API Controller
$db  : vB_Database
Database object.
$disabled  : bool
Indicates whether the API was disabled
$disableFalseReturnOnly  : array<string|int, mixed>
Contains white listed methods which return a false response when API is disabled in special scenarios like forum closed, password expiry, ip ban and others.
$disableWhiteList  : array<string|int, mixed>
Contains white listed methods which act as normal when API is disabled no matter of special scenarios like forum closed, password expiry, ip ban and others.
$library  : object
$sgChannel  : mixed
$instances  : mixed
$instancesRaw  : array<string|int, mixed>
We want API subclasses to access the instances only through getters
$vb4_input_mappings  : mixed
$wrappers  : mixed
__serialize()  : mixed
__sleep()  : mixed
__unserialize()  : mixed
__wakeup()  : mixed
callNamed()  : The
Call the given api function by name with a named arguments list.
cancelChannelTransfer()  : bool
Cancels a channel transfer request
canCreateBlog()  : bool
Checks if the user can create a new Blog
changeCategory()  : mixed
checkApiState()  : mixed
This method checks whether the API method is enabled.
clearCache()  : mixed
Clears all previously loaded API objects.
createBlog()  : array<string|int, mixed>
Creates a blog channel
createSocialGroup()  : int
creates a new social group
fetchContributors()  : array<string|int, mixed>
Returns the userids of the channel contributors (moderators)
fetchMembers()  : array<string|int, mixed>
Lists channel members
fetchOwner()  : int
Returns the userid of the channel owner
fetchSubscribers()  : mixed
Fetches information about members (subscribers) for a blog.
getApiClassName()  : mixed
getBlogChannel()  : int
getBlogInfo()  : mixed
getBlogSidebarModules()  : array<string|int, mixed>
Returns the widget instances that are used for blog sidebar.
getCategories()  : mixed
returns the category list- direct children of the social group channel
getChannelAdminPerms()  : array<string|int, mixed>
Returns a list of channel owner permissions and their values
getMembersCount()  : int
Gets the number of members for the given blog channel
getSGChannel()  : int
getSGInfo()  : mixed
gets Get info on every SG Channel
getSGOwnerPerms()  : array<string|int, mixed>
Get the current user's permissions for own stuff (eg. Own groups, own discussions, own messages)
instance()  : vB_Api
Returns an instance of the API object which translates exceptions to an array Use this method for API clients.
instanceInternal()  : vB_Api
Returns an instance of the API object which doesn't handle exceptions This should only be used in other API objects, not for clients of the API
isBlogNode()  : bool
Determines if the given node is a blog-related node (blog entry).
isChannelMember()  : int
Indicates if the current user is member of a given channelid
isChannelModerator()  : bool
Indicates if the given user or current user is owner or mod from given channel.
isSGChannel()  : bool
Determines if the given node is a Social group channel.
isSGNode()  : bool
Determines if the given node is a blog-related node (blog entry).
leaveChannel()  : bool
Handles leave in special channels for the current or specified user.
map_vb4_input_to_vb5()  : string
Returns vb5 api method name.
map_vb5_errors_to_vb4()  : mixed
Alters the error array in any way necessary to interface correctly with vb4.
map_vb5_output_to_vb4()  : mixed
Alters the output array in any way necessary to interface correctly with vb4.
removeChannelMember()  : bool
Handles removing a channel member
removeChannelModerator()  : bool
Handles removing a channel moderator
saveBlogSidebarModules()  : mixed
Saves channel configuration for blog sidebar
saveCategory()  : int
creates a new category
subscribeChannel()  : bool
Handles subscription in special channels for the current user.
userCanComment()  : array<string|int, mixed>
Returns whether current user can comment in the blog or not
__construct()  : mixed
buildPaginationURLs()  : array<string|int, mixed>
Builds pagination previous and next URLs.
checkHasAdminPermission()  : none
Determines if the calling user has the given admin permission, and if not throws an exception
checkHasPermission()  : none
Determines if the calling user has the given bitfield permission, and if not, throws a 'no_permission' exception.
checkIsLoggedIn()  : mixed
Determines if the calling user has the given admin permission, and if not throws an exception
createChannel()  : int
Check validity of data passed in and create a blog or group channel
doMembersCount()  : int
Returns the number of members for the channel (blog or group)
getApiClass()  : mixed
getApiClassNameInternal()  : mixed
hasAdminPermission()  : bool
Determines if the calling user has the given admin permission
inDebugMode()  : mixed
isDisableFalseReturnOnly()  : bool
Checks if method returns false response only when API is disabled.
isWhiteListed()  : bool
Checks if method is white listed when API is disabled.
setController()  : mixed
Set controller
cms_vb4_to_vb5_method_mapping()  : mixed
default_vb4_to_vb5_method_mapping()  : mixed
hasAdminPermissionInternal()  : mixed
Internal function to power the previous cover functions
remove_nulls()  : mixed
wrapLoggerIfNeeded()  : mixed
Wrap the api object with the log wrapper class if needed.

Properties

$assertor

protected object $assertor = ull

$controller

API Controller

protected string $controller

$disabled

Indicates whether the API was disabled

protected bool $disabled = alse

$disableFalseReturnOnly

Contains white listed methods which return a false response when API is disabled in special scenarios like forum closed, password expiry, ip ban and others.

protected array<string|int, mixed> $disableFalseReturnOnly = array()

$disableWhiteList

Contains white listed methods which act as normal when API is disabled no matter of special scenarios like forum closed, password expiry, ip ban and others.

protected array<string|int, mixed> $disableWhiteList = array()

$library

protected object $library

$instances

private static mixed $instances

$instancesRaw

We want API subclasses to access the instances only through getters

private static array<string|int, mixed> $instancesRaw

$vb4_input_mappings

private static mixed $vb4_input_mappings = array( 'blog.post_comment' => array('method' => 'vb4_blog.post_comment'), 'blog.post_postcomment' => array('method' => 'vb4_blog.post_postcomment'), 'blog.post_updateblog' => array('method' => 'vb4_blog.post_updateblog'), 'blog.post_newblog' => array('method' => 'vb4_blog.post_newblog'), 'blog.post_editblog' => array('method' => 'vb4_blog.post_editblog'), 'blog_list' => array('method' => 'vb4_blog.bloglist'), 'api_init' => array('method' => 'api.init'), 'api_cmssectionlist' => array('method' => 'Vb4_Cms.sectionlist'), 'api_cmscategorylist' => array('method' => 'Vb4_Cms.categorylist'), /* // These can no longer be mapped directly to vB_Api_User::login/logout // due to additional processing of devicetoken that may be required // for mapi calls. 'login_login' => array( 'method' => 'user.login', 'request_mappings' => array( 'vb_login_username' => 'username', 'vb_login_password' => 'password', 'vb_login_md5password' => 'md5password', 'vb_login_md5password_utf' => 'md5passwordutf' ) ), 'login_logout' => array( 'method' => 'user.logout' ), */ 'get_vbfromfacebook' => array('method' => 'vb4_facebook.getVbfromfacebook'), )

$wrappers

private static mixed $wrappers

Methods

__serialize()

public __serialize() : mixed
Return values
mixed

__sleep()

public __sleep() : mixed
Return values
mixed

__unserialize()

public __unserialize(mixed $serialized) : mixed
Parameters
$serialized : mixed
Return values
mixed

__wakeup()

public __wakeup() : mixed
Return values
mixed

callNamed()

Call the given api function by name with a named arguments list.

public callNamed() : The

Used primarily to translate REST requests into API calls.

Return values
The

return of the method or an error if the method doesn't exist, or is static, a constructor or destructor, or otherwise shouldn't be callable as and API method. It is also an error if the value of a paramater is not provided and that parameter doesn't have a default value.

cancelChannelTransfer()

Cancels a channel transfer request

public cancelChannelTransfer(int $channelId, int $userId) : bool
Parameters
$channelId : int
$userId : int
Return values
bool

Indicates if the action succeeded

canCreateBlog()

Checks if the user can create a new Blog

public canCreateBlog(mixed $parentid) : bool
Parameters
$parentid : mixed
Tags
throws
vB_Exception_Api

invalid_blog_parent

throws
vB_Exception_Api

you_can_only_create_x_blogs

Return values
bool

changeCategory()

public changeCategory(mixed $groupid, mixed $categoryid) : mixed
Parameters
$groupid : mixed
$categoryid : mixed
Return values
mixed

checkApiState()

This method checks whether the API method is enabled.

public checkApiState(mixed $method) : mixed

For extensions check make sure $controller property is already set.

Parameters
$method : mixed
Return values
mixed

clearCache()

Clears all previously loaded API objects.

public static clearCache() : mixed

Intended for use in tests where the loading pattern can cause issues with objects that cache thier own data.

Return values
mixed

createBlog()

Creates a blog channel

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

createSocialGroup()

creates a new social group

public createSocialGroup(mixed $input) : int
Parameters
$input : mixed
Return values
int

nodeid of the created group/channel

fetchContributors()

Returns the userids of the channel contributors (moderators)

public fetchContributors(mixed $nodeid[, mixed $count = false ]) : array<string|int, mixed>
Parameters
$nodeid : mixed
$count : mixed = false
Return values
array<string|int, mixed>

Array of channel contributor user IDs

fetchMembers()

Lists channel members

public fetchMembers(int $nodeid[, int $pageno = 1 ][, int $perpage = 20 ][, bool $thumb = false ][, bool $includeOwnersAndMods = false ]) : array<string|int, mixed>

This is used for groups.

Parameters
$nodeid : int
$pageno : int = 1

Page number to fetch

$perpage : int = 20

Number of members to list per page

$thumb : bool = false

Whether to return the thumbnail version of the avatar

$includeOwnersAndMods : bool = false

Whether to include owners and moderators instead of strictly members

Tags
throws
vB_Exception_Api

invalid_data

throws
vB_Exception_Api

no_permission

Return values
array<string|int, mixed>

int count -- total count of members array members -- list of userid => Array int userid string username string avatarUrl -- deprecated, use avatarpath string avatarpath -- the user's avatar url path. Thumbnail path if requested int groupid -- the groupid from the channel member usergroup int pagecount -- total number of pages

fetchOwner()

Returns the userid of the channel owner

public fetchOwner(mixed $nodeid) : int
Parameters
$nodeid : mixed
Return values
int

Channel owner user ID

fetchSubscribers()

Fetches information about members (subscribers) for a blog.

public fetchSubscribers(int $nodeid[, int $pageno = 1 ][, int $perpage = 20 ][, bool $thumb = false ]) : mixed

For actual node subscription information

Parameters
$nodeid : int

the nodeid

$pageno : int = 1

page for which we want data

$perpage : int = 20

items per page

$thumb : bool = false

whether to get the thumbnail avatar

Tags
see
vB_Api_Follow::fetchNodeSubscribers()
Return values
mixed

array with 'count'=> total subscriber count 'pagecount' => total number of pages 'groupid' => id for the channel member group 'members'=> array of users:

  • avatarUrl
  • username
  • userid

getApiClassName()

public static getApiClassName(mixed $controller) : mixed
Parameters
$controller : mixed
Return values
mixed

getBlogChannel()

public getBlogChannel() : int
Tags
uses
fetch

the id of the global Blog Channel

Return values
int

nodeid of actual Main Blog Channel

getBlogInfo()

public getBlogInfo([mixed $from = 1 ][, mixed $perpage = 20 ], mixed $authorid[, mixed $sort_field = 'title' ][, mixed $sort_order = 'asc' ]) : mixed
Parameters
$from : mixed = 1
$perpage : mixed = 20
$authorid : mixed
$sort_field : mixed = 'title'
$sort_order : mixed = 'asc'
Tags
uses
Get

info on every Blog Channel

Return values
mixed

array containing the blog channel info we need

getBlogSidebarModules()

Returns the widget instances that are used for blog sidebar.

public getBlogSidebarModules(mixed $channelId) : array<string|int, mixed>

This method should be used only for owner configuration of the blog, not rendering

Parameters
$channelId : mixed
Return values
array<string|int, mixed>

An array of widget instances, keyed by widget instance ID

array(
    widget instance ID => array(
        title
        widgetid
        widgetinstanceid
        hidden (int flag)
    )
)

getCategories()

returns the category list- direct children of the social group channel

public getCategories() : mixed
Return values
mixed

array of nodeid => title

getChannelAdminPerms()

Returns a list of channel owner permissions and their values

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

List of permissions and their values: canmanageusers (value from moderatorpermissions:canaddowners) canmoderate (value from moderatorpermissions:canmoderateposts) canconfig (value from forumpermissions2:canconfigchannel) canmanagechannel (value from forumpermissions2:candeletechannel) canstats true

getMembersCount()

Gets the number of members for the given blog channel

public getMembersCount(mixed $nodeid) : int
Parameters
$nodeid : mixed
Return values
int

number of members

getSGChannel()

public getSGChannel() : int
Tags
uses
fetch

the id of the global Social Group Channel

Return values
int

nodeid of actual Main Social Group Channel

getSGInfo()

gets Get info on every SG Channel

public getSGInfo([mixed $options = array() ][, mixed $routeInfo = array() ]) : mixed
Parameters
$options : mixed = array()
$routeInfo : mixed = array()
Return values
mixed

getSGOwnerPerms()

Get the current user's permissions for own stuff (eg. Own groups, own discussions, own messages)

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

of permissions set to yes

instance()

Returns an instance of the API object which translates exceptions to an array Use this method for API clients.

public static instance(string $controller[, bool $refresh_cache = false ]) : vB_Api
Parameters
$controller : string

-- name of the API controller to load

$refresh_cache : bool = false

-- true if we want to force the cache to update with a new api object primarily intended for testing

Return values
vB_Api

instanceInternal()

Returns an instance of the API object which doesn't handle exceptions This should only be used in other API objects, not for clients of the API

public static instanceInternal(string $controller[, bool $refresh_cache = false ]) : vB_Api
Parameters
$controller : string

-- name of the API controller to load

$refresh_cache : bool = false

-- true if we want to force the cache to update with a new api object primarily intended for testing

Return values
vB_Api

isBlogNode()

Determines if the given node is a blog-related node (blog entry).

public isBlogNode(int $nodeId[, array<string|int, mixed> $node = false ]) : bool
Parameters
$nodeId : int
$node : array<string|int, mixed> = false

-- optionally provide the node array to save a lookup

Return values
bool

isChannelMember()

Indicates if the current user is member of a given channelid

public isChannelMember(mixed $channelId) : int
Parameters
$channelId : mixed
Return values
int

Values of the member status. 0 = no member 1 = member 2 = request pending

isChannelModerator()

Indicates if the given user or current user is owner or mod from given channel.

public isChannelModerator(int $channelId, int $checkUser) : bool

Owner can't leave the channel ditto for mods (managers or contributors).

Parameters
$channelId : int

The channel id we are checking.

$checkUser : int

Optional, the user id we're checking if we're not checking the current user

Return values
bool

Indicaticates if user is owner/mod

isSGChannel()

Determines if the given node is a Social group channel.

public isSGChannel(int $nodeid) : bool
Parameters
$nodeid : int
Return values
bool

isSGNode()

Determines if the given node is a blog-related node (blog entry).

public isSGNode(mixed $nodeId[, mixed $node = false ]) : bool
Parameters
$nodeId : mixed
$node : mixed = false
Return values
bool

leaveChannel()

Handles leave in special channels for the current or specified user.

public leaveChannel(int $channelId, int $leavingUser) : bool

This is used basically for social groups handling the join/subscribe logical but we are implementing here in case requirements change and join/subscribe gets into blogs too.

Parameters
$channelId : int

The channel id we are leaving

$leavingUser : int

Optional, userid of the user leaving the channel. If not provided, current user will leave the channel.

Return values
bool

Indicates if action succeeded.

map_vb4_input_to_vb5()

Returns vb5 api method name.

public static map_vb4_input_to_vb5(string $method, array<string|int, mixed> &$request) : string

May alter request array.

Parameters
$method : string

-- vb4 method name

$request : array<string|int, mixed>

-- $_REQUEST array for this api request

Return values
string

map_vb5_errors_to_vb4()

Alters the error array in any way necessary to interface correctly with vb4.

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

-- vb4 method name

$data : array<string|int, mixed>

-- error array from vb5

Return values
mixed

map_vb5_output_to_vb4()

Alters the output array in any way necessary to interface correctly with vb4.

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

-- vb4 method name

$data : array<string|int, mixed>

-- output array from vb5

Return values
mixed

removeChannelMember()

Handles removing a channel member

public removeChannelMember(int $channelId, int $userId) : bool
Parameters
$channelId : int

The channel id of that $userId is leaving

$userId : int

Userid of the user leaving the channel.

Return values
bool

Indicates if the user was removed successfully

removeChannelModerator()

Handles removing a channel moderator

public removeChannelModerator(int $channelId, int $userId) : bool
Parameters
$channelId : int

The channel id of that $userId is leaving

$userId : int

Userid of the user leaving the channel.

Return values
bool

Indicates if the moderator was removed successfully

saveBlogSidebarModules()

Saves channel configuration for blog sidebar

public saveBlogSidebarModules(int $blogId, array<string|int, mixed> $modules) : mixed
Parameters
$blogId : int
$modules : array<string|int, mixed>

An array in which each element contains:

  • widgetinstanceid (int)
  • hide (bool)
Tags
throws
vB_Exception_Api

no_permission

Return values
mixed

saveCategory()

creates a new category

public saveCategory(mixed $nodeId, mixed $input) : int
Parameters
$nodeId : mixed
$input : mixed
Return values
int

nodeid of the created category

subscribeChannel()

Handles subscription in special channels for the current user.

public subscribeChannel(int $channelId) : bool

This is used basically for social groups subscription handling the join/subscribe logical but we are implementing here in case requirements change and join/subscribe gets into blogs too.

Parameters
$channelId : int
Return values
bool

Indicates if subscription succeeded.

userCanComment()

Returns whether current user can comment in the blog or not

public userCanComment(mixed $blogPosts) : array<string|int, mixed>
Parameters
$blogPosts : mixed
Return values
array<string|int, mixed>
  • Returns an array with nodeid as key and value for "user can comment"? 0 : No (Commenting is disabled for the blog post or the blog channel) -1: No (User is not logged in and Guests have no permission to comment -2: No (User is logged in but is not subscribed to the blog post - permission to comment is set for subscribers only) 1 : Yes

__construct()

protected __construct() : mixed
Return values
mixed

buildPaginationURLs()

Builds pagination previous and next URLs.

protected buildPaginationURLs([mixed $page = 1 ][, mixed $totalpages = 1 ][, mixed $routeInfo = array() ]) : array<string|int, mixed>
Parameters
$page : mixed = 1
$totalpages : mixed = 1
$routeInfo : mixed = array()
Return values
array<string|int, mixed>

The pagination array containing prevurl and nexturl. Returns false if routeId is not specified or invalid or if there is only one page.

checkHasAdminPermission()

Determines if the calling user has the given admin permission, and if not throws an exception

protected checkHasAdminPermission(string|array<string|int, mixed> $adminPermission) : none

Checks for:

  • A valid CP Session
  • The passed adminpermission.
Parameters
$adminPermission : string|array<string|int, mixed>

The admin permission to check. If an array then the check passes if the user has any of the permissions given.

Tags
throws
inlinemodauth_required

-- The current session is not a mod/admin session

throws
nopermission_loggedin

-- The user does not have the given permission

throws
no_permission

-- The user is not logged in at all.

Return values
none

checkHasPermission()

Determines if the calling user has the given bitfield permission, and if not, throws a 'no_permission' exception.

protected checkHasPermission(string $group, string $permission) : none
Parameters
$group : string

The permission group where the permission is located

$permission : string

The permission to check

Tags
throws
no_permission
Return values
none

checkIsLoggedIn()

Determines if the calling user has the given admin permission, and if not throws an exception

protected checkIsLoggedIn() : mixed
Return values
mixed

createChannel()

Check validity of data passed in and create a blog or group channel

protected createChannel(array<string|int, mixed> $input, int $channelid, int $channelConvTemplateid, int $channelPgTemplateId, int $ownerSystemGroupId) : int
Parameters
$input : array<string|int, mixed>
$channelid : int
$channelConvTemplateid : int
$channelPgTemplateId : int
$ownerSystemGroupId : int
Return values
int

The nodeid of the new blog channel.

doMembersCount()

Returns the number of members for the channel (blog or group)

protected doMembersCount(mixed $nodeid) : int
Parameters
$nodeid : mixed
Return values
int

Number of members

getApiClass()

protected static getApiClass(mixed $controller[, mixed $errorCheck = true ]) : mixed
Parameters
$controller : mixed
$errorCheck : mixed = true
Return values
mixed

getApiClassNameInternal()

protected static getApiClassNameInternal(mixed $controller) : mixed
Parameters
$controller : mixed
Return values
mixed

hasAdminPermission()

Determines if the calling user has the given admin permission

protected hasAdminPermission(string|array<string|int, mixed> $adminPermission) : bool

Useful if you need to know if the calling user but do not care why they do not have that permission. Generally useful if there is a behavior difference between admins and non admins, but the call can be processed for either.

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

The admin permission to check. If an array then the check passes if the user has any of the permissions given.

Return values
bool

true if checks pass, false otherwise

inDebugMode()

protected inDebugMode() : mixed
Return values
mixed

isDisableFalseReturnOnly()

Checks if method returns false response only when API is disabled.

protected isDisableFalseReturnOnly(mixed $method) : bool
Parameters
$method : mixed
Return values
bool

Indicates whether method returns false response only.

isWhiteListed()

Checks if method is white listed when API is disabled.

protected isWhiteListed(mixed $method) : bool
Parameters
$method : mixed
Return values
bool

Indicates whether method is or is not a white list.

setController()

Set controller

protected setController(mixed $controller) : mixed
Parameters
$controller : mixed
Return values
mixed

cms_vb4_to_vb5_method_mapping()

private static cms_vb4_to_vb5_method_mapping(mixed $method, mixed &$request) : mixed
Parameters
$method : mixed
$request : mixed
Return values
mixed

default_vb4_to_vb5_method_mapping()

private static default_vb4_to_vb5_method_mapping(mixed $method) : mixed
Parameters
$method : mixed
Return values
mixed

hasAdminPermissionInternal()

Internal function to power the previous cover functions

private hasAdminPermissionInternal(mixed $adminPermission) : mixed
@param string|array $adminPermission The admin permission to check.  If an array

then the check passes if the user has any of the permissions given.

Parameters
$adminPermission : mixed
Return values
mixed

remove_nulls()

private static remove_nulls(mixed &$data) : mixed
Parameters
$data : mixed
Return values
mixed

wrapLoggerIfNeeded()

Wrap the api object with the log wrapper class if needed.

private static wrapLoggerIfNeeded(mixed $controller, mixed $api_object) : mixed
Parameters
$controller : mixed
$api_object : mixed
Return values
mixed

Search results