57 return 'log_timestamp';
67 return 'log_user_text';
77 return LogEventsList::userCan(
78 $this->row, LogPage::DELETED_RESTRICTED, $this->list->getAuthority()
89 return (
int)$this->row->log_deleted;
94 $dbw = $this->dbProvider->getPrimaryDatabase();
96 $dbw->newUpdateQueryBuilder()
98 ->set( [
'log_deleted' => $bits ] )
100 'log_id' => $this->row->log_id,
101 'log_deleted' => $this->getBits()
103 ->caller( __METHOD__ )->execute();
105 if ( !$dbw->affectedRows() ) {
110 $dbw->newUpdateQueryBuilder()
111 ->update(
'recentchanges' )
113 'rc_deleted' => $bits,
114 'rc_patrolled' => RecentChange::PRC_AUTOPATROLLED
117 'rc_logid' => $this->row->log_id,
118 'rc_timestamp' => $this->row->log_timestamp
120 ->caller( __METHOD__ )->execute();
127 $date = htmlspecialchars( $this->list->getLanguage()->userTimeAndDate(
128 $this->row->log_timestamp, $this->list->getUser() ) );
129 $title =
Title::makeTitle( $this->row->log_namespace, $this->row->log_title );
130 $formatter = $this->logFormatterFactory->newFromRow( $this->row );
131 $formatter->setContext( $this->list->getContext() );
132 $formatter->setAudience( LogFormatter::FOR_THIS_USER );
137 $this->list->msg(
'log' )->text(),
139 [
'page' => $title->getPrefixedText() ]
141 $loglink = $this->list->msg(
'parentheses' )->rawParams( $loglink )->escaped();
143 $action = $formatter->getActionText();
145 $dir = $this->list->getLanguage()->getDir();
146 $comment = Html::rawElement(
'bdi', [
'dir' => $dir ], $formatter->getComment() );
148 $content =
"$loglink $date $action $comment";
150 if ( $this->row->ts_tags ) {
151 [ $tagSummary, $classes ] = $this->changeTagsFormatter->formatTagsAsSummaryList(
153 $this->list->getContext(),
154 $this->list->getAuthority()
156 $content .=
" $tagSummary";
157 $attribs[
'class'] = $classes;
159 return Html::rawElement(
'li', $attribs, $content );
164 $logEntry = DatabaseLogEntry::newFromRow( $this->row );
165 $user = $this->list->getAuthority();
167 'id' => $logEntry->getId(),
168 'type' => $logEntry->getType(),
169 'action' => $logEntry->getSubtype(),
170 'userhidden' => (bool)$logEntry->isDeleted( LogPage::DELETED_USER ),
171 'commenthidden' => (bool)$logEntry->isDeleted( LogPage::DELETED_COMMENT ),
172 'actionhidden' => (bool)$logEntry->isDeleted( LogPage::DELETED_ACTION ),
175 if ( LogEventsList::userCan( $this->row, LogPage::DELETED_ACTION, $user ) ) {
176 $ret[
'params'] = $this->logFormatterFactory->newFromEntry( $logEntry )->formatParametersForApi();
178 if ( LogEventsList::userCan( $this->row, LogPage::DELETED_USER, $user ) ) {
180 'userid' => $this->row->log_user ?? 0,
181 'user' => $this->row->log_user_text,
184 if ( LogEventsList::userCan( $this->row, LogPage::DELETED_COMMENT, $user ) ) {
186 'comment' => $this->commentStore->getComment(
'log_comment', $this->row )->text,
195class_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,...