<?php
namespace App\Services\LiquidTags;

use Liquid\AbstractBlock;
use App\Services\LiquidRenderer;

class LiquidTagContactUs extends AbstractBlock
{
    private $templateFile;

    // 构造函数用于解析传入的参数
    public function __construct($markup, array &$tokens, $file_system = null)
    {
        // 初始化默认值
        $this->templateFile = null;

        // 正则表达式解析传入的参数
        $syntax = '/(\w+)=("[^"]*"|\'[^\']*\'|\d+)/';

        if (preg_match_all($syntax, $markup, $matches, PREG_SET_ORDER)) {
            foreach ($matches as $match) {
                $key = $match[1];
                $value = trim($match[2], '"\''); // 去除引号

                if ($key === 'template') {
                    $this->templateFile = $value;
                }
            }
        }
    }

    // render 方法执行逻辑并返回渲染结果
    public function render($context)
    {
        // 使用 LiquidRenderer 渲染模板
        return $this->renderTemplate();
    }


    // 渲染模板文件
    private function renderTemplate()
    {


        // 使用 LiquidRenderer 渲染模板文件
        return LiquidRenderer::render($this->templateFile,  [
            'csrf_token' => csrf_token(),
        ]);
    }
}
