You are here

function field_reference_key_read in Field reference 7

Decode a field reference key.

Parameters

$key: The field reference key.

Return value

An associative array representing the field reference data.

1 call to field_reference_key_read()
field_reference_field_presave in ./field_reference.module
Implements hook_field_presave().

File

./field_reference.module, line 1237
Defines a field type for referencing a field from another.

Code

function field_reference_key_read($key) {
  $field_reference = array();
  $key_parts = explode(' ', $key);
  if (!empty($key_parts[0])) {
    $field_key_parts = explode(':', $key_parts[0]);
    if (!empty($field_key_parts[0])) {
      $field_reference['field_key'] = $field_key_parts[0];
    }
    if (!empty($field_key_parts[1])) {
      $field_reference['delta'] = $field_key_parts[1];
    }
  }
  if (!empty($key_parts[1])) {
    $entity_key_parts = explode(':', $key_parts[1]);
    if (!empty($entity_key_parts[0])) {
      $field_reference['entity_type'] = $entity_key_parts[0];
    }
    if (!empty($entity_key_parts[1])) {
      $field_reference['entity_id'] = $entity_key_parts[1];
    }
    if (!empty($entity_key_parts[2])) {
      $field_reference['revision_id'] = $entity_key_parts[2];
    }
  }
  if (!empty($key_parts[2])) {
    $field_reference['language'] = $key_parts[2];
  }
  return $field_reference;
}