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

namespace XF\Template\Compiler\Tag;

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

class
Button extends AbstractTag
{
    public function
compile(Tag $tag, Compiler $compiler, array $context, $inlineExpected)
    {
       
$options = $this->compileAttributesAsArray($tag->attributes, $compiler, $context);

       
$menuHtml = "''";
       
$menuOptions = [];

       
$children = $tag->children;
        foreach (
$tag->children AS $i => $child)
        {
            if (
$this->isNamedTag($child, 'menu'))
            {
               
/** @var $child Tag */
               
$menuHtml = $compiler->compileInlineList($child->children, $context);
               
$menuOptions = $this->compileAttributesAsArray($child->attributes, $compiler, $context);
                unset(
$children[$i]);
            }
        }

       
$indent = $compiler->indent();

       
$optionCode = "array(" . implode('', $options)  . "\n$indent)";
       
$menuOptionCode = "array(" . implode('', $menuOptions)  . "\n$indent)";

       
$contentHtml = $compiler->compileInlineList($children, $context);

        return
"{$compiler->templaterVariable}->button($contentHtml, $optionCode, $menuHtml, $menuOptionCode)";
    }
}