本文整理汇总了PHP中SpecialPageFactory::capturePath方法的典型用法代码示例。如果您正苦于以下问题:PHP SpecialPageFactory::capturePath方法的具体用法?PHP SpecialPageFactory::capturePath怎么用?PHP SpecialPageFactory::capturePath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SpecialPageFactory
的用法示例。
在下文中一共展示了SpecialPageFactory::capturePath方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: braceSubstitution
//.........这里部分代码省略.........
}
wfProfileOut(__METHOD__ . '-pfunc');
}
# Finish mangling title and then check for loops.
# Set $title to a Title object and $titleText to the PDBK
if (!$found) {
$ns = NS_TEMPLATE;
# Split the title into page and subpage
$subpage = '';
$part1 = $this->maybeDoSubpageLink($part1, $subpage);
if ($subpage !== '') {
$ns = $this->mTitle->getNamespace();
}
$title = Title::newFromText($part1, $ns);
if ($title) {
$titleText = $title->getPrefixedText();
# Check for language variants if the template is not found
if ($wgContLang->hasVariants() && $title->getArticleID() == 0) {
$wgContLang->findVariantLink($part1, $title, true);
}
# Do recursion depth check
$limit = $this->mOptions->getMaxTemplateDepth();
if ($frame->depth >= $limit) {
$found = true;
$text = '<span class="error">' . wfMsgForContent('parser-template-recursion-depth-warning', $limit) . '</span>';
}
}
}
# Load from database
if (!$found && $title) {
wfProfileIn(__METHOD__ . '-loadtpl');
if (!$title->isExternal()) {
if ($title->getNamespace() == NS_SPECIAL && $this->mOptions->getAllowSpecialInclusion() && $this->ot['html']) {
$text = SpecialPageFactory::capturePath($title);
if (is_string($text)) {
$found = true;
$isHTML = true;
$this->disableCache();
}
} elseif ($wgNonincludableNamespaces && in_array($title->getNamespace(), $wgNonincludableNamespaces)) {
$found = false;
# access denied
wfDebug(__METHOD__ . ": template inclusion denied for " . $title->getPrefixedDBkey());
} else {
list($text, $title) = $this->getTemplateDom($title);
if ($text !== false) {
$found = true;
$isChildObj = true;
}
}
# If the title is valid but undisplayable, make a link to it
if (!$found && ($this->ot['html'] || $this->ot['pre'])) {
$text = "[[:{$titleText}]]";
$found = true;
}
} elseif ($title->isTrans()) {
# Interwiki transclusion
if ($this->ot['html'] && !$forceRawInterwiki) {
$text = $this->interwikiTransclude($title, 'render');
$isHTML = true;
} else {
$text = $this->interwikiTransclude($title, 'raw');
# Preprocess it like a template
$text = $this->preprocessToDom($text, self::PTD_FOR_INCLUSION);
$isChildObj = true;
}
示例2: braceSubstitution
//.........这里部分代码省略.........
$text = '<span class="error">' . wfMessage('parser-template-recursion-depth-warning')->numParams($limit)->inContentLanguage()->text() . '</span>';
}
}
}
# Load from database
if (!$found && $title) {
if (!Profiler::instance()->isPersistent()) {
# Too many unique items can kill profiling DBs/collectors
$titleProfileIn = __METHOD__ . "-title-" . $title->getPrefixedDBkey();
wfProfileIn($titleProfileIn);
// template in
}
wfProfileIn(__METHOD__ . '-loadtpl');
if (!$title->isExternal()) {
if ($title->isSpecialPage() && $this->mOptions->getAllowSpecialInclusion() && $this->ot['html']) {
// Pass the template arguments as URL parameters.
// "uselang" will have no effect since the Language object
// is forced to the one defined in ParserOptions.
$pageArgs = array();
for ($i = 0; $i < $args->getLength(); $i++) {
$bits = $args->item($i)->splitArg();
if (strval($bits['index']) === '') {
$name = trim($frame->expand($bits['name'], PPFrame::STRIP_COMMENTS));
$value = trim($frame->expand($bits['value']));
$pageArgs[$name] = $value;
}
}
// Create a new context to execute the special page
$context = new RequestContext();
$context->setTitle($title);
$context->setRequest(new FauxRequest($pageArgs));
$context->setUser($this->getUser());
$context->setLanguage($this->mOptions->getUserLangObj());
$ret = SpecialPageFactory::capturePath($title, $context);
if ($ret) {
$text = $context->getOutput()->getHTML();
$this->mOutput->addOutputPageMetadata($context->getOutput());
$found = true;
$isHTML = true;
$this->disableCache();
}
} elseif (MWNamespace::isNonincludable($title->getNamespace())) {
$found = false;
# access denied
wfDebug(__METHOD__ . ": template inclusion denied for " . $title->getPrefixedDBkey() . "\n");
} else {
list($text, $title) = $this->getTemplateDom($title);
if ($text !== false) {
$found = true;
$isChildObj = true;
}
}
# If the title is valid but undisplayable, make a link to it
if (!$found && ($this->ot['html'] || $this->ot['pre'])) {
$text = "[[:{$titleText}]]";
$found = true;
}
} elseif ($title->isTrans()) {
# Interwiki transclusion
if ($this->ot['html'] && !$forceRawInterwiki) {
$text = $this->interwikiTransclude($title, 'render');
$isHTML = true;
} else {
$text = $this->interwikiTransclude($title, 'raw');
# Preprocess it like a template
$text = $this->preprocessToDom($text, self::PTD_FOR_INCLUSION);
示例3: capturePath
/**
* Just like executePath() except it returns the HTML instead of outputting it
* Returns false if there was no such special page, or a title object if it was
* a redirect.
*
* @param $title Title
* @return String: HTML fragment
* @deprecated since 1.18 call SpecialPageFactory method directly
*/
static function capturePath(&$title)
{
return SpecialPageFactory::capturePath($title);
}