Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Template/Compiler/Tag/HiddenVal.php
<?php

namespace XF\Template\Compiler\Tag;

use
XF\Template\Compiler\Syntax\Tag;
use
XF\Template\Compiler;

class
HiddenVal extends AbstractTag
{
    public function
compile(Tag $tag, Compiler $compiler, array $context, $inlineExpected)
    {
       
$tag->assertAttribute('name');

       
$context['escape'] = false;

       
$extraAttributes = $tag->attributes;

        if (isset(
$tag->attributes['value']))
        {
            if (
$tag->children)
            {
                throw
$tag->exception(\XF::phrase('hiddenval_tag_must_provide_value_attribute_or_children'));
            }

           
$tag->assertEmpty();
           
$value = $tag->attributes['value']->compile($compiler, $context, true);
            unset(
$extraAttributes['value']);
        }
        else if (
$tag->children)
        {
           
$value = $compiler->compileInlineList($tag->children, $context);
        }
        else
        {
           
$value = "''";
        }

       
$name = $tag->attributes['name']->compile($compiler, $context, true);
        unset(
$extraAttributes['name']);

       
$attributesCompiled = $this->compileAttributesAsArray($extraAttributes, $compiler, $context);
       
$indent = $compiler->indent();
       
$attributesCode = "array(" . implode('', $attributesCompiled) . "\n$indent)";

        return
"{$compiler->templaterVariable}->formHiddenVal($name, $value, $attributesCode)";
    }
}