You are here

function lti_tool_provider_memberships_get_dropped_memberships in LTI Tool Provider 7

Extract the dropped memberships from the memberships list.

Parameters

array $member_data: The current saved memberships data.

Return value

array The dropped memberships.

1 call to lti_tool_provider_memberships_get_dropped_memberships()
lti_tool_provider_memberships_batch_get_dropped_memberships in lti_tool_provider_memberships/lti_tool_provider_memberships.batch.inc
Batch Operation Callback to get dropped memberships.

File

lti_tool_provider_memberships/lti_tool_provider_memberships.module, line 776
lti_tool_provider_memberships hook implementations and support functions.

Code

function lti_tool_provider_memberships_get_dropped_memberships($member_data) {
  $dropped_members = array();
  if (!empty($member_data)) {

    // Load all active members of current contextx.
    $query = new EntityFieldQuery();
    $result = $query
      ->entityCondition('entity_type', 'lti_tool_provider_memberships')
      ->propertyCondition('lti_tool_provider_memberships_context_id', $_SESSION['lti_tool_provider_context_info']['context_id'])
      ->propertyCondition('lti_tool_provider_memberships_status', 'Active')
      ->execute();
    if (isset($result['lti_tool_provider_memberships'])) {
      $entities = entity_load('lti_tool_provider_memberships', array_keys($result['lti_tool_provider_memberships']));
    }
    else {
      $entities = array();
    }
    foreach ($entities as $entity) {
      $found = FALSE;
      foreach ($member_data as $key => $data) {
        if ($entity->lti_tool_provider_memberships_user_id == $data['user_id']) {
          $found = TRUE;
          unset($member_data[$key]);
          break;
        }
      }
      if (!$found) {
        if (!isset($entity->date_dropped)) {
          $dropped_members[] = $entity;
        }
      }
    }
  }
  if (!empty($dropped_members)) {
    foreach ($dropped_members as $key => $row) {
      $user_id[$key] = $row->lti_tool_provider_memberships_user_id;
    }
    array_multisort($user_id, SORT_ASC, $dropped_members);
  }
  return $dropped_members;
}