Exemplo n.º 1
0
 /**
  * @TODO: split up!
  *
  * @param  $row
  * @param Title $title
  * @param Array $paramArray
  * @param  $comment
  * @return String
  */
 private function logActionLinks($row, $title, $paramArray, &$comment)
 {
     global $wgUser;
     if ($this->flags & self::NO_ACTION_LINK || self::isDeleted($row, LogPage::DELETED_ACTION)) {
         return '';
     }
     $revert = '';
     if (self::typeAction($row, 'move', 'move', 'move') && !empty($paramArray[0])) {
         $destTitle = Title::newFromText($paramArray[0]);
         if ($destTitle) {
             $revert = '(' . Linker::link(SpecialPage::getTitleFor('Movepage'), $this->message['revertmove'], array(), array('wpOldTitle' => $destTitle->getPrefixedDBkey(), 'wpNewTitle' => $title->getPrefixedDBkey(), 'wpReason' => wfMsgForContent('revertmove'), 'wpMovetalk' => 0), array('known', 'noclasses')) . ')';
         }
         // Show undelete link
     } elseif (self::typeAction($row, array('delete', 'suppress'), 'delete', 'deletedhistory')) {
         if (!$wgUser->isAllowed('undelete')) {
             $viewdeleted = $this->message['undeleteviewlink'];
         } else {
             $viewdeleted = $this->message['undeletelink'];
         }
         $revert = '(' . Linker::link(SpecialPage::getTitleFor('Undelete'), $viewdeleted, array(), array('target' => $title->getPrefixedDBkey()), array('known', 'noclasses')) . ')';
         // Show unblock/change block link
     } elseif (self::typeAction($row, array('block', 'suppress'), array('block', 'reblock'), 'block')) {
         $revert = '(' . Linker::link(SpecialPage::getTitleFor('Unblock', $row->log_title), $this->message['unblocklink'], array(), array(), 'known') . $this->message['pipe-separator'] . Linker::link(SpecialPage::getTitleFor('Block', $row->log_title), $this->message['change-blocklink'], array(), array(), 'known') . ')';
         // Show change protection link
     } elseif (self::typeAction($row, 'protect', array('modify', 'protect', 'unprotect'))) {
         $revert .= ' (' . Linker::link($title, $this->message['hist'], array(), array('action' => 'history', 'offset' => $row->log_timestamp));
         if ($wgUser->isAllowed('protect')) {
             $revert .= $this->message['pipe-separator'] . Linker::link($title, $this->message['protect_change'], array(), array('action' => 'protect'), 'known');
         }
         $revert .= ')';
         // Show unmerge link
     } elseif (self::typeAction($row, 'merge', 'merge', 'mergehistory')) {
         $revert = '(' . Linker::link(SpecialPage::getTitleFor('MergeHistory'), $this->message['revertmerge'], array(), array('target' => $paramArray[0], 'dest' => $title->getPrefixedDBkey(), 'mergepoint' => $paramArray[1]), array('known', 'noclasses')) . ')';
         // If an edit was hidden from a page give a review link to the history
     } elseif (self::typeAction($row, array('delete', 'suppress'), 'revision', 'deletedhistory')) {
         $revert = RevisionDeleter::getLogLinks($title, $paramArray, $this->skin, $this->message);
         // Hidden log items, give review link
     } elseif (self::typeAction($row, array('delete', 'suppress'), 'event', 'deletedhistory')) {
         if (count($paramArray) >= 1) {
             $revdel = SpecialPage::getTitleFor('Revisiondelete');
             // $paramArray[1] is a CSV of the IDs
             $query = $paramArray[0];
             // Link to each hidden object ID, $paramArray[1] is the url param
             $revert = '(' . Linker::link($revdel, $this->message['revdel-restore'], array(), array('target' => $title->getPrefixedText(), 'type' => 'logging', 'ids' => $query), array('known', 'noclasses')) . ')';
         }
         // Self-created users
     } elseif (self::typeAction($row, 'newusers', 'create2')) {
         if (isset($paramArray[0])) {
             $revert = Linker::userToolLinks($paramArray[0], $title->getDBkey(), true);
         } else {
             # Fall back to a blue contributions link
             $revert = Linker::userToolLinks(1, $title->getDBkey());
         }
         if (wfTimestamp(TS_MW, $row->log_timestamp) < '20080129000000') {
             # Suppress $comment from old entries (before 2008-01-29),
             # not needed and can contain incorrect links
             $comment = '';
         }
         // Do nothing. The implementation is handled by the hook modifiying the passed-by-ref parameters.
     } else {
         wfRunHooks('LogLine', array($row->log_type, $row->log_action, $title, $paramArray, &$comment, &$revert, $row->log_timestamp));
     }
     if ($revert != '') {
         $revert = '<span class="mw-logevent-actionlink">' . $revert . '</span>';
     }
     return $revert;
 }