本文整理汇总了PHP中XenForo_Template_Compiler::getNamedAttributes方法的典型用法代码示例。如果您正苦于以下问题:PHP XenForo_Template_Compiler::getNamedAttributes方法的具体用法?PHP XenForo_Template_Compiler::getNamedAttributes怎么用?PHP XenForo_Template_Compiler::getNamedAttributes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XenForo_Template_Compiler
的用法示例。
在下文中一共展示了XenForo_Template_Compiler::getNamedAttributes方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: compile
/**
* Compile the specified tag and return PHP code to handle it.
*
* @param XenForo_Template_Compiler The invoking compiler
* @param string Name of the tag called
* @param array Attributes for the tag (may be empty)
* @param array Nodes (tags/curlies/text) within this tag (may be empty)
* @param array Compilation options
*
* @return string
*/
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' => 'require')));
}
$requirements = $compiler->getNamedAttributes($attributes, array('css', 'js'));
if (!$requirements) {
throw $compiler->getNewCompilerException(new XenForo_Phrase('require_tag_does_not_specify_any_known_types_css_or_js'));
}
if (isset($requirements['css'])) {
$css = $requirements['css'];
if (empty($css) || count($css) != 1 || !is_string($css[0])) {
throw $compiler->getNewCompilerException(new XenForo_Phrase('only_literal_css_templates_may_be_included_by_require_tag'));
}
if (substr($css[0], -4) != '.css') {
throw $compiler->getNewCompilerException(new XenForo_Phrase('all_required_css_templates_must_end_in_'));
}
$requirements['css'][0] = substr($css[0], 0, -4);
}
$statement = $compiler->getNewRawStatement();
foreach ($requirements as $attribute => $value) {
$statement->addStatement('$this->addRequiredExternal(\'' . $compiler->escapeSingleQuotedString($attribute) . '\', ' . $compiler->compileAndCombineSegments($value) . ");\n");
}
return $statement;
}
示例2: compile
/**
* Compile the specified tag and return PHP code to handle it.
*
* @param XenForo_Template_Compiler The invoking compiler
* @param string Name of the tag called
* @param array Attributes for the tag (may be empty)
* @param array Nodes (tags/curlies/text) within this tag (may be empty)
* @param array Compilation options
*
* @return string
*/
public function compile(XenForo_Template_Compiler $compiler, $tag, array $attributes, array $children, array $options)
{
$controlOptions = $compiler->getNamedAttributes($attributes, array('save', 'name', 'reset', 'savekey', 'saveclass', 'resetkey', 'resetclass', 'explain'));
$controlOptions = $compiler->getNamedParamsAsPhpCode($controlOptions, $options);
$childOutput = $compiler->compileIntoVariable($children, $submitVar, $options);
$statement = $compiler->getNewRawStatement();
$statement->addStatement($childOutput);
$statement->addStatement('$' . $compiler->getOutputVar() . ' .= XenForo_Template_Helper_Admin::submitUnit($' . $submitVar . ', ' . $controlOptions . ");\n" . 'unset($' . $submitVar . ");\n");
return $statement;
}
示例3: _getControlOptions
/**
* Gets the control options for a given tag.
*
* @param XenForo_Template_Compiler $compiler
* @param array $attributes Raw key-value attribues list
* @param array $extraExpected Extra expected attributes, on top of the standard
* @param boolean $includeStandard If true, include the standard control tags
* @param boolean $allowData If true, allow all data-* attributes
*
* @return array Key-value pairs of expected attributes; data attributes in _data key
*/
protected function _getControlOptions(XenForo_Template_Compiler $compiler, array $attributes, array $extraExpected = array(), $includeStandard = true, $allowData = true)
{
if ($includeStandard) {
$extraExpected = array_merge($extraExpected, self::$_standardControlOptions);
}
$controlOptions = $compiler->getNamedAttributes($attributes, $extraExpected);
if ($allowData) {
$data = $this->_getDataAttributes($compiler, $attributes);
if ($data) {
$controlOptions['_data'] = $data;
}
}
return $controlOptions;
}