Janez UNYC Camp organizers did an awesome job and secured enough funds to bring many of most active contributors to New York for a week. We focused on many different parts of our ecosystem. Most notable improvements are explained further in the post.
When writing this kind of updates I tend to give direct credits to people that contributed significant features/improvements. I think it is a nice thing to do. I believe people deserve at least that. Is that ok?
@Primsi worked hard (with most of the initial work at NYC Camp sprints) to bring DropzoneJS support to D8. Dropzone JS module provides very basic form element that can be used to bring very nice uploading experience to any form. Further he implemented Entity browser widget. Next planned step is implementation of field widget for core file and image fields.
Entity browser seen a lot of smaller and bigger fixed in last few months. We created few new widget plugins. @primsi created Dropzone JS widget, which allows you to nicely upload file and media entities. @slashrsm worked on Inline entity form widget, which can create entities on the go. We also fixed a lot of bugs.
[ add a screenshot or two? ]
Samuel Mortenston invested a lot of work in Views widget During NYC Camp sprints. He significantly improved it, focusing mostly on exposed filters support, which is now much more robust and reliable. There is still some work to do on this very important widget, but has reached the state where it is already very useful and ready for testing.
Are we joking? No! Long-time Drupal users will recognize IEF from Drupal commerce world so what it has to do with us? As it turns out it can be very useful to build editorial workflows in many different fields, including media. IEF is very flexible and extensible, which makes it a great tool for wide variety of problems.
In the last few months we worked with IEF maintainers (mostly @bojanz and @webflo) to push D8 port of IEF to a feature-parity with its D7 version. It recently achieved a state where it is capable of solving many needs in media field such as creating, editing and selecting media assets inline in the place where they are actually needed.
@slashrsm integrated IEF with Entity browser. We're able to use IEF as an Entity browser widget which allows us to create entities of any type inside EB. We also connected IEF and EB the other way around. We can use EB as a drop-in replacement for auto-complete field in IEF's "Reference existing entity" functionality.
Synergy levels that we achieved in cooperation between IEF and Media ecosystems shows how powerful the approach that we took for D8 is. In D7 times both Drupal commerce and Media needed to solve very similar problems and still we didn't cooperate at all. Nowdays, in the world of small components with limited focus we're able to reuse a lot of each others code, which not only makes us more efficient, but also creates deeper connections between different parts of our great community.
Janez UEntity browser is a contrib module for Drupal 8 that tries to provide powerful and flexible framework for searching and selecting of entities. There are many possible use cases that entity browser wants to solve:
select an image to be embedded in WYSIWYG editor,
select few related content items and "attach" them to another content,
upload few images, then select few more from library of existing media and use all of them in a media slideshow,
search YouTube for videos and attach them to a piece of content,
Basic implementation of entity browser is already in place, but we need to invest a lot of work to make it fully functional. As a GSoC student you'll work with other contributor to improve various pieces of the module. This will make the project very interesting and diverse (you will get to work with PHP, JS and even some UX design).
You will, depending on your interests and experience, set the goals together with your mentors. You can expect to:
help improving look and feel of entity reference field widget for Entity browser,
write integration with entity_embed,
improve appearance of entity browser in iFrame and modal display modes,
implement tabs for selection between widgets in entity browser,
implement configuration UI,
integrate entity browser with one or more of the full-featured media solutions,
write test coverage,
We are open for your suggestions too. If you see anything that could be added and/or improved in entity browser please let us know. We want to make the project interesting to you and we need your feedback in order to achieve that.
Interface; A two-step form, first where you provide input or select something, and the second part where you configure how to display the item. Manages commonality of mapping data attributes to form elements, and serializing the elements back to the plugin.
Drupal\EntityEmbed\EmbedForm\EntityEmbedForm: The simple "type the ID of the entity to embed" form
Drupal\EntityBrowser\EmbedForm\EntityBrowserEmbedForm extends EntityEmbedForm: Enhances the simple embed form with the browser UI on the first step
Plugin type and interface; A specific way to display an embedded item. Can provide optional configuration which is saved to data attributes on the embedded element. Each display defines which embed type it works for (generally can not be re-used across multiple types), and can also check an isApplicable() method after an item has been selected.
Embed form + options?
Should users be able to pick from a list of possible EmbedForm classes to use for the button? I'm guessing probably not out of the box since the embed form classes are not really "discoverable" in the current architecture.
I also wonder if the embed forms would have options. For example with the EntityBrowserEmbedForm the user should be able to pick from a list of pre-configured entity browser for that entity type.