diff options
Diffstat (limited to 'www/wiki/includes/watcheditem/WatchedItemQueryServiceExtension.php')
-rw-r--r-- | www/wiki/includes/watcheditem/WatchedItemQueryServiceExtension.php | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/www/wiki/includes/watcheditem/WatchedItemQueryServiceExtension.php b/www/wiki/includes/watcheditem/WatchedItemQueryServiceExtension.php new file mode 100644 index 00000000..93d50330 --- /dev/null +++ b/www/wiki/includes/watcheditem/WatchedItemQueryServiceExtension.php @@ -0,0 +1,57 @@ +<?php + +use Wikimedia\Rdbms\ResultWrapper; +use Wikimedia\Rdbms\IDatabase; + +/** + * Extension mechanism for WatchedItemQueryService + * + * @since 1.29 + * + * @file + * @ingroup Watchlist + * + * @license GNU GPL v2+ + */ +interface WatchedItemQueryServiceExtension { + + /** + * Modify the WatchedItemQueryService::getWatchedItemsWithRecentChangeInfo() + * query before it's made. + * + * @warning Any joins added *must* join on a unique key of the target table + * unless you really know what you're doing. + * @param User $user + * @param array $options Options from + * WatchedItemQueryService::getWatchedItemsWithRecentChangeInfo() + * @param IDatabase $db Database connection being used for the query + * @param array &$tables Tables for Database::select() + * @param array &$fields Fields for Database::select() + * @param array &$conds Conditions for Database::select() + * @param array &$dbOptions Options for Database::select() + * @param array &$joinConds Join conditions for Database::select() + */ + public function modifyWatchedItemsWithRCInfoQuery( User $user, array $options, IDatabase $db, + array &$tables, array &$fields, array &$conds, array &$dbOptions, array &$joinConds + ); + + /** + * Modify the results from WatchedItemQueryService::getWatchedItemsWithRecentChangeInfo() + * before they're returned. + * + * @param User $user + * @param array $options Options from + * WatchedItemQueryService::getWatchedItemsWithRecentChangeInfo() + * @param IDatabase $db Database connection being used for the query + * @param array &$items array of pairs ( WatchedItem $watchedItem, string[] $recentChangeInfo ). + * May be truncated if necessary, in which case $startFrom must be updated. + * @param ResultWrapper|bool $res Database query result + * @param array|null &$startFrom Continuation value. If you truncate $items, set this to + * [ $recentChangeInfo['rc_timestamp'], $recentChangeInfo['rc_id'] ] from the first item + * removed. + */ + public function modifyWatchedItemsWithRCInfo( User $user, array $options, IDatabase $db, + array &$items, $res, &$startFrom + ); + +} |