You are here

function _radioactivity_get_field_maximum in Radioactivity 7.2

Get fields maximum energy

2 calls to _radioactivity_get_field_maximum()
radioactivity_field_formatter_view in ./radioactivity.field.inc
Implements hook_field_formatter_view()
radioactivity_rules_action_maximum in ./radioactivity.rules.inc
Action: Get maximum energy

File

./radioactivity.module, line 331
Radioactivity core functionality

Code

function _radioactivity_get_field_maximum($field_id, $entity_type) {
  static $cache;
  if (is_numeric($field_id)) {
    $field_info = field_info_field_by_id($field_id);
    $field_name = $field_info['field_name'];
  }
  else {
    $field_name = $field_id;
  }
  if (isset($cache[$field_name . $entity_type])) {
    return $cache[$field_name . $entity_type];
  }
  $table_name = 'field_data_' . $field_name;
  $energy = $field_name . '_' . RADIOACTIVITY_FIELD_ENERGY;
  $timestamp = $field_name . '_' . RADIOACTIVITY_FIELD_TIMESTAMP;

  // grab update value from deferred values table
  // and update it to the fields table if it is used
  $query = db_select($table_name, "tb")
    ->condition("tb.entity_type", $entity_type)
    ->condition("tb.deleted", "0");
  $query
    ->addExpression("MAX(tb." . $energy . ")", "energy");
  $result = $query
    ->execute()
    ->fetchField();
  if (!$result) {

    // $cut_off;
    $result = 0;
  }
  $cache[$field_id . $entity_type] = $result;
  return $cache[$field_id . $entity_type];
}