You are here

function availability_calendars_update_node_notes in Availability Calendars 7.2

Same name and namespace in other branches
  1. 6.2 availability_calendars.inc \availability_calendars_update_node_notes()

Updates the calendar notes for the given node in the given month.

Parameters

int $calendar_nid:

int $year:

int $month:

array $notes: The (possibly empty) notes keyed by week number.

1 call to availability_calendars_update_node_notes()
availability_calendars_node_edit_calendar_month_form_submit in ./availability_calendars.node.inc
Callback function for submitting a node edit form.

File

./availability_calendars.inc, line 298
General helper methods for Availability Calendars, like database access and settings.

Code

function availability_calendars_update_node_notes($calendar_nid, $year, $month, $notes) {

  // Delete all current notes.
  db_delete('availability_calendars_week')
    ->condition('nid', $calendar_nid)
    ->condition('year', $year)
    ->condition('month', $month)
    ->execute();

  // Insert new notes.
  $query = db_insert('availability_calendars_week');
  $values = array(
    'nid' => $calendar_nid,
    'year' => $year,
    'month' => $month,
  );
  $has_records = FALSE;
  foreach ($notes as $values['week'] => $values['note']) {
    if (!empty($values['note'])) {
      if (!$has_records) {
        $query
          ->fields($values);
        $has_records = TRUE;
      }
      else {
        $query
          ->values($values);
      }
    }
  }
  if ($has_records) {
    $query
      ->execute();
  }
}