コード例 #1
0
 /**
  * @covers MassMessage::getMessengerUser
  * @dataProvider provideGetMessengerUser
  * @param $name
  */
 public function testGetMessengerUser($name)
 {
     global $wgMassMessageAccountUsername;
     $wgMassMessageAccountUsername = $name;
     $user = MassMessage::getMessengerUser();
     $this->assertEquals($user->getName(), $name);
     $this->assertTrue(in_array('bot', $user->getGroups()));
     $this->assertEquals($user->mPassword, '');
 }
コード例 #2
0
 /**
  * Echo!
  *
  * @param $event EchoEvent
  * @return bool
  */
 public static function onBeforeEchoEventInsert(EchoEvent $event)
 {
     // Don't spam a user with mention notifications if it's a MassMessage
     if ($event->getType() == 'mention' && $event->getAgent() && $event->getAgent()->getId() == MassMessage::getMessengerUser()->getId()) {
         return false;
     }
     return true;
 }
コード例 #3
0
 function makeAPIRequest(array $params)
 {
     global $wgUser, $wgRequest;
     $wgRequest = new DerivativeRequest($wgRequest, $params, true);
     $wgUser = MassMessage::getMessengerUser();
     // New user objects will use $wgRequest, so we set that
     // to our DerivativeRequest, so we don't run into any issues
     RequestContext::getMain()->setUser($wgUser);
     RequestContext::getMain()->setRequest($wgRequest);
     // All further internal API requests will use the main
     // RequestContext, so setting it here will fix it for
     // all other internal uses, like how LQT does
     $api = new ApiMain($wgRequest, true);
     try {
         $api->execute();
     } catch (UsageException $e) {
         $this->logLocalFailure($e->getCodeString());
     }
 }
コード例 #4
0
 /**
  * A preview/confirmation screen
  *
  * @param $data Array
  * @return Status
  */
 protected function preview(array $data)
 {
     $firstTarget = Title::newFromText('Project:Example');
     $wikipage = WikiPage::factory($firstTarget);
     // Hacked up from EditPage.php
     // Is this really the best way to do this???
     $subject = $data['subject'];
     $message = $data['message'];
     // Convert into a content object
     $content = ContentHandler::makeContent($message, $firstTarget);
     // Parser stuff. Taken from EditPage::getPreviewText()
     $parserOptions = $wikipage->makeParserOptions($this->getContext());
     $parserOptions->setEditSection(false);
     $parserOptions->setIsPreview(true);
     $parserOptions->setIsSectionPreview(false);
     //$content = $content->addSectionHeader( $subject );
     // Hooks not being run: EditPageGetPreviewContent, EditPageGetPreviewText
     $content = $content->preSaveTransform($firstTarget, MassMessage::getMessengerUser(), $parserOptions);
     $parserOutput = $content->getParserOutput($firstTarget, null, $parserOptions);
     $previewHTML = $parserOutput->getText();
     $this->getOutput()->addWikiMsg('massmessage-just-preview');
     $fieldsetMessage = $this->msg('massmessage-fieldset-preview')->text();
     $wrapFieldset = Xml::fieldset($fieldsetMessage, $previewHTML);
     $this->getOutput()->addHTML($wrapFieldset);
     return false;
 }