32 private $commentStore;
51 $this->commentStore = $commentStore;
52 $this->dbProvider = $dbProvider;
53 $this->logFormatterFactory = $logFormatterFactory;
63 return 'log_timestamp';
73 return 'log_user_text';
83 return LogEventsList::userCan(
84 $this->row, LogPage::DELETED_RESTRICTED, $this->list->getAuthority()
95 return (
int)$this->row->log_deleted;
100 $dbw = $this->dbProvider->getPrimaryDatabase();
102 $dbw->newUpdateQueryBuilder()
103 ->update(
'logging' )
104 ->set( [
'log_deleted' => $bits ] )
106 'log_id' => $this->row->log_id,
107 'log_deleted' => $this->getBits()
109 ->caller( __METHOD__ )->execute();
111 if ( !$dbw->affectedRows() ) {
116 $dbw->newUpdateQueryBuilder()
117 ->update(
'recentchanges' )
119 'rc_deleted' => $bits,
120 'rc_patrolled' => RecentChange::PRC_AUTOPATROLLED
123 'rc_logid' => $this->row->log_id,
124 'rc_timestamp' => $this->row->log_timestamp
126 ->caller( __METHOD__ )->execute();
133 $date = htmlspecialchars( $this->list->getLanguage()->userTimeAndDate(
134 $this->row->log_timestamp, $this->list->getUser() ) );
135 $title =
Title::makeTitle( $this->row->log_namespace, $this->row->log_title );
136 $formatter = $this->logFormatterFactory->newFromRow( $this->row );
137 $formatter->setContext( $this->list->getContext() );
138 $formatter->setAudience( LogFormatter::FOR_THIS_USER );
143 $this->list->msg(
'log' )->text(),
145 [
'page' => $title->getPrefixedText() ]
147 $loglink = $this->list->msg(
'parentheses' )->rawParams( $loglink )->escaped();
149 $action = $formatter->getActionText();
151 $dir = $this->list->getLanguage()->getDir();
152 $comment = Html::rawElement(
'bdi', [
'dir' => $dir ], $formatter->getComment() );
154 $content =
"$loglink $date $action $comment";
156 if ( $this->row->ts_tags ) {
157 [ $tagSummary, $classes ] = ChangeTags::formatSummaryRow(
160 $this->list->getContext()
162 $content .=
" $tagSummary";
163 $attribs[
'class'] = $classes;
165 return Html::rawElement(
'li', $attribs, $content );
170 $logEntry = DatabaseLogEntry::newFromRow( $this->row );
171 $user = $this->list->getAuthority();
173 'id' => $logEntry->getId(),
174 'type' => $logEntry->getType(),
175 'action' => $logEntry->getSubtype(),
176 'userhidden' => (bool)$logEntry->isDeleted( LogPage::DELETED_USER ),
177 'commenthidden' => (bool)$logEntry->isDeleted( LogPage::DELETED_COMMENT ),
178 'actionhidden' => (bool)$logEntry->isDeleted( LogPage::DELETED_ACTION ),
181 if ( LogEventsList::userCan( $this->row, LogPage::DELETED_ACTION, $user ) ) {
182 $ret[
'params'] = $this->logFormatterFactory->newFromEntry( $logEntry )->formatParametersForApi();
184 if ( LogEventsList::userCan( $this->row, LogPage::DELETED_USER, $user ) ) {
186 'userid' => $this->row->log_user ?? 0,
187 'user' => $this->row->log_user_text,
190 if ( LogEventsList::userCan( $this->row, LogPage::DELETED_COMMENT, $user ) ) {
192 'comment' => $this->commentStore->getComment(
'log_comment', $this->row )->text,
201class_alias( RevDelLogItem::class,
'RevDelLogItem' );
A value class to process existing log entries.
Class to simplify the use of log pages.
Parent class for all special pages.
static getTitleFor( $name, $subpage=false, $fragment='')
Get a localised Title object for a specified special page name If you don't need a full Title object,...