You are here

function field_reference_label_create in Field reference 7

Compose a field reference label.

WARNING: This function does not sanitize output, such as node titles. Use only in form inputs or wrap printed labels in filter_xss().

Parameters

$field_reference: An associative array representing the field reference data.

Return value

The field reference label.

1 call to field_reference_label_create()
_field_reference_potential_references_standard in ./field_reference.module
Helper function for field_reference_potential_references().

File

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

Code

function field_reference_label_create($field_reference) {
  $label = $field_reference['field_label'];
  if (!empty($field_reference['entity_label'])) {
    $label .= $field_reference['entity_label'];
  }
  elseif (!empty($field_reference['entity_type']) && !empty($field_reference['entity_id'])) {
    $entity_type_info = field_reference_entity_get_info($field_reference['entity_type']);
    if (!empty($field_reference['revision_id']) && !empty($entity_type_info['entity keys']['revision'])) {
      $field_entity = entity_load_single($field_reference['entity_type'], $field_reference['entity_id']);
    }
    else {
      $field_entity = entity_load_single($field_reference['entity_type'], $field_reference['entity_id']);
    }
    $label .= ' - ' . entity_label($field_reference['entity_type'], $field_entity);
  }
  if (!empty($field_reference['revision_id'])) {
    if (isset($field_entity->revision_uid) && isset($field_entity->revision_timestamp)) {
      $rev_extra = ' [';
      $user = user_load($field_entity->revision_uid);
      $rev_extra .= t('!date by !username', array(
        '!date' => format_date($field_entity->revision_timestamp, 'short'),
        '!username' => $user->name,
      ));
      $logmsg = !empty($field_entity->log) ? ' - ' . check_plain($field_entity->log) . '' : '';
      if (strlen($logmsg > 12)) {
        $logmsg = substr($logmsg, 0, 11) . '…';
      }
      $rev_extra .= $logmsg . ']';
    }
    $label .= ' (' . t('revision') . ' ' . $field_reference['revision_id'] . $rev_extra . ')';
  }
  if (!empty($field_reference['language'])) {
    $label .= ' ' . strtoupper($field_reference['language']);
  }
  return $label;
}