function og_subgroups_prop_propagate_content in Subgroups for Organic groups 6
Propagates content along the subgroups tree.
Parameters
&$node: The node object that needs to be propagated
Return value
TRUE if the node has been altered
1 call to og_subgroups_prop_propagate_content()
- og_subgroups_prop_nodeapi in modules/
og_subgroups_prop/ og_subgroups_prop.module - Implementation of hook_nodeapi()
File
- modules/
og_subgroups_prop/ og_subgroups_prop.module, line 194
Code
function og_subgroups_prop_propagate_content(&$node) {
og_subgroups_include('tree');
// Track if the node has been changed
$changed = FALSE;
// Determine the directions to move along the tree
$directions = variable_get('og_subgroups_propagate_content', array());
// Make sure at least one group has been selected
if (isset($node->og_groups) && !empty($node->og_groups)) {
// Iterate each selected group
foreach ($node->og_groups as $gid) {
// Propagate across each direction
foreach ($directions as $direction) {
if ($direction) {
// Create a group object to pass along
$group = new stdClass();
$group->nid = $gid;
// Fetch the tree and interate the groups
foreach (_og_subgroups_prop_groups_by_direction($group, $direction) as $member) {
// Make sure the user can post in here
if (!og_subgroups_mask_group($member, TRUE)) {
// Add this group to the node
$node->og_groups[$member->nid] = $member->nid;
$node->og_initial_groups[$member->nid] = $member->nid;
$changed = TRUE;
}
}
}
}
}
}
return $changed;
}