public function execute($par) { $request = $this->getRequest(); $par = (string) $par; // Yes, the use of getVal() and getText() is wanted, see bug T22365 $this->text = $request->getVal('wpTitle', $par); $this->title = Title::newFromText($this->text); $this->reason = $request->getText('reason'); // Checkboxes that default being checked are tricky $this->doSubpages = $request->getBool('subpages', !$request->wasPosted()); $user = $this->getUser(); if ($this->doBasicChecks() !== true) { return; } $out = $this->getOutput(); // Real stuff starts here if (TranslatablePage::isSourcePage($this->title)) { $title = $this->msg('pt-deletepage-full-title', $this->title->getPrefixedText()); $out->setPagetitle($title); $this->code = ''; $this->page = TranslatablePage::newFromTitle($this->title); } else { $page = TranslatablePage::isTranslationPage($this->title); if ($page) { $title = $this->msg('pt-deletepage-lang-title', $this->title->getPrefixedText()); $out->setPagetitle($title); list(, $this->code) = TranslateUtils::figureMessage($this->title->getText()); $this->page = $page; } else { throw new ErrorPageError('pt-deletepage-invalid-title', 'pt-deletepage-invalid-text'); } } if (!$user->isAllowed('pagetranslation')) { throw new PermissionsError('pagetranslation'); } // Is there really no better way to do this? $subactionText = $request->getText('subaction'); switch ($subactionText) { case $this->msg('pt-deletepage-action-check')->text(): $subaction = 'check'; break; case $this->msg('pt-deletepage-action-perform')->text(): $subaction = 'perform'; break; case $this->msg('pt-deletepage-action-other')->text(): $subaction = ''; break; default: $subaction = ''; } if ($subaction === 'check' && $this->checkToken() && $request->wasPosted()) { $this->showConfirmation(); } elseif ($subaction === 'perform' && $this->checkToken() && $request->wasPosted()) { $this->performAction(); } else { $this->showForm(); } }
/** * Keep the usual diiba daaba hidden from translators. * Hook: AlternateEdit */ public static function intro(EditPage $editpage) { $handle = new MessageHandle($editpage->getTitle()); if ($handle->isValid()) { $editpage->suppressIntro = true; $group = $handle->getGroup(); $languages = $group->getTranslatableLanguages(); if ($handle->getCode() && $languages !== null && !isset($languages[$handle->getCode()])) { $editpage->getArticle()->getContext()->getOutput()->wrapWikiMsg("<div class='error'>\$1</div>", 'translate-language-disabled'); return false; } return true; } $msg = wfMessage('translate-edit-tag-warning')->inContentLanguage(); if (!$msg->isDisabled() && TranslatablePage::isSourcePage($editpage->getTitle())) { $editpage->editFormTextTop .= $editpage->getArticle()->getContext()->getOutput()->parse($msg->plain()); } return true; }
public static function replaceSubtitle(&$subpages, $skin = null, OutputPage $out) { if (!TranslatablePage::isTranslationPage($out->getTitle()) && !TranslatablePage::isSourcePage($out->getTitle())) { return true; } // Copied from Skin::subPageSubtitle() if ($out->isArticle() && MWNamespace::hasSubpages($out->getTitle()->getNamespace())) { $ptext = $out->getTitle()->getPrefixedText(); if (preg_match('/\\//', $ptext)) { $links = explode('/', $ptext); array_pop($links); // Also pop of one extra for language code is needed if (TranslatablePage::isTranslationPage($out->getTitle())) { array_pop($links); } $c = 0; $growinglink = ''; $display = ''; foreach ($links as $link) { $growinglink .= $link; $display .= $link; $linkObj = Title::newFromText($growinglink); if (is_object($linkObj) && $linkObj->exists()) { $getlink = Linker::linkKnown(SpecialPage::getTitleFor('MyLanguage', $growinglink), htmlspecialchars($display)); $c++; if ($c > 1) { $subpages .= wfMessage('pipe-separator')->plain(); } else { // This one is stupid imho, doesn't work with chihuahua // $subpages .= '< '; } $subpages .= $getlink; $display = ''; } else { $display .= '/'; } $growinglink .= '/'; } } return false; } return true; }
/** * Keep the usual diiba daaba hidden from translators. * Hook: AlternateEdit */ public static function intro( EditPage $editpage ) { $handle = new MessageHandle( $editpage->mTitle ); if ( $handle->isValid() ) { $editpage->suppressIntro = true; return true; } $msg = wfMsgForContent( 'translate-edit-tag-warning' ); if ( $msg !== '' && $msg !== '-' && TranslatablePage::isSourcePage( $editpage->mTitle ) ) { global $wgOut; $editpage->editFormTextTop .= $wgOut->parse( $msg ); } return true; }
public static function replaceSubtitle(&$subpages, $skin = null, $out = null) { global $wgOut; // $out was only added in some MW version if ($out === null) { $out = $wgOut; } $linker = class_exists('DummyLinker') ? new DummyLinker() : new Linker(); if (!TranslatablePage::isTranslationPage($out->getTitle()) && !TranslatablePage::isSourcePage($out->getTitle())) { return true; } // Copied from Skin::subPageSubtitle() if ($out->isArticle() && MWNamespace::hasSubpages($out->getTitle()->getNamespace())) { $ptext = $out->getTitle()->getPrefixedText(); if (preg_match('/\\//', $ptext)) { $links = explode('/', $ptext); array_pop($links); // Also pop of one extra for language code is needed if (TranslatablePage::isTranslationPage($out->getTitle())) { array_pop($links); } $c = 0; $growinglink = ''; $display = ''; foreach ($links as $link) { $growinglink .= $link; $display .= $link; $linkObj = Title::newFromText($growinglink); if (is_object($linkObj) && $linkObj->exists()) { $getlink = $linker->linkKnown(SpecialPage::getTitleFor('MyLanguage', $growinglink), htmlspecialchars($display)); $c++; if ($c > 1) { $subpages .= wfMsgExt('pipe-separator', 'escapenoentities'); } else { // This one is stupid imho, doesn't work with chihuahua // $subpages .= '< '; } $subpages .= $getlink; $display = ''; } else { $display .= '/'; } $growinglink .= '/'; } } return false; } return true; }