You are here

function swagger_ui_formatter_field_formatter_view in Swagger UI Field Formatter 7.2

Same name and namespace in other branches
  1. 7 swagger_ui_formatter.module \swagger_ui_formatter_field_formatter_view()

Implements hook_field_formatter_view().

File

./swagger_ui_formatter.module, line 147
Swagger ui field formatter functionality.

Code

function swagger_ui_formatter_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $library = libraries_load('swagger_ui');
  if (!$library['loaded']) {
    return array();
  }
  $element = array();
  $settings = $display['settings'];
  $swagger_fields = array();
  foreach ($items as $delta => $item) {
    $swagger_fields[] = array(
      'field_name' => 'swagger-ui-' . $item['fid'] . '-' . $delta,
      'file_name' => file_create_url($item['uri']),
    );
    $element[$delta] = array(
      '#theme' => 'swagger_ui_formatter',
      '#delta' => $delta,
      '#field_name' => $item['fid'],
    );
  }
  if ($settings['validator'] == 'none') {
    $validator_url = NULL;
  }
  elseif ($settings['validator'] == 'default') {
    $validator_url = FALSE;
  }
  else {
    $validator_url = $settings['validator_url'];
  }
  $element['#attached']['js'][] = array(
    'data' => array(
      'swagger_ui_formatter' => array(
        'swagger_fields' => $swagger_fields,
        'validator_url' => $validator_url,
        'doc_expansion' => $settings['doc_expansion'],
        'show_top_bar' => $settings['show_top_bar'],
        'sort_tags_by_name' => $settings['sort_tags_by_name'],
      ),
    ),
    'type' => 'setting',
  );
  return $element;
}