Allowing FormHelper::month() to use a $monthNames array as values.

This commit is contained in:
renan.saddam 2009-11-02 13:51:16 -02:00
parent 988ab2d29f
commit 034b5c435c
2 changed files with 39 additions and 3 deletions

View file

@ -653,7 +653,7 @@ class FormHelper extends AppHelper {
$this->_inputDefaults, $this->_inputDefaults,
$options $options
); );
$modelKey = $this->model(); $modelKey = $this->model();
$fieldKey = $this->field(); $fieldKey = $this->field();
if (!isset($this->fieldset[$modelKey])) { if (!isset($this->fieldset[$modelKey])) {
@ -1422,7 +1422,8 @@ class FormHelper extends AppHelper {
* *
* Attributes: * Attributes:
* *
* - `monthNames` is set and false 2 digit numbers will be used instead of text. * - `monthNames` - If false, 2 digit numbers will be used instead of text.
* If a array, the given array will be used.
* - `empty` - If true, the empty select option is shown. If a string, * - `empty` - If true, the empty select option is shown. If a string,
* that string is displayed as the empty element. * that string is displayed as the empty element.
* *
@ -1916,7 +1917,7 @@ class FormHelper extends AppHelper {
} }
break; break;
case 'month': case 'month':
if ($options['monthNames']) { if ($options['monthNames'] === true) {
$data['01'] = __('January', true); $data['01'] = __('January', true);
$data['02'] = __('February', true); $data['02'] = __('February', true);
$data['03'] = __('March', true); $data['03'] = __('March', true);
@ -1929,6 +1930,8 @@ class FormHelper extends AppHelper {
$data['10'] = __('October', true); $data['10'] = __('October', true);
$data['11'] = __('November', true); $data['11'] = __('November', true);
$data['12'] = __('December', true); $data['12'] = __('December', true);
} else if (is_array($options['monthNames'])) {
$data = $options['monthNames'];
} else { } else {
for ($m = 1; $m <= 12; $m++) { for ($m = 1; $m <= 12; $m++) {
$data[sprintf("%02s", $m)] = strftime("%m", mktime(1, 1, 1, $m, 1, 1999)); $data[sprintf("%02s", $m)] = strftime("%m", mktime(1, 1, 1, $m, 1, 1999));

View file

@ -4023,6 +4023,39 @@ class FormHelperTest extends CakeTestCase {
'*/select', '*/select',
); );
$this->assertTags($result, $expected); $this->assertTags($result, $expected);
$result = $this->Form->month('Model.field', null, array('monthNames' => false));
$expected = array(
array('select' => array('name' => 'data[Model][field][month]', 'id' => 'ModelFieldMonth')),
array('option' => array('value' => '')),
'/option',
array('option' => array('value' => '01')),
'01',
'/option',
array('option' => array('value' => '02')),
'02',
'/option',
'*/select',
);
$this->assertTags($result, $expected);
$monthNames = array(
'01' => 'Jan', '02' => 'Feb', '03' => 'Mar', '04' => 'Apr', '05' => 'May', '06' => 'Jun',
'07' => 'Jul', '08' => 'Aug', '09' => 'Sep', '10' => 'Oct', '11' => 'Nov', '12' => 'Dec');
$result = $this->Form->month('Model.field', null, array('monthNames' => $monthNames));
$expected = array(
array('select' => array('name' => 'data[Model][field][month]', 'id' => 'ModelFieldMonth')),
array('option' => array('value' => '')),
'/option',
array('option' => array('value' => '01')),
'Jan',
'/option',
array('option' => array('value' => '02')),
'Feb',
'/option',
'*/select',
);
$this->assertTags($result, $expected);
} }
/** /**