You are here

function template_preprocess_entity_property in Entity API 7

Theme preprocess function for theme_entity_property().

See also

theme_entity_property()

File

theme/entity.theme.inc, line 58
Holds entity module's theme functions.

Code

function template_preprocess_entity_property(&$variables, $hook) {
  $element = $variables['elements'];
  $variables += array(
    'theme_hook_suggestions' => array(),
    'attributes_array' => array(),
  );

  // Generate variables from element properties.
  foreach (array(
    'label_hidden',
    'label',
    'property_name',
  ) as $name) {
    $variables[$name] = check_plain($element['#' . $name]);
  }
  $variables['title_attributes_array']['class'][] = 'entity-property-label';
  $variables['attributes_array'] = array_merge($variables['attributes_array'], isset($element['#attributes']) ? $element['#attributes'] : array());
  $variables['property_name_css'] = strtr($element['#property_name'], '_', '-');
  $variables['attributes_array']['class'][] = 'entity-property';
  $variables['attributes_array']['class'][] = 'entity-property-' . $variables['property_name_css'];

  // Add specific suggestions that can override the default implementation.
  $variables['theme_hook_suggestions'] += array(
    'entity_property__' . $element['#property_name'],
    'entity_property__' . $element['#entity_type'] . '__' . $element['#property_name'],
  );

  // Populate the content with sensible defaults.
  if (!isset($element['#content'])) {
    $variables['content'] = entity_property_default_render_value_by_type($element['#entity_wrapped']->{$element['#property_name']});
  }
  else {
    $variables['content'] = $element['#content'];
  }
}