예제 #1
0
 /**
  * @param EchoEvent $event
  * @param $param
  * @param $message Message
  * @param $user User
  */
 protected function processParam($event, $param, $message, $user)
 {
     if ($param === 'subject-anchor') {
         $message->params($this->formatSubjectAnchor($event));
     } elseif ($param === 'section-title') {
         $message->params($this->getSectionTitle($event, $user));
     } elseif ($param === 'difflink') {
         $revid = $event->getExtraParam('revid');
         if (!$revid) {
             $message->params('');
             return;
         }
         $diff = $event->getExtraParam('diffid', 'prev');
         $props = array('attribs' => array('class' => 'mw-echo-diff'), 'linkText' => $this->getMessage('parentheses')->params($this->getMessage('showdiff')->text())->escaped(), 'param' => array('oldid' => $revid, 'diff' => $diff), 'fragment' => '');
         $this->setTitleLink($event, $message, $props);
     } elseif ($param === 'summary') {
         $message->params($this->getRevisionSnippet($event, $user));
     } elseif ($param === 'number') {
         $eventData = $event->getExtra();
         // The folliwing is a bit of a hack...
         // If the edit is a rollback, we want to say 'your edits' in the
         // notification. If the edit is an undo, we want to say 'your edit'
         // in the notification. To accomplish this, we pass a 'number' param
         // to the message which is set to 1 or 2 and formatted with {{PLURAL}}.
         if (isset($eventData['method']) && $eventData['method'] === 'rollback') {
             $message->params(2);
         } else {
             $message->params(1);
         }
     } else {
         parent::processParam($event, $param, $message, $user);
     }
 }
예제 #2
0
 /**
  * @param $event EchoEvent
  * @param $param
  * @param $message Message
  * @param $user User
  */
 protected function processParam($event, $param, $message, $user)
 {
     if ($param === 'difflink') {
         $eventData = $event->getExtra();
         if (!isset($eventData['revid'])) {
             $message->params();
             return;
         }
         $this->setTitleLink($event, $message, array('class' => 'mw-echo-diff', 'linkText' => wfMessage('notification-thumbs-up-diff-link')->text(), 'param' => array('oldid' => $eventData['revid'], 'diff' => 'prev')));
     } else {
         parent::processParam($event, $param, $message, $user);
     }
 }
 protected function processParam($event, $param, $message, $user)
 {
     if ($param === 'instance') {
         $extra = $event->getExtra();
         // PHP 5.3 compatability...
         $instance = $extra['instanceName'];
         if ($instance) {
             $message->params($instance);
         } else {
             $message->params('');
         }
     } else {
         parent::processParam($event, $param, $message, $user);
     }
 }
 /**
  *
  * @param EchoEvent $event
  * @param type $param
  * @param Message $message
  * @param User $user
  */
 protected function processParam($event, $param, $message, $user)
 {
     if ($param === 'summary') {
         $aEventData = $event->getExtra();
         $message->params($aEventData['summary']);
     } else {
         if ($param === 'titlelink') {
             $this->setTitleLink($event, $message, array('class' => 'mw-echo-title'));
         } else {
             if ($param === 'difflink') {
                 $aEvent = $event->getExtra();
                 $diffparams = isset($aEvent['difflink']) ? $aEvent['difflink']['diffparams'] : '';
                 $this->setDiffLink($event, $message, array('class' => 'mw-echo-diff', 'param' => $diffparams));
             } else {
                 if ($param === 'agentlink') {
                     if ($event->getAgent()->isAnon()) {
                         $message->params("'''" . wfMessage('bs-echo-anon-user') . "'''")->parse();
                     } else {
                         $this->setUserpageLink($event, $message, array('class' => 'mw-echo-userpage'));
                     }
                 } else {
                     if ($param === 'userlink') {
                         $this->setUserpageLink($event, $message, array('class' => 'mw-echo-userpage', 'created' => true));
                     } else {
                         if ($param === 'newtitle') {
                             $aExtra = $event->getExtra();
                             $oNewTitle = $aExtra['newtitle'];
                             $message->params($oNewTitle->getPrefixedText());
                         } else {
                             if ($param === 'newtitlelink') {
                                 $aExtra = $event->getExtra();
                                 $oNewTitle = $aExtra['newtitle'];
                                 $this->buildLink($oNewTitle, $message, array('class' => 'mw-echo-title'));
                             } else {
                                 if ($param === 'deletereason') {
                                     $aExtra = $event->getExtra();
                                     $message->params($aExtra['deletereason']);
                                 } else {
                                     if ($param === 'shoutmsg') {
                                         $aExtra = $event->getExtra();
                                         $sMessage = $aExtra['shoutmsg'];
                                         $message->params($sMessage);
                                     } else {
                                         if ($param === 'username') {
                                             $aExtra = $event->getExtra();
                                             $sMessage = $aExtra['username'];
                                             $message->params($sMessage);
                                         } else {
                                             if ($param === 'realname') {
                                                 $aExtra = $event->getExtra();
                                                 $sMessage = $aExtra['realname'];
                                                 $message->params($sMessage);
                                             } else {
                                                 parent::processParam($event, $param, $message, $user);
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }
예제 #5
0
 /**
  * @param $event EchoEvent
  * @param $param string
  * @param $message Message
  * @param $user User
  */
 protected function processParam($event, $param, $message, $user)
 {
     $extra = self::extractExtra($event->getExtra());
     switch ($param) {
         // 'A' part in this message: link from page A and X others
         case 'link-from-page':
             $title = null;
             if ($this->isTitleSet($extra)) {
                 $title = Title::newFromId($extra['link-from-page-id']);
                 // Link-from page could be a brand new page and page_id would not be replicated
                 // to slave db yet.  If job queue is enabled to process web and email notification,
                 // the check against master database is not necessary since there is already a
                 // delay in the job queue
                 if (!$title) {
                     global $wgEchoUseJobQueue;
                     $diff = wfTimestamp() - wfTimestamp(TS_UNIX, $event->getTimestamp());
                     if (!$wgEchoUseJobQueue && $diff < 5) {
                         $title = Title::newFromID($extra['link-from-page-id'], Title::GAID_FOR_UPDATE);
                     }
                 }
                 if ($title) {
                     if ($this->outputFormat === 'htmlemail') {
                         $message->rawParams(Linker::link($title, $this->formatTitle($title), array('style' => $this->getHTMLLinkStyle()), array(), array('https')));
                     } else {
                         $message->params($this->formatTitle($title));
                     }
                 }
             }
             if (!$title) {
                 $message->params($this->getMessage('echo-no-title'));
             }
             break;
             // example: {7} other page, {99+} other pages
         // example: {7} other page, {99+} other pages
         case 'link-from-page-other-display':
             global $wgEchoMaxNotificationCount;
             if ($this->bundleData['link-from-page-other-count'] > $wgEchoMaxNotificationCount) {
                 $message->params($this->getMessage('echo-notification-count')->numParams($wgEchoMaxNotificationCount)->text());
             } else {
                 $message->numParams($this->bundleData['link-from-page-other-count']);
             }
             break;
             // the number used for plural support
         // the number used for plural support
         case 'link-from-page-other-count':
             $message->params($this->bundleData['link-from-page-other-count']);
             break;
         default:
             parent::processParam($event, $param, $message, $user);
             break;
     }
 }