MediaWiki  REL1_28
LogEntry.php
Go to the documentation of this file.
1 <?php
36 interface LogEntry {
37 
43  public function getType();
44 
50  public function getSubtype();
51 
57  public function getFullType();
58 
64  public function getParameters();
65 
71  public function getPerformer();
72 
78  public function getTarget();
79 
85  public function getTimestamp();
86 
92  public function getComment();
93 
99  public function getDeleted();
100 
105  public function isDeleted( $field );
106 }
107 
113 abstract class LogEntryBase implements LogEntry {
114 
115  public function getFullType() {
116  return $this->getType() . '/' . $this->getSubtype();
117  }
118 
119  public function isDeleted( $field ) {
120  return ( $this->getDeleted() & $field ) === $field;
121  }
122 
129  public function isLegacy() {
130  return false;
131  }
132 
140  public static function makeParamBlob( $params ) {
141  return serialize( (array)$params );
142  }
143 
151  public static function extractParams( $blob ) {
152  return unserialize( $blob );
153  }
154 }
155 
162 
170  public static function getSelectQueryData() {
171  $tables = [ 'logging', 'user' ];
172  $fields = [
173  'log_id', 'log_type', 'log_action', 'log_timestamp',
174  'log_user', 'log_user_text',
175  'log_namespace', 'log_title', // unused log_page
176  'log_comment', 'log_params', 'log_deleted',
177  'user_id', 'user_name', 'user_editcount',
178  ];
179 
180  $joins = [
181  // IPs don't have an entry in user table
182  'user' => [ 'LEFT JOIN', 'log_user=user_id' ],
183  ];
184 
185  return [
186  'tables' => $tables,
187  'fields' => $fields,
188  'conds' => [],
189  'options' => [],
190  'join_conds' => $joins,
191  ];
192  }
193 
201  public static function newFromRow( $row ) {
202  $row = (object)$row;
203  if ( isset( $row->rc_logid ) ) {
204  return new RCDatabaseLogEntry( $row );
205  } else {
206  return new self( $row );
207  }
208  }
209 
211  protected $row;
212 
214  protected $performer;
215 
217  protected $params;
218 
220  protected $revId = null;
221 
223  protected $legacy;
224 
225  protected function __construct( $row ) {
226  $this->row = $row;
227  }
228 
234  public function getId() {
235  return (int)$this->row->log_id;
236  }
237 
243  protected function getRawParameters() {
244  return $this->row->log_params;
245  }
246 
247  public function isLegacy() {
248  // This extracts the property
249  $this->getParameters();
250  return $this->legacy;
251  }
252 
253  public function getType() {
254  return $this->row->log_type;
255  }
256 
257  public function getSubtype() {
258  return $this->row->log_action;
259  }
260 
261  public function getParameters() {
262  if ( !isset( $this->params ) ) {
263  $blob = $this->getRawParameters();
264  MediaWiki\suppressWarnings();
266  MediaWiki\restoreWarnings();
267  if ( $params !== false ) {
268  $this->params = $params;
269  $this->legacy = false;
270  } else {
271  $this->params = LogPage::extractParams( $blob );
272  $this->legacy = true;
273  }
274 
275  if ( isset( $this->params['associated_rev_id'] ) ) {
276  $this->revId = $this->params['associated_rev_id'];
277  unset( $this->params['associated_rev_id'] );
278  }
279  }
280 
281  return $this->params;
282  }
283 
284  public function getAssociatedRevId() {
285  // This extracts the property
286  $this->getParameters();
287  return $this->revId;
288  }
289 
290  public function getPerformer() {
291  if ( !$this->performer ) {
292  $userId = (int)$this->row->log_user;
293  if ( $userId !== 0 ) {
294  // logged-in users
295  if ( isset( $this->row->user_name ) ) {
296  $this->performer = User::newFromRow( $this->row );
297  } else {
298  $this->performer = User::newFromId( $userId );
299  }
300  } else {
301  // IP users
302  $userText = $this->row->log_user_text;
303  $this->performer = User::newFromName( $userText, false );
304  }
305  }
306 
307  return $this->performer;
308  }
309 
310  public function getTarget() {
311  $namespace = $this->row->log_namespace;
312  $page = $this->row->log_title;
313  $title = Title::makeTitle( $namespace, $page );
314 
315  return $title;
316  }
317 
318  public function getTimestamp() {
319  return wfTimestamp( TS_MW, $this->row->log_timestamp );
320  }
321 
322  public function getComment() {
323  return $this->row->log_comment;
324  }
325 
326  public function getDeleted() {
327  return $this->row->log_deleted;
328  }
329 }
330 
332 
333  public function getId() {
334  return $this->row->rc_logid;
335  }
336 
337  protected function getRawParameters() {
338  return $this->row->rc_params;
339  }
340 
341  public function getAssociatedRevId() {
342  return $this->row->rc_this_oldid;
343  }
344 
345  public function getType() {
346  return $this->row->rc_log_type;
347  }
348 
349  public function getSubtype() {
350  return $this->row->rc_log_action;
351  }
352 
353  public function getPerformer() {
354  if ( !$this->performer ) {
355  $userId = (int)$this->row->rc_user;
356  if ( $userId !== 0 ) {
357  $this->performer = User::newFromId( $userId );
358  } else {
359  $userText = $this->row->rc_user_text;
360  // Might be an IP, don't validate the username
361  $this->performer = User::newFromName( $userText, false );
362  }
363  }
364 
365  return $this->performer;
366  }
367 
368  public function getTarget() {
369  $namespace = $this->row->rc_namespace;
370  $page = $this->row->rc_title;
371  $title = Title::makeTitle( $namespace, $page );
372 
373  return $title;
374  }
375 
376  public function getTimestamp() {
377  return wfTimestamp( TS_MW, $this->row->rc_timestamp );
378  }
379 
380  public function getComment() {
381  return $this->row->rc_comment;
382  }
383 
384  public function getDeleted() {
385  return $this->row->rc_deleted;
386  }
387 }
388 
396  protected $type;
397 
399  protected $subtype;
400 
402  protected $parameters = [];
403 
405  protected $relations = [];
406 
408  protected $performer;
409 
411  protected $target;
412 
414  protected $timestamp;
415 
417  protected $comment = '';
418 
420  protected $revId = 0;
421 
423  protected $tags = null;
424 
426  protected $deleted;
427 
429  protected $id;
430 
432  protected $isPatrollable = false;
433 
435  protected $legacy = false;
436 
444  public function __construct( $type, $subtype ) {
445  $this->type = $type;
446  $this->subtype = $subtype;
447  }
448 
470  public function setParameters( $parameters ) {
471  $this->parameters = $parameters;
472  }
473 
481  public function setRelations( array $relations ) {
482  $this->relations = $relations;
483  }
484 
491  public function setPerformer( User $performer ) {
492  $this->performer = $performer;
493  }
494 
501  public function setTarget( Title $target ) {
502  $this->target = $target;
503  }
504 
511  public function setTimestamp( $timestamp ) {
512  $this->timestamp = $timestamp;
513  }
514 
521  public function setComment( $comment ) {
522  $this->comment = $comment;
523  }
524 
534  public function setAssociatedRevId( $revId ) {
535  $this->revId = $revId;
536  }
537 
544  public function setTags( $tags ) {
545  if ( is_string( $tags ) ) {
546  $tags = [ $tags ];
547  }
548  $this->tags = $tags;
549  }
550 
560  public function setIsPatrollable( $patrollable ) {
561  $this->isPatrollable = (bool)$patrollable;
562  }
563 
570  public function setLegacy( $legacy ) {
571  $this->legacy = $legacy;
572  }
573 
580  public function setDeleted( $deleted ) {
581  $this->deleted = $deleted;
582  }
583 
591  public function insert( IDatabase $dbw = null ) {
593 
594  $dbw = $dbw ?: wfGetDB( DB_MASTER );
595  $id = $dbw->nextSequenceValue( 'logging_log_id_seq' );
596 
597  if ( $this->timestamp === null ) {
598  $this->timestamp = wfTimestampNow();
599  }
600 
601  // Trim spaces on user supplied text
602  $comment = trim( $this->getComment() );
603 
604  // Truncate for whole multibyte characters.
605  $comment = $wgContLang->truncate( $comment, 255 );
606 
607  $params = $this->getParameters();
609 
610  // Additional fields for which there's no space in the database table schema
611  $revId = $this->getAssociatedRevId();
612  if ( $revId ) {
613  $params['associated_rev_id'] = $revId;
614  $relations['associated_rev_id'] = $revId;
615  }
616 
617  $data = [
618  'log_id' => $id,
619  'log_type' => $this->getType(),
620  'log_action' => $this->getSubtype(),
621  'log_timestamp' => $dbw->timestamp( $this->getTimestamp() ),
622  'log_user' => $this->getPerformer()->getId(),
623  'log_user_text' => $this->getPerformer()->getName(),
624  'log_namespace' => $this->getTarget()->getNamespace(),
625  'log_title' => $this->getTarget()->getDBkey(),
626  'log_page' => $this->getTarget()->getArticleID(),
627  'log_comment' => $comment,
628  'log_params' => LogEntryBase::makeParamBlob( $params ),
629  ];
630  if ( isset( $this->deleted ) ) {
631  $data['log_deleted'] = $this->deleted;
632  }
633 
634  $dbw->insert( 'logging', $data, __METHOD__ );
635  $this->id = !is_null( $id ) ? $id : $dbw->insertId();
636 
637  $rows = [];
638  foreach ( $relations as $tag => $values ) {
639  if ( !strlen( $tag ) ) {
640  throw new MWException( "Got empty log search tag." );
641  }
642 
643  if ( !is_array( $values ) ) {
644  $values = [ $values ];
645  }
646 
647  foreach ( $values as $value ) {
648  $rows[] = [
649  'ls_field' => $tag,
650  'ls_value' => $value,
651  'ls_log_id' => $this->id
652  ];
653  }
654  }
655  if ( count( $rows ) ) {
656  $dbw->insert( 'log_search', $rows, __METHOD__, 'IGNORE' );
657  }
658 
659  return $this->id;
660  }
661 
669  public function getRecentChange( $newId = 0 ) {
670  $formatter = LogFormatter::newFromEntry( $this );
672  $formatter->setContext( $context );
673 
674  $logpage = SpecialPage::getTitleFor( 'Log', $this->getType() );
675  $user = $this->getPerformer();
676  $ip = "";
677  if ( $user->isAnon() ) {
678  // "MediaWiki default" and friends may have
679  // no IP address in their name
680  if ( IP::isIPAddress( $user->getName() ) ) {
681  $ip = $user->getName();
682  }
683  }
684 
686  $this->getTimestamp(),
687  $logpage,
688  $user,
689  $formatter->getPlainActionText(),
690  $ip,
691  $this->getType(),
692  $this->getSubtype(),
693  $this->getTarget(),
694  $this->getComment(),
696  $newId,
697  $formatter->getIRCActionComment(), // Used for IRC feeds
698  $this->getAssociatedRevId(), // Used for e.g. moves and uploads
699  $this->getIsPatrollable()
700  );
701  }
702 
709  public function publish( $newId, $to = 'rcandudp' ) {
711  function () use ( $newId, $to ) {
712  $log = new LogPage( $this->getType() );
713  if ( !$log->isRestricted() ) {
714  $rc = $this->getRecentChange( $newId );
715 
716  if ( $to === 'rc' || $to === 'rcandudp' ) {
717  // save RC, passing tags so they are applied there
718  $tags = $this->getTags();
719  if ( is_null( $tags ) ) {
720  $tags = [];
721  }
722  $rc->addTags( $tags );
723  $rc->save( 'pleasedontudp' );
724  }
725 
726  if ( $to === 'udp' || $to === 'rcandudp' ) {
727  $rc->notifyRCFeeds();
728  }
729 
730  // Log the autopatrol if the log entry is patrollable
731  if ( $this->getIsPatrollable() &&
732  $rc->getAttribute( 'rc_patrolled' ) === 1
733  ) {
734  PatrolLog::record( $rc, true, $this->getPerformer() );
735  }
736  }
737  },
739  wfGetDB( DB_MASTER )
740  );
741  }
742 
743  public function getType() {
744  return $this->type;
745  }
746 
747  public function getSubtype() {
748  return $this->subtype;
749  }
750 
751  public function getParameters() {
752  return $this->parameters;
753  }
754 
758  public function getPerformer() {
759  return $this->performer;
760  }
761 
765  public function getTarget() {
766  return $this->target;
767  }
768 
769  public function getTimestamp() {
770  $ts = $this->timestamp !== null ? $this->timestamp : wfTimestampNow();
771 
772  return wfTimestamp( TS_MW, $ts );
773  }
774 
775  public function getComment() {
776  return $this->comment;
777  }
778 
783  public function getAssociatedRevId() {
784  return $this->revId;
785  }
786 
791  public function getTags() {
792  return $this->tags;
793  }
794 
801  public function getIsPatrollable() {
802  return $this->isPatrollable;
803  }
804 
809  public function isLegacy() {
810  return $this->legacy;
811  }
812 
813  public function getDeleted() {
814  return (int)$this->deleted;
815  }
816 }
ManualLogEntry\setTimestamp
setTimestamp( $timestamp)
Set the timestamp of when the logged action took place.
Definition: LogEntry.php:511
if
if($IP===false)
Definition: WebStart.php:59
ManualLogEntry\__construct
__construct( $type, $subtype)
Constructor.
Definition: LogEntry.php:444
object
globals will be eliminated from MediaWiki replaced by an application object which would be passed to constructors Whether that would be an convenient solution remains to be but certainly PHP makes such object oriented programming models easier than they were in previous versions For the time being MediaWiki programmers will have to work in an environment with some global context At the time of globals were initialised on startup by MediaWiki of these were configuration which are documented in DefaultSettings php There is no comprehensive documentation for the remaining however some of the most important ones are listed below They are typically initialised either in index php or in Setup php For a description of the see design txt $wgTitle Title object created from the request URL $wgOut OutputPage object for HTTP response $wgUser User object for the user associated with the current request $wgLang Language object selected by user preferences $wgContLang Language object associated with the wiki being viewed $wgParser Parser object Parser extensions register their hooks here $wgRequest WebRequest object
Definition: globals.txt:25
User\newFromId
static newFromId( $id)
Static factory method for creation from a given user ID.
Definition: User.php:548
ManualLogEntry\getTarget
getTarget()
Definition: LogEntry.php:765
RCDatabaseLogEntry
Definition: LogEntry.php:331
use
Apache License January AND DISTRIBUTION Definitions License shall mean the terms and conditions for use
Definition: APACHE-LICENSE-2.0.txt:3
RCDatabaseLogEntry\getAssociatedRevId
getAssociatedRevId()
Definition: LogEntry.php:341
ManualLogEntry\$deleted
int $deleted
Deletion state of the log entry.
Definition: LogEntry.php:426
ManualLogEntry\getType
getType()
The main log type.
Definition: LogEntry.php:743
LogEntry\getTimestamp
getTimestamp()
Get the timestamp when the action was executed.
ManualLogEntry\insert
insert(IDatabase $dbw=null)
Insert the entry into the logging table.
Definition: LogEntry.php:591
array
the array() calling protocol came about after MediaWiki 1.4rc1.
DatabaseLogEntry\getId
getId()
Returns the unique database id.
Definition: LogEntry.php:234
DatabaseLogEntry\$params
array $params
Parameters for log entry.
Definition: LogEntry.php:217
LogPage\extractParams
static extractParams( $blob)
Extract a parameter array from a blob.
Definition: LogPage.php:429
DatabaseLogEntry\getParameters
getParameters()
Get the extra parameters stored for this message.
Definition: LogEntry.php:261
LogEntry\getParameters
getParameters()
Get the extra parameters stored for this message.
PatrolLog\record
static record( $rc, $auto=false, User $user=null, $tags=null)
Record a log event for a change being patrolled.
Definition: PatrolLog.php:41
LogEntry\isDeleted
isDeleted( $field)
ManualLogEntry\setAssociatedRevId
setAssociatedRevId( $revId)
Set an associated revision id.
Definition: LogEntry.php:534
ManualLogEntry\getParameters
getParameters()
Get the extra parameters stored for this message.
Definition: LogEntry.php:751
$tables
this hook is for auditing only RecentChangesLinked and Watchlist RecentChangesLinked and Watchlist e g Watchlist & $tables
Definition: hooks.txt:1010
wfTimestamp
wfTimestamp( $outputtype=TS_UNIX, $ts=0)
Get a timestamp string in one of various formats.
Definition: GlobalFunctions.php:2007
LogEntryBase\isLegacy
isLegacy()
Whether the parameters for this log are stored in new or old format.
Definition: LogEntry.php:129
DatabaseLogEntry\getSelectQueryData
static getSelectQueryData()
Returns array of information that is needed for querying log entries.
Definition: LogEntry.php:170
RCDatabaseLogEntry\getRawParameters
getRawParameters()
Returns whatever is stored in the database field.
Definition: LogEntry.php:337
RCDatabaseLogEntry\getSubtype
getSubtype()
The log subtype.
Definition: LogEntry.php:349
LogEntry\getTarget
getTarget()
Get the target page of this action.
LogEntry\getComment
getComment()
Get the user provided comment.
unserialize
unserialize( $serialized)
Definition: ApiMessage.php:102
$params
$params
Definition: styleTest.css.php:40
$title
namespace and then decline to actually register it file or subcat img or subcat $title
Definition: hooks.txt:956
serialize
serialize()
Definition: ApiMessage.php:94
ManualLogEntry\getComment
getComment()
Get the user provided comment.
Definition: LogEntry.php:775
User\newFromName
static newFromName( $name, $validate='valid')
Static factory method for creation from username.
Definition: User.php:525
DatabaseLogEntry\getComment
getComment()
Get the user provided comment.
Definition: LogEntry.php:322
RequestContext\newExtraneousContext
static newExtraneousContext(Title $title, $request=[])
Create a new extraneous context.
Definition: RequestContext.php:638
LogEntry\getFullType
getFullType()
The full logtype in format maintype/subtype.
SpecialPage\getTitleFor
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,...
Definition: SpecialPage.php:82
ManualLogEntry\setRelations
setRelations(array $relations)
Declare arbitrary tag/value relations to this log entry.
Definition: LogEntry.php:481
ManualLogEntry\setTarget
setTarget(Title $target)
Set the title of the object changed.
Definition: LogEntry.php:501
User\newFromRow
static newFromRow( $row, $data=null)
Create a new user object from a user row.
Definition: User.php:612
DatabaseLogEntry\getSubtype
getSubtype()
The log subtype.
Definition: LogEntry.php:257
ManualLogEntry\getTimestamp
getTimestamp()
Get the timestamp when the action was executed.
Definition: LogEntry.php:769
ManualLogEntry\$legacy
bool $legacy
Whether this is a legacy log entry.
Definition: LogEntry.php:435
php
injection txt This is an overview of how MediaWiki makes use of dependency injection The design described here grew from the discussion of RFC T384 The term dependency this means that anything an object needs to operate should be injected from the the object itself should only know narrow no concrete implementation of the logic it relies on The requirement to inject everything typically results in an architecture that based on two main types of and essentially stateless service objects that use other service objects to operate on the value objects As of the beginning MediaWiki is only starting to use the DI approach Much of the code still relies on global state or direct resulting in a highly cyclical dependency which acts as the top level factory for services in MediaWiki which can be used to gain access to default instances of various services MediaWikiServices however also allows new services to be defined and default services to be redefined Services are defined or redefined by providing a callback the instantiator that will return a new instance of the service When it will create an instance of MediaWikiServices and populate it with the services defined in the files listed by thereby bootstrapping the DI framework Per $wgServiceWiringFiles lists includes ServiceWiring php
Definition: injection.txt:35
DatabaseLogEntry\getTimestamp
getTimestamp()
Get the timestamp when the action was executed.
Definition: LogEntry.php:318
ManualLogEntry\setTags
setTags( $tags)
Set change tags for the log entry.
Definition: LogEntry.php:544
LogEntry\getType
getType()
The main log type.
RCDatabaseLogEntry\getId
getId()
Returns the unique database id.
Definition: LogEntry.php:333
comment
this hook is for auditing only RecentChangesLinked and Watchlist RecentChangesLinked and Watchlist e g Watchlist removed from all revisions and log entries to which it was applied This gives extensions a chance to take it off their books as the deletion has already been partly carried out by this point or something similar the user will be unable to create the tag set and then return false from the hook function Ensure you consume the ChangeTagAfterDelete hook to carry out custom deletion actions as context called by AbstractContent::getParserOutput May be used to override the normal model specific rendering of page content as context as context the output can only depend on parameters provided to this hook not on global state indicating whether full HTML should be generated If generation of HTML may be but other information should still be present in the ParserOutput object to manipulate or replace but no entry for that model exists in $wgContentHandlers if desired whether it is OK to use $contentModel on $title Handler functions that modify $ok should generally return false to prevent further hooks from further modifying $ok inclusive false for true for descending in case the handler function wants to provide a converted Content object Note that $result getContentModel() must return $toModel. 'CustomEditor' $rcid is used in generating this variable which contains information about the new such as the revision s whether the revision was marked as a minor edit or etc which include things like revision author revision comment
Definition: hooks.txt:1159
RCDatabaseLogEntry\getTimestamp
getTimestamp()
Get the timestamp when the action was executed.
Definition: LogEntry.php:376
ManualLogEntry\$comment
string $comment
Comment for the log entry.
Definition: LogEntry.php:417
DeferredUpdates\addCallableUpdate
static addCallableUpdate( $callable, $stage=self::POSTSEND, IDatabase $dbw=null)
Add a callable update.
Definition: DeferredUpdates.php:105
ManualLogEntry\$parameters
array $parameters
Parameters for log entry.
Definition: LogEntry.php:402
ManualLogEntry\getRecentChange
getRecentChange( $newId=0)
Get a RecentChanges object for the log entry.
Definition: LogEntry.php:669
RCDatabaseLogEntry\getTarget
getTarget()
Get the target page of this action.
Definition: LogEntry.php:368
ManualLogEntry\isLegacy
isLegacy()
Definition: LogEntry.php:809
MWException
MediaWiki exception.
Definition: MWException.php:26
DatabaseLogEntry\newFromRow
static newFromRow( $row)
Constructs new LogEntry from database result row.
Definition: LogEntry.php:201
ManualLogEntry\setComment
setComment( $comment)
Set a comment associated with the action being logged.
Definition: LogEntry.php:521
ManualLogEntry\$id
int $id
ID of the log entry.
Definition: LogEntry.php:429
$blob
$blob
Definition: testCompression.php:63
LogEntry
Interface for log entries.
Definition: LogEntry.php:36
$tag
this hook is for auditing only RecentChangesLinked and Watchlist RecentChangesLinked and Watchlist e g Watchlist removed from all revisions and log entries to which it was applied This gives extensions a chance to take it off their books $tag
Definition: hooks.txt:1010
wfGetDB
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
Definition: GlobalFunctions.php:3073
DatabaseLogEntry\getType
getType()
The main log type.
Definition: LogEntry.php:253
LogEntryBase\isDeleted
isDeleted( $field)
Definition: LogEntry.php:119
LogPage
Class to simplify the use of log pages.
Definition: LogPage.php:32
RCDatabaseLogEntry\getComment
getComment()
Get the user provided comment.
Definition: LogEntry.php:380
DeferredUpdates\POSTSEND
const POSTSEND
Definition: DeferredUpdates.php:58
$page
namespace are movable Hooks may change this value to override the return value of MWNamespace::isMovable(). 'NewDifferenceEngine' do that in ParserLimitReportFormat instead use this to modify the parameters of the image and a DIV can begin in one section and end in another Make sure your code can handle that case gracefully See the EditSectionClearerLink extension for an example zero but section is usually empty its values are the globals values before the output is cached $page
Definition: hooks.txt:2259
ManualLogEntry\getSubtype
getSubtype()
The log subtype.
Definition: LogEntry.php:747
Title\makeTitle
static makeTitle( $ns, $title, $fragment='', $interwiki='')
Create a new Title from a namespace index and a DB key.
Definition: Title.php:511
global
when a variable name is used in a it is silently declared as a new masking the global
Definition: design.txt:93
wfTimestampNow
wfTimestampNow()
Convenience function; returns MediaWiki timestamp for the present time.
Definition: GlobalFunctions.php:2036
DB_MASTER
const DB_MASTER
Definition: defines.php:23
ManualLogEntry\$subtype
string $subtype
Sub type of log entry.
Definition: LogEntry.php:399
ManualLogEntry\setParameters
setParameters( $parameters)
Set extra log parameters.
Definition: LogEntry.php:470
ManualLogEntry\publish
publish( $newId, $to='rcandudp')
Publish the log entry.
Definition: LogEntry.php:709
ManualLogEntry\$relations
array $relations
Definition: LogEntry.php:405
LogEntryBase
Extends the LogEntryInterface with some basic functionality.
Definition: LogEntry.php:113
$user
please add to it if you re going to add events to the MediaWiki code where normally authentication against an external auth plugin would be creating a account $user
Definition: hooks.txt:246
LogEntry\getDeleted
getDeleted()
Get the access restriction.
ManualLogEntry\setIsPatrollable
setIsPatrollable( $patrollable)
Set whether this log entry should be made patrollable This shouldn't depend on config,...
Definition: LogEntry.php:560
LogEntryBase\extractParams
static extractParams( $blob)
Extract a parameter array from a blob.
Definition: LogEntry.php:151
$value
$value
Definition: styleTest.css.php:45
ManualLogEntry\setDeleted
setDeleted( $deleted)
Set the 'deleted' flag.
Definition: LogEntry.php:580
DatabaseLogEntry\getPerformer
getPerformer()
Get the user for performed this action.
Definition: LogEntry.php:290
ManualLogEntry\$timestamp
string $timestamp
Timestamp of creation of the log entry.
Definition: LogEntry.php:414
LogEntryBase\getFullType
getFullType()
The full logtype in format maintype/subtype.
Definition: LogEntry.php:115
IDatabase
Basic database interface for live and lazy-loaded relation database handles.
Definition: IDatabase.php:34
RCDatabaseLogEntry\getType
getType()
The main log type.
Definition: LogEntry.php:345
ManualLogEntry\getTags
getTags()
Definition: LogEntry.php:791
LogEntry\getSubtype
getSubtype()
The log subtype.
ManualLogEntry\getPerformer
getPerformer()
Definition: LogEntry.php:758
$context
$context
Definition: load.php:50
Title
Represents a title within MediaWiki.
Definition: Title.php:36
type
This document describes the state of Postgres support in and is fairly well maintained The main code is very well while extensions are very hit and miss it is probably the most supported database after MySQL Much of the work in making MediaWiki database agnostic came about through the work of creating Postgres as and are nearing end of but without copying over all the usage comments General notes on the but these can almost always be programmed around *Although Postgres has a true BOOLEAN type
Definition: postgres.txt:22
ManualLogEntry\$isPatrollable
Can $isPatrollable
this log entry be patrolled?
Definition: LogEntry.php:432
ManualLogEntry\setPerformer
setPerformer(User $performer)
Set the user that performed the action being logged.
Definition: LogEntry.php:491
DatabaseLogEntry\__construct
__construct( $row)
Definition: LogEntry.php:225
DatabaseLogEntry\$revId
int $revId
A rev id associated to the log entry.
Definition: LogEntry.php:220
TS_MW
const TS_MW
MediaWiki concatenated string timestamp (YYYYMMDDHHMMSS)
Definition: defines.php:11
DatabaseLogEntry\$legacy
bool $legacy
Whether the parameters for this log entry are stored in new or old format.
Definition: LogEntry.php:223
ManualLogEntry\getDeleted
getDeleted()
Get the access restriction.
Definition: LogEntry.php:813
RecentChange\newLogEntry
static newLogEntry( $timestamp, &$title, &$user, $actionComment, $ip, $type, $action, $target, $logComment, $params, $newId=0, $actionCommentIRC='', $revId=0, $isPatrollable=false)
Definition: RecentChange.php:759
LogEntryBase\makeParamBlob
static makeParamBlob( $params)
Create a blob from a parameter array.
Definition: LogEntry.php:140
as
This document is intended to provide useful advice for parties seeking to redistribute MediaWiki to end users It s targeted particularly at maintainers for Linux since it s been observed that distribution packages of MediaWiki often break We ve consistently had to recommend that users seeking support use official tarballs instead of their distribution s and this often solves whatever problem the user is having It would be nice if this could such as
Definition: distributors.txt:9
ManualLogEntry\$revId
int $revId
A rev id associated to the log entry.
Definition: LogEntry.php:420
DatabaseLogEntry
This class wraps around database result row.
Definition: LogEntry.php:161
ManualLogEntry\getIsPatrollable
getIsPatrollable()
Whether this log entry is patrollable.
Definition: LogEntry.php:801
DatabaseLogEntry\isLegacy
isLegacy()
Whether the parameters for this log are stored in new or old format.
Definition: LogEntry.php:247
ManualLogEntry\$target
Title $target
Target title for the log entry.
Definition: LogEntry.php:411
ManualLogEntry
Class for creating log entries manually, to inject them into the database.
Definition: LogEntry.php:394
RCDatabaseLogEntry\getPerformer
getPerformer()
Get the user for performed this action.
Definition: LogEntry.php:353
DatabaseLogEntry\getTarget
getTarget()
Get the target page of this action.
Definition: LogEntry.php:310
ManualLogEntry\setLegacy
setLegacy( $legacy)
Set the 'legacy' flag.
Definition: LogEntry.php:570
DatabaseLogEntry\$row
stdClass $row
Database result row.
Definition: LogEntry.php:211
ManualLogEntry\getAssociatedRevId
getAssociatedRevId()
Definition: LogEntry.php:783
RCDatabaseLogEntry\getDeleted
getDeleted()
Get the access restriction.
Definition: LogEntry.php:384
DatabaseLogEntry\getDeleted
getDeleted()
Get the access restriction.
Definition: LogEntry.php:326
User
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
Definition: User.php:48
LogEntry\getPerformer
getPerformer()
Get the user for performed this action.
DatabaseLogEntry\getAssociatedRevId
getAssociatedRevId()
Definition: LogEntry.php:284
DatabaseLogEntry\$performer
User $performer
Definition: LogEntry.php:214
DatabaseLogEntry\getRawParameters
getRawParameters()
Returns whatever is stored in the database field.
Definition: LogEntry.php:243
ManualLogEntry\$type
string $type
Type of log entry.
Definition: LogEntry.php:396
ManualLogEntry\$performer
User $performer
Performer of the action for the log entry.
Definition: LogEntry.php:408
IP\isIPAddress
static isIPAddress( $ip)
Determine if a string is as valid IP address or network (CIDR prefix).
Definition: IP.php:79
ManualLogEntry\$tags
array $tags
Change tags add to the log entry.
Definition: LogEntry.php:423
$wgContLang
this class mediates it Skin Encapsulates a look and feel for the wiki All of the functions that render HTML and make choices about how to render it are here and are called from various other places when and is meant to be subclassed with other skins that may override some of its functions The User object contains a reference to a and so rather than having a global skin object we just rely on the global User and get the skin with $wgUser and also has some character encoding functions and other locale stuff The current user interface language is instantiated as and the content language as $wgContLang
Definition: design.txt:56
LogFormatter\newFromEntry
static newFromEntry(LogEntry $entry)
Constructs a new formatter suitable for given entry.
Definition: LogFormatter.php:48