You are here

function textformatter_contrib_node_reference_field_create_list in Text list formatter 8.2

Same name and namespace in other branches
  1. 7 textformatter_contrib/textformatter_contrib.module \textformatter_contrib_node_reference_field_create_list()

Node reference field listing callback.

1 string reference to 'textformatter_contrib_node_reference_field_create_list'
textformatter_contrib_textformatter_field_info in textformatter_contrib/textformatter_contrib.module
Implements hook_textformatter_field_info().

File

textformatter_contrib/textformatter_contrib.module, line 99
Textformatter support for contributed module fields.

Code

function textformatter_contrib_node_reference_field_create_list($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $list_items = $node_ids = array();
  $contrib_settings = $display['settings']['textformatter_contrib'];

  // Get an array of entity ids.
  foreach ($items as $delta => $item) {
    $node_ids[] = $item['nid'];
  }

  // Load them all.
  if (!empty($node_ids)) {
    $nodes = entity_load('node', $node_ids);
    foreach ($nodes as $id => $node) {
      $label = entity_label('node', $node);
      $uri = entity_uri('node', $node);
      if ($contrib_settings['node_reference_link']) {
        $classes = array(
          'node',
          'node-' . $id,
          'node-' . drupal_html_class($node->type),
          'node-reference',
        );
        $list_items[$id] = l($label, $uri['path'], array(
          'attributes' => array(
            'class' => $classes,
          ),
        ));
      }
      else {
        $list_items[$id] = field_filter_xss($label);
      }
    }
  }
  return $list_items;
}