radioactivity_live_incident_storage.php in Radioactivity 7
File
storage/radioactivity_live_incident_storage.php
View source
<?php
class radioactivity_live_incident_storage extends radioactivity_incident_storage {
public function __construct($field_id) {
parent::__construct($field_id);
}
function add_incident($entities, $energy = null) {
static $time_now = NULL;
if ($time_now == NULL) {
$time_now = time();
}
if ($energy == NULL) {
$energy = $this->incident_energy;
}
foreach ($entities as $entity_type => $entities_id) {
$info = entity_get_info($entity_type);
$id = $info['entity keys']['id'];
$bundle = $info['bundle keys']['bundle'];
$entities_loaded = entity_load($entity_type, $entities_id);
foreach ($entities_loaded as $entity_id => $entity) {
$l = $entity->language;
if (!isset($entity->{$this->field_name})) {
$value = 0;
$entity->{$this->field_name} = array(
$l => array(
0 => array(
RADIOACTIVITY_FIELD_ENERGY => 0,
RADIOACTIVITY_FIELD_TIMESTAMP => 0,
),
),
);
}
else {
$value = $entity->{$this->field_name}[$l][0][RADIOACTIVITY_FIELD_ENERGY];
}
$value += $energy;
$entity->{$this->field_name}[$l][0][RADIOACTIVITY_FIELD_ENERGY] = $value;
field_attach_update($entity_type, $entity);
}
}
}
}