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