diff --git a/date_repeat/date_repeat_form.inc b/date_repeat/date_repeat_form.inc
index 76023d7..2ae65d4 100644
--- a/date_repeat/date_repeat_form.inc
+++ b/date_repeat/date_repeat_form.inc
@@ -314,11 +314,13 @@ function _date_repeat_rrule_process($element, &$form_state, $form) {
'#tree' => TRUE,
);
- $monthly_byday_count = '';
+ $monthly_byday_count = array();
$monthly_byday_day = '';
if (isset($rrule['BYDAY']) && !empty($rrule['BYDAY']) && $rrule['FREQ'] === 'MONTHLY') {
- $monthly_byday_count = substr($rrule['BYDAY'][0], 0, -2);
- $monthly_byday_day = substr($rrule['BYDAY'][0], -2);;
+ foreach (array_keys($rrule['BYDAY']) as $key) {
+ $monthly_byday_count[$key] = substr($rrule['BYDAY'][$key], 0, -2);
+ $monthly_byday_day = substr($rrule['BYDAY'][$key], -2);
+ }
}
list($byday_count_title, $byday_day_title) = explode('@byday', t('On the @byday of', array(), array('context' => 'Date repeat')));
@@ -327,7 +329,7 @@ function _date_repeat_rrule_process($element, &$form_state, $form) {
'#title' => $byday_count_title,
'#default_value' => !empty($monthly_byday_count) ? $monthly_byday_count : '',
'#options' => date_order_translated(),
- '#multiple' => FALSE,
+ '#multiple' => TRUE,
'#prefix' => '
',
'#suffix' => '
',
);
@@ -418,11 +420,13 @@ function _date_repeat_rrule_process($element, &$form_state, $form) {
'#tree' => TRUE,
);
- $yearly_byday_count = '';
+ $yearly_byday_count = array();
$yearly_byday_day = '';
if (isset($rrule['BYDAY']) && !empty($rrule['BYDAY']) && $rrule['FREQ'] === 'YEARLY') {
- $yearly_byday_count = substr($rrule['BYDAY'][0], 0, -2);
- $yearly_byday_day = substr($rrule['BYDAY'][0], -2);;
+ foreach (array_keys($rrule['BYDAY']) as $key) {
+ $yearly_byday_count[$key] = substr($rrule['BYDAY'][$key], 0, -2);
+ $yearly_byday_day = substr($rrule['BYDAY'][$key], -2);
+ }
}
list($byday_count_title, $byday_day_title) = explode('@byday', t('On the @byday of', array(), array('context' => 'Date repeat')));
@@ -431,7 +435,7 @@ function _date_repeat_rrule_process($element, &$form_state, $form) {
'#title' => $byday_count_title,
'#default_value' => !empty($yearly_byday_count) ? $yearly_byday_count : '',
'#options' => date_order_translated(),
- '#multiple' => FALSE,
+ '#multiple' => TRUE,
'#prefix' => '',
'#suffix' => '
',
);
@@ -830,7 +834,11 @@ function date_repeat_merge($form_values, $element) {
break;
case 'BYDAY_BYMONTH':
- $form_values['monthly']['BYDAY_BYMONTH_child']['BYDAY'] = $form_values['monthly']['BYDAY_BYMONTH_child']['BYDAY_COUNT'] . $form_values['monthly']['BYDAY_BYMONTH_child']['BYDAY_DAY'];
+ $form_values['monthly']['BYDAY_BYMONTH_child']['BYDAY'] = array();
+ foreach ($form_values['monthly']['BYDAY_BYMONTH_child']['BYDAY_COUNT'] as $count) {
+ $form_values['monthly']['BYDAY_BYMONTH_child']['BYDAY'][] = $count . $form_values['monthly']['BYDAY_BYMONTH_child']['BYDAY_DAY'];
+ }
+ $form_values['monthly']['BYDAY_BYMONTH_child']['BYDAY'] = implode(',', $form_values['monthly']['BYDAY_BYMONTH_child']['BYDAY']);
$form_values['monthly'] = array_merge($form_values['monthly'], (array) $form_values['monthly']['BYDAY_BYMONTH_child']);
break;
}
@@ -857,7 +865,11 @@ function date_repeat_merge($form_values, $element) {
break;
case 'BYDAY_BYMONTH':
- $form_values['yearly']['BYDAY_BYMONTH_child']['BYDAY'] = $form_values['yearly']['BYDAY_BYMONTH_child']['BYDAY_COUNT'] . $form_values['yearly']['BYDAY_BYMONTH_child']['BYDAY_DAY'];
+ $form_values['yearly']['BYDAY_BYMONTH_child']['BYDAY'] = array();
+ foreach ($form_values['yearly']['BYDAY_BYMONTH_child']['BYDAY_COUNT'] as $count) {
+ $form_values['yearly']['BYDAY_BYMONTH_child']['BYDAY'][] = $count . $form_values['yearly']['BYDAY_BYMONTH_child']['BYDAY_DAY'];
+ }
+ $form_values['yearly']['BYDAY_BYMONTH_child']['BYDAY'] = implode(',', $form_values['yearly']['BYDAY_BYMONTH_child']['BYDAY']);
$form_values['yearly'] = array_merge($form_values['yearly'], (array) $form_values['yearly']['BYDAY_BYMONTH_child']);
break;
}
diff --git a/date_repeat_field/date_repeat_field.css b/date_repeat_field/date_repeat_field.css
index bb8926c..82ff454 100644
--- a/date_repeat_field/date_repeat_field.css
+++ b/date_repeat_field/date_repeat_field.css
@@ -44,6 +44,7 @@
.date-clear.bymonthday label,
.date-clear.bymonthday select {
display: inline;
+ vertical-align: text-top;
}
.date-repeat-input.byday-day label,