function og_ui_handler_area_og_membership_overview::render in Organic groups 7.2
Render the area.
Overrides views_handler_area::render
File
- og_ui/
includes/ views/ handlers/ og_ui_handler_area_og_membership_overview.inc, line 60
Class
- og_ui_handler_area_og_membership_overview
- Overview of the group memberships (e.g. group manager, total memebrs).
Code
function render($empty = FALSE) {
// Get arguments.
foreach ($this->view->argument as $key => $handler) {
if ($key == 'group_type') {
$group_type = $handler
->get_value();
}
elseif ($key == 'gid') {
$gid = $handler = $handler
->get_value();
}
}
if (empty($group_type) || empty($gid)) {
// No group type and group ID provided.
return;
}
$group = entity_load_single($group_type, $gid);
if (!$group || !og_is_group($group_type, $group)) {
// Arguments are not a valid group.
return;
}
$items = array();
if (!empty($group->uid) && $this->options['manager']) {
// Group manager.
$account = user_load($group->uid);
$items[] = array(
'data' => t('Group manager: !manager', array(
'!manager' => theme('username', array(
'account' => $account,
)),
)),
);
}
$base_query = new EntityFieldQuery();
$base_query
->entityCondition('entity_type', 'og_membership')
->propertyCondition('group_type', $group_type, '=')
->propertyCondition('gid', $gid, '=')
->count();
foreach (og_group_content_states() as $state => $label) {
// Total members by state.
if ($this->options["total_members_{$state}"]) {
$query = clone $base_query;
$count = $query
->propertyCondition('entity_type', 'user', '=')
->propertyCondition('state', $state, '=')
->execute();
$params = array(
'%label' => strtolower($label),
'@count' => $count,
);
$items[] = array(
'data' => t('Total %label members: @count', $params),
);
}
}
if ($this->options['total_members']) {
// Total members.
$query = clone $base_query;
$count = $query
->propertyCondition('entity_type', 'user', '=')
->execute();
$items[] = array(
'data' => t('Total members: @count', array(
'@count' => $count,
)),
);
}
if ($this->options['total_content']) {
// Total nodes.
$query = clone $base_query;
$count = $query
->propertyCondition('entity_type', 'node', '=')
->execute();
$items[] = array(
'data' => t('Total content: @count', array(
'@count' => $count,
)),
);
}
return theme('item_list', array(
'items' => $items,
'title' => t('Group overview'),
));
}