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

namespace XF\Template\Compiler\Tag;

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

class
PrefixInputRow extends AbstractFormElement
{
    public function
compile(Tag $tag, Compiler $compiler, array $context, $inlineExpected)
    {
       
$tag->assertEmpty()->assertAttribute('prefixes')->assertAttribute('type');

       
$context['escape'] = false;

       
$prefixes = $compiler->compileForcedExpression($tag->attributes['prefixes'], $context);

       
$otherAttributes = $tag->attributes;
        unset(
$otherAttributes['prefixes']);

        if (!empty(
$otherAttributes['href']))
        {
            if (!isset(
$otherAttributes['listen-to']))
            {
                throw
$tag->exception(\XF::phrase('to_load_prefixes_dynamically_you_must_also_provide_listen_to_attribute'));
            }
        }

       
$withEscaping = [];
       
$rowAttributes = [];
        foreach (
$this->defaultRowOptions AS $option => $escaped)
        {
            if (
$escaped)
            {
               
$withEscaping[] = $option;
            }
            if (isset(
$otherAttributes[$option]))
            {
               
$rowAttributes[$option] = $otherAttributes[$option];
                unset(
$otherAttributes[$option]);
            }
        }

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

        if (
$tag->name == 'prefixinputrow')
        {
           
$rowOptions = $this->compileAttributesAsArray($rowAttributes, $compiler, $context, $withEscaping);
           
$indent = $compiler->indent();
           
$rowOptionCode = "array(" . implode('', $rowOptions)  . "\n$indent)";

            return
"{$compiler->templaterVariable}->formPrefixInputRow($prefixes, $attributesCode, $rowOptionCode)";
        }
        else
        {
            return
"{$compiler->templaterVariable}->formPrefixInput($prefixes, $attributesCode)";
        }
    }
}