 Okay, since we've got a pretty full room, I think we can start maybe a minute or two early, just because it is a shorter session. So hello, welcome to my session. Very excited to be here to talk with you. Today we're going to be taking a guided tour through the best of Drupal 8 in 2018. This session is based off of a long running blog series I have over at mediacurrent.com. My goal today is to share with you modules that our team uses every single day on a multitude of projects. So first, a quick plug for the contribution sprints on Friday and we'll have some of our folks attending. Let's take a look at today's agenda. After a short intro, we'll set the table by asking the question, how many modules do I actually need on a given project? Then we'll take a look at the essentials list for 2018. I'll go through each module briefly to give you a feel for what it does and how you would go about installing or configuring it. After that, we'll go through a list of honorable mentions. These are modules that are not necessarily essential on every project, but still worthy of consideration. And then we'll wrap up with Q&A. Won't have a ton of time, but we'll have a little bit of time for some questions. First, a little bit about mediacurrent. I'm very proud to be representing mediacurrent today. And who is mediacurrent? We are a full service digital agency focused on open source development, design and strategy for enterprise organizations. Now, a little bit about me. I've been working with Drupal for a long time. As far back as Drupal 4.6. And I've enjoyed putting together a top modules list for many years. So I figured it was finally time to present one in person. Now, before we get started, I would like to answer the critical question for people who are maybe new to Drupal. And you might be asking the question, how many modules do I actually need? So newcomers to Drupal often want to download and install a bunch of modules. And I'll definitely encourage you to play around with new modules. That being said, you need to understand that every module you add is like a plant you need to water or a new puppy you need to keep from messing on the carpet. The utility of the module needs to exceed the effort to maintain that module. Otherwise you're just going to create a maintenance problem for yourself. Okay, onto the list. First we're going to go through what I might characterize as the essentials list. These are modules that we use on most projects. One thing I should note in today's presentation is that I'm assuming most of you have used Drupal, you know how to do some basic site building tasks like adding a field to a content type or configuring a module in the admin. And here it is, here's the list. Now, I should mention, there's thousands, thousands of modules out there. They can be hard to sort through. And that being said, there are some projects that rise above the others. This list, certainly like any list, it's subjective, but it is based on real project usage and over 10 years of Drupal experience. All right, so let's go through this list one by one. Another thing I should mention, we're not going to be able to spend a lot of time on each module. My goal here today is to give you just enough information to understand what the module does and why you might like to use it. If you do have questions, I would ask that you might save them for the end. My initial session description said we were going to have a leisurely stroll through these modules, but it's going to be a little bit less like a Vienna tour and a little bit more like a roller coaster. A little bit more fast paced. Okay, so let's get after it. Number one, admin toolbar. Now this is an easy one. This module you might already think is in core, but it isn't. We use it on pretty much every project because navigating through menus in Drupal is a real pain without rollover menus. Component libraries. Now this is going to make your life easier if you do any custom theming. It's definitely more of an intermediate level module, but it's one that we use a lot and so I made the essentials list for that reason. Develop. Now this is a very handy module. It also might be more of an intermediate module, but it can definitely help you debug problems in your twig templates as an example. Another feature that's pretty handy even for beginners is the ability to generate dummy content. So there's a little UI for that and it's really helpful to generate dummy content for testing. Now this is a fun one, media entity browser. So this looks similar to this kind of stuff that Drew was showing this morning. There's a lot of work with Drupal core right now moving more of the media stuff into core so you have a better out of this box experience. For now, a lot of this is handled and contrib. So media entity browser, great module. It gives you the ability to have this nice little library pop up where you can upload, browse, search for different types of media on your site. Now there are a couple steps to configure this module. So when you add a field, you're gonna want to add a entity reference field and when you configure it, you'll want to select which bundles you want to use. And then what actually makes the library pop up thing to show up is on the form display tab for your content type, you're going to need to configure it to render the entity browser for matter and it's got a bunch of different options there. So that's how that's how it works. Now, if that's confusing to you, I would suggest maybe you want to take a look at the lightning or thunder and saw profiles. They will have this pre-configured for you and so we'll talk more about lightning later on. Field group. This is a nice little module. My audio is really loud, does it sound okay? Okay, just making sure. Now this module simply lets you group your fields together in a more organized way. So you can create these groups on the manage form display tab that we just talked about and you've got several options for organizing fields. You can do like accordions, tabs, things like that. And so that's going to make life easier on your content administrators. Okay, Google Analytics. This module is easy to install. You pretty much just need to have your UA ID and then you're good. So as soon as you plug that in, the basic tracking is going to work. Now there, of course, there are some advanced options but most people start with that basic tracking. Link it. So this handy little guy, it gives you an autocomplete popup inside of WYSIWYG. So it's much easier to add links this way rather than having to hunt around for the internal path yourself. You're able to just type in the title of the content, add the link that way. Meta tag. So my coworker, Damian McKenna, and current hotel roommate has worked on Meta tag for many years along with many others in the community. This module lets you configure all of your Meta tags for SEO purposes. So all you do is add the Meta tag field to any content type where you want to collect Meta information. And so usually you're going to add this to all of your content types. Panels. So Panels has been around for many years. This is a great tool for, it's a great side building tool for creating custom layouts with a drag and drop interface. So prior to Drupal 8, we used this a bunch at Media Current. In DA, we still use it some but maybe not as much. And you'll notice there is a big effort to pour a lot of the different panels features into core. Most recently we've got the new layout building tool. You saw Dree's demoed some of that this morning. So it is definitely a tool that you want to get familiar with as there is an effort to do more and more of that inside of core. Like I said, we use this at Media Current. We also tend to like the paragraphs approach. And so we'll talk about that next. Paragraphs. Okay. This is maybe my favorite module, paragraphs. It creates a new entity type. So you can think of it like a mini content type. And there are many use cases. The one that's kind of gained steam across the community is replacing the ubiquitous body field with a supercharged paragraphs field. So instead of making the body field like the center piece of your page, you have this supercharged paragraph field that gives you all kinds of structured content. So editors love it because they can build these robust pages. Developers love having structured content. So we have a bunch of paragraph types we might reuse on multiple projects. So let's say you want to drop in a testimonial or a quote. And we'll have a paragraph type that captures the quote in the author. Then you might want to drop in FAQ. The possibilities are really endless. Any sort of paragraph types you can think of, you can create, mix and match, reorder them on the page. What I like about it in comparison to panels is that you're not having to train your content admins on a different interface. So they can still do all of their work basically on that same content editing screen. And so we like that. Path Auto. So this is a module you're going to want to have. It lets you set up your clean alias patterns for all of your content. If you want all of your blogs to have the path slash blog slash title with hyphens in it instead of spaces, this is the module that's going to let you configure that. The redirect module is another module we use pretty much on every project. If you have 301 redirects, you're going to want to use this module. One of the handy little features is that it automatically creates a 301 redirect if you change your path alias. And this is good so that you don't accidentally 404 your own site visitors. And there's other handy configurations in here. There's a bunch of different options. Search API. Now this is another one of my favorite modules, Search API. Most people come to realize pretty quickly that the Drupal core search is terrible. And so the Search API module, it's more powerful, it's more flexible. You can use a database index initially and you can swap it out for a solar-based index and you don't break your site because Search API abstracts things out really well. I like the Search API pages module. It makes it simple to create your site search page. And there's other ways of doing that, I like that module. Overall, there is a bit of a learning curve, but it's pretty manageable and I think it's worth the effort just because the core search isn't very good. No offense if you worked on that. Okay, who likes managing sitemap.xml? Probably nobody. But you need sitemap.xml for Google to know how to index your site. So this module is great because you can pretty much enable it and forget it. You have some pretty straightforward configuration if you need extra controls. Stage File Proxy. This is a nice little developer module. So one of the annoying things with working on a site is that all of your images are broken when you test the site locally unless you keep copying your files over. So Stage File Proxy allows you to just grab the images that you need, kind of as you need them when you load the page. It's very simple to configure and very handy. Highly recommend. Okay. Finally, on the Essentials list, let's not forget the Web Form module. This module is awesome because it makes it easy to make any and all kinds of forms on your website. You have plenty of widgets and configuration at your disposal. This is a must-have module if you plan on managing your forms in Drupal. Okay, let's move on to another list. This one might be more fun just because it's less likely that you've heard of every single one of these modules. These didn't make the Essentials list, but there's still some goodies in here. And here's the list. One note. I included the Lightning Install Profile project, which is, of course, not a module. It is a collection of modules, and it includes many of the ones that we did talk about today. And we'll talk about that one in a few minutes. Okay. Number one, CK Editor Media Embed. As you're probably aware, a lot of content out there on the Web includes social media call-outs, things like Twitter Quote, YouTube Embedded Video, and this module simply makes it easier to include that content in your WYSIWYG. Okay, let's talk about Lightbox. So lots of sites use the Lightbox plugin for media content. ColorBox is a popular library, and of course there's a Drupal module of the same name. It's easy for beginners to configure and install. And so, yeah, you will have to download a library to your library's folder, but otherwise it's pretty easy to set up. All right, what about e-commerce? You've probably seen some different commerce agencies. They got their own little section in the sponsor area. So what about e-commerce? If you've done any e-commerce, you've probably heard about the commerce suite of modules for Drupal. This allows you to add products to your site and checkouts and payment options and all that. There is a lot of configuration, but it's actually not too bad to learn. Okay, onto Dropzone.js. I like this module for drag-and-drop file uploads. Pretty much everywhere you go on the Web, you need to add a file. You have a drag-and-drop upload option, so why not have that on your Drupal site? And I should mention there's an extra installation step, just like ColorBox, where you need to download the Dropzone library into your libraries folder. Okay, let's talk about entity embed. This module lets you embed any Drupal entity pretty much anywhere, and there's a million things you can do with it. Perhaps the most common use case, though, is that you can use it to embed media inside of WYSIWYG. If you remember a minute ago, we talked about the media entity browser module. This module pairs nicely with that because you're able to launch that same kind of library pop-up inside of your WYSIWYG, the same one that you're using on a field you can use inside of WYSIWYG. One caveat is it is more of a pain to configure. Okay, now onto a simpler module, the external links module. Pretty much every project I work on, at some point the client asks, can we make external links open up in a new Windows tab? And so the answer is yes, you can. All you need to do is enable this module, click a checkbox, and all your external links will open up in a new window. All right, focal point. So the problem we're trying to solve here is supporting different kinds of crops from the same source image, right? This solution in particular is one that I like just because it's maybe the easiest on the developer and the editor. This module tries to crop around the focus of the image that you're able to set with a little pointer. And so it'll crop from that focus instead of just arbitrarily cropping from the center, which doesn't always look good, especially on portrait images. The geolocation module. Now there's a lot of configuration options for this, but I like that it makes it pretty simple to capture a point on a map and render that map in a field. Lots of nice options to configure it, but very easy to set up. Do you ever get spam? Well, there's lots of options for anti-spam measures. One of them is certainly using captures. What I like about Honeypot is that it doesn't burden the user to have to fill out this extra step. And it is pretty effective. So something to check out. All right, the lightning install profile. Now, I should mention that install profiles and distributions are good to play around with. You can learn more about Drupal that way. And Dries more or less alluded to that sort of thing with the out-of-the-box initiative. It's a good way to learn. What I like about Lightning is that it's more of a general purpose distribution. They focus a lot on the editing experience and media management stuff. Like I said, it's a good teaching tool because you're able to see some of these modules and media stuff. You're able to see it already configured. And then you can examine the configuration and learn exactly how it works, which is going to make it easier if you need to do your own implementation. Now for another pretty simple but effective module. The Scheduler module lets you schedule the publishing and unpublishing of your content. Note that you are going to need to use Cron for this to work, so you'll need to make sure that Cron is working and configured correctly. The Slick module is slick. This module has a lot of related projects, but it lets you set up slideshows and carousels. One big caveat is that you're going to need to download a library or two to get this working. But once you figure that out, there's a lot of good integrations. It gives you different field formatters. It integrates with media, with views, with paragraphs. It's really nice. Taxonomy access fix. Now this project might get merged into Core at some point. It addresses the fact that Core doesn't have enough granular permissions for taxonomy. So we had a client once delete a whole vocabulary, and that wasn't fun. So this module helps prevent that by giving them the right amount of permissions so you don't give them too many. These reference, last but not least, on this list. This might be my new favorite module. And it's nice. You can select a block view from a field and it renders it out on the page. So, you know, I talked about paragraphs. We have a paragraph type that pretty much just has a views reference field. And so, yeah, you can embed a view wherever you want. It's good if you have a client maybe wants a little bit of site building permissions and you don't want to give them too much, but that gives them a lot of control to be able to set up a view and render it in a page and reorder it on the page if it's in paragraphs. So definitely worth checking out. Okay. And if you all look under your seats, I've got a prize for you. Actually, no, I don't. Sorry. I've got a link. So if you're interested in trying some of these modules out and you know a little bit about Composer, I've created just a simple project on GitHub. It has all the modules I mentioned today and it just will download them for you. The extra benefit here is that it includes those extra libraries that I mentioned. It'll download those for you. It doesn't install anything. All it does is download all the modules instead of you hunting around for them yourself and then you just install Drupal the normal way and that gives you an opportunity to just play around with it. It doesn't include lightning, which itself is a distribution. So I'd also recommend you download that and play around with that. Okay. And that's it. And we made it before the time limit. So good. We got a few minutes for questions. Thank you very much. Oh, stop. Stop. Okay. Yeah. So we've got a little bit of time for questions. Questions like, why didn't you include this or that module? And I'll say, I don't know. I'm just in. Okay. We've got a hand up. I think there's a mic over here or you can shout it out and I'll try to repeat it either way. Paragraphs and translation. Okay. So the question is, how have you been able to handle paragraphs and translations? And we actually use paragraphs on a big translation site. Visit the USA.com. It's got 15 different geos, lots of translation going on. Now the limitation with paragraphs is that you can't translate the paragraph entity itself, but you can translate the fields on the paragraph. So occasionally you'll run into some issues with paragraphs, but since the fields themselves are translatable, it's still doable. Like I said, there are some gotchas in there. I don't have time to walk through that today. I actually presented on translation last year. So watch that presentation. We talk about it a little bit. Any other questions? If there's no other questions, I will be up here for a few minutes while the next speaker is probably setting up. So if you want to ask me something in person, go ahead. Thanks for coming, everybody. Appreciate it. I hate the whole people there. They're like ready to get out of there, you know? Like I want to go to the next thing. It works if I think it's, you know, the only treatment.