public function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     $type = $this->entry->getFullType();
     if ($type === 'translationreview/message') {
         $targetPage = $this->makePageLink($this->entry->getTarget(), array('oldid' => $params[3]));
         $params[2] = Message::rawParam($targetPage);
     } elseif ($type === 'translationreview/group') {
         /*
          * - 3: language code
          * - 4: label of the message group
          * - 5: old state
          * - 6: new state
          */
         $uiLanguage = $this->context->getLanguage();
         $language = $params[3];
         $targetPage = $this->makePageLinkWithText($this->entry->getTarget(), $params[4], array('language' => $language));
         $params[2] = Message::rawParam($targetPage);
         $params[3] = TranslateUtils::getLanguageName($language, $uiLanguage->getCode());
         $params[5] = $this->formatStateMessage($params[5]);
         $params[6] = $this->formatStateMessage($params[6]);
     } elseif ($type === 'translatorsandbox/rejected') {
         // No point linking to the user page which cannot have existed
         $params[2] = $this->entry->getTarget()->getText();
     } elseif ($type === 'translatorsandbox/promoted') {
         // Gender for the target
         $params[3] = User::newFromId($params[3])->getName();
     }
     return $params;
 }
 protected function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     /* Current format:
      * 1,2,3: normal logformatter params
      * 4: old username
      *    (legaciest doesn't have this at all, all in comment)
      *    (legacier uses this as new name and stores old name in target)
      * 5: new username
      * 6: number of edits the user had at the time
      *    (not available except in newest log entries)
      * Note that the arrays are zero-indexed, while message parameters
      * start from 1, so substract one to get array entries below.
      */
     if (!isset($params[3])) {
         // The oldest format
         return $params;
     } elseif (!isset($params[4])) {
         // See comments above
         $params[4] = $params[3];
         $params[3] = $this->entry->getTarget()->getText();
     }
     // Nice link to old user page
     $title = Title::makeTitleSafe(NS_USER, $params[3]);
     $link = $this->myPageLink($title, $params[3]);
     $params[3] = Message::rawParam($link);
     // Nice link to new user page
     $title = Title::makeTitleSafe(NS_USER, $params[4]);
     $link = $this->myPageLink($title, $params[4]);
     $params[4] = Message::rawParam($link);
     return $params;
 }
 /**
  * @return array
  */
 protected function getMessageParameters()
 {
     $entry = $this->entry->getParameters();
     $params = parent::getMessageParameters();
     $filter_title = SpecialPage::getTitleFor('AbuseFilter', $entry['filter']);
     $filter_caption = $this->msg('abusefilter-log-detailedentry-local')->params($entry['filter']);
     $log_title = SpecialPage::getTitleFor('AbuseLog', $entry['log']);
     $log_caption = $this->msg('abusefilter-log-detailslink');
     $params[4] = $entry['action'];
     if ($this->plaintext) {
         $params[3] = '[[' . $filter_title->getPrefixedText() . '|' . $filter_caption . ']]';
         $params[8] = '[[' . $log_title->getPrefixedText() . '|' . $log_caption . ']]';
     } else {
         $params[3] = Message::rawParam(Linker::link($filter_title, htmlspecialchars($filter_caption)));
         $params[8] = Message::rawParam(Linker::link($log_title, htmlspecialchars($log_caption)));
     }
     $actions_taken = $entry['actions'];
     if (!strlen(trim($actions_taken))) {
         $actions_taken = $this->msg('abusefilter-log-noactions');
     } else {
         $actions = explode(',', $actions_taken);
         $displayActions = array();
         foreach ($actions as $action) {
             $displayActions[] = AbuseFilter::getActionDisplay($action);
         }
         $actions_taken = $this->context->getLanguage()->commaList($displayActions);
     }
     $params[5] = $actions_taken;
     // Bad things happen if the numbers are not in correct order
     ksort($params);
     return $params;
 }
Exemplo n.º 4
0
 protected function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     $subtype = $this->entry->getSubtype();
     if ($subtype === 'protect' || $subtype === 'modify') {
         $rawParams = $this->entry->getParameters();
         if (isset($rawParams['details'])) {
             $params[3] = $this->createProtectDescription($rawParams['details']);
         } elseif (isset($params[3])) {
             // Old way of Restrictions and expiries
             $params[3] = $this->context->getLanguage()->getDirMark() . $params[3];
         } else {
             // Very old way (nothing set)
             $params[3] = '';
         }
         // Cascading flag
         if (isset($params[4])) {
             // handled in getMessageKey
             unset($params[4]);
         }
     } elseif ($subtype === 'move_prot') {
         $oldname = $this->makePageLink(Title::newFromText($params[3]), array('redirect' => 'no'));
         $params[3] = Message::rawParam($oldname);
     }
     return $params;
 }
Exemplo n.º 5
0
 protected function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     $title = $this->entry->getTarget();
     if (substr($title->getText(), 0, 1) === '#') {
         // autoblock - no user link possible
         $params[2] = $title->getText();
         $params[3] = '';
         // no user name for gender use
     } else {
         // Create a user link for the blocked
         $username = $title->getText();
         // @todo Store the user identifier in the parameters
         // to make this faster for future log entries
         $targetUser = User::newFromName($username, false);
         $params[2] = Message::rawParam($this->makeUserLink($targetUser, Linker::TOOL_LINKS_NOBLOCK));
         $params[3] = $username;
         // plain user name for gender use
     }
     $subtype = $this->entry->getSubtype();
     if ($subtype === 'block' || $subtype === 'reblock') {
         if (!isset($params[4])) {
             // Very old log entry without duration: means infinite
             $params[4] = 'infinite';
         }
         // Localize the duration, and add a tooltip
         // in English to help visitors from other wikis.
         // The lrm is needed to make sure that the number
         // is shown on the correct side of the tooltip text.
         $durationTooltip = '‎' . htmlspecialchars($params[4]);
         $params[4] = Message::rawParam("<span class='blockExpiry' title='{$durationTooltip}'>" . $this->context->getLanguage()->translateBlockExpiry($params[4]) . '</span>');
         $params[5] = isset($params[5]) ? self::formatBlockFlags($params[5], $this->context->getLanguage()) : '';
     }
     return $params;
 }
Exemplo n.º 6
0
 static function formatLogEntry($type, $action, $title, $sk, $parameters)
 {
     $msg = "lqt-log-action-{$action}";
     switch ($action) {
         case 'merge':
             if ($parameters[0]) {
                 $msg = 'lqt-log-action-merge-across';
             } else {
                 $msg = 'lqt-log-action-merge-down';
             }
             break;
         case 'move':
             $smt = new SpecialMoveThread();
             $rightsCheck = $smt->checkUserRights($parameters[1] instanceof Title ? $parameters[1] : Title::newFromText($parameters[1]), $parameters[0] instanceof Title ? $parameters[0] : Title::newFromText($parameters[0]));
             if ($rightsCheck === true) {
                 $parameters[] = Message::rawParam(Linker::link(SpecialPage::getTitleFor('MoveThread', $title), wfMessage('revertmove')->text(), array(), array('dest' => $parameters[0])));
             } else {
                 $parameters[] = '';
             }
             break;
         default:
             // Give grep a chance to find the usages:
             // lqt-log-action-move, lqt-log-action-split, lqt-log-action-subjectedit,
             // lqt-log-action-resort, lqt-log-action-signatureedit
             $msg = "lqt-log-action-{$action}";
             break;
     }
     array_unshift($parameters, $title->getPrefixedText());
     $html = wfMessage($msg, $parameters);
     if ($sk === null) {
         return StringUtils::delimiterReplace('<', '>', '', $html->inContentLanguage()->parse());
     }
     return $html->parse();
 }
 public function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     $type = $this->entry->getSubtype();
     $entry_params = $this->entry->getParameters();
     if ($type === 'approve') {
         $revid = $entry_params['revid'];
         $link = Linker::linkKnown($this->entry->getTarget(), wfMessage('moderation-log-diff', $revid)->text(), array('title' => wfMessage('tooltip-moderation-approved-diff')), array('diff' => $revid));
         $params[4] = Message::rawParam($link);
     } elseif ($type === 'reject') {
         $modid = $entry_params['modid'];
         $link = Linker::linkKnown(Title::makeTitle(NS_SPECIAL, "Moderation"), wfMessage('moderation-log-change', $modid)->text(), array('title' => wfMessage('tooltip-moderation-rejected-change')), array('modaction' => 'show', 'modid' => $modid));
         $params[4] = Message::rawParam($link);
         $userlink = Linker::userLink($entry_params['user'], $entry_params['user_text']);
         $params[5] = Message::rawParam($userlink);
     } elseif ($type === 'merge') {
         $revid = $entry_params['revid'];
         $modid = $entry_params['modid'];
         $link = Linker::linkKnown(Title::makeTitle(NS_SPECIAL, "Moderation"), wfMessage('moderation-log-change', $modid)->text(), array('title' => wfMessage('tooltip-moderation-rejected-change')), array('modaction' => 'show', 'modid' => $modid));
         $params[4] = Message::rawParam($link);
         $link = Linker::linkKnown($this->entry->getTarget(), wfMessage('moderation-log-diff', $revid)->text(), array('title' => wfMessage('tooltip-moderation-approved-diff')), array('diff' => $revid));
         $params[5] = Message::rawParam($link);
     } elseif ($type === 'approveall' || $type === 'rejectall' || $type === 'block' || $type === 'unblock') {
         $title = $this->entry->getTarget();
         $user_id = User::idFromName($title->getText());
         $link = Linker::userLink($user_id, $title->getText());
         $params[2] = Message::rawParam($link);
     }
     return $params;
 }
 protected function getLocalWikiLink($name, $wiki)
 {
     $text = "User:{$name}@{$wiki}";
     if ($this->plaintext) {
         return "[[{$text}]]";
     }
     return Message::rawParam(WikiMap::foreignUserLink($wiki, $name, $text));
 }
Exemplo n.º 9
0
	protected function getMessageParameters() {
		$params = parent::getMessageParameters();
		$oldname = $this->makePageLink( $this->entry->getTarget(), array( 'redirect' => 'no' ) );
		$newname = $this->makePageLink( Title::newFromText( $params[3] ) );
		$params[2] = Message::rawParam( $oldname );
		$params[3] = Message::rawParam( $newname );
		return $params;
	}
Exemplo n.º 10
0
 protected function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     $oldname = $this->makePageLink($this->entry->getTarget(), array('redirect' => 'no'));
     $newname = $this->makePageLink(Title::newFromText($params[3]));
     $params[2] = Message::rawParam($oldname);
     $params[3] = Message::rawParam($newname);
     $params[4] = $this->context->getLanguage()->userTimeAndDate($params[4], $this->context->getUser());
     return $params;
 }
 protected function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     $subtype = $this->entry->getSubtype();
     if ($subtype === 'requestwiki') {
         $params[6] = str_replace('#', '', $params[6]);
         $params[6] = Message::rawParam(Linker::linkKnown(Title::newFromText(SpecialPage::getTitleFor('RequestWikiQueue') . '/' . $params[6]), '#' . $params[6]));
         return $params;
     }
 }
Exemplo n.º 12
0
 protected function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     $subtype = $this->entry->getSubtype();
     if ($subtype === 'move_prot') {
         $oldname = $this->makePageLink(Title::newFromText($params[3]), array('redirect' => 'no'));
         $params[3] = Message::rawParam($oldname);
     }
     return $params;
 }
 protected function getMessageParameters()
 {
     parent::getMessageParameters();
     $params = $this->extractParameters();
     $lang = $this->context->getLanguage();
     $this->parsedParameters[3] = Message::rawParam($lang->commaList(array_map(array($this, 'getCentralAuthLink'), explode('|', $params[3]))));
     $this->parsedParameters[4] = Message::rawParam($this->getCentralAuthLink($params[4]));
     ksort($this->parsedParameters);
     return $this->parsedParameters;
 }
Exemplo n.º 14
0
	protected function getMessageParameters() {
		$params = parent::getMessageParameters();
		$subtype = $this->entry->getSubtype();
		if ( $subtype === 'create2' || $subtype === 'byemail' ) {
			if ( isset( $params[3] ) ) {
				$target = User::newFromId( $params[3] );
			} else {
				$target = User::newFromName( $this->entry->getTarget()->getText(), false );
			}
			$params[2] = Message::rawParam( $this->makeUserLink( $target ) );
			$params[3] = $target->getName();
		}
		return $params;
	}
 protected function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     $target = $this->entry->getTarget();
     $oldid = $params[3];
     $revision = $this->context->getLanguage()->formatNum($oldid, true);
     if ($this->plaintext) {
         $revlink = $revision;
     } elseif ($target->exists()) {
         $query = array('oldid' => $oldid, 'diff' => 'prev');
         $revlink = Linker::link($target, htmlspecialchars($revision), array(), $query);
     } else {
         $revlink = htmlspecialchars($revision);
     }
     $params[3] = Message::rawParam($revlink);
     return $params;
 }
 protected function getMessageParameters()
 {
     // First call the main function to load the other values
     parent::getMessageParameters();
     $params = $this->extractParameters();
     // Backwards compat for older log entries
     if (!isset($params[3])) {
         return $this->parsedParameters;
     }
     // This will be localized with Linker::link
     // @todo Somehow localize for plaintext messages
     $title = Title::newFromText('Special:Permalink/' . $params[3]);
     // Our simple version of LogFormatter::makeLink
     if ($this->plaintext) {
         $this->parsedParameters[2] = '[[' . $title->getPrefixedText() . ']]';
     } else {
         $this->parsedParameters[2] = Message::rawParam(Linker::link($title, htmlspecialchars($this->entry->getTarget())));
     }
     ksort($this->parsedParameters);
     return $this->parsedParameters;
 }
 public function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     $legacy = $this->entry->getParameters();
     $type = $this->entry->getFullType();
     switch ($type) {
         case 'pagetranslation/mark':
             $revision = $legacy['revision'];
             $targetPage = $this->makePageLink($this->entry->getTarget(), array('oldid' => $revision));
             $params[2] = Message::rawParam($targetPage);
             break;
         case 'pagetranslation/moveok':
         case 'pagetranslation/movenok':
         case 'pagetranslation/deletefnok':
         case 'pagetranslation/deletelnok':
             $target = $legacy['target'];
             $moveTarget = $this->makePageLink(Title::newFromText($target));
             $params[3] = Message::rawParam($moveTarget);
             break;
         case 'pagetranslation/prioritylanguages':
             $params[3] = $legacy['force'];
             $languages = $legacy['languages'];
             if ($languages !== false) {
                 $lang = $this->context->getLanguage();
                 $languages = array_map('trim', preg_split('/,/', $languages, -1, PREG_SPLIT_NO_EMPTY));
                 $languages = array_map(function ($code) use($lang) {
                     return TranslateUtils::getLanguageName($code, $lang->getCode());
                 }, $languages);
                 $params[4] = $lang->listToText($languages);
             }
             break;
         case 'pagetranslation/associate':
         case 'pagetranslation/dissociate':
             $params[3] = $legacy['aggregategroup'];
             break;
     }
     return $params;
 }
 /**
  * Handles formatting of log entries for MediaWiki 1.18.x. 
  * 
  * @since 0.1
  * 
  * @param string $type
  * @param string $action
  * @param Title $title
  * @param boolean|null $forUI
  * @param array $params
  * 
  * @return string
  */
 public static function formatLogEntry($type, $action, Title $title, $forUI, array $params)
 {
     global $wgContLang, $wgLang;
     return wfMessage('logentry-' . $type . '-' . $action)->params('', '#', Message::rawParam($forUI ? Linker::link($title) : $title->getPrefixedText()))->inLanguage($forUI === null ? $wgContLang : $wgLang)->text();
 }
Exemplo n.º 19
0
 /**
  * Formats parameters values dependent to their type
  * @param string $type The type of the value.
  *   Valid are currently:
  *     * - (empty) or plain: The value is returned as-is
  *     * raw: The value will be added to the log message
  *            as raw parameter (e.g. no escaping)
  *            Use this only if there is no other working
  *            type like user-link or title-link
  *     * msg: The value is a message-key, the output is
  *            the message in user language
  *     * msg-content: The value is a message-key, the output
  *                    is the message in content language
  *     * user: The value is a user name, e.g. for GENDER
  *     * user-link: The value is a user name, returns a
  *                  link for the user
  *     * title: The value is a page title,
  *              returns name of page
  *     * title-link: The value is a page title,
  *                   returns link to this page
  *     * number: Format value as number
  *     * list: Format value as a comma-separated list
  * @param mixed $value The parameter value that should be formatted
  * @return string|array Formated value
  * @since 1.21
  */
 protected function formatParameterValue($type, $value)
 {
     $saveLinkFlood = $this->linkFlood;
     switch (strtolower(trim($type))) {
         case 'raw':
             $value = Message::rawParam($value);
             break;
         case 'list':
             $value = $this->context->getLanguage()->commaList($value);
             break;
         case 'msg':
             $value = $this->msg($value)->text();
             break;
         case 'msg-content':
             $value = $this->msg($value)->inContentLanguage()->text();
             break;
         case 'number':
             $value = Message::numParam($value);
             break;
         case 'user':
             $user = User::newFromName($value);
             $value = $user->getName();
             break;
         case 'user-link':
             $this->setShowUserToolLinks(false);
             $user = User::newFromName($value);
             $value = Message::rawParam($this->makeUserLink($user));
             $this->setShowUserToolLinks($saveLinkFlood);
             break;
         case 'title':
             $title = Title::newFromText($value);
             $value = $title->getPrefixedText();
             break;
         case 'title-link':
             $title = Title::newFromText($value);
             $value = Message::rawParam($this->makePageLink($title));
             break;
         case 'plain':
             // Plain text, nothing to do
         // Plain text, nothing to do
         default:
             // Catch other types and use the old behavior (return as-is)
     }
     return $value;
 }
Exemplo n.º 20
0
 protected function getMessageParameters()
 {
     $params = parent::getMessageParameters();
     if (isset($params[4])) {
         $params[4] = Message::rawParam($params[4]);
     }
     return $params;
 }
Exemplo n.º 21
0
 /**
  * Build a link, to be used as message parameter, based on output format and
  * passed properties. Return value of this function can be used as parameter
  * for Message::params()
  * $title Title
  * $props array
  */
 protected function buildLinkParam($title, $props = array())
 {
     $param = array();
     if (isset($props['param'])) {
         $param = (array) $props['param'];
     }
     if (isset($props['fragment'])) {
         $fragment = $props['fragment'];
         $title->setFragment("#{$fragment}");
     }
     if (in_array($this->outputFormat, array('html', 'flyout', 'htmlemail'))) {
         $attribs = array();
         if (isset($props['attribs'])) {
             $attribs = (array) $props['attribs'];
         }
         if (isset($props['linkText'])) {
             $linkText = $props['linkText'];
         } else {
             $linkText = htmlspecialchars($title->getPrefixedText());
         }
         $options = array();
         if ($this->outputFormat === 'htmlemail') {
             $options = array('https');
         }
         return array(Message::rawParam(Linker::link($title, $linkText, $attribs, $param, $options)));
     } elseif ($this->outputFormat === 'email') {
         $url = $title->getFullURL($param, false, PROTO_HTTPS);
         return $this->sanitizeEmailLink($url);
     } else {
         return $title->getFullURL($param);
     }
 }
Exemplo n.º 22
0
	public static function formatTranslationreviewLogEntry( $type, $action, $title, $forUI, $params ) {
		global $wgLang, $wgContLang;

		$language = $forUI === null ? $wgContLang : $wgLang;
		$linker = class_exists( 'DummyLinker' ) ? new DummyLinker : new Linker;

		if ( $action === 'message' ) {
			$link = $forUI ?
				$linker->link( $title, null, array(), array( 'oldid' => $params[0] ) ) :
				$title->getPrefixedText();
			return wfMessage( 'logentry-translationreview-message' )->params(
				'', // User link in the new system
				'#', // User name for gender in the new system
				Message::rawParam( $link )
			)->inLanguage( $language )->text();
		}

		if ( $action === 'group' ) {
			$languageCode = $params[0];
			$languageNames = Language::getTranslatedLanguageNames( $languageCode );
			$languageName = "$languageNames[$languageCode] ($languageCode)";
			$groupLabel = $params[1];
			$oldState = $params[2];
			$newState = $params[3];
			$oldStateMessage = wfMessage( "translate-workflow-state-$oldState" );
			$newStateMessage = wfMessage( "translate-workflow-state-$newState" );
			$oldState = $oldStateMessage->isBlank() ? $oldState : $oldStateMessage->text();
			$newState = $newStateMessage->isBlank() ? $newState : $newStateMessage->text();

			$link = $forUI ?
				$linker->link( $title, $groupLabel, array(), array( 'language' => $languageCode ) ) :
				$groupLabel;

			return wfMessage( 'logentry-groupreview-message' )->params(
				'', // User link in the new system
				'#', // User name for gender in the new system
				Message::rawParam( $link ),
				$languageName,
				$oldState,
				$newState
			)->inLanguage( $language )->text();
		}

		return '';
	}
 public static function logUnapprovedSave(Title $title, User $user, $rev_id)
 {
     $new_rev_link = Linker::linkKnown($title, $rev_id, array(), array('oldid' => $rev_id));
     $action = 'unapprovedsave';
     $logEntry = new ManualLogEntry('approvedrevs', $action);
     $logEntry->setPerformer($user);
     // User object, the user who did this action
     $logEntry->setTarget($title);
     // The page that this log entry affects
     $logEntry->setParameters(array('4::revision_link' => Message::rawParam($new_rev_link), '5::project' => self::getProjectName($title)));
     $logid = $logEntry->insert();
     $logEntry->publish($logid);
 }