MediaWiki  1.23.2
SpecialDeletedContributions.php
Go to the documentation of this file.
1 <?php
29  public $mDefaultDirection = true;
30  public $messages;
31  public $target;
32  public $namespace = '';
33  public $mDb;
34 
38  protected $mNavigationBar;
39 
40  function __construct( IContextSource $context, $target, $namespace = false ) {
41  parent::__construct( $context );
42  $msgs = array( 'deletionlog', 'undeleteviewlink', 'diff' );
43  foreach ( $msgs as $msg ) {
44  $this->messages[$msg] = $this->msg( $msg )->escaped();
45  }
46  $this->target = $target;
47  $this->namespace = $namespace;
48  $this->mDb = wfGetDB( DB_SLAVE, 'contributions' );
49  }
50 
51  function getDefaultQuery() {
52  $query = parent::getDefaultQuery();
53  $query['target'] = $this->target;
54 
55  return $query;
56  }
57 
58  function getQueryInfo() {
59  list( $index, $userCond ) = $this->getUserCond();
60  $conds = array_merge( $userCond, $this->getNamespaceCond() );
61  $user = $this->getUser();
62  // Paranoia: avoid brute force searches (bug 17792)
63  if ( !$user->isAllowed( 'deletedhistory' ) ) {
64  $conds[] = $this->mDb->bitAnd( 'ar_deleted', Revision::DELETED_USER ) . ' = 0';
65  } elseif ( !$user->isAllowed( 'suppressrevision' ) ) {
66  $conds[] = $this->mDb->bitAnd( 'ar_deleted', Revision::SUPPRESSED_USER ) .
68  }
69 
70  return array(
71  'tables' => array( 'archive' ),
72  'fields' => array(
73  'ar_rev_id', 'ar_namespace', 'ar_title', 'ar_timestamp', 'ar_comment',
74  'ar_minor_edit', 'ar_user', 'ar_user_text', 'ar_deleted'
75  ),
76  'conds' => $conds,
77  'options' => array( 'USE INDEX' => $index )
78  );
79  }
80 
81  function getUserCond() {
82  $condition = array();
83 
84  $condition['ar_user_text'] = $this->target;
85  $index = 'usertext_timestamp';
86 
87  return array( $index, $condition );
88  }
89 
90  function getIndexField() {
91  return 'ar_timestamp';
92  }
93 
94  function getStartBody() {
95  return "<ul>\n";
96  }
97 
98  function getEndBody() {
99  return "</ul>\n";
100  }
101 
102  function getNavigationBar() {
103  if ( isset( $this->mNavigationBar ) ) {
104  return $this->mNavigationBar;
105  }
106 
107  $linkTexts = array(
108  'prev' => $this->msg( 'pager-newer-n' )->numParams( $this->mLimit )->escaped(),
109  'next' => $this->msg( 'pager-older-n' )->numParams( $this->mLimit )->escaped(),
110  'first' => $this->msg( 'histlast' )->escaped(),
111  'last' => $this->msg( 'histfirst' )->escaped()
112  );
113 
114  $pagingLinks = $this->getPagingLinks( $linkTexts );
115  $limitLinks = $this->getLimitLinks();
116  $lang = $this->getLanguage();
117  $limits = $lang->pipeList( $limitLinks );
118 
119  $firstLast = $lang->pipeList( array( $pagingLinks['first'], $pagingLinks['last'] ) );
120  $firstLast = $this->msg( 'parentheses' )->rawParams( $firstLast )->escaped();
121  $prevNext = $this->msg( 'viewprevnext' )
122  ->rawParams(
123  $pagingLinks['prev'],
124  $pagingLinks['next'],
125  $limits
126  )->escaped();
127  $separator = $this->msg( 'word-separator' )->escaped();
128  $this->mNavigationBar = $firstLast . $separator . $prevNext;
129 
130  return $this->mNavigationBar;
131  }
132 
133  function getNamespaceCond() {
134  if ( $this->namespace !== '' ) {
135  return array( 'ar_namespace' => (int)$this->namespace );
136  } else {
137  return array();
138  }
139  }
140 
153  function formatRow( $row ) {
154  wfProfileIn( __METHOD__ );
155 
156  $page = Title::makeTitle( $row->ar_namespace, $row->ar_title );
157 
158  $rev = new Revision( array(
159  'title' => $page,
160  'id' => $row->ar_rev_id,
161  'comment' => $row->ar_comment,
162  'user' => $row->ar_user,
163  'user_text' => $row->ar_user_text,
164  'timestamp' => $row->ar_timestamp,
165  'minor_edit' => $row->ar_minor_edit,
166  'deleted' => $row->ar_deleted,
167  ) );
168 
169  $undelete = SpecialPage::getTitleFor( 'Undelete' );
170 
171  $logs = SpecialPage::getTitleFor( 'Log' );
172  $dellog = Linker::linkKnown(
173  $logs,
174  $this->messages['deletionlog'],
175  array(),
176  array(
177  'type' => 'delete',
178  'page' => $page->getPrefixedText()
179  )
180  );
181 
182  $reviewlink = Linker::linkKnown(
183  SpecialPage::getTitleFor( 'Undelete', $page->getPrefixedDBkey() ),
184  $this->messages['undeleteviewlink']
185  );
186 
187  $user = $this->getUser();
188 
189  if ( $user->isAllowed( 'deletedtext' ) ) {
191  $undelete,
192  $this->messages['diff'],
193  array(),
194  array(
195  'target' => $page->getPrefixedText(),
196  'timestamp' => $rev->getTimestamp(),
197  'diff' => 'prev'
198  )
199  );
200  } else {
201  $last = $this->messages['diff'];
202  }
203 
205  $date = $this->getLanguage()->userTimeAndDate( $rev->getTimestamp(), $user );
206  $date = htmlspecialchars( $date );
207 
208  if ( !$user->isAllowed( 'undelete' ) || !$rev->userCan( Revision::DELETED_TEXT, $user ) ) {
209  $link = $date; // unusable link
210  } else {
212  $undelete,
213  $date,
214  array( 'class' => 'mw-changeslist-date' ),
215  array(
216  'target' => $page->getPrefixedText(),
217  'timestamp' => $rev->getTimestamp()
218  )
219  );
220  }
221  // Style deleted items
222  if ( $rev->isDeleted( Revision::DELETED_TEXT ) ) {
223  $link = '<span class="history-deleted">' . $link . '</span>';
224  }
225 
226  $pagelink = Linker::link(
227  $page,
228  null,
229  array( 'class' => 'mw-changeslist-title' )
230  );
231 
232  if ( $rev->isMinor() ) {
233  $mflag = ChangesList::flag( 'minor' );
234  } else {
235  $mflag = '';
236  }
237 
238  // Revision delete link
239  $del = Linker::getRevDeleteLink( $user, $rev, $page );
240  if ( $del ) {
241  $del .= ' ';
242  }
243 
245  'span',
246  array( 'class' => 'mw-deletedcontribs-tools' ),
247  $this->msg( 'parentheses' )->rawParams( $this->getLanguage()->pipeList(
248  array( $last, $dellog, $reviewlink ) ) )->escaped()
249  );
250 
251  $separator = '<span class="mw-changeslist-separator">. .</span>';
252  $ret = "{$del}{$link} {$tools} {$separator} {$mflag} {$pagelink} {$comment}";
253 
254  # Denote if username is redacted for this edit
255  if ( $rev->isDeleted( Revision::DELETED_USER ) ) {
256  $ret .= " <strong>" . $this->msg( 'rev-deleted-user-contribs' )->escaped() . "</strong>";
257  }
258 
259  $ret = Html::rawElement( 'li', array(), $ret ) . "\n";
260 
261  wfProfileOut( __METHOD__ );
262 
263  return $ret;
264  }
265 
271  public function getDatabase() {
272  return $this->mDb;
273  }
274 }
275 
277  function __construct() {
278  parent::__construct( 'DeletedContributions', 'deletedhistory',
279  /*listed*/true, /*function*/false, /*file*/false );
280  }
281 
288  function execute( $par ) {
289  global $wgQueryPageDefaultLimit;
290 
291  $this->setHeaders();
292  $this->outputHeader();
293 
294  $user = $this->getUser();
295 
296  if ( !$this->userCanExecute( $user ) ) {
297  $this->displayRestrictionError();
298 
299  return;
300  }
301 
302  $request = $this->getRequest();
303  $out = $this->getOutput();
304  $out->setPageTitle( $this->msg( 'deletedcontributions-title' ) );
305 
306  $options = array();
307 
308  if ( $par !== null ) {
309  $target = $par;
310  } else {
311  $target = $request->getVal( 'target' );
312  }
313 
314  if ( !strlen( $target ) ) {
315  $out->addHTML( $this->getForm( '' ) );
316 
317  return;
318  }
319 
320  $options['limit'] = $request->getInt( 'limit', $wgQueryPageDefaultLimit );
321  $options['target'] = $target;
322 
323  $userObj = User::newFromName( $target, false );
324  if ( !$userObj ) {
325  $out->addHTML( $this->getForm( '' ) );
326 
327  return;
328  }
329  $this->getSkin()->setRelevantUser( $userObj );
330 
331  $target = $userObj->getName();
332  $out->addSubtitle( $this->getSubTitle( $userObj ) );
333 
334  if ( ( $ns = $request->getVal( 'namespace', null ) ) !== null && $ns !== '' ) {
335  $options['namespace'] = intval( $ns );
336  } else {
337  $options['namespace'] = '';
338  }
339 
340  $out->addHTML( $this->getForm( $options ) );
341 
342  $pager = new DeletedContribsPager( $this->getContext(), $target, $options['namespace'] );
343  if ( !$pager->getNumRows() ) {
344  $out->addWikiMsg( 'nocontribs' );
345 
346  return;
347  }
348 
349  # Show a message about slave lag, if applicable
350  $lag = wfGetLB()->safeGetLag( $pager->getDatabase() );
351  if ( $lag > 0 ) {
352  $out->showLagWarning( $lag );
353  }
354 
355  $out->addHTML(
356  '<p>' . $pager->getNavigationBar() . '</p>' .
357  $pager->getBody() .
358  '<p>' . $pager->getNavigationBar() . '</p>' );
359 
360  # If there were contributions, and it was a valid user or IP, show
361  # the appropriate "footer" message - WHOIS tools, etc.
362  if ( $target != 'newbies' ) {
363  $message = IP::isIPAddress( $target ) ?
364  'sp-contributions-footer-anon' :
365  'sp-contributions-footer';
366 
367  if ( !$this->msg( $message )->isDisabled() ) {
368  $out->wrapWikiMsg(
369  "<div class='mw-contributions-footer'>\n$1\n</div>",
370  array( $message, $target )
371  );
372  }
373  }
374  }
375 
382  function getSubTitle( $userObj ) {
383  if ( $userObj->isAnon() ) {
384  $user = htmlspecialchars( $userObj->getName() );
385  } else {
386  $user = Linker::link( $userObj->getUserPage(), htmlspecialchars( $userObj->getName() ) );
387  }
388  $links = '';
389  $nt = $userObj->getUserPage();
390  $id = $userObj->getID();
391  $talk = $nt->getTalkPage();
392  if ( $talk ) {
393  # Talk page link
394  $tools[] = Linker::link( $talk, $this->msg( 'sp-contributions-talk' )->escaped() );
395  if ( ( $id !== null ) || ( $id === null && IP::isIPAddress( $nt->getText() ) ) ) {
396  # Block / Change block / Unblock links
397  if ( $this->getUser()->isAllowed( 'block' ) ) {
398  if ( $userObj->isBlocked() ) {
399  $tools[] = Linker::linkKnown( # Change block link
400  SpecialPage::getTitleFor( 'Block', $nt->getDBkey() ),
401  $this->msg( 'change-blocklink' )->escaped()
402  );
403  $tools[] = Linker::linkKnown( # Unblock link
404  SpecialPage::getTitleFor( 'BlockList' ),
405  $this->msg( 'unblocklink' )->escaped(),
406  array(),
407  array(
408  'action' => 'unblock',
409  'ip' => $nt->getDBkey()
410  )
411  );
412  } else {
413  # User is not blocked
414  $tools[] = Linker::linkKnown( # Block link
415  SpecialPage::getTitleFor( 'Block', $nt->getDBkey() ),
416  $this->msg( 'blocklink' )->escaped()
417  );
418  }
419  }
420  # Block log link
421  $tools[] = Linker::linkKnown(
422  SpecialPage::getTitleFor( 'Log' ),
423  $this->msg( 'sp-contributions-blocklog' )->escaped(),
424  array(),
425  array(
426  'type' => 'block',
427  'page' => $nt->getPrefixedText()
428  )
429  );
430  # Suppression log link (bug 59120)
431  if ( $this->getUser()->isAllowed( 'suppressionlog' ) ) {
433  SpecialPage::getTitleFor( 'Log', 'suppress' ),
434  $this->msg( 'sp-contributions-suppresslog' )->escaped(),
435  array(),
436  array( 'offender' => $userObj->getName() )
437  );
438  }
439  }
440 
441  # Uploads
443  SpecialPage::getTitleFor( 'Listfiles', $userObj->getName() ),
444  $this->msg( 'sp-contributions-uploads' )->escaped()
445  );
446 
447  # Other logs link
448  $tools[] = Linker::linkKnown(
449  SpecialPage::getTitleFor( 'Log' ),
450  $this->msg( 'sp-contributions-logs' )->escaped(),
451  array(),
452  array( 'user' => $nt->getText() )
453  );
454  # Link to contributions
456  SpecialPage::getTitleFor( 'Contributions', $nt->getDBkey() ),
457  $this->msg( 'sp-deletedcontributions-contribs' )->escaped()
458  );
459 
460  # Add a link to change user rights for privileged users
461  $userrightsPage = new UserrightsPage();
462  $userrightsPage->setContext( $this->getContext() );
463  if ( $userrightsPage->userCanChangeRights( $userObj ) ) {
465  SpecialPage::getTitleFor( 'Userrights', $nt->getDBkey() ),
466  $this->msg( 'sp-contributions-userrights' )->escaped()
467  );
468  }
469 
470  wfRunHooks( 'ContributionsToolLinks', array( $id, $nt, &$tools ) );
471 
472  $links = $this->getLanguage()->pipeList( $tools );
473 
474  // Show a note if the user is blocked and display the last block log entry.
475  if ( $userObj->isBlocked() ) {
476  // LogEventsList::showLogExtract() wants the first parameter by ref
477  $out = $this->getOutput();
479  $out,
480  'block',
481  $nt,
482  '',
483  array(
484  'lim' => 1,
485  'showIfEmpty' => false,
486  'msgKey' => array(
487  'sp-contributions-blocked-notice',
488  $nt->getText() # Support GENDER in 'sp-contributions-blocked-notice'
489  ),
490  'offset' => '' # don't use $this->getRequest() parameter offset
491  )
492  );
493  }
494  }
495 
496  return $this->msg( 'contribsub2' )->rawParams( $user, $links )->params( $userObj->getName() );
497  }
498 
504  function getForm( $options ) {
505  global $wgScript;
506 
507  $options['title'] = $this->getPageTitle()->getPrefixedText();
508  if ( !isset( $options['target'] ) ) {
509  $options['target'] = '';
510  } else {
511  $options['target'] = str_replace( '_', ' ', $options['target'] );
512  }
513 
514  if ( !isset( $options['namespace'] ) ) {
515  $options['namespace'] = '';
516  }
517 
518  if ( !isset( $options['contribs'] ) ) {
519  $options['contribs'] = 'user';
520  }
521 
522  if ( $options['contribs'] == 'newbie' ) {
523  $options['target'] = '';
524  }
525 
526  $f = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) );
527 
528  foreach ( $options as $name => $value ) {
529  if ( in_array( $name, array( 'namespace', 'target', 'contribs' ) ) ) {
530  continue;
531  }
532  $f .= "\t" . Html::hidden( $name, $value ) . "\n";
533  }
534 
535  $f .= Xml::openElement( 'fieldset' );
536  $f .= Xml::element( 'legend', array(), $this->msg( 'sp-contributions-search' )->text() );
537  $f .= Xml::tags(
538  'label',
539  array( 'for' => 'target' ),
540  $this->msg( 'sp-contributions-username' )->parse()
541  ) . ' ';
542  $f .= Html::input(
543  'target',
544  $options['target'],
545  'text',
546  array(
547  'size' => '20',
548  'required' => ''
549  ) + ( $options['target'] ? array() : array( 'autofocus' ) )
550  ) . ' ';
551  $f .= Html::namespaceSelector(
552  array(
553  'selected' => $options['namespace'],
554  'all' => '',
555  'label' => $this->msg( 'namespace' )->text()
556  ),
557  array(
558  'name' => 'namespace',
559  'id' => 'namespace',
560  'class' => 'namespaceselector',
561  )
562  ) . ' ';
563  $f .= Xml::submitButton( $this->msg( 'sp-contributions-submit' )->text() );
564  $f .= Xml::closeElement( 'fieldset' );
565  $f .= Xml::closeElement( 'form' );
566 
567  return $f;
568  }
569 
570  protected function getGroupName() {
571  return 'users';
572  }
573 }
DeletedContribsPager\__construct
__construct(IContextSource $context, $target, $namespace=false)
Definition: SpecialDeletedContributions.php:39
Revision\DELETED_USER
const DELETED_USER
Definition: Revision.php:67
ContextSource\$context
IContextSource $context
Definition: ContextSource.php:33
DeletedContribsPager\getDatabase
getDatabase()
Get the Database object in use.
Definition: SpecialDeletedContributions.php:270
Title\makeTitle
static & makeTitle( $ns, $title, $fragment='', $interwiki='')
Create a new Title from a namespace index and a DB key.
Definition: Title.php:398
DeletedContributionsPage\__construct
__construct()
Definition: SpecialDeletedContributions.php:276
DeletedContributionsPage\getForm
getForm( $options)
Generates the namespace selector form with hidden attributes.
Definition: SpecialDeletedContributions.php:503
php
skin txt MediaWiki includes four core it has been set as the default in MediaWiki since the replacing Monobook it had been been the default skin since before being replaced by Vector largely rewritten in while keeping its appearance Several legacy skins were removed in the as the burden of supporting them became too heavy to bear Those in etc for skin dependent CSS etc for skin dependent JavaScript These can also be customised on a per user by etc This feature has led to a wide variety of user styles becoming that gallery is a good place to ending in php
Definition: skin.txt:62
ContextSource\msg
msg()
Get a Message object with context set Parameters are the same as wfMessage()
Definition: ContextSource.php:175
SpecialPage\getOutput
getOutput()
Get the OutputPage being used for this instance.
Definition: SpecialPage.php:535
DeletedContributionsPage\execute
execute( $par)
Special page "deleted user contributions".
Definition: SpecialDeletedContributions.php:287
wfGetLB
wfGetLB( $wiki=false)
Get a load balancer object.
Definition: GlobalFunctions.php:3660
$last
$last
Definition: profileinfo.php:365
wfGetDB
& wfGetDB( $db, $groups=array(), $wiki=false)
Get a Database object.
Definition: GlobalFunctions.php:3650
text
design txt This is a brief overview of the new design More thorough and up to date information is available on the documentation wiki at etc Handles the details of getting and saving to the user table of the and dealing with sessions and cookies OutputPage Encapsulates the entire HTML page that will be sent in response to any server request It is used by calling its functions to add text
Definition: design.txt:12
DeletedContribsPager
Implements Special:DeletedContributions to display archived revisions.
Definition: SpecialDeletedContributions.php:28
DeletedContribsPager\formatRow
formatRow( $row)
Generates each row in the contributions list.
Definition: SpecialDeletedContributions.php:152
DeletedContribsPager\$mNavigationBar
string $mNavigationBar
Navigation bar with paging links.
Definition: SpecialDeletedContributions.php:37
wfProfileIn
wfProfileIn( $functionname)
Begin profiling of a function.
Definition: Profiler.php:33
$ret
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped noclasses & $ret
Definition: hooks.txt:1530
DeletedContribsPager\$messages
$messages
Definition: SpecialDeletedContributions.php:30
SpecialPage\displayRestrictionError
displayRestrictionError()
Output an error message telling the user what access level they have to have.
Definition: SpecialPage.php:276
User\newFromName
static newFromName( $name, $validate='valid')
Static factory method for creation from username.
Definition: User.php:388
SpecialPage\getTitleFor
static getTitleFor( $name, $subpage=false, $fragment='')
Get a localised Title object for a specified special page name.
Definition: SpecialPage.php:74
DeletedContributionsPage
Definition: SpecialDeletedContributions.php:275
SpecialPage\getSkin
getSkin()
Shortcut to get the skin being used for this instance.
Definition: SpecialPage.php:555
DeletedContribsPager\getUserCond
getUserCond()
Definition: SpecialDeletedContributions.php:80
SpecialPage\getLanguage
getLanguage()
Shortcut to get user's language.
Definition: SpecialPage.php:578
messages
namespace and then decline to actually register it RecentChangesLinked and Watchlist RecentChangesLinked and Watchlist e g Watchlist 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 in case the handler function wants to provide a converted Content object Note that $result getContentModel() must return $toModel. Handler functions that modify $result should generally return false to further attempts at conversion. 'ContribsPager you ll need to handle error messages
Definition: hooks.txt:896
ContextSource\getUser
getUser()
Get the User object.
Definition: ContextSource.php:132
$link
set to $title object and return false for a match for latest after cache objects are set use the ContentHandler facility to handle CSS and JavaScript for highlighting & $link
Definition: hooks.txt:2149
Linker\linkKnown
static linkKnown( $target, $html=null, $customAttribs=array(), $query=array(), $options=array( 'known', 'noclasses'))
Identical to link(), except $options defaults to 'known'.
Definition: Linker.php:264
IndexPager\getLimitLinks
getLimitLinks()
Definition: Pager.php:640
ChangesList\flag
static flag( $flag)
Provide the "<abbr>" element appropriate to a given abbreviated flag, namely the flag indicating a ne...
Definition: ChangesList.php:132
DeletedContribsPager\getNavigationBar
getNavigationBar()
Definition: SpecialDeletedContributions.php:101
Linker\link
static link( $target, $html=null, $customAttribs=array(), $query=array(), $options=array())
This function returns an HTML link to the given target.
Definition: Linker.php:192
ContextSource\getLanguage
getLanguage()
Get the Language object.
Definition: ContextSource.php:154
DeletedContribsPager\$mDefaultDirection
$mDefaultDirection
Definition: SpecialDeletedContributions.php:29
Revision
Definition: Revision.php:26
title
to move a page</td >< td > &*You are moving the page across *A non empty talk page already exists under the new or *You uncheck the box below In those you will have to move or merge the page manually if desired</td >< td > be sure to &You are responsible for making sure that links continue to point where they are supposed to go Note that the page will &a page at the new title
Definition: All_system_messages.txt:2703
UserrightsPage
Special page to allow managing user group membership.
Definition: SpecialUserrights.php:29
Revision\SUPPRESSED_USER
const SUPPRESSED_USER
Definition: Revision.php:69
$out
$out
Definition: UtfNormalGenerate.php:167
IndexPager\getPagingLinks
getPagingLinks( $linkTexts, $disabledTexts=array())
Get paging links.
Definition: Pager.php:619
DeletedContribsPager\getEndBody
getEndBody()
Hook into getBody() for the end of the list.
Definition: SpecialDeletedContributions.php:97
wfProfileOut
wfProfileOut( $functionname='missing')
Stop profiling of a function.
Definition: Profiler.php:46
wfRunHooks
wfRunHooks( $event, array $args=array(), $deprecatedVersion=null)
Call hook functions defined in $wgHooks.
Definition: GlobalFunctions.php:4001
DeletedContribsPager\$mDb
$mDb
Definition: SpecialDeletedContributions.php:33
array
the array() calling protocol came about after MediaWiki 1.4rc1.
List of Api Query prop modules.
SpecialPage\setHeaders
setHeaders()
Sets headers - this should be called from the execute() method of all derived classes!
Definition: SpecialPage.php:352
SpecialPage\getUser
getUser()
Shortcut to get the User executing this instance.
Definition: SpecialPage.php:545
global
when a variable name is used in a it is silently declared as a new masking the global
Definition: design.txt:93
form
null means default in associative array form
Definition: hooks.txt:1530
$comment
$comment
Definition: importImages.php:107
DeletedContribsPager\getStartBody
getStartBody()
Hook into getBody(), allows text to be inserted at the start.
Definition: SpecialDeletedContributions.php:93
list
deferred txt A few of the database updates required by various functions here can be deferred until after the result page is displayed to the user For updating the view updating the linked to tables after a etc PHP does not yet have any way to tell the server to actually return and disconnect while still running these but it might have such a feature in the future We handle these by creating a deferred update object and putting those objects on a global list
Definition: deferred.txt:11
SpecialPage\getContext
getContext()
Gets the context this SpecialPage is executed in.
Definition: SpecialPage.php:508
$options
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped & $options
Definition: hooks.txt:1530
Linker\revComment
static revComment(Revision $rev, $local=false, $isPublic=false)
Wrap and format the given revision's comment block, if the current user is allowed to view it.
Definition: Linker.php:1578
user
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 and we might be restricted by PHP settings such as safe mode or open_basedir We cannot assume that the software even has read access anywhere useful Many shared hosts run all users web applications under the same user
Definition: distributors.txt:9
DeletedContribsPager\getDefaultQuery
getDefaultQuery()
Get an array of query parameters that should be put into self-links.
Definition: SpecialDeletedContributions.php:50
SpecialPage\userCanExecute
userCanExecute(User $user)
Checks if the given user (identified by an object) can execute this special page (as defined by $mRes...
Definition: SpecialPage.php:268
action
action
Definition: parserTests.txt:378
SpecialPage\msg
msg()
Wrapper around wfMessage that sets the current context.
Definition: SpecialPage.php:609
SpecialPage
Parent class for all special pages.
Definition: SpecialPage.php:33
Linker\getRevDeleteLink
static getRevDeleteLink(User $user, Revision $rev, Title $title)
Get a revision-deletion link, or disabled link, or nothing, depending on user permissions & the setti...
Definition: Linker.php:2155
$tools
static configuration should be added through ResourceLoaderGetConfigVars instead can be used to get the real title after the basic globals have been set but before ordinary actions take place change it to the message you want to define which works for all SkinTemplate type skins $tools
Definition: hooks.txt:1679
SpecialPage\getRequest
getRequest()
Get the WebRequest being used for this instance.
Definition: SpecialPage.php:525
block
div flags Integer display flags(NO_ACTION_LINK, NO_EXTRA_USER_LINKS) 'LoginAuthenticateAudit' this hook is for auditing only etc block
Definition: hooks.txt:1632
$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:237
IContextSource
Interface for objects which can provide a context on request.
Definition: IContextSource.php:29
$rev
presenting them properly to the user as errors is done by the caller return true use this to change the list i e etc $rev
Definition: hooks.txt:1337
DB_SLAVE
const DB_SLAVE
Definition: Defines.php:55
in
Prior to maintenance scripts were a hodgepodge of code that had no cohesion or formal method of action Beginning in
Definition: maintenance.txt:1
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
Block
Definition: Block.php:22
DeletedContributionsPage\getSubTitle
getSubTitle( $userObj)
Generates the subheading with links.
Definition: SpecialDeletedContributions.php:381
IndexPager
IndexPager is an efficient pager which uses a (roughly unique) index in the data set to implement pag...
Definition: Pager.php:79
DeletedContribsPager\$target
$target
Definition: SpecialDeletedContributions.php:31
DeletedContribsPager\getNamespaceCond
getNamespaceCond()
Definition: SpecialDeletedContributions.php:132
name
design txt This is a brief overview of the new design More thorough and up to date information is available on the documentation wiki at name
Definition: design.txt:12
Html\rawElement
static rawElement( $element, $attribs=array(), $contents='')
Returns an HTML element in a string.
Definition: Html.php:124
$query
return true to allow those checks to and false if checking is done use this to change the tables headers temp or archived zone change it to an object instance and return false override the list derivative used the name of the old file when set the default code will be skipped add a value to it if you want to add a cookie that have to vary cache options can modify $query
Definition: hooks.txt:1105
DeletedContribsPager\$namespace
$namespace
Definition: SpecialDeletedContributions.php:32
SpecialPage\outputHeader
outputHeader( $summaryMessageKey='')
Outputs a summary message on top of special pages Per default the message key is the canonical name o...
Definition: SpecialPage.php:443
Revision\DELETED_TEXT
const DELETED_TEXT
Definition: Revision.php:65
DeletedContribsPager\getQueryInfo
getQueryInfo()
This function should be overridden to provide all parameters needed for the main paged query.
Definition: SpecialDeletedContributions.php:57
DeletedContribsPager\getIndexField
getIndexField()
This function should be overridden to return the name of the index fi- eld.
Definition: SpecialDeletedContributions.php:89
IP\isIPAddress
static isIPAddress( $ip)
Determine if a string is as valid IP address or network (CIDR prefix).
Definition: IP.php:74
LogEventsList\showLogExtract
static showLogExtract(&$out, $types=array(), $page='', $user='', $param=array())
Show log extract.
Definition: LogEventsList.php:507