Drupal 8 Media Status

drupal-media.github.io/d8-status-update

Ok FIRST we have
to talk about
Drupal 7

What is in Drupal 7?

File fields


What is in Drupal 7?

Image fields


Drupal 7 limitations

File interactions limited to fields

Unused files deleted after 6 hours

Cannot reuse files

Cannot add fields to files

File Entity

drupal.org/project/file_entity

File listing page

File Entity

Adding files (and archives of files)

File Entity

Managing files independently

File Entity

File types

File Entity

Managing fields on files

File Entity

Managing file display

File Entity

Simple HTML5 field formatters for audio and video files

Download link formatter

File Lock

drupal.org/project/file_lock

This module allows you to "lock" files so they cannot be deleted.

Media

drupal.org/project/media

Media Browser widget for file and image fields

Media

Media Browser Upload

Media

Media Browser Views integration

Media

Media Browser Web

Media oEmbed

drupal.org/project/media_oembed

For remote resources (YouTube, Vimeo, etc)

Media CKEditor

drupal.org/project/media_ckeditor

Entity Embed

drupal.org/project/entity_embed

Scald

drupal.org/project/scald

Ok NOW we
can talk about
Drupal 8!

Whew

What is in Drupal 8?

CKEditor + Basic image upload

What is in Drupal 8?

Basic file listing page

What is in Drupal 8?

Basic file usage page

What is in Drupal 8?

Configurable file cleanup

Drupal 8 limitations

File interactions still limited to fields

Unused files deleted after 6 hours

Only basic WYSIWYG embedding support for images

Cannot reuse files

Cannot add fields to files

Only that?!

NYC Camp 2014

The plan is hatched

The Media Plan:

Embedding / WYSWIYG

Browsing and selection

Storage

Goals:

Independent, reusable, and pluggable

Collaborative architecture

Collaborative resources

Momentum

Communication

Entity Embed

Status: Usable - Estimate: 5-7 developer/weeks

drupal.org/project/entity_embed

Completed:

  • Backported to Drupal 7
  • Improved UX of display configuration

Remaining:

  • Integrate selection with Entity Browser
  • Usability polish
  • Abstract to extend Embed API

Embed API

Status: In Progress - Estimate: 5-7 developer/weeks

drupal.org/project/embed

Abstraction of reusable embedding concepts from Entity Embed.

URL Embed

Status: In Progress / GSOC 2015 - Estimate: 3-5 developer/weeks

drupal.org/project/url_embed

Allows embedding of URLs using the WYSIWYG or link fields.

Using the Embed library from github.com/oscarotero/Embed
supports much more than just oEmbed

Transform pasted embeddable URLs and embed codes in WYSIWYG to normalized HTML tag.

Shortcode Embed

Status: In Planning - Estimate: ? developer/weeks

Custom "macros" to convert shortcodes to rendered HTML.

My callout text

Entity Browser

Status: In Progress / Usable-ish - Estimate: 2-3 developer/months

drupal.org/project/entity_browser

Completed:

  • Architecture and API
  • Integration with Inline Entity Form
  • Views integration for selection (almost)

Remaining:

  • UI for browser config entities
  • Pager support in Views integration
  • Constraints integration
  • Multi-step selection
  • Current selection
  • ...

Inline entity form (IEF)

What?! But...

... isn't that Drupal Commerce stuff?!

Collaboration!

Reusable components!

Inline entity form (IEF)

Status: Usable - Estimate: 3-5 developer/weeks

drupal.org/project/inline_entity_form

Completed:

  • IEF form element
  • Field widget (simple & complex)
  • Entity browser integration

Remaining:

  • Code cleanup
  • Tests

File Entity

Status: In Planning / Usable-ish - Estimate: ? developer/weeks

drupal.org/project/file_entity

Extends core's file entity type with fieldability and add/edit/delete forms.

Need to regroup on module scope.

Unofficial port: github.com/md-systems/file_entity

Media Entity

Status: Usable - Estimate: 1-2 developer/months

drupal.org/project/media_entity

Completed:

  • Basic editorial UI
  • Metadata handling API
  • Lots of provider integrations already written: YouTube, Grab networks, AOL, Twitter, Instagram, local files
  • Media library

Remaining:

  • Integrate media library with Entity browser
  • More powerful configuration UI
  • More providers, leverage url_embed
  • Rendering

Crop API

Status: In Progress - Estimate: 3-4 developer/weeks

https://www.drupal.org/project/crop

Provides basic API for image cropping. This module won't do much by itself. Users should pick one of UI modules that utilize this API.

Completed:

  • Basic API and cropping entity definitions
  • Integrations with file and media entities

Remaining:

  • UI (left for integrating modules?)

Dropzone JS integration

Status: Usable/In progres - Estimate: 2-3 developer/weeks

https://www.drupal.org/project/dropzonejs

Nice multi uploader tool.

Completed:

  • Form element
  • Entity browser integration

Remaining:

  • Image/File field integration
  • Code cleanup
  • Tests

Dropzone JS integration

Fallback Formatter

Status: Usable - Estimate: 1-2 developer/weeks

drupal.org/project/fallback_formatter

Provides a field formatter that can attempt multiple formatters and the first one that returns output for each value wins.

Recycled Formatters

Status: In Planning - Estimate: ? developer/weeks

github.com/drupal-media/recycled_formatters
drupal.org/project/file_image_formatters

Allow formatters to be shared between image, file, and entity_reference fields.

File Download

Status: In Planning - Estimate: ? developer/weeks

URL for direct downloads of file entities, logging downloads, etc.

Media

Status: In Planning - Estimate: ? developer/weeks

drupal.org/project/media

Becomes a "glue" module that brings all the components together.

Based on File Entity + Entity Browser config + Entity Embed button

Media Pinkeye*

Status: Usable - Estimate: 2-3 developer/weeks

drupal.org/project/media_pinkeye

First module bringing everything together to work out of the box

Based on Media Entity + Entity Browser config

We want to create provide more glue modules like this

* not a disease

Where are we?

Clean modular architecture

Built momentum to some extent

Collaboration

Communication

Momentum

Funding

We need help!

SUM(Estimations):
20-24* developer/month

* don't hold me on that :)

Contribute!

Aaron Winborn (aaron) Jonathan (jonhattan) Dave Reid Marc Ingram (marcingy) Katherine Senzee (ksenzee) Hai-Nam Nguyen (jcisio) Sascha Grossenbacher (Berdir) Brant Wynn (brantwynn) Florian Weber (webflo) Primoz Hmeljak (Primsi) Devin Carlson Brandon Neil (bneil) Janez Urevc (slashrsm) Kevin Moll (kmoll) Paris Liakos (ParisLiakos) Samuel Mortenson (samuel.mortenson) Chandan Singh (cs_shadow) Prateek Mehta (prateekMehta) Fabian Franz (Fabianx) Alexandre Mallet (woprrr) Your Face Here

Resources

Drupal 8 Media Guide

drupal-media.gitbooks.io/drupal8-guide

Upcoming events/sprints

drupalmedia.org/events

September 19-27: DrupalCon Barcelona

October 22-25: BADCamp, University of California, Berkeley

Aaron Winborn

June 10, 1967 - March 24, 2015

Community Spotlight: drupal.org/node/2444367

drupal.org/aaron-winborn-award

Thank you! Questions?

drupal-media.github.io/d8-status-update