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

namespace XF\Template\Compiler\Tag;

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

class
Title extends AbstractTag
{
    public function
compile(Tag $tag, Compiler $compiler, array $context, $inlineExpected)
    {
       
$rawContext = $context;
       
$rawContext['escape'] = false;

        if (
$tag->isSelfClose)
        {
            if (isset(
$tag->attributes['formatter']))
            {
               
$formatter = $tag->attributes['formatter']->compile($compiler, $rawContext, true);
            }
            else
            {
               
$formatter = 'null';
            }

            if (isset(
$tag->attributes['fallback']))
            {
               
$fallback = $tag->attributes['fallback']->compile($compiler, $rawContext, true);
            }
            else
            {
               
$fallback = "''";
            }

            if (isset(
$tag->attributes['page']))
            {
               
$page = $tag->attributes['page']->compile($compiler, $rawContext, true);
            }
            else
            {
               
$page = 'null';
            }

            return
"{$compiler->templaterVariable}->func('page_title', array({$formatter}, {$fallback}, {$page}))";
        }
        else
        {
           
$value = $compiler->compileInlineList($tag->children, $context);
           
$compiler->write("{$compiler->templaterVariable}->pageParams['pageTitle'] = {$compiler->templaterVariable}->preEscaped($value);");
            if (isset(
$tag->attributes['page']))
            {
               
$page = $tag->attributes['page']->compile($compiler, $rawContext, true);
               
$compiler->write("{$compiler->templaterVariable}->pageParams['pageNumber'] = $page;");
            }
            return
$inlineExpected ? "''" : false;
        }
    }
}