From dd104bc8c0331b968bd5b5c80b4443faaf8e757d Mon Sep 17 00:00:00 2001 From: Amal Raghav Date: Thu, 28 Apr 2011 22:21:21 +0530 Subject: [PATCH] added code to use custom date_pattern --- .../Form/Extension/Core/Type/DateType.php | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php index 6023ff48ab..f827e9f155 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php @@ -83,8 +83,7 @@ class DateType extends AbstractType $builder ->setAttribute('formatter', $formatter) - ->setAttribute('widget', $options['widget']) - ; + ->setAttribute('widget', $options['widget']); } public function buildViewBottomUp(FormView $view, FormInterface $form) @@ -93,15 +92,18 @@ class DateType extends AbstractType if ($view->hasChildren()) { - $pattern = $form->getAttribute('formatter')->getPattern(); + //if custom date_pattern is set then use it or else use the the formatter or the default pattern + if (!$pattern = $form->getAttribute('date_pattern')) { + $pattern = $form->getAttribute('formatter')->getPattern(); - // set right order with respect to locale (e.g.: de_DE=dd.MM.yy; en_US=M/d/yy) - // lookup various formats at http://userguide.icu-project.org/formatparse/datetime - if (preg_match('/^([yMd]+).+([yMd]+).+([yMd]+)$/', $pattern)) { - $pattern = preg_replace(array('/y+/', '/M+/', '/d+/'), array('{{ year }}', '{{ month }}', '{{ day }}'), $pattern); - } else { - // default fallback - $pattern = '{{ year }}-{{ month }}-{{ day }}'; + // set right order with respect to locale (e.g.: de_DE=dd.MM.yy; en_US=M/d/yy) + // lookup various formats at http://userguide.icu-project.org/formatparse/datetime + if (preg_match('/^([yMd]+).+([yMd]+).+([yMd]+)$/', $pattern)) { + $pattern = preg_replace(array('/y+/', '/M+/', '/d+/'), array('{{ year }}', '{{ month }}', '{{ day }}'), $pattern); + } else { + // default fallback + $pattern = '{{ year }}-{{ month }}-{{ day }}'; + } } $view->set('date_pattern', $pattern);