You are here

function availability_calendars_node_edit_calendar_month_form in Availability Calendars 6.2

Same name and namespace in other branches
  1. 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;
}