You are here

public function BackgroundMedia::getFields in Bootstrap Styles 1.0.x

File

src/Plugin/BootstrapStyles/Style/BackgroundMedia.php, line 187

Class

BackgroundMedia
Class BackgroundMedia.

Namespace

Drupal\bootstrap_styles\Plugin\BootstrapStyles\Style

Code

public function getFields(array &$element, FormStateInterface $form_state) {
  $triggering_element = $form_state
    ->getTriggeringElement();
  $bundle = $triggering_element['#value'];
  $wrapper_id = $triggering_element["#ajax"]["wrapper"];
  $rendered_field = '';
  $field_map = \Drupal::service('entity_field.manager')
    ->getFieldMap();
  $media_field_map = $field_map['media'];
  foreach ($media_field_map as $field_name => $field_info) {
    if (in_array($bundle, $field_info['bundles']) && in_array($field_info['type'], [
      'image',
      'file',
    ]) && $field_name !== 'thumbnail') {
      $rendered_field .= '<option value="' . $field_name . '">' . $field_name . '</option>';
    }
  }
  $response = new AjaxResponse();
  $response
    ->addCommand(new HtmlCommand('#' . $wrapper_id, $rendered_field));
  return $response;
}