MediaWiki REL1_34
NoWriteWatchedItemStore.php
Go to the documentation of this file.
1<?php
25
31
35 private $actualStore;
36
37 const DB_READONLY_ERROR = 'The watchlist is currently readonly.';
38
44 $this->actualStore = $actualStore;
45 }
46
47 public function countWatchedItems( UserIdentity $user ) {
48 return $this->actualStore->countWatchedItems( $user );
49 }
50
51 public function countWatchers( LinkTarget $target ) {
52 return $this->actualStore->countWatchers( $target );
53 }
54
55 public function countVisitingWatchers( LinkTarget $target, $threshold ) {
56 return $this->actualStore->countVisitingWatchers( $target, $threshold );
57 }
58
59 public function countWatchersMultiple( array $targets, array $options = [] ) {
60 return $this->actualStore->countVisitingWatchersMultiple(
61 $targets,
62 $options['minimumWatchers'] ?? null
63 );
64 }
65
67 array $targetsWithVisitThresholds,
68 $minimumWatchers = null
69 ) {
70 return $this->actualStore->countVisitingWatchersMultiple(
71 $targetsWithVisitThresholds,
72 $minimumWatchers
73 );
74 }
75
76 public function getWatchedItem( UserIdentity $user, LinkTarget $target ) {
77 return $this->actualStore->getWatchedItem( $user, $target );
78 }
79
80 public function loadWatchedItem( UserIdentity $user, LinkTarget $target ) {
81 return $this->actualStore->loadWatchedItem( $user, $target );
82 }
83
84 public function getWatchedItemsForUser( UserIdentity $user, array $options = [] ) {
85 return $this->actualStore->getWatchedItemsForUser( $user, $options );
86 }
87
88 public function isWatched( UserIdentity $user, LinkTarget $target ) {
89 return $this->actualStore->isWatched( $user, $target );
90 }
91
92 public function getNotificationTimestampsBatch( UserIdentity $user, array $targets ) {
93 return $this->actualStore->getNotificationTimestampsBatch( $user, $targets );
94 }
95
96 public function countUnreadNotifications( UserIdentity $user, $unreadLimit = null ) {
97 return $this->actualStore->countUnreadNotifications( $user, $unreadLimit );
98 }
99
100 public function duplicateAllAssociatedEntries( LinkTarget $oldTarget, LinkTarget $newTarget ) {
101 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
102 }
103
104 public function duplicateEntry( LinkTarget $oldTarget, LinkTarget $newTarget ) {
105 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
106 }
107
108 public function addWatch( UserIdentity $user, LinkTarget $target ) {
109 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
110 }
111
112 public function addWatchBatchForUser( UserIdentity $user, array $targets ) {
113 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
114 }
115
116 public function removeWatch( UserIdentity $user, LinkTarget $target ) {
117 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
118 }
119
121 UserIdentity $user,
122 $timestamp,
123 array $targets = []
124 ) {
125 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
126 }
127
129 UserIdentity $editor, LinkTarget $target, $timestamp
130 ) {
131 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
132 }
133
135 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
136 }
137
139 UserIdentity $user,
141 $force = '',
142 $oldid = 0
143 ) {
144 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
145 }
146
147 public function clearUserWatchedItems( UserIdentity $user ) {
148 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
149 }
150
152 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
153 }
154
155 public function removeWatchBatchForUser( UserIdentity $user, array $titles ) {
156 throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
157 }
158
160 $timestamp, UserIdentity $user, LinkTarget $target
161 ) {
162 return wfTimestampOrNull( TS_MW, $timestamp );
163 }
164}
wfTimestampOrNull( $outputtype=TS_UNIX, $ts=null)
Return a formatted timestamp, or null if input is null.
clearUserWatchedItemsUsingJobQueue(UserIdentity $user)
Queues a job that will clear the users watchlist using the Job Queue.
countVisitingWatchersMultiple(array $targetsWithVisitThresholds, $minimumWatchers=null)
Number of watchers of each page who have visited recent edits to that page.
addWatch(UserIdentity $user, LinkTarget $target)
Must be called separately for Subject & Talk namespaces.
updateNotificationTimestamp(UserIdentity $editor, LinkTarget $target, $timestamp)
removeWatchBatchForUser(UserIdentity $user, array $titles)
getNotificationTimestampsBatch(UserIdentity $user, array $targets)
resetNotificationTimestamp(UserIdentity $user, LinkTarget $title, $force='', $oldid=0)
Reset the notification timestamp of this entry.
countVisitingWatchers(LinkTarget $target, $threshold)
Number of page watchers who also visited a "recent" edit.
addWatchBatchForUser(UserIdentity $user, array $targets)
setNotificationTimestampsForUser(UserIdentity $user, $timestamp, array $targets=[])
isWatched(UserIdentity $user, LinkTarget $target)
Must be called separately for Subject & Talk namespaces.
getWatchedItem(UserIdentity $user, LinkTarget $target)
Get an item (may be cached)
getLatestNotificationTimestamp( $timestamp, UserIdentity $user, LinkTarget $target)
Convert $timestamp to TS_MW or return null if the page was visited since then by $user.
getWatchedItemsForUser(UserIdentity $user, array $options=[])
WatchedItemStoreInterface $actualStore
loadWatchedItem(UserIdentity $user, LinkTarget $target)
Loads an item from the db.
clearUserWatchedItems(UserIdentity $user)
Queues a job that will clear the users watchlist using the Job Queue.
removeWatch(UserIdentity $user, LinkTarget $target)
Removes an entry for the UserIdentity watching the LinkTarget Must be called separately for Subject &...
__construct(WatchedItemStoreInterface $actualStore)
Initialy set WatchedItemStore that will be used in cases where writing is not needed.
countWatchersMultiple(array $targets, array $options=[])
countWatchedItems(UserIdentity $user)
Count the number of individual items that are watched by the user.
duplicateAllAssociatedEntries(LinkTarget $oldTarget, LinkTarget $newTarget)
Check if the given title already is watched by the user, and if so add a watch for the new title.
resetAllNotificationTimestampsForUser(UserIdentity $user)
Reset all watchlist notificaton timestamps for a user using the job queue.
duplicateEntry(LinkTarget $oldTarget, LinkTarget $newTarget)
Check if the given title already is watched by the user, and if so add a watch for the new title.
countUnreadNotifications(UserIdentity $user, $unreadLimit=null)
Interface for objects representing user identity.