5 * Contains \Drupal\videojs\Plugin\Field\FieldFormatter\VideoJsPlayerListFormatter.
8 namespace Drupal\videojs\Plugin\Field\FieldFormatter;
10 use Drupal\Core\Field\FieldItemListInterface;
11 use Drupal\Core\Field\FieldDefinitionInterface;
13 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
14 use Drupal\Core\Session\AccountInterface;
16 use Symfony\Component\DependencyInjection\ContainerInterface;
17 use Drupal\Core\Form\FormStateInterface;
18 use Drupal\Core\Cache\Cache;
19 use Drupal\videojs\Plugin\Field\FieldFormatter\VideoJsPlayerFormatter;
22 * Plugin implementation of the 'videojs_player_list' formatter.
25 * id = "videojs_player_list",
26 * label = @Translation("Video.js Player"),
34 class VideoJsPlayerListFormatter extends VideoJsPlayerFormatter implements ContainerFactoryPluginInterface {
39 public function viewElements(FieldItemListInterface $items, $langcode) {
41 $files = $this->getEntitiesToView($items, $langcode);
43 // Early opt-out if the field is empty.
48 // Collect cache tags to be added for each item in the field.
49 $video_items = array();
50 foreach ($files as $delta => $file) {
51 $video_uri = $file->getFileUri();
52 $video_items[] = Url::fromUri(file_create_url($video_uri));
55 '#theme' => 'videojs',
56 '#items' => $video_items,
57 '#player_attributes' => $this->getSettings(),
59 'library' => array('videojs/videojs'),
68 public static function isApplicable(FieldDefinitionInterface $field_definition) {
69 return $field_definition->isList();