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; }
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; }
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; }
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)); }
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; }
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; } }
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; }
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(); }
/** * 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; }
protected function getMessageParameters() { $params = parent::getMessageParameters(); if (isset($params[4])) { $params[4] = Message::rawParam($params[4]); } return $params; }
/** * 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); } }
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); }