Fix usage of twig environment in twig custom fields rendering extensions

This commit is contained in:
2023-08-02 22:47:56 +02:00
parent dbccf7ff80
commit e2b500ea5f
3 changed files with 15 additions and 40 deletions

View File

@@ -16,6 +16,7 @@ use Chill\CustomFieldsBundle\Service\CustomFieldsHelper;
use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Twig\Environment;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
@@ -24,15 +25,14 @@ use Twig\TwigFunction;
* * chill_custom_field_widget : to render the value of the custom field,
* * chill_custom_field_label : to render the label of the custom field,.
*/
class CustomFieldRenderingTwig extends AbstractExtension implements ContainerAwareInterface
class CustomFieldRenderingTwig extends AbstractExtension
{
private ?\Symfony\Component\DependencyInjection\ContainerInterface $container = null;
/**
* @var array The default parameters
*/
private array $defaultParams = [
'label_layout' => 'ChillCustomFieldsBundle:CustomField:render_label.html.twig',
'label_layout' => '@ChillCustomFields/CustomField/render_label.html.twig',
];
public function __construct(private readonly CustomFieldsHelper $customFieldsHelper)
@@ -56,6 +56,7 @@ class CustomFieldRenderingTwig extends AbstractExtension implements ContainerAwa
'is_safe' => [
'html',
],
'needs_environment' => true,
]),
new TwigFunction('chill_custom_field_is_empty', $this->isEmptyValue(...)),
];
@@ -83,12 +84,11 @@ class CustomFieldRenderingTwig extends AbstractExtension implements ContainerAwa
*
* @return string HTML representation of the custom field label.
*/
public function renderLabel(CustomField $customField, array $params = [])
public function renderLabel(Environment $env, CustomField $customField, array $params = [])
{
$resolvedParams = array_merge($this->defaultParams, $params);
return $this->container->get('templating')
->render($resolvedParams['label_layout'], ['customField' => $customField]);
return $env->render($resolvedParams['label_layout'], ['customField' => $customField]);
}
/**
@@ -107,14 +107,4 @@ class CustomFieldRenderingTwig extends AbstractExtension implements ContainerAwa
return $this->customFieldsHelper
->renderCustomField($fields, $customField, $documentType);
}
/**
* (non-PHPdoc).
*
* @see \Symfony\Component\DependencyInjection\ContainerAwareInterface::setContainer()
*/
public function setContainer(?ContainerInterface $container = null)
{
$this->container = $container;
}
}