 Good evening every good evening everyone So you've made it through day two of Drupal con I'd like to get just kind of a show of hands on Kind of where the room is far as Drupal developers or site builders. How many of you would call yourself? Maybe like a Drupal site builder. You don't write too much code, but you use Drupal every day Okay, how many would you call yourself theme errs or? something like that Any developers in the room All right, cool pretty mixed bag, which is good. So today I'm going to talk about Building a blog with Drupal 8 I've changed the title in the last week or two because I really think the key point of what I'm going to talk about is that When Drupal 8 launches, it's going to be the first I think Drupal Release that on the day it launches you can actually build full-featured websites with In the past we've had to wait for contributed modules to be ported to the new version of Drupal and Really Drupal 8 it has so much functionality built into it out of the box that that you can actually build quite a few sites With Drupal 8 that it with Drupal 7 core you just couldn't do so a little introduction about myself I'm my name is Bob Keppford. I work at Media Current and I'm a senior Drupal developer there I'm going on about a year there and it's a great company We build websites. We do Drupal. We do Content strategy as well as designing and theming and back-end development And we're looking to hire developers and themers So if you're interested come by booth and talk to one of us and we'll get you started in the right direction I also do a newsletter every week called the weekly drop, which is a Weekly rundown of the latest news in Drupal. So if you have Interest in Drupal, and I think you do since you spend good money to come to this conference You'll probably find the weekly drop is something you'd be interested in So check that out if you're not already subscribed Also, if you are a subscriber and you like the weekly drop and want to make you know help make sure it continues I am selling t-shirts in the Drupal store and So you could go by there and pick up a shirt and that helps not only me, but the Drupal Association So that would be awesome All right, let's let's start off with the kind of a rundown of what's new in Drupal 8. There's a lot of changes in Drupal 8 and there's some of it has been controversial but I want to make something clear if you've heard kind of Screams and moans from the developer community about Drupal 8 as a site builder as somebody building sites in the Drupal admin It's not a drastic change. It everything is kind of in the same Works basically the same way as it did in Drupal 7. It's just improvements. It's more of an evolution In the design of Drupal. So we'll cover some of these topics New field API changes HTML 5 improvements The content editing experience is much better Improvements to form and display modes mobile improvements views is now in core Which is probably one of the single biggest improvements to Drupal And several other things that we're gonna we're gonna go through a few of these One at a time so HTML 5 When we say HTML 5 obviously we're talking about more than just the the dock type and in Drupal 8 There's more Drupal or more HTML 5 integration within Drupal so That includes several new elements that are in the field API and one of those is picture element And this really helps if you're building or trying to build responsive sites and you want to be able to Provide a good image quality to your users on multiple devices But you don't want to waistband with or you want to maybe provide art direction With the different on the different devices So you want to have some control over which image is actually displayed depending on the screen size and so the Picture element was added to HTML 5 and that allows you to do this and you can kind of if you look at the code You can kind of see how that works basically there's media queries in line And this is supported out of the box with Drupal 8 you can configure this and It's a it's a big win you can do this in Drupal 7, but it requires the picture module So another another cool addition is the date element in HTML 5 spec The date element allows you basically to specify a text field form field is actually a date and that will allow the device you're using to Use that context of what kind of data it's expecting and provides you a calendar or a different type of Input element so when you're using a computer Something like like say the Chrome browser you get a nice calendar Pop up to select your date and whereas in the past like you may have to use like a jQuery library or something like that to Provide this functionality. So now this is just provided by the browser. So that's in Drupal 8 the new element other new elements are email and phone and again, it's the same kind of idea because the Browser is going to know what what to expect what kind of input to expect It makes it great for so if you've ever used a form on your on your iPhone or your Android phone And you need to enter in a phone number and it provides you with the the number pad This is it just works like this out of the box with Drupal 8 Another probably one of my favorite HTML 5 Attributes is the placeholder attribute so on any text field you can add a placeholder attribute And you can kind of it's kind of like a tool tip basically within the text field So if if you're the user is expected to enter a phone number you can it provide an example of what that looks like and it's Just grayed out You can theme this with CSS of course But this is something that's just supported out of the box in Drupal 8 now So all these were kind of HTML 5 elements. These are all a part of the field API now And but there are several other improvements to field API So there are modules that have been added One cool thing is that comments are now filled so you can control the display and the ordering of comments What in the UI now in a much easier way? The entity reference field has been added to Drupal core And this is a module you use quite a bit if you want to create like a relationship between One content type and another content type so that you can link back and forth you can link between users You can link between nodes any type of entity and this is extremely powerful module in Drupal 7 that I use almost on every project and now it's a part of core The link field has been added to core as well as the email field and the telephone field and But you know those are just things that you're almost going to use on almost every site so let's move on to content editing and This has probably been one of the single biggest gripes for folks that are evaluating Drupal is that Editing content has not been the most beautiful Process in the past and we often get compared to WordPress and how much better that UI is and that experience So the lot of work went into the user experience for editing content on Drupal And one of the things that people have been screaming for for years is basically a whizzy wig out of the box set up in Drupal core and For Drupal 8 CK editor has been added as the whizzy wig of choice And it's not just like a kind of a bolt-on thing where yeah, we have a whizzy wig editor It's actually very tightly coupled to Drupal so that whenever you're creating content types whenever you're using editing content in any way It's really configurable at the same time as it. It's easy to set up and I've done a little bit of work with whizzy wig editors and like tiny emcee and CK editor and CK editor is really a night. It's probably one of the best whizzy wig editors out there Their API is it's pretty easy to work with It's mobile friendly It's skinnable. You can customize it. It's not that big of a deal to write a plug-in for it And so I think as you start to work with it if you need to extend it It's you can find that that's easy to do So I think it's a really solid choice as a whizzy wig editor another cool feature that gets you know kind of Use a lot and and big talks about Drupal 8 is a inline in any inline images and Again, here's another thing that's always requested and can be a pain to set up and out of the box Drupal 8 Has any you allows you to insert images in line with captions using CK editor We also have in place editing now in Drupal core So this really looks cool when you're doing demos and I'll show you what that looks like But basically it allows you to quickly edit content without having to make three or four clicks to get to a node So and finally we'll look at we'll look at real quick about the improved publishing and user experience for for just creating a node So the whizzy wig editor, so here's a quick little screencast of the CK editor in in action So we can insert images and it's nothing, you know, it just looks like a pretty straightforward whizzy wig editor But it's so nice just and I have to set this up on every side anymore You can configure it turn, you know different buttons on and off and that kind of stuff But it's just nice that we don't have to assume That or we can know that there's going to be a CK editor installed on a client site We don't have to make a decision there. We can we can assume that it's going to be available And so this makes developing Drupal sites a lot easier in my opinion One of the cool things that you'll notice is that we're able to Have a published and unpublished It's not like a to checkbox anymore, so if you've ever had a client request that you have some sort of draft state for your content and or that It doesn't really make sense to a lot of folks that are using Drupal sites to create blog posts and stuff like that That you have to check a box to say this is published or uncheck a box to say like this is unpublished And so I think as far as user experience that the the improvements on the node form or just use are just huge So you can basically it's it's been converted to a button which some of us developers might think is a little trivial But I really think it's a big deal to people that are using Drupal So in place editing As a developer and as somebody that's used Drupal for a long time It's not something I'm too excited about but I guarantee you clients will will really like this So if you go to your home page and you want you found a typo right on a blog post And you want to quickly edit that you can just basically on the contextual menu You can just click edit quick edit actually and then edit the post and it'll be saved right there without actually going to the node page Which I think is Really handy for somebody that's not that familiar with Drupal. It's just really easy to go in there and make a quick change So let's get a little bit deeper into Drupal forms and field display changes And again, here's there's not a massive change in Drupal 8, but I think it's a it's a pretty good change So previously you had managed your field sorting. You had like a managed fields tab, right? Now there that's been split out to a managed form display and a managed display And so you can control the order of an element in your form on one tab And then the display of that in a separate tab and your managed fields is It is in its own tab So basically it's just it's just a little bit easier to identify where you need to go to update your content types And we're going to talk a little bit more about this views display or view display modes basically are We're all familiar with that if we've built a Drupal site So out of the box with Drupal, you're going to have the full display mode Which is like if you click on a tab or sorry if you click on a node And you go view that full full node You're going to see the full view mode display But if you go to your home page the river of news kind of you see the teaser display And there's also a display mode for RSS feeds But out of the box Drupal 7 that was pretty much all you got like if you wrote your own custom code You could extend that But now in Drupal 8 You can create your own view modes and what a view mode is is basically just a display of an entity so This really what what using these view modes is really powerful because you can create different displays for an entity And then you can reuse those displays without having to every time you create a view add Custom fields and custom order you can just set up like a headline view mode You can set up a teaser view mode you can set up an image teaser view mode and then the theme those And add your CSS and then you reuse those styles all over your website and without having to Add in custom template files for every view or write, you know custom code in your template dot PHP file So you can use these view modes over and over on your site Which is really cool and but it's been kind of something that wasn't well supported in Drupal like you could easily write like a hook entity info alter function and declare Your your view modes and add new ones that way or you could install the several There's several different modules you can use to install But it's it was gonna only kind of partially supported in Drupal core You had to add this extra functionality to be able to use it So now in Drupal 8 you can create and manage your view modes for all entities right out of the box You can have view modes for forms or you can have form modes Is what they're called or view and view modes and you can customize those per entity So basically if you're familiar with the view modes Then you're gonna like this because you don't have to install entity view modes module and you don't have to write custom code Just to do this if you're not familiar with view modes I suggest like Investigating that a little bit more. There's a really good talk from Drupal con Denver about these and why they're awesome or just Google Drupal view modes and and look into that because I think it's it's probably an area of Drupal That's not really known as much about I know a lot of developers use it and are aware of it But I don't I think a lot of people are just not aware of what they can do with that. So do investigate that So basically If you go to the view modes page, you can just basically add a new view mode in the interface and You know, you're not you're not the right custom code for it. So for each Yeah, I don't know why it's Don't know if it's gonna work. Apologize. This is screen resolutions a little bit different or something Let's try that. Does that work? Yeah, there we go All right So basically like these are all different entity types of content user taxonomy So each can have their own different view modes And you can create this from the interface, right? So you don't have to bug your developer buddy to do it Or you don't have to install a separate module Alright, so let's talk a little bit about mobile So everyone in here is probably aware that our sites need to be ready for mobile users And people are visiting our sites on mobile devices. It's it's just a fact of life. So Drupal should support that in a much better way than it does currently and If you build a Drupal 7 site, you can do that But it takes quite a bit of work. You need to worry about your theme There are modules you have to install to handle images there are you then you when you're dealing with tables That's a whole other problem to deal with So Drupal 8 a lot of work has went into the mobile front of Drupal 8 So all the themes in Drupal core responsive and that sounds like really good on a slide, you know But we do need to realize that's just Bartik and 7 so that's two themes. But it is that it is it is important I mean is the admin theme is responsive and and the theme that it ships without the box is responsive. So that's good The mobile toolbar is also something that's been back ported. You can you can use that in Drupal 7 now but basically When you're on a mobile device you get this icon type display you see here And when you're on a bigger screen you get the icons plus text. So It it works really well I you can actually install Drupal on a mobile device So you can you can be using you can basically open up your phone to the Drupal.org or whatever slash install and Actually run the installer from a phone, which is pretty crazy, but that's that's how deeply mobile is supported It's not just for content editing or viewing a site And one of my favorite decisions was to kill the overlay module I think we all probably don't like Overlay module was basically if you clicked anything It's like at slash admin or you edit content instead of actually going to that page an overlay would pop up in the window and then load that page within the page you are already in and There's yeah Yeah, so horrible for accessibility horrible for threeming Killed kittens all that stuff is horrible. So we're all glad it's gone I am sad for anybody who put work in that that their work has been Tart and feathered for so many years, but yeah, I don't think any of us are very sad. It's gone so I Think pretty much everybody's here is probably excited to use in the core like why did it take so long? But with views being in core like that that's that's a huge for several reasons Not it's not just because we don't have to download an extra module because when something is in core Versus it being a contrived module Developers of modules can assume that it's there and so they can use it and so that's exactly what's been going on I think there are still a few Listings in Drupal 8 that are not using views. I may be incorrect about that But most of the listing pages and lists in Drupal 8 now our views event if they were static Basically static functions or are you know hard-coded functions before they've been converted to views Which is really cool because that means you can modify Things in the admin that before would require would be more complicated to modify And probably most of us wouldn't do that. So now most of these listings in core our views It's easy to create feeds because of that like so Out of the box seven you you could create an RSS feed pretty easily But now you can create a JSON feed you can create an XML feed basically any view So if you're familiar with views and you use it it's there. It's not Very different at all, but it's in core and so that really helps helps us out It's just the same views you know and love already. So so here's an example of Here's some lists. I basically a list of different views that So you look down this list so content so your content admins of you your file displays of you the front pages of you Listing of users of you recent comments So a lot of the blocks that were hard-coded before are now views so you can configure those to make them actually useful And you can you know customize your front page? I mean a lot of these were actually things that we just Disabled and replaced with a view in the past as like a media current and probably a lot of you've done that So it's just these are just kind of best practice that have evolved over time and now now they're being put into Drupal core So one of our favorite things to hate on is blocks, right? so You might be using panels or or Context but there have been improvements major improvements to the blocks API so a lot of blocks in Drupal 7 are hard-coded which basically means you probably aren't using them because they're hard-coded And they're hard to change so you would just replace them with a view But now many of the blocks are views and not only they be used They're configurable because now they're full entities which means that we can add custom fields to blocks and And so imagine so it's basically like a block is the same as a node now Basically so you can add fields to it their view modes for it So they're they're a lot more valuable now So they're they're not they're not the same as nodes But imagine all the flexibility and what we do with content types that is pretty much the way a block is now another feature that You know just didn't work in Drupal 7 is if you put a block in one region You couldn't place it in another region. It couldn't be rendered twice. You'd have there's a special I can't remember the name of the module, but there's a module that does that but now that's not a problem Drupal 8 supports that out of the box and I mentioned custom block types which Unless you've actually had a need for it kind of sounds crazy probably But we'll look at just the the custom block library. So we it's really easy. It's the same as basically creating a content type so They're out of the box. There's one block type but for example say you're running a blog and you have sponsors and you want to create a Custom blog type that has a field for the sponsor ID or maybe a field for Some JavaScript or something like that something horrible like that You could do that really easy without writing any custom code So you create a custom block type and then you add the fields you need to it and all your fields are available So you can add images to your blocks and so it's just it's just another powerful tool So if you think about all the things that you could do in Drupal 7 and all the modules that these are all All these features are replacing it becomes real clear that you can actually build a lot of the sites you built in Drupal 7 with a bunch of contrib modules with just core now and I would really like to see folks start building install profiles with Drupal 8 actually just showing kind of what can be done out of the box Because I think it'd be a huge selling point for Drupal so we've talked a lot about building sites and Cool functionality mobile and things like that one of the things that's been kind of neglected is is Basically helping users that are new to Drupal or helping people that are content editors of Drupal sites Helping them figure out what to do There are some cool JavaScript libraries that will kind of guide you through a website when you log in for the first time if you've ever used I believe some of like Basecamp. I think does this. There's several I think github does it as well But the first time you log into the site You get kind of a guided tour And so there's a module of a Drupal called tour and now that's in core So you can create custom tours through your site for Your client or for your users that basically walk them through the process of doing something on the site And I'll show you a quick demo of this the views module has this set up already So you can kind of see how to work with the views interface So basically you click a button that says tour and then it basically gives you text and When you click next it gives you instructions and it points to different parts of the page And so I mean you could do this before but it required setting up You know a jQuery library that would do this and Now it's just a part of core So now when you develop a custom module if you're a developer you can actually ship a tour with your module to describe How it's supposed to be used And then this is just you know, I mean there's so much in Drupal now and there's so many features that You know it sometimes when I every time I talk about this It just blows my mind actually because so much is is out of the box just set up for you You can use it in seven. Yeah, I think I think there's a I'm not sure if it's called tour module Somebody can in the room probably knows the answer to this, but there are there's like I think a couple modules that kind of do this and I believe there's a software as a service that will help you with this process as well Yeah joy ride so there's there's a I don't know if the modules I think there is a module called joy ride, but I think it is just a Rapper for the joy ride jQuery library if I'm not mistaken. All right, so We built the site We've kind of used the tour module to give our users a guide through what we've done But we haven't really addressed the developers too much and and like what happens after we launched the site And we need to make changes and we need to make sure that the configuration that we wrote in the initial build gets Gets updated on the production site without losing any user data. So a ton of work has been put into the CMI or The configuration management initiative and basically if you're not familiar with this Drupal in the past has stored configuration as well as data or content in the database And and really the fact that it's stored in the database is not really the biggest issue The biggest issue is that it's not done in an API kind of way that it there are different ways that different types of configuration were stored and it It just kind of it has evolved over the years. So This is a big pain point if you're developing Drupal sites and the scenario kind of goes like this This is one problem. We develop a site, right? We commit the code to get maybe we push that up to our production server Now we have people using the site creating content Users are creating accounts and things are changing things are moving fast. Then the client comes to us and says You know what? We need to add a new field to this content type And we need to do that. We can't have any downtime We have live data and all this so we so we pull down the database We add this new field and in Drupal 7 there's a way to kind of work with this It's called the features module and there are other ways to do as well But typically we'll we'll update the feature module and that all of our configurations stored in code there But if you've used the features module it works most of the time But that small percentage of time whenever you hit problems. They're a lot of a lot of trouble. And so Getting getting your configuration that you've worked on in your dev environment up to production Is quite an orchestration And a lot more complicated than it than it needs to be and so a lot of work is going into Drupal 8 that basically handle configuration of modules anything is configuration in in one way and do that across the board and so I'll show you just kind of basically what is supported so you can take your Drupal site build it and Export all your configuration into a tar g-zipped file And so all of your configuration for that site is now in in in the ammo files And we'll talk about what they are in a minute and then you can take that file the from production pull it into basically import it into your Development site and you have the same configuration then you can make changes on your on your development machine and export those changes and then upload them to your production site and None of your user data will be affected at all And so what are you what how does this look so basically? It's really simple and this is the out-of-the-box supported way in Drupal 8 There's obviously going to be other ways to manage your configuration With like git and and your file system and that kind of stuff But this is this is the idea basically you go to full export You click a button and you click another button and you have a tar g-zipped file with all of your configuration for your complete site You can also do single important exports of like views and different pieces of your configuration But this is this is like the supported way to do it and it's a huge win Obviously, there's still going to be Extention extension of this like the features modules probably not going away From what I've heard from the features modules of the folks that are Developing that is that it's basically going to be something that you install that will help you Compartmentalize your configuration into features that similar to what you have now But now that Drupal handles configuration in a standardized API way the features module code is a lot more simple and a lot of the issues we've had over the years will be going away so What does a configuration file look like and what is it? When you when you download your configuration It's it comes out as a YAML file and YAML is a looks a lot like JSON or XML except it's a little bit cleaner They're just basically configuration files and you can see from this one. This is a File is this It's a field right in ID so Basically, they're pretty easy to read you wouldn't be editing these by hand usually you're just going to be exporting them Making changes in the UI Every module is going to ship with it with the YAML file, which is all of its configuration as a file. So This is a huge improvement over what we have now so The point of all this Obviously is that you can build Drupal sites with Drupal 8 that you couldn't do with Drupal 7 You don't and I really want like today is not a good time to build a Drupal 8 site that you're going to launch I think Dries addressed that the first keynote But I think it's not a bit It's a really good time to actually start playing with Drupal 8 and testing it out if you're a developer. I mean It's a little risky like to build your own personal site with Drupal 8 in that you know whenever the next alpha comes out It's probably not going to be a smooth upgrade path But I really encourage you like to check it out like you can go to a simply test dot me and install Drupal in like I think like two minutes or something like that and you have a Drupal installation in the cloud for like an hour and you can just play with it and then you just leave and you know It'll be destroyed if you want to Install it locally. You can do that as well There are several ways to do that Pantheon as well is another way like I know that they've been advertising this week that they have Drupal 8 in Installations that you can set up for free So there's several ways like to get it to try it out and kind of kick the tires But there's a lot of new things in Drupal Eight and then I had things I didn't have time to talk about better multilingual support web services You're just getting all this stuff out of the box. So Definitely, I'm excited about Drupal 8. I hope you are too. I've got some links in my slides here for resources That you can check out after the slides are posted online MediaCurrent has a Drupal 8 series that we have been updating over the past I don't know when we started it a bit as long time ago and It's good stuff. There's some good stuff on aqueous site. I also recommend again the weekly drop We have I have like a lot of up-to-date stuff as it's coming as developments are coming coming through the pipeline So Yeah, I'm excited about Drupal 8. I hope hope you are too Please evaluate the session and if you have any questions, I'm not guaranteed. I'll have the answers, but I will I will respond So anybody have any questions? There's a mic here if you want to come up and ask Yes, it is and I would say This to the about about what that question is CK editor responsive is that if you're using CK editor now I would really recommend checking out like four point three or it is a four point three or four point four Whatever the latest releases of it because they've made huge improvements and it the older versions were not responsive at all And now now it is it works really good on mobile devices as good as a wizzy wig can I mean we all hate wizzy wigs But you know, I hate that one the least so first I just want to say thanks for the weekly drop that it's been an awesome resource So I really look forward to getting that every week. So yes I was curious if The export feature for configuration is going to help do away with strong arm as well I mean is that going to help export variables that exist within other modules? Or is it really just for exporting your content types and your fields and that sort of thing? So I was waiting for the configuration management the strong the strong arm module that we use now in Drupal 7 Yeah, okay, but so when you export something It'll be included all configuration is is I was saying y'all configuration is is output as a file And that's true. I went to the configuration management talk yesterday Just because I know you get to get these questions and I know there's been a lot of changes in the last like three months So everything's exported as a file, but all your configuration is also stored in the database because of there were several concerns like Performance was one security was another And the user error was the was the third one But that's a configuration change like you can switch There's just like this basically a setting in your in your Drupal settings file And you can say like I want all my configuration written out to the file system But out of the box It's all going to be in the database and it's always in the database Until you hit that export button and then it exports all of the configuration files So for every module all the configuration is in stored in the yaml file. So thank you for the wissy wig Editor are there is there feature parity between the input formats and the buttons you see on the yes to bar now Yeah, like when you this is what I was trying to say with like the tide integration So when you installed the standard, I think it's what it's called still the standard install profile when you're doing the Drupal 8 installer It's it's very tightly set up So if you set up well out of the box like it has the bold and italic and link those are all set up in the text formats I haven't tried making like a custom text format and a custom wissy wig configuration But so I don't know that that happens. I don't think that happens automatically But it is set up. So like if you just turn on like you have bold turned on it You know, it's gonna it's not gonna strip out strong tags. So that's if that answers your question It's a CK editor module if you can like it's It's definitely not the wissy wig API module There I don't know that there's really much. There's I don't think there's an upgrade path at all with Drupal 8 and 7 It's a migration path. So I Actually don't know the answer that because it it's now in course I don't think like if you there's not a Drupal 8 version of CK editor, but If it if it does inherit any of the code from the CK editor module, I would not expect it to be very much Yeah, any more questions? All right. Thanks. I thank you all for attending and enjoy Drupal Con