<?php
/**
* Code xF2 addon by CMTV
* Enjoy!
*/
namespace CMTV\Code\XF\BbCode\Renderer;
class Html extends XFCP_Html
{
    public function renderTagCode(array $children, $option, array $tag, array $options)
    {
        if (!is_array($option))
        {
            if (strpos($option, '|') && \XF::options()->CMTV_Code_backComp)
            {
                $strrstr = function ($h, $n, $before = false)
                {
                    $rpos = strrpos($h, $n);
                    if($rpos === false) return false;
                    if($before == false) return substr($h, $rpos);
                    else return substr($h, 0, $rpos);
                };
                $option = [
                    'title' => $strrstr($option, '|', true),
                    'lang' => substr($strrstr($option, '|'), 1)
                ];
            }
            else
            {
                return $this->CMTV_Code_getRenderedCode([], parent::renderTagCode($children, $option, $tag, $options));
            }
        }
        $language = $option['lang'];
        unset($option['lang']);
        return $this->CMTV_Code_getRenderedCode($option, parent::renderTagCode($children, $language, $tag, $options));
    }
    protected function getRenderedCode($content, $language, array $config = [])
    {
        return [
            'content' => $content,
            'language' => $language,
            'config' => $config
        ];
    }
    protected function CMTV_Code_getRenderedCode($option, array $getRenderedCode)
    {
        return $this->templater->renderTemplate('public:bb_code_tag_code', [
            'content' => new \XF\PreEscaped($getRenderedCode['content']),
            'language' => $getRenderedCode['language'],
            'config' => $getRenderedCode['config'],
            'options' => $option
        ]);
    }
}