/** * constructor */ function wfSpecialLog($par = '') { global $wgRequest, $wgOut, $wgUser, $wgLogTypes; # Get parameters $parms = explode('/', $par = $par !== null ? $par : ''); $symsForAll = array('*', 'all'); if ($parms[0] != '' && (in_array($par, $wgLogTypes) || in_array($par, $symsForAll))) { $type = $par; $user = $wgRequest->getText('user'); } else { if (count($parms) == 2) { $type = $parms[0]; $user = $parms[1]; } else { $type = $wgRequest->getVal('type'); $user = $par != '' ? $par : $wgRequest->getText('user'); } } $title = $wgRequest->getText('page'); $pattern = $wgRequest->getBool('pattern'); $y = $wgRequest->getIntOrNull('year'); $m = $wgRequest->getIntOrNull('month'); $tagFilter = $wgRequest->getVal('tagfilter'); # Don't let the user get stuck with a certain date $skip = $wgRequest->getText('offset') || $wgRequest->getText('dir') == 'prev'; if ($skip) { $y = ''; $m = ''; } # Handle type-specific inputs $qc = array(); if ($type == 'suppress') { $offender = User::newFromName($wgRequest->getVal('offender'), false); if ($offender && $offender->getId() > 0) { $qc = array('ls_field' => 'target_author_id', 'ls_value' => $offender->getId()); } else { if ($offender && IP::isIPAddress($offender->getName())) { $qc = array('ls_field' => 'target_author_ip', 'ls_value' => $offender->getName()); } } } # Create a LogPager item to get the results and a LogEventsList item to format them... $loglist = new LogEventsList($wgUser->getSkin(), $wgOut, 0); $pager = new LogPager($loglist, $type, $user, $title, $pattern, $qc, $y, $m, $tagFilter); # Set title and add header $loglist->showHeader($pager->getType()); # Show form options $loglist->showOptions($pager->getType(), $pager->getUser(), $pager->getPage(), $pager->getPattern(), $pager->getYear(), $pager->getMonth(), $pager->getFilterParams(), $tagFilter); # Insert list $logBody = $pager->getBody(); if ($logBody) { $wgOut->addHTML($pager->getNavigationBar() . $loglist->beginLogEventsList() . $logBody . $loglist->endLogEventsList() . $pager->getNavigationBar()); } else { $wgOut->addWikiMsg('logempty'); } }
public function execute($par) { global $wgFlaggedRevsOversightAge; $out = $this->getOutput(); $request = $this->getRequest(); $this->setHeaders(); $this->namespace = $request->getInt('namespace'); $this->level = $request->getIntOrNull('level'); $this->status = $request->getIntOrNull('status'); $this->automatic = $request->getIntOrNull('automatic'); $this->user = $request->getVal('user'); # Check if the user exists $usertitle = Title::makeTitleSafe(NS_USER, $this->user); $u = $usertitle ? User::idFromName($this->user) : false; # Are the dropdown params given even valid? $actions = $this->getActions(); if (empty($actions)) { $out->addWikiMsg('qualityoversight-list', 0); $out->addWikiMsg('logempty'); return; } # Get extra query conds $conds = array('log_namespace' => $this->namespace, 'log_action' => $actions); # Get cutoff time (mainly for performance) if (!$u) { $dbr = wfGetDB(DB_SLAVE); $cutoff_unixtime = time() - $wgFlaggedRevsOversightAge; $cutoff = $dbr->addQuotes($dbr->timestamp($cutoff_unixtime)); $conds[] = "log_timestamp >= {$cutoff}"; } # Create a LogPager item to get the results and a LogEventsList item to format them... $loglist = new LogEventsList($this->getContext()->getSkin(), $out, 0); $pager = new LogPager($loglist, 'review', $this->user, '', '', $conds); # Explanatory text $out->addWikiMsg('qualityoversight-list', $this->getLanguage()->formatNum($pager->getNumRows())); # Show form options $this->showForm(); # Insert list $logBody = $pager->getBody(); if ($logBody) { $out->addHTML($pager->getNavigationBar() . $loglist->beginLogEventsList() . $logBody . $loglist->endLogEventsList() . $pager->getNavigationBar()); } else { $out->addWikiMsg('logempty'); } }
private function show(FormOptions $opts, array $extraConds) { global $wgOut; # Create a LogPager item to get the results and a LogEventsList item to format them... $loglist = new LogEventsList($this->getSkin(), $wgOut, 0); $pager = new LogPager($loglist, $opts->getValue('type'), $opts->getValue('user'), $opts->getValue('page'), $opts->getValue('pattern'), $extraConds, $opts->getValue('year'), $opts->getValue('month'), $opts->getValue('tagfilter')); # Set title and add header $loglist->showHeader($pager->getType()); # Set relevant user if ($pager->getUser()) { $this->getSkin()->setRelevantUser(User::newFromName($pager->getUser())); } # Show form options $loglist->showOptions($pager->getType(), $pager->getUser(), $pager->getPage(), $pager->getPattern(), $pager->getYear(), $pager->getMonth(), $pager->getFilterParams(), $opts->getValue('tagfilter')); # Insert list $logBody = $pager->getBody(); if ($logBody) { $wgOut->addHTML($pager->getNavigationBar() . $loglist->beginLogEventsList() . $logBody . $loglist->endLogEventsList() . $pager->getNavigationBar()); } else { $wgOut->addWikiMsg('logempty'); } }
private function show(FormOptions $opts, array $extraConds) { # Create a LogPager item to get the results and a LogEventsList item to format them... $loglist = new LogEventsList($this->getContext(), null, LogEventsList::USE_REVDEL_CHECKBOXES); $pager = new LogPager($loglist, $opts->getValue('type'), $opts->getValue('user'), $opts->getValue('page'), $opts->getValue('pattern'), $extraConds, $opts->getValue('year'), $opts->getValue('month'), $opts->getValue('tagfilter')); $this->addHeader($opts->getValue('type')); # Set relevant user if ($pager->getPerformer()) { $this->getSkin()->setRelevantUser(User::newFromName($pager->getPerformer())); } # Show form options $loglist->showOptions($pager->getType(), $opts->getValue('user'), $pager->getPage(), $pager->getPattern(), $pager->getYear(), $pager->getMonth(), $pager->getFilterParams(), $opts->getValue('tagfilter')); # Insert list $logBody = $pager->getBody(); if ($logBody) { $this->getOutput()->addHTML($pager->getNavigationBar() . $this->getRevisionButton($loglist->beginLogEventsList() . $logBody . $loglist->endLogEventsList()) . $pager->getNavigationBar()); } else { $this->getOutput()->addWikiMsg('logempty'); } }
private function show(FormOptions $opts, array $extraConds) { # Create a LogPager item to get the results and a LogEventsList item to format them... $loglist = new LogEventsList($this->getContext(), null, LogEventsList::USE_REVDEL_CHECKBOXES); $pager = new LogPager($loglist, $opts->getValue('type'), $opts->getValue('user'), $opts->getValue('page'), $opts->getValue('pattern'), $extraConds, $opts->getValue('year'), $opts->getValue('month'), $opts->getValue('tagfilter')); $this->addHeader($opts->getValue('type')); # Set relevant user if ($pager->getPerformer()) { $this->getSkin()->setRelevantUser(User::newFromName($pager->getPerformer())); } # Show form options $loglist->showOptions($pager->getType(), $opts->getValue('user'), $pager->getPage(), $pager->getPattern(), $pager->getYear(), $pager->getMonth(), $pager->getFilterParams(), $opts->getValue('tagfilter')); # Reuben, upgrade 1.23: apply a special hack where we insert FORCE INDEX (times) # into the sql query, because Mysql chooses the wrong index and the Database # class has a bug where it generates sql with syntax errors. if (!$pager->getType() && !$opts->getValue('user') && !$pager->getPage()) { $pager->setIndexHack(); } # Insert list $logBody = $pager->getBody(); if ($logBody) { $this->getOutput()->addHTML($pager->getNavigationBar() . $this->getRevisionButton($loglist->beginLogEventsList() . $logBody . $loglist->endLogEventsList()) . $pager->getNavigationBar()); } else { $this->getOutput()->addWikiMsg('logempty'); } }