You are here

function context_og_condition_member_status::execute in Context OG 6.3

Same name and namespace in other branches
  1. 7.2 plugins/context_og_condition_member_status.inc \context_og_condition_member_status::execute()

File

plugins/context_og_condition_member_status.inc, line 28

Class

context_og_condition_member_status
Expose organic groups member status as a context condition.

Code

function execute($group) {
  if (isset($group)) {
    $node_form = arg(0) == 'node' && (is_numeric(arg(1)) && arg(2) == 'edit' || arg(1) == 'add');
    if (og_is_group_admin($group)) {
      $type = 'admin';
    }
    elseif (og_is_group_member($group, FALSE)) {
      $type = 'member';
    }
    else {
      $type = 'no_member';
    }
  }
  foreach ($this
    ->get_contexts($type) as $context) {
    $options = $this
      ->fetch_from_context($context, 'options');

    // The condition is met unless we are looking at a node form
    // and the "Set on node form" option is unchecked.
    if (!$node_form || !empty($options['node_form'])) {
      $this
        ->condition_met($context, $type);
    }
  }
}