From 5571caa305aae40848307196437d95c501813fd0 Mon Sep 17 00:00:00 2001 From: Bernhard Schussek Date: Mon, 22 Jun 2015 17:14:39 +0200 Subject: [PATCH] [Form] Fixed: remove quoted strings from Intl date formats (e.g. es_ES full pattern) --- .../Form/Extension/Core/Type/DateType.php | 4 ++++ .../Tests/Extension/Core/Type/DateTypeTest.php | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php index a7fc6cadf5..3e837ccef0 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php @@ -145,6 +145,10 @@ class DateType extends AbstractType // remove special characters unless the format was explicitly specified if (!is_string($options['format'])) { + // remove quoted strings first + $pattern = preg_replace('/\'[^\']+\'/', '', $pattern); + + // remove remaining special chars $pattern = preg_replace('/[^yMd]+/', '', $pattern); } diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php index e5b58a8c4a..e5aba86efe 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php @@ -614,6 +614,20 @@ class DateTypeTest extends TestCase $this->assertFalse(isset($view->vars['date_pattern'])); } + public function testDatePatternFormatWithQuotedStrings() + { + \Locale::setDefault('es_ES'); + + $form = $this->factory->create('date', null, array( + // EEEE, d 'de' MMMM 'de' y + 'format' => \IntlDateFormatter::FULL, + )); + + $view = $form->createView(); + + $this->assertEquals('{{ day }}{{ month }}{{ year }}', $view->vars['date_pattern']); + } + public function testPassWidgetToView() { $form = $this->factory->create('date', null, array(