function availability_calendars_node_edit_calendar_month_form in Availability Calendars 6.2
Same name and namespace in other branches
- 7.2 availability_calendars.node.inc \availability_calendars_node_edit_calendar_month_form()
Populates the node edit calendar month form.
Return value
array
1 string reference to 'availability_calendars_node_edit_calendar_month_form'
- availability_calendars_edit_calendar in ./
availability_calendars.node.inc - Show the availability calendar. (callback for path availability-calendars/%)
File
- ./
availability_calendars.node.inc, line 154
Code
function availability_calendars_node_edit_calendar_month_form($form_state, $node, $year, $month, $settings) {
$form = array();
$nid = $node->nid;
$form['nid'] = array(
'#type' => 'hidden',
'#default_value' => $nid,
);
$form['year'] = array(
'#type' => 'hidden',
'#default_value' => $year,
);
$form['month'] = array(
'#type' => 'hidden',
'#default_value' => $month,
);
$month_meta = availability_calendars_month_meta($year, $month, $settings);
// find all entries in database for this month (notes and availability) and pre-populate
$notes = availability_calendars_get_node_notes($nid, $year, $month);
$states = availability_calendars_get_node_states($nid, $year, $month, $settings);
$day = 1;
for ($week = 1; $week <= $month_meta['weeksinmonth']; $week++) {
$form['week-' . $week] = array(
'#type' => 'fieldset',
'#title' => t('Week @week', array(
'@week' => $week,
)),
);
if ($settings->showweeknotes) {
$form['week-' . $week]['note-' . $week] = array(
'#type' => 'textfield',
'#title' => t('Note'),
'#default_value' => $notes[$week],
'#description' => t('This will be displayed beside the week in the calendar. It could include, for example, a weekly price.'),
);
}
if ($week == 1) {
$daysinweekremaining = 7 - $month_meta['firstday'];
}
else {
$daysinweekremaining = 7;
}
while ($daysinweekremaining > 0 && $day <= $month_meta['daysinmonth']) {
$date = mktime(12, 0, 0, $month, $day, $year);
$form['week-' . $week]['day-' . $day] = array(
'#type' => 'select',
'#title' => format_date($date, 'custom', 'l j F'),
'#options' => availability_calendars_options(),
'#default_value' => $states[date(AC_ISODATE, $date)],
);
$day++;
$daysinweekremaining--;
}
}
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Update'),
);
return $form;
}