You are here

function message_og_example_og_membership_insert in Message 7

Implements hook_og_membership_insert().

File

message_og_example/message_og_example.module, line 13

Code

function message_og_example_og_membership_insert($og_membership) {
  if ($og_membership->state != OG_STATE_ACTIVE || $og_membership->entity_type != 'user') {

    // Membership isn't active.
    return;
  }
  if ($og_membership->group_type != 'node') {

    // For simplicity we operate only on membership with node groups.
    return;
  }
  if (!$og_membership->etid) {

    // Don't capture membership of anonymous user, that might be caused
    // when using Devel generate.
    return;
  }
  $node = node_load($og_membership->gid);

  // Create a "User joined" message.
  $message = message_create('example_og_user_membership', array(
    'uid' => $og_membership->etid,
  ));
  $wrapper = entity_metadata_wrapper('message', $message);
  $wrapper->field_node_groups_ref[] = $node;
  $wrapper->field_published
    ->set($node->status);
  $wrapper
    ->save();
}