mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-13 13:54:23 +00:00
parent
9a7b2e68b9
commit
a2b3ff6d63
@ -30,6 +30,7 @@ use Chill\CustomFieldsBundle\Form\DataTransformer\CustomFieldDataTransformer;
|
||||
use Chill\CustomFieldsBundle\Form\Type\ChoiceWithOtherType;
|
||||
use Symfony\Bridge\Twig\TwigEngine;
|
||||
use Chill\MainBundle\Templating\TranslatableStringHelper;
|
||||
use Symfony\Component\Translation\Translator;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -51,7 +52,7 @@ class CustomFieldChoice implements CustomFieldInterface
|
||||
*/
|
||||
private $requestStack;
|
||||
|
||||
private $defaultLocale;
|
||||
private $defaultLocales;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -64,11 +65,15 @@ class CustomFieldChoice implements CustomFieldInterface
|
||||
*/
|
||||
private $translatableStringHelper;
|
||||
|
||||
public function __construct(RequestStack $requestStack, $defaultLocale, TwigEngine $templating,
|
||||
TranslatableStringHelper $translatableStringHelper)
|
||||
public function __construct(
|
||||
RequestStack $requestStack,
|
||||
Translator $translator,
|
||||
TwigEngine $templating,
|
||||
TranslatableStringHelper $translatableStringHelper
|
||||
)
|
||||
{
|
||||
$this->requestStack = $requestStack;
|
||||
$this->defaultLocale = $defaultLocale;
|
||||
$this->defaultLocales = $translator->getDefaultLocales();
|
||||
$this->templating = $templating;
|
||||
$this->translatableStringHelper = $translatableStringHelper;
|
||||
}
|
||||
@ -157,7 +162,7 @@ class CustomFieldChoice implements CustomFieldInterface
|
||||
->add(self::OTHER_VALUE_LABEL, 'translatable_string', array(
|
||||
'label' => 'Other value label (empty if use by default)'))
|
||||
->add(self::CHOICES, new ChoicesType(), array(
|
||||
'type' => new ChoicesListType($this->defaultLocale),
|
||||
'type' => new ChoicesListType($this->defaultLocales),
|
||||
'allow_add' => true
|
||||
))
|
||||
;
|
||||
@ -200,7 +205,7 @@ class CustomFieldChoice implements CustomFieldInterface
|
||||
'selected' => $selected,
|
||||
'multiple' => $customField->getOptions()[self::MULTIPLE],
|
||||
'expanded' => $customField->getOptions()[self::EXPANDED],
|
||||
'locale' => $this->defaultLocale
|
||||
'locales' => $this->defaultLocales
|
||||
)
|
||||
);
|
||||
}
|
||||
|
@ -9,11 +9,11 @@ use Symfony\Component\Form\FormEvents;
|
||||
class ChoicesListType extends AbstractType
|
||||
{
|
||||
|
||||
private $defaultLocale;
|
||||
private $defaultLocales;
|
||||
|
||||
public function __construct($defaultLocale)
|
||||
public function __construct($defaultLocales)
|
||||
{
|
||||
$this->defaultLocale = $defaultLocale;
|
||||
$this->defaultLocales = $defaultLocales;
|
||||
}
|
||||
|
||||
/* (non-PHPdoc)
|
||||
@ -21,7 +21,7 @@ class ChoicesListType extends AbstractType
|
||||
*/
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$locale = $this->defaultLocale;
|
||||
$locales = $this->defaultLocales;
|
||||
|
||||
$builder->add('name', 'translatable_string')
|
||||
->add('active', 'checkbox', array(
|
||||
@ -31,14 +31,14 @@ class ChoicesListType extends AbstractType
|
||||
->add('slug', 'hidden', array(
|
||||
|
||||
))
|
||||
->addEventListener(FormEvents::SUBMIT, function(FormEvent $event) use ($locale){
|
||||
->addEventListener(FormEvents::SUBMIT, function(FormEvent $event) use ($locales){
|
||||
$form = $event->getForm();
|
||||
$data = $event->getData();
|
||||
|
||||
$formData = $form->getData();
|
||||
|
||||
if (NULL === $formData['slug']) {
|
||||
$slug = $form['name'][$locale]->getData();
|
||||
$slug = $form['name'][$locales[0]]->getData();
|
||||
$slug= strtolower($slug);
|
||||
$slug= preg_replace('/[^a-zA-Z0-9 -]/','', $slug); // only take alphanumerical characters, but keep the spaces and dashes too...
|
||||
$slug= str_replace(' ','-', $slug); // replace spaces by dashes
|
||||
|
@ -43,7 +43,7 @@ services:
|
||||
class: Chill\CustomFieldsBundle\CustomFields\CustomFieldChoice
|
||||
arguments:
|
||||
- "@request_stack"
|
||||
- %locale%
|
||||
- "@translator.default"
|
||||
- "@templating"
|
||||
- "@chill.main.helper.translatable_string"
|
||||
tags:
|
||||
|
@ -10,7 +10,7 @@
|
||||
<i class="fa fa-square-o"></i>
|
||||
{%- endif -%}
|
||||
{%- if choice['slug'] is not same as('_other') -%}
|
||||
{{ choice['name'][app.request.locale]|default(choice['name'][locale]|default('Not available in your language'|trans)) }}
|
||||
{{ choice['name']|localize_translatable_string }}
|
||||
{%- else -%}
|
||||
{{ choice['name'] }}
|
||||
{%- endif -%}
|
||||
|
Loading…
x
Reference in New Issue
Block a user