mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-21 15:13:50 +00:00
Add possibility to hide empty value in customfield group view rendering
A new parameter is defined : ``` chill_custom_fields: show_empty_values_in_views = true|false ``` A new method is added to CustomFieldInterface: `isEmptyValue`. To ease the dev of new classes, an AbstractCustomField class is created, which implements the most commons function (currently, only isEmptyValue). A new Twig Filter is added: `chill_custom_field_is_empty` The twig filter `chill_custom_fields_group_widget` has a new possibility in array option : `show_empty`. Default to chill_custom_fields.show_empty_values_in_view. May be forced by true/false.
This commit is contained in:
@@ -76,10 +76,21 @@ class CustomFieldRenderingTwig extends \Twig_Extension implements ContainerAware
|
||||
'is_safe' => array(
|
||||
'html'
|
||||
)
|
||||
)),
|
||||
new \Twig_SimpleFunction('chill_custom_field_is_empty', array(
|
||||
$this,
|
||||
'isEmptyValue'
|
||||
))
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function isEmptyValue($customFieldorClass, $fields, $slug = null)
|
||||
{
|
||||
return $this->container->get('chill.custom_field.helper')
|
||||
->isEmptyValue($fields, $customFieldorClass);
|
||||
}
|
||||
|
||||
/* (non-PHPdoc)
|
||||
* @see Twig_ExtensionInterface::getName()
|
||||
*/
|
||||
|
@@ -37,15 +37,25 @@ use Chill\CustomFieldsBundle\Entity\CustomField;
|
||||
*/
|
||||
class CustomFieldsGroupRenderingTwig extends \Twig_Extension implements ContainerAwareInterface
|
||||
{
|
||||
|
||||
|
||||
/** @var Container $container The container */
|
||||
private $container;
|
||||
|
||||
/** @var array $defaultParams The default parameters */
|
||||
private $defaultParams = array(
|
||||
'layout' => 'ChillCustomFieldsBundle:CustomFieldsGroup:render.html.twig'
|
||||
'layout' => 'ChillCustomFieldsBundle:CustomFieldsGroup:render.html.twig',
|
||||
'show_empty' => True
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param boolean $showEmptyValues whether the empty values must be rendered
|
||||
*/
|
||||
public function __construct($showEmptyValues)
|
||||
{
|
||||
$this->defaultParams['show_empty'] = $showEmptyValues;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-PHPdoc)
|
||||
* @see \Symfony\Component\DependencyInjection\ContainerAwareInterface::setContainer()
|
||||
@@ -92,6 +102,7 @@ class CustomFieldsGroupRenderingTwig extends \Twig_Extension implements Containe
|
||||
* @param array $params The parameters for rendering :
|
||||
* - layout : allow to choose a different layout by default :
|
||||
* ChillCustomFieldsBundle:CustomFieldsGroup:render.html.twig
|
||||
* - show_empty : force show empty field
|
||||
* @return string HTML representation of the custom field group value, as described in
|
||||
* the CustomFieldInterface. Is HTML safe
|
||||
*/
|
||||
@@ -102,6 +113,7 @@ class CustomFieldsGroupRenderingTwig extends \Twig_Extension implements Containe
|
||||
return $this->container->get('templating')
|
||||
->render($resolvedParams['layout'], array(
|
||||
'cFGroup' => $customFielsGroup,
|
||||
'cFData' => $fields));
|
||||
'cFData' => $fields,
|
||||
'show_empty' => $resolvedParams['show_empty']));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user