function og_set_theme in Organic groups 5.3
Same name and namespace in other branches
- 5.8 og.module \og_set_theme()
- 5 og.module \og_set_theme()
- 5.2 og.module \og_set_theme()
- 5.7 og.module \og_set_theme()
- 6.2 og.module \og_set_theme()
- 6 og.module \og_set_theme()
1 call to og_set_theme()
- og_theme in ./og.module
- Override theme based on what group is being displayed (if any).
Be smart about selecting the 'active' group for ambigous urls like node/$nid
File
- ./og.module, line 264
Code
function og_set_theme($nid) {
global $custom_theme, $user;
$node = node_load(intval($nid));
if (og_is_group_type($node->type)) {
$custom_theme = $node->og_theme;
return $node;
}
else {
switch (count($node->og_groups)) {
case 0:
return NULL;
case 1:
$group_node = node_load($node->og_groups[0]);
$custom_theme = $group_node->og_theme;
break;
default:
if (in_array($_SESSION['og_last'], $node->og_groups)) {
$group_node = node_load($_SESSION['og_last']);
$custom_theme = $group_node->og_theme;
}
else {
$groups = array();
if ($user->uid) {
$groups = array_intersect($node->og_groups, array_keys($user->og_groups));
}
if (empty($groups)) {
$groups = $node->og_groups;
}
$group_node = node_load(array_shift($groups));
$custom_theme = $group_node->og_theme;
}
}
return $group_node;
}
}