You are here

public function AvailabilityCalendarsNodeEditCalendarFormHandler::build in Availability Calendars 7.2

Builds the node/%node/availability-calendars page form.

Parameters

array $form:

Return value

array The modified form.

File

./availability_calendars.node.inc, line 366

Class

AvailabilityCalendarsNodeEditCalendarFormHandler

Code

public function build($form) {

  // Add js or the edit functionality.
  availability_calendars_add_js($this->node, NULL, 'edit');

  // Add form fields.
  $year = (int) date('Y');
  $month = (int) date('m');
  $form['availability_calendar'] = array(
    '#type' => 'markup',
    '#theme' => 'availability_calendars_node',
    '#markup' => '',
    '#prefix' => '<div class="description">' . t('To update the calendar: select a state (below the calendar) and click on a begin and end date. Repeat if needed. When finished, click on <em>@button</em>.', array(
      '@button' => t('Update'),
    )) . '</div>',
    '#node' => $this->node,
    '#year' => $year,
    '#month' => $month,
    '#settings' => $this->settings,
  );
  $options = array();
  foreach ($this->settings->states as $class => $state) {
    $options[$class] = t($state['label']);
  }
  $form['availability_states'] = array(
    '#type' => 'radios',
    '#title' => t('States'),
    '#default_value' => $this->settings->defaultstatus,
    '#options' => $options,
  );
  $form['availability_changes'] = array(
    '#type' => 'hidden',
    '#title' => t('Changes in availability'),
    '#default_value' => '',
    '#attributes' => array(
      'id' => 'edit-availability-changes',
    ),
  );

  // Add form button.
  $form['actions'] = array(
    '#type' => 'actions',
  );
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Update'),
  );
  return $form;
}