You are here

function theme_noderelationships_formatter_default in Node Relationships 6

Field formatter for back references view.

File

./noderelationships.pages.inc, line 214
Implementation of user land pages.

Code

function theme_noderelationships_formatter_default($element) {

  // Check if we have a node here. We should.
  if (empty($element['#node']) || empty($element['#node']->nid)) {
    return '';
  }

  // Load back reference field data.
  $field = content_fields($element['#field_name'], $element['#type_name']);
  if (empty($field['referrer_field']) || empty($field['referrer_type'])) {
    return '';
  }

  // Include common module functions.
  module_load_include('inc', 'noderelationships');

  // Obtain back reference settings for this type.
  $backref_settings = noderelationships_settings_load($element['#type_name'], 'backref');
  $backref_regions = $backref_settings['regions'];
  if (empty($backref_regions[NODERELATIONSHIPS_BACKREF_REGION_FIELD])) {
    return '';
  }

  // Check we really have relation information.
  $region_settings = $backref_regions[NODERELATIONSHIPS_BACKREF_REGION_FIELD];
  if (empty($region_settings[$field['referrer_type'] . ':' . $field['referrer_field']])) {
    return '';
  }
  $relation_info = $region_settings[$field['referrer_type'] . ':' . $field['referrer_field']];

  // Build the context structure and render the back reference view.
  $context = array(
    'region_settings' => $region_settings,
    'referred_node' => $element['#node'],
    'referred_type' => noderelationships_get_localized_content_type($element['#type_name']),
    'referrer_type' => noderelationships_get_localized_content_type($field['referrer_type']),
    'field_name' => $field['referrer_field'],
  );
  return noderelationships_backref_render_view($relation_info['back_reference_view'], $context, FALSE);
}