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

namespace XF\Template\Compiler\Tag;

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

class
Breadcrumb extends AbstractTag
{
    public function
compile(Tag $tag, Compiler $compiler, array $context, $inlineExpected)
    {
        if (isset(
$tag->attributes['source']))
        {
           
$context['escape'] = false;
           
$crumbs = $compiler->compileForcedExpression($tag->attributes['source'], $context);

           
$compiler->write("{$compiler->templaterVariable}->breadcrumbs($crumbs);");
            return
$inlineExpected ? "''" : false;
        }

       
$tag->assertAttribute('href');

       
$rawContext = $context;
       
$rawContext['escape'] = false;

       
$attributes = $tag->attributes;

       
$value = $compiler->compileInlineList($tag->children, $context);
       
$href = $attributes['href']->compile($compiler, $rawContext, true);

        unset(
$attributes['href']);
       
$config = $this->compileAttributesAsArray($attributes, $compiler, $context);
       
$indent = $compiler->indent();
       
$configCode = "array(" . implode('', $config) . "\n$indent)";

       
$code = "{$compiler->templaterVariable}->breadcrumb({$compiler->templaterVariable}->preEscaped($value), "
           
. "$href, $configCode);";
       
$compiler->write($code);
        return
$inlineExpected ? "''" : false;
    }
}