You are here

function opigno_sort_groups_node_update in Opigno Class App 7

File

opigno_sort_groups/opigno_sort_groups.module, line 249
Contains all hook_implementations and module specific functions.

Code

function opigno_sort_groups_node_update($node) {
  if (isset($node->original)) {
    if ($node->type == "class") {

      /// If courses inside the class changed
      foreach ($node->opigno_class_courses[LANGUAGE_NONE] as $index => $target) {
        if (!in_array($target['target_id'], $node->original->opigno_class_courses[LANGUAGE_NONE][$index])) {

          /// Insert into opigno sort groups
          db_insert('opigno_sort_groups')
            ->fields(array(
            'cgid' => $node->nid,
            'gid' => $target['target_id'],
            'weight' => 0,
          ))
            ->execute();

          ///////////////////////////////////

          /// If course is alone delete it
          db_delete('opigno_sort_groups')
            ->condition('gid', $target['target_id'])
            ->condition('cgid', NULL, 'IS')
            ->execute();

          ////////////////////////////////
        }
      }
      foreach ($node->original->opigno_class_courses[LANGUAGE_NONE] as $index => $target) {
        if (!in_array($target['target_id'], $node->opigno_class_courses[LANGUAGE_NONE][$index], TRUE)) {

          //// Deletes from opigno_sort_groups
          db_delete('opigno_sort_groups')
            ->condition('gid', $target['target_id'])
            ->condition('cgid', $node->nid)
            ->execute();

          ////////////////////////////////////
          if (opigno_sort_group_node_course_is_alone($target['target_id'])) {
            db_insert('opigno_sort_groups')
              ->fields(array(
              'gid' => $target['target_id'],
              'weight' => 99,
            ))
              ->execute();
          }
        }
      }
    }
  }
}