<?php
class XenForo_Template_Compiler_Tag_Title implements XenForo_Template_Compiler_Tag_Interface
{
public function compile(XenForo_Template_Compiler $compiler, $tag, array $attributes, array $children, array $options)
{
if (empty($options['allowRawStatements']))
{
throw $compiler->getNewCompilerException(new XenForo_Phrase('x_tags_only_used_where_full_statements_allowed', array('tag' => 'title')));
}
$var = '__extraData[\'title\']';
$childOutput = $compiler->compileIntoVariable($children, $var, $options, false);
return $compiler->getNewRawStatement($childOutput);
}
}
以上代码取自library \ XenForo \ Template \ Compiler \ Tag \ Title.php。我试图了解它是如何工作的。例如。 <xen:title>Page Title</xen:title>
,那么$compiler
,$tag
,$attributes
,$children
,$options
是什么?
答案 0 :(得分:1)
我会让XenForo / Template / Compiler说明一切:
/**
* Compile a tag segment. Mostly handled by the specified tag handler.
*
* @param string Tag found
* @param array Attributes (key: name, value: value)
* @param array Any nodes (text, var, tag) that are within this tag
* @param array Options
*/
至于选项:
/**
* Default options for compilation. These will be used if individual handles do not
* override them. Handlers may override all of them or individual ones.
*
* @var array
*/