45 lines
1.1 KiB
PHP
45 lines
1.1 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Thelia package.
|
|
* http://www.thelia.net
|
|
*
|
|
* (c) OpenStudio <info@thelia.net>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace TheliaBlocks\Service;
|
|
|
|
use TheliaSmarty\Template\SmartyParser;
|
|
use Thelia\Log\Tlog;
|
|
|
|
class JsonBlockService
|
|
{
|
|
/** @var SmartyParser */
|
|
private $parser;
|
|
|
|
public function __construct(SmartyParser $parser)
|
|
{
|
|
$this->parser = $parser;
|
|
}
|
|
|
|
public function renderJsonBlocks($json): string
|
|
{
|
|
$blockRenders = array_map(function ($block) {
|
|
|
|
|
|
try {
|
|
return $this->parser->render('blocks'.DS.$block['type']['id'].'.html', $block);
|
|
} catch (\Throwable $th) {
|
|
Tlog::getInstance()->warning("Block template at path : " . 'blocks'.DS.$block['type']['id'].'.html' . " not found");
|
|
return "";
|
|
}
|
|
|
|
}, json_decode($json, true));
|
|
|
|
return implode(' ', $blockRenders);
|
|
}
|
|
}
|