You are here

function swagger_ui_formatter_field_formatter_view in Swagger UI Field Formatter 7

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

Implements hook_field_formatter_view().

File

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

Code

function swagger_ui_formatter_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $module_path = drupal_get_path('module', 'swagger_ui_formatter');
  $js_path = $module_path . '/swagger_ui/dist/lib/';
  drupal_add_js($js_path . 'jquery-1.8.0.min.js', 'file');
  drupal_add_js($js_path . 'jquery.slideto.min.js', 'file');
  drupal_add_js($js_path . 'jquery.wiggle.min.js', 'file');
  drupal_add_js($js_path . 'jquery.ba-bbq.min.js', 'file');
  drupal_add_js($js_path . 'handlebars-2.0.0.js', 'file');
  drupal_add_js($js_path . 'underscore-min.js', 'file');
  drupal_add_js($js_path . 'backbone-min.js', 'file');
  drupal_add_js($module_path . '/swagger_ui/dist/swagger-ui.js', 'file');
  drupal_add_js($js_path . 'highlight.7.3.pack.js', 'file');
  drupal_add_js($js_path . 'jsoneditor.min.js', 'file');
  drupal_add_js($js_path . 'marked.js', 'file');
  drupal_add_js($js_path . 'swagger-oauth.js', 'file');
  $css_path = $module_path . '/swagger_ui/dist/css/';
  drupal_add_css($css_path . 'typography.css', array(
    'type' => 'file',
    'media' => 'screen',
    'weight' => 200,
    'group' => CSS_THEME,
  ));
  drupal_add_css($css_path . 'reset.css', array(
    'type' => 'file',
    'media' => 'screen',
    'weight' => 201,
    'group' => CSS_THEME,
  ));
  drupal_add_css($css_path . 'screen.css', array(
    'type' => 'file',
    'media' => 'screen',
    'weight' => 202,
    'group' => CSS_THEME,
  ));
  drupal_add_css($css_path . 'reset.css', array(
    'type' => 'file',
    'media' => 'print',
    'weight' => 203,
    'group' => CSS_THEME,
  ));
  drupal_add_css($css_path . 'print.css', array(
    'type' => 'file',
    'media' => 'print',
    'weight' => 204,
    'group' => CSS_THEME,
  ));
  $element = array();
  $settings = $display['settings'];
  $swagger_files = array();
  foreach ($items as $delta => $item) {
    $swagger_files[] = array(
      'url' => file_create_url($item['uri']),
    );
    $element[$delta]['#markup'] = theme('swagger_ui_formatter', array(
      'delta' => $delta,
    ));
  }
  $validator_url = FALSE;
  if ($settings['validator'] == 'none') {
    $validator_url = NULL;
  }
  elseif ($settings['validator'] == 'default') {
    $validator_url = FALSE;
  }
  else {
    $validator_url = $settings['validator_url'];
  }
  drupal_add_js($module_path . '/swagger_ui_formatter.js', 'file');
  drupal_add_js(array(
    'swagger_ui_formatter' => array(
      'swagger_files' => $swagger_files,
      'validator_url' => $validator_url,
      'doc_expansion' => $settings['doc_expansion'],
      'show_request_headers' => $settings['show_request_headers'],
    ),
  ), 'setting');
  return $element;
}