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

namespace XF\Template\Compiler\Tag;

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

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

       
$context['escape'] = false;

       
$otherAttributes = $tag->attributes;
        unset(
           
$otherAttributes['count'], $otherAttributes['likes'],
           
$otherAttributes['liked'], $otherAttributes['content']
        );

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

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

        if (isset(
$tag->attributes['content']))
        {
           
$content = $tag->attributes['content']->compile($compiler, $context, true);

            return
"{$compiler->templaterVariable}->func('likes_content', array($content, $url, $attributesCode))";
        }
        else
        {
           
$tag->assertAttribute('count')->assertAttribute('likes');

           
$count = $tag->attributes['count']->compile($compiler, $context, true);
           
$users = $tag->attributes['users']->compile($compiler, $context, true);

            if (isset(
$tag->attributes['liked']))
            {
               
$liked = $compiler->compileForcedExpression($tag->attributes['liked'], $context);
            }
            else
            {
               
$liked = 'false';
            }

            return
"{$compiler->templaterVariable}->func('likes', array($count, $users, $liked, $url, $attributesCode))";
        }
    }
}