 guess microphone works. So thank you for coming today. Thank you for attending our session here at Dribblegon. We are going to cover the state of the union for the panel's ecosystem and a lot of the things it encompasses and we are your panelists for the day. There may be one or two other puns. No animals were harmed in the creation. So my name is Damien McKenna. I'm a lead Dribble architect with Media Current and you can find me on the interwebs and Dribble.org and everywhere as Damien McKenna. Media Current is a development shop out of Atlanta. We build some pretty cool things and for the last several years we've been heavily involved in the panel's system and contributing and improving it. I'm also honored to introduce our other panelists today. We have Caroline Boyden, a web developer from UC Berkeley. We have David Snowpeck, a Dribble consultant with MVPCreator.com and Jacob Perry, Drupalist with the Drupal Association and Tim Plunkett, a senior engineer with Acquia and we're going to present different pieces today and at the end you'll get to answer or ask questions. We ask you to please hold the questions to the end so we can get through our notes first. So our agenda today is fairly simple. We're going to cover the past of the panel's ecosystem, the present and where we're looking to take it in the future. So before we get into that I just want to give a brief explanation as to what panels is. So panels is power. It's editorial flexibility for a site. It provides a lot of flexibility and functionality, most of which is through a fairly straightforward drag-and-drop interface. It's also a flexibility. There is tremendous amount of flexibility provided by it through standalone pages, entity integration, custom layouts, revisions, internationalization, in-line editing, on and on and on. It's also a system called context, not to be confused with the context module, but it's an ability for a piece on a page to have some consideration for where it is. It's also extensibility. It has a fairly solid API and with both normal hooks, but it's all its own plug-in system. And it's also speed, along with its plug-in system that only loads things when it's needed. It has a huge amount of flexibility for controlling the caching of pages and how they work. And it's also site control. Pretty much everything is exportable using a standard C-Tools exportable system, but also with features that is obviously heavily used on 777. And it's safe. There is a tremendous amount of permissions available for different things that you can do with panels. And that allows you to narrowly control what different people within an organization that manages site can do. So you can remove things that somebody hasn't had training to use yet. And as they gain more experience and get more training, you can give them more and more control over the system. And it's also at this point relatively we feel very stable for use on a site. And we think it's kind of awesome. So in summary, it's power, flexibility, context, extensibility, speed, site control, and safe. So awesome. So at that note, let me pass it over to Jacob. Hello. So I'm Jacob. I'm one of the co-maintainers for panels and C-Tools. And so a little brief history because people ask, oh, does panels do this, panels do that? And I hear a lot about the past. So how many people here were Drupal 4.7? Anyone use panels 4.7? Wow! Panels in 4.7. What? I know you. Yeah, 4.7. Let's do block layouts. 2006. It was just a little paddle on. And yeah, it was awesome. Pretty simple. Good little MVP. Didn't do a whole lot yet, but it was neat. So panels 2 then came out. Sam Boyer joined. So, you know, that's a whole bunch of coolness. How many people used panels 2 in Drupal 5? Oh, good, good, good. Yeah, a little more flexibility, needed views. You know, that's sort of what started the whole caching and context debate. Do I use context? Do I use panels? And, you know, it was still in its infancy. How many people used panels 2 in Drupal 6? Ah, even more, even more. Cool, cool, cool. Okay, so we're getting there. We're getting there. So Drupal 6 had panels 3. And I presume almost everyone here is using panels 3, right? How many people have gotten panels 3? Okay, let me reverse that. How many people aren't using panels? Okay, nice, nice, okay. So yeah, now we're using Ctools, which is a collection of APIs that I call Core Plus. It has a whole bunch of awesome new features. In Drupal 6, it was a little bit slow, but Cache was starting to get there. A lot of the things that we hadn't done yet in Drupal 7 were getting started. We had the IPE editor and that context versus panels thing kept, you know, persevering. But we had more flexibility and we even had, you know, we have quite a few people using it. We still have a lot of people using it to this day. Those bumps, you can ignore those. Yeah, so Drupal 6 panels was awesome. And that sort of led us to Drupal 7, which we will talk about here in a moment. But I wanted to really quick how many people are using Drupal 6 still? Okay, so this next slide is fun for you. So its status is frozen. Let it go. So there will be one final release. After that final release, there's security fixes only and we're going to follow the Drupal 6 core support window. So when Drupal 8 comes out, we have three months after that. And then when core security releases stop, so will the panels and C tools releases. So that's where we're going there with that. And otherwise, no further development in Drupal 6. All this stuff will be in Drupal 7. You'll see there's an asterisk. Keep the dream alive if you want to become a D6 branch maintainer. Low commitment because this time next year you'll be out of a job as the branch maintainer. So yes, these are actually the remaining issues for Drupal 6. There's what, 1, 2, 3, 4, 5, 6, 7, 8. My hope is that possibly for those Drupal 6 people come to the sprints on Friday. That's sort of a recurring theme that I'll start right now. Let's get those RTBC issues and roll the Drupal 6 version. And I really, really love a Drupal 6 person to come because I totally forgot what Drupal 6 is about. That said, let's go to the present. Hi everyone. If you don't remember from the introductions in the beginning, I'm David Snopak, DSNopak on Drupal.org. I'm one of the co-maintainers of Panopoly. The other two co-maintainers are Matt Chaney at Pantheon and Tom Kirkpatrick at System Seed. Just want to give a quick shout out to Pantheon. Back in December, my first child was born. And I was talking to Matt Chaney and told him, hey man, I'm not going to be able to contribute to Panopoly like I did in the past. And he was able to get Pantheon to step up and start sponsoring my work on Panopoly so I can continue contributing to it. So I'm very grateful to them. So earlier, Damon was talking about all the power and flexibility that comes with panels. But this is actually kind of one of panel's weaknesses, right? It can almost do too many awesome things. When you install panels and open up the page manager, you're essentially facing a blank canvas with infinite options. A new user might ask, what are some things that I can do with panels? What can't you do with panels, right? Even an advanced user's been using panels for many years might not know the full breadth of things that you can do with it. Personally, I kind of hated panels until I found Panopoly. There's all these new concepts, new terms, new tools. There's kind of a steep learning curve. And all I wanted to do was put a block and a layout. And I thought, what do I need all this stuff for? But it was actually a Panopoly that led me to fall in love with panels and start digging into how is it doing that? How can I change it? How can I extend it? How can I take that and use it somewhere else? And eventually led me to become as involved in the panel's ecosystem as I am now. So I'm really excited that there were a couple of people here who said that they don't use panels. So when we're looking at Panopoly, I hope that it can help encourage you to see some of the things that panels can do. So yeah, by looking at Panopoly, I'm hoping that you can find some inspiration for some things that panels can do that maybe you didn't know about next time you're in front of that blank canvas. So Panopoly is many things, but one thing it absolutely is not, it is not a module. It's not something that you put in your site's all modules folder and enable. But what you can do is install it as a distribution. Who here is familiar with the idea of a Drupal distribution? Awesome, quite a few people. So a Drupal distribution is Drupal core, plus some contrib modules, themes, some default configuration that you install just like Drupal core. Except out of the box it has some additional functionality. So for example, there's the restaurant distribution for creating restaurant websites. You install it just like Drupal core, but out of the box it has an online menu, an online reservation system, a map, all the stuff that you expect in a restaurant website. Or you can install Panopoly's individual feature modules on a vanilla Drupal site. So Panopoly is made up of a dozen or so features modules for each of the components of Panopoly. So we have a Panopoly admin module which has the admin improvements, we have a Panopoly WYSIWYG module which has the WYSIWYG configuration. So you can take just Panopoly WYSIWYG and install it on your vanilla Drupal site if you want to steal our WYSIWYG configuration. Or you can use it as a base distribution for creating your own custom distributions. So similar to how you have base themes that you can use to create your own custom theme, you can use Panopoly as a base distribution to create your own distribution. And some examples are open atrium, open academy and many others. So what does Panopoly do beyond vanilla Drupal core? Well it tries to improve the user experience of Drupal. And one of the ways it does that is by including WYSIWYG, previews, live previews in as many places as possible. So seeing the thing you're editing as you're editing it. Allowing you to edit content in place. So editing content on the page that you're viewing it rather than going to some separate edit form. And various improvements to the Drupal admin interface. So a walkthrough Panopoly is a walkthrough the panels ecosystem. There's definitely a lot more to Panopoly than just panels. But all the really coolest of the cool stuff is from panels. And Panopoly really ties the panels ecosystem together in a cohesive way. You know, on any given project you might not use all of the modules in the panels ecosystem because you only use what you need, right? But seeing all of them together configured in a coherent way allows you to see sort of the intended vision of Drupal through panels. So let's take a look at some stuff. The first thing we're going to look at is changing the layout of a page in place. And this is using the panels module and the panels IPE module that is part of the panels module it's included. So this is the default Panopoly homepage down at the bottom. Is that even visible? Here let me see if I can up the quality. I'm on YouTube. Let's try doing the non-YouTube. That's a bit better. All right. So this is the default Panopoly homepage. Down at the bottom you'll see these two buttons. One is change layout. Click that button and you get a menu of possible layouts to choose from. Currently selected is this sidebar on the right. We're going to switch to a sidebar on the left. This screen is just about sort of mapping the regions from one layout to the next. Here we don't have to do anything. Click save and this page now has a sidebar on the left. It's already live. So we've changed the layout of the page on the page itself. Next we're going to place new content in a region on a page in place. Again using panels in the panels IPE. So again here's the default Panopoly front page. This time we're going to click this customize this page button down at the bottom. And you'll see the different regions on the page. We'll click this plus button in the sidebar region. It shows us a menu of possible things we can add. We're going to click add video. And then here we can just paste a YouTube link. It's using the media module. You'll see that a preview appears on the right as soon as we're filling in the values on the left. Click save. And then click save down at the bottom. And this page is already live with our awesome kitten video on the right sidebar. And we can also, I think I may be accidentally skipped part of the video, if we click customize this page again we can also drag and drop the different pieces of content around on the page. So we're going to take our kitten video, put it in the main content region and click save. And now we have bigger kittens. This is a much more advanced example. We're going to use the page manager to layout the content ad edit form. So in vanilla Drupal the content creation or edit form is just one big long column with each of the fields to edit in it. Using page manager you can apply a layout to that form, you know a two column, three column, whatever you want and rearrange the different fields. So that is what we're going to do. First we're just going to go look at the ad content form for this testing content type that I created for this demo. You'll see that the default Panopoli content ad edit page puts it into a two column layout similar to Drupal 8 and it puts the submit buttons in the right sidebar. We are going to move those from the right sidebar to the main content area. So we're going to go to structure pages. We're going to find the node edit page. Here you can see some variants. These are provided by Panopoli. This bottom one is kind of like the default fallback. We're going to clone it. Going to add a selection rule that says we're only going to load this new variant when editing our testing content type. We have to rearrange the variants because we need to have the more specific ones come above the general fallback. Then we're going to do the content tab and we're going to click and drag this pane that represents the submit buttons from the right sidebar to the main content area on the left. Click save and update or update and save. Then we go back to our content ad page for our testing content type and you can see the submit buttons are now on the left. So this is a simple example of a very advanced concept because you can rearrange this form using anything that page manager allows you to do. You could have a different layout of a particular content types ad edit page depending on your role. You could have a different structure for it depending on a particular value on the node that you're editing. So it's super powerful. Next we're going to look at creating new widgets using the fieldable panel panes module. When you click this customize this page button and click one of these plus buttons you get this menu of possible options. In Panopoli we call these widgets. Some of these come from custom code. Some of them come from views. Some of them come from fieldable panel panes which is what we're going to show here. So you can create new widgets similar to that ad video widget we saw earlier for the users of your site using fieldable panel panes. Creating a new fieldable panel pane is super similar to creating a new content type in Drupal which you're probably familiar with. You go to structure, fieldable panel panes, click add. We'll give it a name, my special widget. And then now you'll see the manage fields tab that you're probably familiar with creating content types and adding fields. We're going to add an image field and this is the normal field settings form we'll just save the defaults. And if we go back to the home page, click customize this page, click the plus button on the regions, you'll see there is now this extra category and our my special widget is an option and we can create one. You'll see our image field that we added earlier. So this is a super powerful tool because it allows you to extend this menu of options that your users have to create using only the admin UIs just by pointing and clicking and configuring things in Drupal. Next we're going to look at the panelizer module. One of the things that allows you to do is add extra ad hoc content to a node. So if you want just one node on your entire site to have a different layout and some different piece of content on it, you can do that with the panelizer module. Oops, we're not using YouTube. So first we'll create a new node, give it a name or a title, put some text in the body, click publish, and then we'll use the change layout button on the bottom to switch the layout from sidebar on the left to sidebar on the right, click save. Now only this node on the site has this layout. We'll click customize this page and add a new image to the sidebar. So in general, Drupal is really great at letting you create new content types and decide like this content type should look like this, but Drupal core at least is less good at making like one off nodes that look unique, but the panelizer module can allow you to do that. The panelizer module can also let you change the display of a content types view mode. So if you wanted to apply a layout and rearrange the content on a content types teaser, you can do that. So this is a view that shows the teasers of our testing content type, and currently it's pretty boring just you know the title, the image, the body, the links all just in one column, and we're going to switch that to appear in two columns. So to do that, we go to structure content types. There's our testing content type on the bottom. We'll click this panelizer link over on the right. We'll select the teaser, go to the layout tab. We'll switch from this one column layout to this sidebar on the right layout, and then here we're clicking and dragging the field that or the pane that represents the image field from the main content area to the sidebar. So we go back to our view, you can see that now the image field is over on the right. So any time a teaser is used on your site for this content type, it will have this layout. So far, we've been looking at just rearranging the fields from a node on the page, but you can actually edit the content of a field while using the panel's in place editor, using the FAPE module. So this is just a normal piece of content. We're going to click customize this page, and we click the settings button on this image field. We can actually change the content of the image field from this vegetables image to our kitten image. We'll click save. We'll scroll down to the body field. We'll click the little settings icon there, and we can change the text content of the body field right here in the in place editor without having to go to the edit form. Click save, and there we go. Now the piece of content has different values for the image field and the body field. The FAPE module isn't technically a part of the panel's ecosystem. It doesn't use panels, but sort of an honorary member of the panel's ecosystem. It's very similar to the FAPE module we just looked at before, but allows you to edit the content of individual fields on tabs. So you can create a edit body tab for your content type, and then users can edit the value of the field that way. But because it is not directly panels related, we're going to skip this video. The last one we're going to talk about is the panels everywhere module. So far, we've just been using panels to take control of the content area on the page. So your theme is still responsible for rendering the header, the breadcrumbs, the footer, all that stuff, and panels has just been messing with that content area. But using panels everywhere, you can actually have panels take over the entire page and render things like your site header, your breadcrumbs, your footer, and all of that. So first of all, I'd like to apologize for how ugly the site in this demo looks. On a real site, you'd create a child theme and theme it so that it actually looks nice. But just bear with me for the purpose of this demo. So up here, this is the site header. And what we're going to do is we're going to use panels everywhere and the page manager to move the site header from the top of the page over into the right sidebar. This is something you would never do on a real site, right? Like, why would you want the side header in the sidebar? But it demonstrates the power that panels everywhere gives you. You can drastically change the way your site looks using any of the selection rules that you normally have in page manager. So you could say, you know, users of this role, we're going to completely change the layout to look like this or anything that you can do in page manager you can use to affect the layout of your site. And since this is such an advanced demo, I didn't feel the need to talk through each of the pieces, but we're able to make these types of drastic changes. So that was our walkthrough. You know, those were the modules that we're talking about when we're talking about the panel's ecosystem. So I hope that gives you a little bit of context. I hope, full screen. So I hope you were able to see a couple of things that you didn't previously know panels could do. And we're able to get more of an idea of what a panel's taking over everything universe looks like. So we were looking at Panopoli. It's not the only distribution that does awesome things with panels. Here's a couple of other examples. If you'd like to check those out as well. Next, Caroline's going to talk about accessibility. Hi, everyone. I'm Caroline Boyden and I work for UC Berkeley. The University of California has a policy. And the policy states that all websites and web applications have to be accessible to people with disabilities, including people who use assistive technology. So when we decided to build our distribution on top of Panopoli, we basically committed ourselves to the project of continually improving Panopoli's accessibility. And we're also taking the improvements we're making and contributing them back into C tools and into panels and any module we encounter along the way to make things more accessible. So law and policy aren't the only reason we're doing this. We've also found that making things more accessible adds value in some unexpected ways. And one of them is it's improving our automated testing. Because if you have a widget that you can't operate with the keyboard only, for example, you might find that whatever tool you're using for front-end automated testing can't operate that widget either. So it's really improved things for us in that regard, which was sort of unexpected. So I want to show you some stuff we have in progress. We're looking at the C tools modal plus the panels IPE, which is a lot of the stuff that David just showed you, on Drupal 7. And there are some keyboard accessibility issues with this. Now, we like to start with keyboard accessibility because once you fix that, you have a pretty good foundation, a baseline on which you can build in better accessibility for other assistive technology or other situations. And also we found that at Berkeley, five out of six students who come into the assistive technology lab for help have a repetitive stress injury or some other mobility condition. That means they really shouldn't be using a mouse, they should be using the keyboard or an alternative input device. So I'm going to show you a little before video that will demonstrate some of these problems. Let me see if you can see this here. So activating the add content button with the keyboard, you can definitely do, but now I want to get into that list of categories. So I'm tabbing forward, forward, forward, but nothing's happening. My keyboard focus is completely lost and no amount of tabbing is getting me anywhere. So luckily I can hit the escape key to dismiss the dialogue, but I'm unable to add any content to this page with the keyboard. Now that's Firefox, Chrome is a little bit better, so switching to Chrome and activating the add content button, you probably can't see it because of the resolution, but what's happening is my focus highlight is moving through the admin menu at the top of the page. So I'm tabbing through the page that's behind the dialogue. Now eventually, if I keep tabbing forward, I eventually make it into the dialogue, but when I hit enter to activate a link that changes the content of the dialogue, then my focus is bumped back into the page behind the dialogue again, and I have to tab, tab, tab, tab, tab to get back to where I was. So that's kind of a pain and we don't really want to put our users through that. So we do have a solution for this. After a whole lot of coding and testing and really frankly just breaking things and fixing them again, a lot of work from David and myself, we've basically fixed keyboard accessibility. So this slide is just for reference, these are some patches we've contributed to panels and C tools, these are the issues in the queue, you can check them out, and my next video is the after video, it's the exact same site, and all I've done to it is apply these two patches. So now, when you hit enter to activate the add content button, your focus immediately starts on the first item in the dialogue, which happens to be the closed link. You can tab forward and backward through the list of categories, and tabbing to the activity category and hitting enter, your focus immediately starts on the first available option. Then you can tab to the one you want, which in this case is who's online, that brings up the configuration form, which you can operate with the keyboard. Hit enter, sorry space bar to check that box, override the title, then tab to the finish button that hit enter, tab to the save button and hit enter, and that's it. We've successfully added content to this page using the keyboard only, no mouse required. Okay, thanks. So obviously I like that, right? It's pretty cool. But there's a lot more work to be done, and there's some stuff we're going to be looking at in the near future. So for future accessibility improvements, we're going to look at media browser, which is included in Panopoli. Right now, media browser is not operable with a keyboard. In order to select one of those images, you have to click it with the mouse. And also, once you've selected it, it's hard to tell which one you've selected. In this screenshot, one of the items is selected, but it's kind of hard to distinguish from the others, even, you know, looking at it down here on the screen, it's hard to distinguish. We're also going to look at module filter, which is unfortunately no longer accessible with the keyboard, because those button thingies, they aren't actually real buttons. They're divs with behavior attached, not focusable, not operable with the keyboard. And finally, we're going to look at drag and drop. You saw a lot of drag and drop in David's demos, and right now, you can't do that with the keyboard. So this is going to be a big challenge. It's probably going to take a lot of work, but we're really committed to this work, and we're pretty confident that we can get some real big wins for accessibility into panels and C tools and Drupal so that they really benefit everybody. And how many of you out there write code? Okay. And how many of you build sites? Okay. So a lot of you are involved in building things, and I just want to ask you all to think about accessibility when you're writing code or when you're building sites, or whatever it is that you do with Drupal. So if everyone kind of puts just a little bit of effort into making things more accessible, we can really make things better for everybody. So thanks. And I'm going to hand it over to Jacob now for some updates on Drupal 7 status. All right. So that's a little bit about Drupal 7. Let's talk a little bit about where Panopoly is. So most of the big features for Panopoly that you've seen have been done. So they've already been planned and they're in progress right now and really trying to get the stability part done and getting into maintenance mode. The biggest and most exciting parts you've seen here is really improving the accessibility and getting that part really into panels and up to C tools because all of that sort of related together. The next part is panels and C tools. So as many people have seen, we do about one release a year. It's pretty stable until we do a release. And then we do another one. There is bug fixes and security. It's mainly in maintenance mode, but we're accepting patches that are reviewed RTBC by the community. And similar to Drupal 8 when Drupal 8 comes out, all of the features that we're doing in Drupal 7 three months after will go into security release only mode similar to Drupal 6. So we're also planning to do a 3.6 and a 1.8 release maybe this weekend. Did I say something about Friday? Friday, Saturday and Sunday. Anyone here for Saturday? Sunday? Sprints? Okay, we've got a few. Good. Nice. Come to the extended sprints. So we have 26 RTBC issues for C tools and 20 RTBC issues for panels. So that's really awesome. We might be able to even get that through so we can get another release out for those. So yes, oh, and RTBC for accessibility, those two patches you saw. So a few more tests on it and we should be able to roll those into the next version. Cool. And now, Damian, we'll talk about panelizer. Okay. Sorry I had to fix that. So a panelizer at this point is what I consider mostly stable. So there are a number of things left, but I feel it's getting close to a 3.2 release finally after two years and more. There are several new features in 3.2 that are really beneficial to building distributions but some other user interface improvements. A big blocker right now is revision support, both working with core revisions but also when you get into using something like work bench moderation or the revisioning module and building workflows with content and revisions. And then especially when you throw IPE into the mix, it gets rather complicated but hoping to get that, spend a lot of time on that soon. The next one is panels everywhere. At this point it is mostly stable. It's very close to a 1.0 release finally. The key blocker on that is there are some form errors need to solve that where basically the form error area doesn't show up which is kind of bad and it doesn't highlight the form fields that have the errors which again is bad but structurally besides that, it's working pretty well. Feelable panels, panes is a block alternative entity system that works particularly well with panels. At this point it's again mostly stable. The 1.5 release works pretty well but there are a few issues with it. It's very close to 1.6. There are just a couple of blockers to work through to make sure that it works correctly with the entity API and you can do queries properly with it and whatnot. Field API, pane editor and field API, tab editor. At this point considering those stable, they don't do very much. At this point it's pretty much down to bug fixes and security updates as needed. Again, we have a code sprint specifically focused on Panoply and the panels ecosystem on Friday. Hope to see you there. We're going to be focusing on stability improvements again on Friday. Find Jacob in the coder lounge on the day as we work through these stability problems. At this point I'm going to hand you back to David to take us into the future. The short version is that there will be panels in Drupal 8. Now the slightly longer version. In Drupal 7 we rolled our own everything. The core APIs were not powerful enough for panels so C tools filled the gap. One example of this is core blocks versus C tools content types. Blocks are pretty weak in Drupal 7. They can only be placed one time. They have over simplistic visibility rules. I think you can control like it appears or doesn't appear on this list of paths and it appears or doesn't appear on these content types. That's it. They have no sense of context. How do you make a block that pulls data from the node you're currently looking at? The answer is very hackily, right? So they're not powerful enough for panels. In D8 panels will use blocks. D8 blocks can be placed multiple times. We have conditioned plugins in core for doing really complex visibility rules and there's context in core. So finally blocks are powerful enough for panels. In D8 panels can use the core APIs because now they're awesome. Instead of C tools plugins we have the Drupal 8 plugin system. Instead of content types we'll have D8 blocks. Instead of access plugins we'll have D8 conditions. Instead of task handlers we'll have D8 display variants and there's the context API. So panels is finally coming out of its silo. It's no longer its own weird little land over here. It's going to be able to participate more in Drupal core and all the rest of Contrib that works with Drupal core. This is possible because many of the ideas that were pioneered in C tools are now part of Drupal core. This was done mainly by the views in core initiative. In order to bring views into core all of these concepts from C tools need to be brought in as well. But not everything that we need ended up in core. So there will still be a few Contrib modules. For example the page manager module that Tim Plunkett maintains has been doing a ton of awesome work on and Chris Vanderwaters just started doing some cool work there too. This is really I think where most of the work on bringing panels to Drupal 8 has been done so far. Layout plugins. We have this cool little module called layout plugin that allows you to register layouts and provide a twig template. It's going to be not only used by panels but also display suite. So both panels and display suite will be using the same layouts. And all the rest of the stuff will end up in the Drupal 8 version of C tools. So style plugins, the wizard API, Chris Vanderwaters has been doing some awesome work on that. And various specific plugins. So Drupal core now has the plugin manager and the plugin types for all of these things that used to be in C tools. Like blocks and condition plugins. But it doesn't have the specific plugins that C tools used to have in Drupal 7. So C tools are going to need to include a whole bunch of condition plugins, blocks and stuff in order to have parity with what we had in Drupal 7. With the new release cycle we'll be able to add new features at Drupal 8.1, 8.2. So it's possible. Even, you know, we won't have it in Drupal 8.0.0 but it's still possible that one day we could get panels merged into Drupal core. We'll probably be doing it progressively. You know, each time there's an opportunity to add new features we'll start trying to get some of the lower level stuff merged in. I think layout plugin is a strong candidate for getting merged relatively early. It's super simple. Some of the stuff we're putting in C tools I could see going into Drupal 8.0 in point releases. And if we get enough of that stuff in there, maybe one day we'll have all of panels. But first we've got to prove it out in Trib. So here's a quick demo of panels in Drupal 8.0. It's a super simplistic demo. It really doesn't show all of the stuff that's even possible now. Yeah, you go to structure pages, just like going to the page manager in Drupal 7. I'm going to click the add page button, give our page a label and a path. Now we're going to add a display variant and choose the panels variant. We'll give our display variant a label. There's a title. We're not going to change that and select one of the layouts. You can't really see it but it's the single column and two column layout that you might know from the Drupal 7 version of panels. Then we'll click this add new block. We're going to choose the powered by Drupal block and select which region it should go into. We're going to put it in the left side and then we'll click add block again. Again, select the powered by Drupal block because we've played blocks multiple times and put another one in the right side region. Click update display variant, then we'll go visit the URL and there you have a layout with some blocks in it. So this demo used Drupal 8 beta 10, page manager 1.0 alpha 10, layout plugin 1.0 alpha 10 and panels 3.0 alpha 10. So you'll see that we're syncing the alpha releases with the Drupal 8 beta releases to try and make it easier to know what is compatible with what and make it easier for you guys to help contribute and help us get it done. So that was sort of the core of panels. Next let's talk about the status of some of the rest of the panels ecosystem modules for Drupal 8. So, panoply, you know, first we're just focused on getting panels in Drupal 8 done, but we are committed to try and have at least in 2.0 alpha 1 on the day that Drupal 8.0.0 is released. So for C tools, panels, page managers, you saw they were work in progress. They exist and kind of do something, right? There's still a lot of work going on. Chris Vanderwater is working on some patches for page manager that make it look a whole lot more like page manager in Drupal 7, and those will be getting finished in the next couple of weeks, so definitely stay tuned. And the goals do have a beta by Drupal 8.0.0, hopefully with an upgrade path from Drupal 7. The rest of the modules, FAPE, you know, to be determined, I could see that being merged into C tools since it's kind of a basic module. Fieldable panel panes, you know, since we're using blocks in panels now, and blocks, custom blocks in Drupal 8.0 are entities that can have types and fields, like maybe we'll just use custom blocks. Maybe it won't be necessary. Panels everywhere, panelizer to be determined. You know, we're waiting to see, this is another one of Damian's fun puns until the panel paint Dries. Yeah, so we're waiting to see how panels comes together and then we'll decide what to do with those modules. And fate will be ported, very definitive. Damian says since it's such a tiny module, it's no problem. I'll pass it back to Damian. So because this is an open source project and everything, we would appreciate some help, obviously. So if you're able to please contribute, we are very, very eager to have people just help out and do a little bit of issue queue triage. If you've ever looked at the issue queues for panels and C tools and everything, there are lots of simple things where people asking how do I do this or lots of simple things where somebody needs some, a common one is somebody uploads a patch but doesn't change the status to say needs review, lots of very simple things. And for that, you don't need any experience developing or whatnot, just looking around. You can pick up a lot. Then obviously reviewing some of the many, many patches people have uploaded. You don't need a lot of experience but just being able to download a patch and apply it. And then obviously if you're into it and have the skills or even just want to try, we would be delighted to have people help work out fixes for bugs or even time steps to reproduce a bug so we can, so somebody else can fix it. Some experience is obviously a little more necessary for this but you don't have to be an absolute expert. So how to get started? We have a weekly meeting on IRC on the free node network in the Drupal scotch chat room and it's on Tuesday at noon central standard time which is 1pm Eastern and 10am Pacific time. And there's also a D8 meta issue which is a good starting point if you want to get it, if you really want to get into helping with the panels thing on D8. That explains a lot of the plans and the architecture and stuff. So again code sprint on Friday. So in summary then the status updates of the union is that for Drupal 7 we're considering everything to be fairly stable. There are still a number of bugs we're trying to work through and fix and we're focused on improving accessibility. Then obviously on D8 everything is still in a work in progress state with some hopeful goals. And again code sprint Friday! So just before we finish up I'd like to offer thanks to Earl Miles, Merlin and Chaos who wrote panels back in the day and then also Sam Boyer who helped steer panels 3 and C-Tools architecture back for Drupal 6 and into 7. And Daniel Weiner who also helped with C-Tools and panels. Chris Vanderwater who has been doing a tremendous amount of work on panels for Drupal 8 and the whole ecosystem there along with Tim. And all of the contributors over the years who have helped out. So huge round of applause for everybody. And also thanks to the many companies that have paid for us to work on the clock either for the companies or for clients to work on all of these issues and to work on further improvements over the years. So thank you and any questions? I know we're a little over but we do have some time especially given we're going into the lunch or evening break. Any questions on the floor? So could your...is the microphone on? Just closer. What's the status of the idea of retiring Drupal panel panes in favor of DCK? Field of retiring fieldable panel panes? Oh that's kind of a lofty goal that in Drupal 7 many people came up with the idea of you know we need something like blocks only that's entity-based we can add fields to it. Fieldable panel panes was one of them. Bean was another and ECK kind of reared his head and at this point has a fairly stable version 2 but there's a lot of architecture that they want to go into version 3 to have translations and revisions and stuff. So it's kind of a lofty goal I don't know if we'll specifically get there but there's just so much repetition between them all it'd be nice to do. They're all kind of redundant in Drupal 8 so the Drupal 8 version will probably be just a gooey around what's already in core. Thank you. Hey guys, we barely just stretched the surface of panels at the shop on that. I've got two questions if you don't mind. So I didn't really know that Panopoli did all this. Is panels a Panopoli an alternative to paragraphs if you're most familiar with that? Or can they work together in a more powerful way? Sorry about that. So paragraphs can definitely work along with panels in Panopoli. Open Atrium uses paragraphs and it's based on Panopoli so they really there's no conflict. They can be complementary for sure. So paragraph is another one of those things like field collection where you can group multiple things into say a node form and have repeating fields and stuff. Can you apply panels layouts to a specific node type outside the node default layout? I don't think I understand the name of that right so there's a node default layout that you can affect through panels and then use a variant to successify what content type you're going to be affecting. Is there a way to do that outside of that so you don't have one for every content type? Right that's perfect for panelizer. That is panelizer what you just described yeah. I don't know if you want to say it. Sure one of the things in panelizer, panelizer was a replacement for panel nodes that originally came in for panels one for Drupal 5 and didn't really change much. I guess maybe an example as we're going through content strategy for Drupal.org we're looking at changing like the project pages into groups and using potentially not not totally sure yet but probably using panelizer so like every project page can do their own layouts because using that potential asterisks. Yeah so with fieldable panel panes retired there'll be a transition time between going from fieldable panel panes to these new custom blocks. We have quite a few widgets we built fieldable panel panes and we've been kind of a crossover in this program. So if it's retired there will be a crossover period perhaps? You mean like will there be an upgrade path? Yeah. It is possible to build one for Panopoly we will have to build one so I will say yes there will be an upgrade path. My other question was about panelizes. That was a big jump up for us. We love that over the top panelist page manager a lot easier to use multiple content types. I don't know if this is more of a question or more of a please you know if you're still determining whether to do that you could do that or if we can help or something. You mean in Drupal 8? Yes in Drupal 8. Oh yeah it'll happen. Okay panelizer is going to get into Drupal 8 then? Well not in core but it'll happen. As a contrary margin. Oh yeah. Yeah absolutely. Yeah yeah. It's more a case of needing to make sure the foundation is there that panelizer will use. Basically we just haven't started yet so when we were earlier there was that list of modules and I said to be determined it basically is saying we haven't sat down and evaluated how we're going to do it and started writing code yet. Yeah I mean the so I've used panels I've worked before as well there's also the blockify module which basically takes like most of the site elements and makes them into blocks for you so you can kind of do half panels everywhere and that's basically done in core like all the site logo you know site name all that the search bar everything is a block now anyway and because you can place it in many different ways and texture the size when it shows up that's almost done for you. Yeah it seems like it. I think it's mostly just taking time to sit down really evaluate exactly what people use panels everywhere for and make sure everything's covered because we could just decide we're done and everything's great there might be a couple of things to clean up. We're just about everything with just as powerful and it's used in the same way as it is in the Group of Seven version or? They don't exist yet but they will. They don't exist yet so we just haven't written them. I mean there's already used blocks and there's a couple of them that can I mean you know so in views content panes you can choose external to the views UI you know how many items there are what fields show up and stuff we kind of put like views content panes light into the views block system it can be expanded both in core and contrib it's really easy to write the code it just needs to be done. Yeah I'd say out of the gate we'll probably have a equivalent of content panes in C tools to start with but because all the things necessary to build them are in Drupal core maybe we could get it into core for like 8.1 8.2 something like that. Talk to me on Friday that'd be really fun to work on. Again code sprint! Is there a bug for that? That's a great support request to actually put in the issue queue I'm not sure if you're getting a white screen of death and is it just like a regular install of panels? Yeah that'll that'll break everything. Open a support request in the issue. Yeah add screenshots and steps to reproduce and someone will help you. Yeah I think that sounds like a bug that could potentially be fixed too because I think what's happening is