vB_Api_Blog
extends vB_Api
in package
vB_Api_Blog
Tags
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
- $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
- 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
- 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.
- 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
- 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.
- 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
- 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
- Constructor
- 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
$db
Database object.
protected
vB_Database
$db
$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
Return values
bool —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> —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
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
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
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
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) ) )
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
Tags
Return values
int —number of members
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
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
Return values
mixed —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()
Constructor
protected
__construct() : mixed
Return values
mixed —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
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
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