commons_radioactivity_groups.module in Drupal Commons 7.3
File
modules/commons/commons_radioactivity/commons_radioactivity_groups/commons_radioactivity_groups.module
View source
<?php
include_once 'commons_radioactivity_groups.features.inc';
function commons_radioactivity_groups_node_insert($node) {
if (empty($node->field_radioactivity)) {
return;
}
if (!isset($node->og_group_ref)) {
return;
}
commons_radioactivity_groups_incident_groups($node, $node->field_radioactivity[LANGUAGE_NONE][0]['radioactivity_energy']);
}
function commons_radioactivity_groups_node_delete($node) {
if (empty($node->field_radioactivity)) {
return;
}
if (!isset($node->og_group_ref)) {
return;
}
commons_radioactivity_groups_incident_groups($node, -1 * $node->field_radioactivity[LANGUAGE_NONE][0]['radioactivity_energy']);
}
function commons_radioactivity_groups_node_update($node) {
if (empty($node->field_radioactivity)) {
return;
}
if (!isset($node->og_group_ref)) {
return;
}
if ($node->og_group_ref !== $node->original->og_group_ref) {
commons_radioactivity_groups_process_node_group_membership_change($node);
}
}
function commons_radioactivity_groups_incident_groups($node, $value) {
$gids = array();
if ($items = field_get_items('node', $node, 'og_group_ref')) {
foreach ($items as $item) {
$gids[] = $item['target_id'];
}
}
if (count($gids)) {
$groups = node_load_multiple($gids);
foreach ($groups as $group) {
commons_radioactivity_incident_node($group, $value);
}
}
}
function commons_radioactivity_groups_process_node_group_membership_change($node) {
$gids_original = array();
$gids_updated = array();
if (!empty($node->original->og_group_ref[LANGUAGE_NONE])) {
foreach ($node->original->og_group_ref[LANGUAGE_NONE] as $delta => $field) {
$gids_original[] = $field['target_id'];
}
}
if (!empty($node->og_group_ref[LANGUAGE_NONE])) {
foreach ($node->og_group_ref[LANGUAGE_NONE] as $delta => $field) {
$gids_updated[] = $field['target_id'];
}
}
$gids_removed = array_diff($gids_original, $gids_updated);
$gids_added = array_diff($gids_updated, $gids_original);
if (!empty($gids_added)) {
$groups = entity_load('node', $gids_added);
foreach ($groups as $id => $group) {
commons_radioactivity_incident_node($group, $node->field_radioactivity[LANGUAGE_NONE][0]['radioactivity_energy']);
}
}
if (!empty($gids_removed)) {
$groups = entity_load('node', $gids_removed);
foreach ($groups as $id => $group) {
commons_radioactivity_incident_node($group, -1 * $node->field_radioactivity[LANGUAGE_NONE][0]['radioactivity_energy']);
}
}
}
function commons_radioactivity_groups_default_page_manager_pages_alter(&$pages) {
if (isset($pages['groups_directory'])) {
$page = $pages['groups_directory'];
$handler = $page->default_handlers['page_groups_directory_panel_context'];
$display = $handler->conf['display'];
$pane = new stdClass();
$pane->pid = 'new-ab237aa5-5ae7-8fb4-e1ce-20c776a6950b';
$pane->panel = 'two_66_33_second';
$pane->type = 'views_panes';
$pane->subtype = 'commons_radioactivity_groups_most_active-panel_pane_1';
$pane->shown = TRUE;
$pane->access = array();
$pane->configuration = array();
$pane->cache = array();
$pane->style = array(
'settings' => NULL,
);
$pane->css = array();
$pane->extras = array();
$pane->position = 0;
$pane->locks = array();
$pane->uuid = 'ab237aa5-5ae7-8fb4-e1ce-20c776a6950b';
$display->content['new-ab237aa5-5ae7-8fb4-e1ce-20c776a6950b'] = $pane;
$display->panels['two_66_33_second'][0] = 'new-ab237aa5-5ae7-8fb4-e1ce-20c776a6950b';
}
if (isset($pages['commons_home'])) {
$page = $pages['commons_home'];
$handler = $page->default_handlers['page_commons_home_panel_context_2'];
$display = $handler->conf['display'];
$pane = new stdClass();
$pane->pid = 'new-b6e290b7-1d2b-5db4-a181-28befdcde628';
$pane->panel = 'three_33_second';
$pane->type = 'views_panes';
$pane->subtype = 'commons_radioactivity_groups_most_active-panel_pane_1';
$pane->shown = TRUE;
$pane->access = array();
$pane->configuration = array();
$pane->cache = array();
$pane->style = array(
'settings' => NULL,
);
$pane->css = array();
$pane->extras = array();
$pane->position = 0;
$pane->locks = array();
$pane->uuid = 'b6e290b7-1d2b-5db4-a181-28befdcde628';
$display->content['new-b6e290b7-1d2b-5db4-a181-28befdcde628'] = $pane;
$display->panels['three_33_second'][0] = 'new-b6e290b7-1d2b-5db4-a181-28befdcde628';
}
}