本文整理汇总了PHP中Title::newFromRedirectArray方法的典型用法代码示例。如果您正苦于以下问题:PHP Title::newFromRedirectArray方法的具体用法?PHP Title::newFromRedirectArray怎么用?PHP Title::newFromRedirectArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Title
的用法示例。
在下文中一共展示了Title::newFromRedirectArray方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
public function execute()
{
global $wgUser;
$params = $this->extractRequestParams();
if (is_null($params['text']) && is_null($params['appendtext']) && is_null($params['prependtext']) && $params['undo'] == 0) {
$this->dieUsageMsg(array('missingtext'));
}
$titleObj = Title::newFromText($params['title']);
if (!$titleObj || $titleObj->isExternal()) {
$this->dieUsageMsg(array('invalidtitle', $params['title']));
}
if ($params['redirect']) {
if ($titleObj->isRedirect()) {
$oldTitle = $titleObj;
$titles = Title::newFromRedirectArray(Revision::newFromTitle($oldTitle)->getText(Revision::FOR_THIS_USER));
$redirValues = array();
foreach ($titles as $id => $newTitle) {
if (!isset($titles[$id - 1])) {
$titles[$id - 1] = $oldTitle;
}
$redirValues[] = array('from' => $titles[$id - 1]->getPrefixedText(), 'to' => $newTitle->getPrefixedText());
$titleObj = $newTitle;
}
$this->getResult()->setIndexedTagName($redirValues, 'r');
$this->getResult()->addValue(null, 'redirects', $redirValues);
}
}
// Some functions depend on $wgTitle == $ep->mTitle
global $wgTitle;
$wgTitle = $titleObj;
if ($params['createonly'] && $titleObj->exists()) {
$this->dieUsageMsg(array('createonly-exists'));
}
if ($params['nocreate'] && !$titleObj->exists()) {
$this->dieUsageMsg(array('nocreate-missing'));
}
// Now let's check whether we're even allowed to do this
$errors = $titleObj->getUserPermissionsErrors('edit', $wgUser);
if (!$titleObj->exists()) {
$errors = array_merge($errors, $titleObj->getUserPermissionsErrors('create', $wgUser));
}
if (count($errors)) {
$this->dieUsageMsg($errors[0]);
}
$articleObj = new Article($titleObj);
$toMD5 = $params['text'];
if (!is_null($params['appendtext']) || !is_null($params['prependtext'])) {
// For non-existent pages, Article::getContent()
// returns an interface message rather than ''
// We do want getContent()'s behavior for non-existent
// MediaWiki: pages, though
if ($articleObj->getID() == 0 && $titleObj->getNamespace() != NS_MEDIAWIKI) {
$content = '';
} else {
$content = $articleObj->getContent();
}
if (!is_null($params['section'])) {
// Process the content for section edits
global $wgParser;
$section = intval($params['section']);
$content = $wgParser->getSection($content, $section, false);
if ($content === false) {
$this->dieUsage("There is no section {$section}.", 'nosuchsection');
}
}
$params['text'] = $params['prependtext'] . $content . $params['appendtext'];
$toMD5 = $params['prependtext'] . $params['appendtext'];
}
if ($params['undo'] > 0) {
if ($params['undoafter'] > 0) {
if ($params['undo'] < $params['undoafter']) {
list($params['undo'], $params['undoafter']) = array($params['undoafter'], $params['undo']);
}
$undoafterRev = Revision::newFromID($params['undoafter']);
}
$undoRev = Revision::newFromID($params['undo']);
if (is_null($undoRev) || $undoRev->isDeleted(Revision::DELETED_TEXT)) {
$this->dieUsageMsg(array('nosuchrevid', $params['undo']));
}
if ($params['undoafter'] == 0) {
$undoafterRev = $undoRev->getPrevious();
}
if (is_null($undoafterRev) || $undoafterRev->isDeleted(Revision::DELETED_TEXT)) {
$this->dieUsageMsg(array('nosuchrevid', $params['undoafter']));
}
if ($undoRev->getPage() != $articleObj->getID()) {
$this->dieUsageMsg(array('revwrongpage', $undoRev->getID(), $titleObj->getPrefixedText()));
}
if ($undoafterRev->getPage() != $articleObj->getID()) {
$this->dieUsageMsg(array('revwrongpage', $undoafterRev->getID(), $titleObj->getPrefixedText()));
}
$newtext = $articleObj->getUndoText($undoRev, $undoafterRev);
if ($newtext === false) {
$this->dieUsageMsg(array('undo-failure'));
}
$params['text'] = $newtext;
// If no summary was given and we only undid one rev,
// use an autosummary
if (is_null($params['summary']) && $titleObj->getNextRevisionID($undoafterRev->getID()) == $params['undo']) {
$params['summary'] = wfMsgForContent('undo-summary', $params['undo'], $undoRev->getUserText());
//.........这里部分代码省略.........
示例2: view
//.........这里部分代码省略.........
$text = $this->getContent();
if ($text === false || $this->getID() == 0) {
wfDebug(__METHOD__ . ": showing missing article\n");
$this->showMissingArticle();
wfProfileOut(__METHOD__);
return;
}
# Another whitelist check in case oldid is altering the title
if (!$this->mTitle->userCanRead()) {
wfDebug(__METHOD__ . ": denied on secondary read check\n");
$wgOut->loginToUse();
$wgOut->output();
$wgOut->disable();
wfProfileOut(__METHOD__);
return;
}
# Are we looking at an old revision
if ($oldid && !is_null($this->mRevision)) {
$this->setOldSubtitle($oldid);
if (!$this->showDeletedRevisionHeader()) {
wfDebug(__METHOD__ . ": cannot view deleted revision\n");
wfProfileOut(__METHOD__);
return;
}
# If this "old" version is the current, then try the parser cache...
if ($oldid === $this->getLatest() && $this->useParserCache(false)) {
$this->mParserOutput = $parserCache->get($this, $parserOptions);
if ($this->mParserOutput) {
wfDebug(__METHOD__ . ": showing parser cache for current rev permalink\n");
$wgOut->addParserOutput($this->mParserOutput);
$wgOut->setRevisionId($this->mLatest);
$outputDone = true;
break;
}
}
}
# Ensure that UI elements requiring revision ID have
# the correct version information.
$wgOut->setRevisionId($this->getRevIdFetched());
# Pages containing custom CSS or JavaScript get special treatment
if ($this->mTitle->isCssOrJsPage() || $this->mTitle->isCssJsSubpage()) {
wfDebug(__METHOD__ . ": showing CSS/JS source\n");
$this->showCssOrJsPage();
$outputDone = true;
} else {
$rt = Title::newFromRedirectArray($text);
if ($rt) {
wfDebug(__METHOD__ . ": showing redirect=no page\n");
# Viewing a redirect page (e.g. with parameter redirect=no)
# Don't append the subtitle if this was an old revision
$wgOut->addHTML($this->viewRedirect($rt, !$wasRedirected && $this->isCurrent()));
# Parse just to get categories, displaytitle, etc.
$this->mParserOutput = $wgParser->parse($text, $this->mTitle, $parserOptions);
$wgOut->addParserOutputNoText($this->mParserOutput);
$outputDone = true;
}
}
break;
case 4:
# Run the parse, protected by a pool counter
wfDebug(__METHOD__ . ": doing uncached parse\n");
$key = $parserCache->getKey($this, $parserOptions);
$poolArticleView = new PoolWorkArticleView($this, $key, $useParserCache, $parserOptions);
if (!$poolArticleView->execute()) {
# Connection or timeout error
wfProfileOut(__METHOD__);
return;
} else {
$outputDone = true;
}
break;
# Should be unreachable, but just in case...
# Should be unreachable, but just in case...
default:
break 2;
}
}
# Adjust the title if it was set by displaytitle, -{T|}- or language conversion
if ($this->mParserOutput) {
$titleText = $this->mParserOutput->getTitleText();
if (strval($titleText) !== '') {
$wgOut->setPageTitle($titleText);
}
}
# For the main page, overwrite the <title> element with the con-
# tents of 'pagetitle-view-mainpage' instead of the default (if
# that's not empty).
# This message always exists because it is in the i18n files
if ($this->mTitle->equals(Title::newMainPage()) && ($m = wfMsgForContent('pagetitle-view-mainpage')) !== '') {
$wgOut->setHTMLTitle($m);
}
# Now that we've filled $this->mParserOutput, we know whether
# there are any __NOINDEX__ tags on the page
$policy = $this->getRobotPolicy('view');
$wgOut->setIndexPolicy($policy['index']);
$wgOut->setFollowPolicy($policy['follow']);
$this->showViewFooter();
$this->viewUpdates();
wfProfileOut(__METHOD__);
}
示例3: getRedirectHtml
protected function getRedirectHtml($text)
{
$rTargets = Title::newFromRedirectArray($text);
if ($rTargets) {
$article = new Article($this->article->getTitle());
return $article->viewRedirect($rTargets);
}
return '';
}
示例4: getPreviewText
/**
* Get the rendered text for previewing.
* @return string
*/
function getPreviewText()
{
global $wgOut, $wgUser, $wgParser, $wgRawHtml;
wfProfileIn(__METHOD__);
if ($wgRawHtml && !$this->mTokenOk) {
// Could be an offsite preview attempt. This is very unsafe if
// HTML is enabled, as it could be an attack.
$parsedNote = '';
if ($this->textbox1 !== '') {
// Do not put big scary notice, if previewing the empty
// string, which happens when you initially edit
// a category page, due to automatic preview-on-open.
$parsedNote = $wgOut->parse("<div class='previewnote'>" . wfMsg('session_fail_preview_html') . "</div>", true, true);
}
wfProfileOut(__METHOD__);
return $parsedNote;
}
if ($this->mTriedSave && !$this->mTokenOk) {
if ($this->mTokenOkExceptSuffix) {
$note = wfMsg('token_suffix_mismatch');
} else {
$note = wfMsg('session_fail_preview');
}
} elseif ($this->incompleteForm) {
$note = wfMsg('edit_form_incomplete');
} else {
$note = wfMsg('previewnote');
}
$parserOptions = ParserOptions::newFromUser($wgUser);
$parserOptions->setEditSection(false);
$parserOptions->setTidy(true);
$parserOptions->setIsPreview(true);
$parserOptions->setIsSectionPreview(!is_null($this->section) && $this->section !== '');
# don't parse non-wikitext pages, show message about preview
# XXX: stupid php bug won't let us use $this->getContextTitle()->isCssJsSubpage() here -- This note has been there since r3530. Sure the bug was fixed time ago?
if ($this->isCssJsSubpage || !$this->mTitle->isWikitextPage()) {
if ($this->mTitle->isCssJsSubpage()) {
$level = 'user';
} elseif ($this->mTitle->isCssOrJsPage()) {
$level = 'site';
} else {
$level = false;
}
# Used messages to make sure grep find them:
# Messages: usercsspreview, userjspreview, sitecsspreview, sitejspreview
if ($level) {
if (preg_match("/\\.css\$/", $this->mTitle->getText())) {
$previewtext = "<div id='mw-{$level}csspreview'>\n" . wfMsg("{$level}csspreview") . "\n</div>";
$class = "mw-code mw-css";
} elseif (preg_match("/\\.js\$/", $this->mTitle->getText())) {
$previewtext = "<div id='mw-{$level}jspreview'>\n" . wfMsg("{$level}jspreview") . "\n</div>";
$class = "mw-code mw-js";
} else {
throw new MWException('A CSS/JS (sub)page but which is not css nor js!');
}
}
$parserOutput = $wgParser->parse($previewtext, $this->mTitle, $parserOptions);
$previewHTML = $parserOutput->mText;
$previewHTML .= "<pre class=\"{$class}\" dir=\"ltr\">\n" . htmlspecialchars($this->textbox1) . "\n</pre>\n";
} else {
$rt = Title::newFromRedirectArray($this->textbox1);
if ($rt) {
$previewHTML = $this->mArticle->viewRedirect($rt, false);
} else {
$toparse = $this->textbox1;
# If we're adding a comment, we need to show the
# summary as the headline
if ($this->section == "new" && $this->summary != "") {
$toparse = wfMsgForContent('newsectionheaderdefaultlevel', $this->summary) . "\n\n" . $toparse;
}
wfRunHooks('EditPageGetPreviewText', array($this, &$toparse));
$parserOptions->enableLimitReport();
$toparse = $wgParser->preSaveTransform($toparse, $this->mTitle, $wgUser, $parserOptions);
$parserOutput = $wgParser->parse($toparse, $this->mTitle, $parserOptions);
$previewHTML = $parserOutput->getText();
$this->mParserOutput = $parserOutput;
$wgOut->addParserOutputNoText($parserOutput);
if (count($parserOutput->getWarnings())) {
$note .= "\n\n" . implode("\n\n", $parserOutput->getWarnings());
}
}
}
if ($this->isConflict) {
$conflict = '<h2 id="mw-previewconflict">' . htmlspecialchars(wfMsg('previewconflict')) . "</h2>\n";
} else {
$conflict = '<hr />';
}
$previewhead = "<div class='previewnote'>\n" . '<h2 id="mw-previewheader">' . htmlspecialchars(wfMsg('preview')) . "</h2>" . $wgOut->parse($note, true, true) . $conflict . "</div>\n";
$pageLang = $this->mTitle->getPageLanguage();
$attribs = array('lang' => $pageLang->getCode(), 'dir' => $pageLang->getDir(), 'class' => 'mw-content-' . $pageLang->getDir());
$previewHTML = Html::rawElement('div', $attribs, $previewHTML);
wfProfileOut(__METHOD__);
return $previewhead . $previewHTML . $this->previewTextAfterContent;
}
示例5: view
//.........这里部分代码省略.........
// return status different than HTTP 200 when revision is missing (BAC-630)
if (!$this->mRevision instanceof Revision) {
global $wgEnableParserCache;
wfDebug(__METHOD__ . ": no revision found - disabling parser cache and returning 404\n");
$wgOut->getRequest()->response()->header('X-Missing-Revision: 1', true, 404);
$useParserCache = false;
$wgEnableParserCache = false;
}
// Wikia change - end
# Are we looking at an old revision
if ($oldid && $this->mRevision) {
$this->setOldSubtitle($oldid);
if (!$this->showDeletedRevisionHeader()) {
wfDebug(__METHOD__ . ": cannot view deleted revision\n");
wfProfileOut(__METHOD__);
return;
}
}
# Ensure that UI elements requiring revision ID have
# the correct version information.
$wgOut->setRevisionId($this->getRevIdFetched());
# Preload timestamp to avoid a DB hit
$wgOut->setRevisionTimestamp($this->getTimestamp());
# Pages containing custom CSS or JavaScript get special treatment
if ($this->getTitle()->isCssOrJsPage() || $this->getTitle()->isCssJsSubpage()) {
wfDebug(__METHOD__ . ": showing CSS/JS source\n");
$this->showCssOrJsPage();
$outputDone = true;
} elseif (!wfRunHooks('ArticleViewCustom', array($this->mContent, $this->getTitle(), $wgOut))) {
# Allow extensions do their own custom view for certain pages
$outputDone = true;
} else {
$text = $this->getContent();
$rt = Title::newFromRedirectArray($text);
if ($rt) {
wfDebug(__METHOD__ . ": showing redirect=no page\n");
# Viewing a redirect page (e.g. with parameter redirect=no)
$wgOut->addHTML($this->viewRedirect($rt));
# Parse just to get categories, displaytitle, etc.
$this->mParserOutput = $wgParser->parse($text, $this->getTitle(), $parserOptions);
$wgOut->addParserOutputNoText($this->mParserOutput);
$outputDone = true;
}
}
break;
case 4:
# Run the parse, protected by a pool counter
wfDebug(__METHOD__ . ": doing uncached parse\n");
$poolArticleView = new PoolWorkArticleView($this, $parserOptions, $this->getRevIdFetched(), $useParserCache, $this->getContent());
if (!$poolArticleView->execute()) {
$error = $poolArticleView->getError();
if ($error) {
$wgOut->clearHTML();
// for release() errors
$wgOut->enableClientCache(false);
$wgOut->setRobotPolicy('noindex,nofollow');
$errortext = $error->getWikiText(false, 'view-pool-error');
$wgOut->addWikiText('<div class="errorbox">' . $errortext . '</div>');
}
# Connection or timeout error
wfProfileOut(__METHOD__);
return;
}
$this->mParserOutput = $poolArticleView->getParserOutput();
$wgOut->addParserOutput($this->mParserOutput);
// Wikia change - begin - @author: wladek
示例6: getPreviewText
/**
* Get the rendered text for previewing.
* @return string
*/
function getPreviewText()
{
global $wgOut, $wgUser, $wgTitle, $wgParser, $wgLang, $wgContLang, $wgMessageCache;
wfProfileIn(__METHOD__);
if ($this->mTriedSave && !$this->mTokenOk) {
if ($this->mTokenOkExceptSuffix) {
$note = wfMsg('token_suffix_mismatch');
} else {
$note = wfMsg('session_fail_preview');
}
} else {
$note = wfMsg('previewnote');
}
$parserOptions = ParserOptions::newFromUser($wgUser);
$parserOptions->setEditSection(false);
$parserOptions->setIsPreview(true);
$parserOptions->setIsSectionPreview(!is_null($this->section) && $this->section !== '');
global $wgRawHtml;
if ($wgRawHtml && !$this->mTokenOk) {
// Could be an offsite preview attempt. This is very unsafe if
// HTML is enabled, as it could be an attack.
return $wgOut->parse("<div class='previewnote'>" . wfMsg('session_fail_preview_html') . "</div>");
}
# don't parse user css/js, show message about preview
# XXX: stupid php bug won't let us use $wgTitle->isCssJsSubpage() here
if ($this->isCssJsSubpage) {
if (preg_match("/\\.css\$/", $this->mTitle->getText())) {
$previewtext = wfMsg('usercsspreview');
} else {
if (preg_match("/\\.js\$/", $this->mTitle->getText())) {
$previewtext = wfMsg('userjspreview');
}
}
$parserOptions->setTidy(true);
$parserOutput = $wgParser->parse($previewtext, $this->mTitle, $parserOptions);
$previewHTML = $parserOutput->mText;
} elseif ($rt = Title::newFromRedirectArray($this->textbox1)) {
$previewHTML = $this->mArticle->viewRedirect($rt, false);
} else {
$toparse = $this->textbox1;
# If we're adding a comment, we need to show the
# summary as the headline
if ($this->section == "new" && $this->summary != "") {
$toparse = "== {$this->summary} ==\n\n" . $toparse;
}
if ($this->mMetaData != "") {
$toparse .= "\n" . $this->mMetaData;
}
// Parse mediawiki messages with correct target language
if ($this->mTitle->getNamespace() == NS_MEDIAWIKI) {
list(, $lang) = $wgMessageCache->figureMessage($this->mTitle->getText());
$obj = wfGetLangObj($lang);
$parserOptions->setTargetLanguage($obj);
}
$parserOptions->setTidy(true);
$parserOptions->enableLimitReport();
$parserOutput = $wgParser->parse($this->mArticle->preSaveTransform($toparse), $this->mTitle, $parserOptions);
$previewHTML = $parserOutput->getText();
$this->mParserOutput = $parserOutput;
$wgOut->addParserOutputNoText($parserOutput);
if (count($parserOutput->getWarnings())) {
$note .= "\n\n" . implode("\n\n", $parserOutput->getWarnings());
}
}
$previewhead = '<h2>' . htmlspecialchars(wfMsg('preview')) . "</h2>\n" . "<div class='previewnote'>" . $wgOut->parse($note) . "</div>\n";
if ($this->isConflict) {
$previewhead .= '<h2>' . htmlspecialchars(wfMsg('previewconflict')) . "</h2>\n";
}
wfProfileOut(__METHOD__);
return $previewhead . $previewHTML;
}
示例7: getPreviewText
/**
* Get the rendered text for previewing.
* @return string
*/
function getPreviewText()
{
global $wgOut, $wgUser, $wgParser, $wgMessageCache;
wfProfileIn(__METHOD__);
if ($this->mTriedSave && !$this->mTokenOk) {
if ($this->mTokenOkExceptSuffix) {
$note = wfMsg('token_suffix_mismatch');
} else {
$note = wfMsg('session_fail_preview');
}
} else {
$note = wfMsg('previewnote');
}
$parserOptions = ParserOptions::newFromUser($wgUser);
$parserOptions->setEditSection(false);
$parserOptions->setIsPreview(true);
$parserOptions->setIsSectionPreview(!is_null($this->section) && $this->section !== '');
global $wgRawHtml;
if ($wgRawHtml && !$this->mTokenOk) {
// Could be an offsite preview attempt. This is very unsafe if
// HTML is enabled, as it could be an attack.
$parsedNote = $wgOut->parse("<div class='previewnote'>" . wfMsg('session_fail_preview_html') . "</div>");
wfProfileOut(__METHOD__);
return $parsedNote;
}
# don't parse user css/js, show message about preview
# XXX: stupid php bug won't let us use $wgTitle->isCssJsSubpage() here -- This note has been there since r3530. Sure the bug was fixed time ago?
if ($this->isCssJsSubpage || $this->mTitle->isCssOrJsPage()) {
$level = 'user';
if ($this->mTitle->getNamespace() == NS_MEDIAWIKI) {
$level = 'site';
}
# Used messages to make sure grep find them:
# Messages: usercsspreview, userjspreview, sitecsspreview, sitejspreview
if (preg_match("/\\.css\$/", $this->mTitle->getText())) {
$previewtext = "<div id='mw-{$level}csspreview'>\n" . wfMsg("{$level}csspreview") . "\n</div>";
$class = "mw-code mw-css";
} elseif (preg_match("/\\.js\$/", $this->mTitle->getText())) {
$previewtext = "<div id='mw-{$level}jspreview'>\n" . wfMsg("{$level}jspreview") . "\n</div>";
$class = "mw-code mw-js";
} else {
throw new MWException('A CSS/JS (sub)page but which is not css nor js!');
}
$parserOptions->setTidy(true);
$parserOutput = $wgParser->parse($previewtext, $this->mTitle, $parserOptions);
$previewHTML = $parserOutput->mText;
$previewHTML .= "<pre class=\"{$class}\" dir=\"ltr\">\n" . htmlspecialchars($this->textbox1) . "\n</pre>\n";
} else {
$rt = Title::newFromRedirectArray($this->textbox1);
if ($rt) {
$previewHTML = $this->mArticle->viewRedirect($rt, false);
} else {
$toparse = $this->textbox1;
# If we're adding a comment, we need to show the
# summary as the headline
if ($this->section == "new" && $this->summary != "") {
$toparse = "== {$this->summary} ==\n\n" . $toparse;
}
wfRunHooks('EditPageGetPreviewText', array($this, &$toparse));
// Parse mediawiki messages with correct target language
if ($this->mTitle->getNamespace() == NS_MEDIAWIKI) {
list(, $lang) = $wgMessageCache->figureMessage($this->mTitle->getText());
$obj = wfGetLangObj($lang);
$parserOptions->setTargetLanguage($obj);
}
$parserOptions->setTidy(true);
$parserOptions->enableLimitReport();
$parserOutput = $wgParser->parse($this->mArticle->preSaveTransform($toparse), $this->mTitle, $parserOptions);
$previewHTML = $parserOutput->getText();
$this->mParserOutput = $parserOutput;
$wgOut->addParserOutputNoText($parserOutput);
if (count($parserOutput->getWarnings())) {
$note .= "\n\n" . implode("\n\n", $parserOutput->getWarnings());
}
}
}
if ($this->isConflict) {
$conflict = '<h2 id="mw-previewconflict">' . htmlspecialchars(wfMsg('previewconflict')) . "</h2>\n";
} else {
$conflict = '<hr />';
}
$previewhead = "<div class='previewnote'>\n" . '<h2 id="mw-previewheader">' . htmlspecialchars(wfMsg('preview')) . "</h2>" . $wgOut->parse($note) . $conflict . "</div>\n";
wfProfileOut(__METHOD__);
return $previewhead . $previewHTML . $this->previewTextAfterContent;
}
示例8: view
//.........这里部分代码省略.........
// FIXME: This would be a nice place to load the 'no such page' text.
} else {
$this->setOldSubtitle(isset($this->mOldId) ? $this->mOldId : $oldid);
# Allow admins to see deleted content if explicitly requested
if ($this->mRevision->isDeleted(Revision::DELETED_TEXT)) {
if (!$unhide || !$this->mRevision->userCan(Revision::DELETED_TEXT)) {
$wgOut->wrapWikiMsg("<div class='mw-warning plainlinks'>\n\$1</div>\n", 'rev-deleted-text-permission');
$wgOut->setPageTitle($this->mTitle->getPrefixedText());
wfProfileOut(__METHOD__);
return;
} else {
$wgOut->wrapWikiMsg("<div class='mw-warning plainlinks'>\n\$1</div>\n", 'rev-deleted-text-view');
// and we are allowed to see...
}
}
// Is this the current revision and otherwise cacheable? Try the parser cache...
if ($oldid === $this->getLatest() && $this->useParserCache(false) && $wgOut->tryParserCache($this)) {
$outputDone = true;
}
}
}
// Ensure that UI elements requiring revision ID have
// the correct version information.
$wgOut->setRevisionId($this->getRevIdFetched());
if ($outputDone) {
// do nothing...
// Pages containing custom CSS or JavaScript get special treatment
} else {
if ($this->mTitle->isCssOrJsPage() || $this->mTitle->isCssJsSubpage()) {
$wgOut->addHTML(wfMsgExt('clearyourcache', 'parse'));
// Give hooks a chance to customise the output
if (wfRunHooks('ShowRawCssJs', array($this->mContent, $this->mTitle, $wgOut))) {
// Wrap the whole lot in a <pre> and don't parse
$m = array();
preg_match('!\\.(css|js)$!u', $this->mTitle->getText(), $m);
$wgOut->addHTML("<pre class=\"mw-code mw-{$m[1]}\" dir=\"ltr\">\n");
$wgOut->addHTML(htmlspecialchars($this->mContent));
$wgOut->addHTML("\n</pre>\n");
}
} else {
if ($rt = Title::newFromRedirectArray($text)) {
# get an array of redirect targets
# Don't append the subtitle if this was an old revision
$wgOut->addHTML($this->viewRedirect($rt, !$wasRedirected && $this->isCurrent()));
$parseout = $wgParser->parse($text, $this->mTitle, ParserOptions::newFromUser($wgUser));
$wgOut->addParserOutputNoText($parseout);
} else {
if ($pcache) {
# Display content and save to parser cache
$this->outputWikiText($text);
} else {
# Display content, don't attempt to save to parser cache
# Don't show section-edit links on old revisions... this way lies madness.
if (!$this->isCurrent()) {
$oldEditSectionSetting = $wgOut->parserOptions()->setEditSection(false);
}
# Display content and don't save to parser cache
# With timing hack -- TS 2006-07-26
$time = -wfTime();
$this->outputWikiText($text, false);
$time += wfTime();
# Timing hack
if ($time > 3) {
wfDebugLog('slow-parse', sprintf("%-5.2f %s", $time, $this->mTitle->getPrefixedDBkey()));
}
if (!$this->isCurrent()) {
$wgOut->parserOptions()->setEditSection($oldEditSectionSetting);
}
}
}
}
}
}
/* title may have been set from the cache */
$t = $wgOut->getPageTitle();
if (empty($t)) {
$wgOut->setPageTitle($this->mTitle->getPrefixedText());
# For the main page, overwrite the <title> element with the con-
# tents of 'pagetitle-view-mainpage' instead of the default (if
# that's not empty).
if ($this->mTitle->equals(Title::newMainPage()) && wfMsgForContent('pagetitle-view-mainpage') !== '') {
$wgOut->setHTMLTitle(wfMsgForContent('pagetitle-view-mainpage'));
}
}
# check if we're displaying a [[User talk:x.x.x.x]] anonymous talk page
if ($ns == NS_USER_TALK && IP::isValid($this->mTitle->getText())) {
$wgOut->addWikiMsg('anontalkpagetext');
}
# If we have been passed an &rcid= parameter, we want to give the user a
# chance to mark this new article as patrolled.
if (!empty($rcid) && $this->mTitle->exists() && $this->mTitle->quickUserCan('patrol')) {
$wgOut->addHTML("<div class='patrollink'>" . wfMsgHtml('markaspatrolledlink', $sk->makeKnownLinkObj($this->mTitle, wfMsgHtml('markaspatrolledtext'), "action=markpatrolled&rcid={$rcid}")) . '</div>');
}
# Trackbacks
if ($wgUseTrackbacks) {
$this->addTrackbacks();
}
$this->viewUpdates();
wfProfileOut(__METHOD__);
}