Documentation

Forum
in package

Forum class

Tags
author

Samerton

version
2.0.0-pr13
license

MIT

Table of Contents

Properties

$_count_cache  : array<string|int, mixed>
$_db  : DB
$_permission_cache  : array<string|int, mixed>

Methods

__construct()  : mixed
canEditTopic()  : bool
Determine if the groups can edit [psts] in the forum or not.
canModerateForum()  : bool
Determine if groups have permission to moderate a forum.
canPostReply()  : bool
Determine if the groups can post replies in the forum or not.
canPostTopic()  : bool
Determine if the groups can post topics in the forum or not.
canViewForum()  : bool
Determine if the groups can view the forum or not.
canViewOtherTopics()  : bool
canViewTopicInForum()  : bool
Determine if the user can view a topic in a forum
forumExist()  : bool
Determine if a forum exists (in the context of a specific user)
getAccessibleLabels()  : array<string|int, mixed>
Get an array returned of accessible labels when providing group ids
getAnySubforums()  : array<string|int, mixed>
Get any subforums at any level for a forum
getBannedTerms()  : array<string|int, mixed>
Get banned terms from the Forum module
getForumTitle()  : string
Get the title of a specific forum.
getIndividualPost()  : array<string|int, mixed>|false
Get data of a specific post.
getLatestDiscussions()  : array<string|int, mixed>
Get the newest x topics this user/group can view
getLatestNews()  : array<string|int, mixed>
Get the latest news posts to display on homepage.
getPostCount()  : int
Get a user's post count
getPosts()  : array<string|int, mixed>|false
Get posts on a specific topic.
getTopicCount()  : int
Get a user's topic count
listAllForums()  : array<string|int, mixed>
Get an array of forums a user can access, including topic information
titleToURL()  : string
topicExist()  : bool
Determine if a topic exists or not.
updateForumLatestPosts()  : void
Update the database with the new latest forum posts.
updateTopicLatestPosts()  : void
Update the database with the new latest forum topic posts.
getLatestPostInOwnTopicForum()  : array<string|int, mixed>|null
Get the latest post in a "View own topic" forum This could be a topic created by the user, or a sticky topic
hasPermission()  : bool
Determines if any groups have permission to do a certain action on a forum

Properties

$_count_cache

private static array<string|int, mixed> $_count_cache = []

$_permission_cache

private static array<string|int, mixed> $_permission_cache = []

Methods

__construct()

public __construct() : mixed

canEditTopic()

Determine if the groups can edit [psts] in the forum or not.

public canEditTopic(int $forum_id[, array<string|int, mixed> $groups = [0] ]) : bool
Parameters
$forum_id : int

The forum ID

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

The user's groups

Return values
bool —

Whether the groups can edit posts in the forum or not

canModerateForum()

Determine if groups have permission to moderate a forum.

public canModerateForum([int|null $forum_id = null ][, array<string|int, mixed> $groups = [0] ]) : bool
Parameters
$forum_id : int|null = null

The forum ID to check.

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

The groups to check.

Return values
bool —

Whether the groups can moderate the forum.

canPostReply()

Determine if the groups can post replies in the forum or not.

public canPostReply(int $forum_id[, array<string|int, mixed> $groups = [0] ]) : bool
Parameters
$forum_id : int

The forum ID

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

The user's groups

Return values
bool —

Whether the groups can post replies in the forum or not

canPostTopic()

Determine if the groups can post topics in the forum or not.

public canPostTopic(int $forum_id[, array<string|int, mixed> $groups = [0] ]) : bool
Parameters
$forum_id : int

The forum ID

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

The user's groups

Return values
bool —

Whether the groups can post topics in the forum or not

canViewForum()

Determine if the groups can view the forum or not.

public canViewForum(int $forum_id[, array<string|int, mixed> $groups = [0] ]) : bool
Parameters
$forum_id : int

The forum ID

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

The user's groups

Return values
bool —

Whether the groups can view the forum or not

canViewOtherTopics()

public canViewOtherTopics(int $forum_id[, array<string|int, mixed> $groups = [0] ]) : bool
Parameters
$forum_id : int
$groups : array<string|int, mixed> = [0]
Return values
bool

canViewTopicInForum()

Determine if the user can view a topic in a forum

public canViewTopicInForum(int $forum_id, int $author_id, bool $is_topic_sticky, User|null $user) : bool
Parameters
$forum_id : int

The forum ID for the topic

$author_id : int

The topic author ID

$is_topic_sticky : bool

Whether the topic is sticky or not

$user : User|null

The user

Return values
bool —

Whether the user can view the topic

forumExist()

Determine if a forum exists (in the context of a specific user)

public forumExist(int $forum_id[, array<string|int, mixed> $groups = [0] ]) : bool
Parameters
$forum_id : int

ID of the forum

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

Array of groups the user is in

Return values
bool —

Whether the forum exists or not

getAccessibleLabels()

Get an array returned of accessible labels when providing group ids

public static getAccessibleLabels(array<string|int, mixed> $labels, array<string|int, mixed> $user_groups) : array<string|int, mixed>
Parameters
$labels : array<string|int, mixed>

of label ids

$user_groups : array<string|int, mixed>

array of a user their group ids

Return values
array<string|int, mixed> —

An array of the ids of the labels the user has access to

getAnySubforums()

Get any subforums at any level for a forum

public getAnySubforums(int $forum_id[, array<string|int, mixed> $groups = [0] ][, int $depth = 0 ][, bool|null $onlyOwnTopics = false ][, int|null $user_id = 0 ]) : array<string|int, mixed>
Parameters
$forum_id : int

The forum ID

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

The user groups

$depth : int = 0

The depth of the subforums to get

$onlyOwnTopics : bool|null = false

Whether to only get forums in which the user can only view their own topics (default false)

$user_id : int|null = 0

Current user ID (default 0) - only used if $onlyOwnTopics is true

Return values
array<string|int, mixed> —

Subforums at any level for a forum

getBannedTerms()

Get banned terms from the Forum module

public static getBannedTerms() : array<string|int, mixed>
Return values
array<string|int, mixed> —

Array of banned terms

getForumTitle()

Get the title of a specific forum.

public getForumTitle(int $forum_id) : string
Parameters
$forum_id : int

The forum ID to get the title of.

Return values
string —

The forum title.

getIndividualPost()

Get data of a specific post.

public getIndividualPost(int $post_id) : array<string|int, mixed>|false
Parameters
$post_id : int

The post ID to data about.

Return values
array<string|int, mixed>|false —

The post data or false on failure.

getLatestDiscussions()

Get the newest x topics this user/group can view

public getLatestDiscussions([array<string|int, mixed> $groups = [0] ][, int $user_id = 0 ][, int $limit = 50 ]) : array<string|int, mixed>
Parameters
$groups : array<string|int, mixed> = [0]

Array of groups the user is in

$user_id : int = 0

User ID

$limit : int = 50

Limit of topics to return, default 50

Return values
array<string|int, mixed> —

Latest topics

getLatestNews()

Get the latest news posts to display on homepage.

public getLatestNews([int $number = 5 ][, array<string|int, mixed> $groups = [0] ]) : array<string|int, mixed>

TODO: can be optimised by including posts in the initial query?

Parameters
$number : int = 5

The number of posts to get.

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

Array containing user's group IDs, default [0] for guests

Return values
array<string|int, mixed> —

The latest news posts.

getPostCount()

Get a user's post count

public getPostCount([int|null $user_id = null ]) : int
Parameters
$user_id : int|null = null

User ID to check

Return values
int —

Number of posts

getPosts()

Get posts on a specific topic.

public getPosts([int|null $tid = null ]) : array<string|int, mixed>|false
Parameters
$tid : int|null = null

The topic ID to check.

Return values
array<string|int, mixed>|false —

Array of topics or false on failure.

getTopicCount()

Get a user's topic count

public getTopicCount([int|null $user_id = null ]) : int
Parameters
$user_id : int|null = null

User ID to check

Return values
int —

Number of topics

listAllForums()

Get an array of forums a user can access, including topic information

public listAllForums([array<string|int, mixed> $groups = [0] ][, int $user_id = 0 ]) : array<string|int, mixed>
Parameters
$groups : array<string|int, mixed> = [0]

Users groups

$user_id : int = 0

User ID

Return values
array<string|int, mixed> —

Array of forums a user can access

titleToURL()

public titleToURL([string $topic = null ]) : string
Parameters
$topic : string = null
Return values
string

topicExist()

Determine if a topic exists or not.

public topicExist(int $topic_id) : bool
Parameters
$topic_id : int

The topic ID

Return values
bool —

Whether the topic exists or not

updateForumLatestPosts()

Update the database with the new latest forum posts.

public updateForumLatestPosts(int $forum_id) : void
Parameters
$forum_id : int

The forum ID to update

updateTopicLatestPosts()

Update the database with the new latest forum topic posts.

public updateTopicLatestPosts(int $topic_id, int|null $forum_id) : void
Parameters
$topic_id : int

The topic ID to update

$forum_id : int|null

The forum ID to update if topic does not exist

getLatestPostInOwnTopicForum()

Get the latest post in a "View own topic" forum This could be a topic created by the user, or a sticky topic

private getLatestPostInOwnTopicForum(int $forumId, int $userId) : array<string|int, mixed>|null
Parameters
$forumId : int
$userId : int
Return values
array<string|int, mixed>|null —

Time of latest post, post creator ID, topic ID

hasPermission()

Determines if any groups have permission to do a certain action on a forum

private hasPermission(int $forum_id, string $required_permission, array<string|int, mixed> $groups) : bool
Parameters
$forum_id : int

ID of the forum

$required_permission : string

Required permission

$groups : array<string|int, mixed>

Array of groups the user is in

Return values
bool —

Whether the groups have permission or not


        
On this page

Search results