MediaWiki  master
MediaWiki\User\TalkPageNotificationManager Class Reference

Manages user talk page notifications. More...

Collaboration diagram for MediaWiki\User\TalkPageNotificationManager:

Public Member Functions

 __construct (ServiceOptions $serviceOptions, ILoadBalancer $loadBalancer, ReadOnlyMode $readOnlyMode, RevisionLookup $revisionLookup)
 
 clearInstanceCache (UserIdentity $user)
 Remove the cached newtalk status for the given user. More...
 
 getLatestSeenMessageTimestamp (UserIdentity $user)
 Returns the timestamp of the latest revision of the user talkpage that the user has already seen in TS_MW format. More...
 
 removeUserHasNewMessages (UserIdentity $user)
 Remove the new messages status. More...
 
 setUserHasNewMessages (UserIdentity $user, RevisionRecord $curRev=null)
 Update the talk page messages status. More...
 
 userHasNewMessages (UserIdentity $user)
 Check if the user has new messages. More...
 

Public Attributes

const CONSTRUCTOR_OPTIONS
 

Private Member Functions

 dbCheckNewUserMessages (UserIdentity $user)
 Internal uncached check for new messages. More...
 
 dbDeleteNewUserMessages (UserIdentity $user)
 Clear the new messages flag for the given user. More...
 
 dbUpdateNewUserMessages (UserIdentity $user, RevisionRecord $curRev=null)
 Add or update the new messages flag. More...
 
 getCacheKey (UserIdentity $user)
 Gets a unique key for various caches. More...
 
 getQueryFieldAndId (UserIdentity $user)
 Get the field name and id for the user_newtalk table query. More...
 
 isTalkDisabled (UserIdentity $user)
 Check whether the talk page is disabled for a user. More...
 

Private Attributes

bool $disableAnonTalk
 
ILoadBalancer $loadBalancer
 
ReadOnlyMode $readOnlyMode
 
RevisionLookup $revisionLookup
 
array $userMessagesCache = []
 

Detailed Description

Manages user talk page notifications.

Since
1.35

Definition at line 35 of file TalkPageNotificationManager.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\User\TalkPageNotificationManager::__construct ( ServiceOptions  $serviceOptions,
ILoadBalancer  $loadBalancer,
ReadOnlyMode  $readOnlyMode,
RevisionLookup  $revisionLookup 
)

Member Function Documentation

◆ clearInstanceCache()

MediaWiki\User\TalkPageNotificationManager::clearInstanceCache ( UserIdentity  $user)

Remove the cached newtalk status for the given user.

Definition at line 172 of file TalkPageNotificationManager.php.

References MediaWiki\User\TalkPageNotificationManager\getCacheKey().

◆ dbCheckNewUserMessages()

MediaWiki\User\TalkPageNotificationManager::dbCheckNewUserMessages ( UserIdentity  $user)
private

Internal uncached check for new messages.

Parameters
UserIdentity$user
Returns
bool True if the user has new messages

Definition at line 191 of file TalkPageNotificationManager.php.

References $dbr, DB_REPLICA, and MediaWiki\User\TalkPageNotificationManager\getQueryFieldAndId().

Referenced by MediaWiki\User\TalkPageNotificationManager\userHasNewMessages().

◆ dbDeleteNewUserMessages()

MediaWiki\User\TalkPageNotificationManager::dbDeleteNewUserMessages ( UserIdentity  $user)
private

Clear the new messages flag for the given user.

Parameters
UserIdentity$user
Returns
bool True if successful, false otherwise

Definition at line 245 of file TalkPageNotificationManager.php.

References DB_MASTER, and MediaWiki\User\TalkPageNotificationManager\getQueryFieldAndId().

Referenced by MediaWiki\User\TalkPageNotificationManager\removeUserHasNewMessages().

◆ dbUpdateNewUserMessages()

MediaWiki\User\TalkPageNotificationManager::dbUpdateNewUserMessages ( UserIdentity  $user,
RevisionRecord  $curRev = null 
)
private

Add or update the new messages flag.

Parameters
UserIdentity$user
RevisionRecord | null$curRevNew, as yet unseen revision of the user talk page. Ignored if null.
Returns
bool True if successful, false otherwise

Definition at line 210 of file TalkPageNotificationManager.php.

References DB_MASTER, and MediaWiki\User\TalkPageNotificationManager\getQueryFieldAndId().

Referenced by MediaWiki\User\TalkPageNotificationManager\setUserHasNewMessages().

◆ getCacheKey()

◆ getLatestSeenMessageTimestamp()

MediaWiki\User\TalkPageNotificationManager::getLatestSeenMessageTimestamp ( UserIdentity  $user)

Returns the timestamp of the latest revision of the user talkpage that the user has already seen in TS_MW format.

If the user has no new messages, returns null

Parameters
UserIdentity$user
Returns
string|null

Definition at line 140 of file TalkPageNotificationManager.php.

References $dbr, DB_REPLICA, MediaWiki\User\TalkPageNotificationManager\getCacheKey(), MediaWiki\User\TalkPageNotificationManager\getQueryFieldAndId(), and MediaWiki\User\TalkPageNotificationManager\isTalkDisabled().

◆ getQueryFieldAndId()

◆ isTalkDisabled()

◆ removeUserHasNewMessages()

◆ setUserHasNewMessages()

MediaWiki\User\TalkPageNotificationManager::setUserHasNewMessages ( UserIdentity  $user,
RevisionRecord  $curRev = null 
)

Update the talk page messages status.

Parameters
UserIdentity$user
RevisionRecord | null$curRevNew, as yet unseen revision of the user talk page. Null is acceptable in case the revision is not known. This will indicate that new messages exist, but will not affect the latest seen message timestamp

Definition at line 104 of file TalkPageNotificationManager.php.

References MediaWiki\User\TalkPageNotificationManager\dbUpdateNewUserMessages(), MediaWiki\User\TalkPageNotificationManager\getCacheKey(), and MediaWiki\User\TalkPageNotificationManager\isTalkDisabled().

Referenced by MediaWiki\User\WatchlistNotificationManager\clearTitleUserNotifications().

◆ userHasNewMessages()

MediaWiki\User\TalkPageNotificationManager::userHasNewMessages ( UserIdentity  $user)

Member Data Documentation

◆ $disableAnonTalk

bool MediaWiki\User\TalkPageNotificationManager::$disableAnonTalk
private

◆ $loadBalancer

ILoadBalancer MediaWiki\User\TalkPageNotificationManager::$loadBalancer
private

◆ $readOnlyMode

ReadOnlyMode MediaWiki\User\TalkPageNotificationManager::$readOnlyMode
private

◆ $revisionLookup

RevisionLookup MediaWiki\User\TalkPageNotificationManager::$revisionLookup
private

◆ $userMessagesCache

array MediaWiki\User\TalkPageNotificationManager::$userMessagesCache = []
private

Definition at line 42 of file TalkPageNotificationManager.php.

◆ CONSTRUCTOR_OPTIONS

const MediaWiki\User\TalkPageNotificationManager::CONSTRUCTOR_OPTIONS
Initial value:
= [
'DisableAnonTalk'
]

Definition at line 37 of file TalkPageNotificationManager.php.


The documentation for this class was generated from the following file: