本文整理汇总了PHP中ParserOptions::getMaxTemplateDepth方法的典型用法代码示例。如果您正苦于以下问题:PHP ParserOptions::getMaxTemplateDepth方法的具体用法?PHP ParserOptions::getMaxTemplateDepth怎么用?PHP ParserOptions::getMaxTemplateDepth使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParserOptions
的用法示例。
在下文中一共展示了ParserOptions::getMaxTemplateDepth方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: braceSubstitution
//.........这里部分代码省略.........
try {
$result = $this->callParserFunction($frame, $func, $funcArgs);
} catch (Exception $ex) {
wfProfileOut(__METHOD__ . '-pfunc');
wfProfileOut(__METHOD__);
throw $ex;
}
# The interface for parser functions allows for extracting
# flags into the local scope. Extract any forwarded flags
# here.
extract($result);
}
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 = '';
$relative = $this->maybeDoSubpageLink($part1, $subpage);
if ($part1 !== $relative) {
$part1 = $relative;
$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 ($this->getConverterLanguage()->hasVariants() && $title->getArticleID() == 0) {
$this->getConverterLanguage()->findVariantLink($part1, $title, true);
}
# Do recursion depth check
$limit = $this->mOptions->getMaxTemplateDepth();
if ($frame->depth >= $limit) {
$found = true;
$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);
示例2: braceSubstitution
//.........这里部分代码省略.........
}
# Extract flags into the local scope
# This allows callers to set flags such as nowiki, found, etc.
extract($result);
} else {
$text = $result;
}
if (!$noparse) {
$text = $this->preprocessToDom($text, $preprocessFlags);
$isChildObj = true;
}
}
}
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;