 Hello everyone Is this on yes, all right great? Welcome to I just want to edit a node My name is Steve Perche. I'm an engineer at Palantir and I'm Robin Barry and there we go Pull this out. Okay, so I'm Robin Barry. I am a senior engineer and team lead at Palantir So at Palantir we've developed a suite of modules called workbench One of which is workbench moderation and the workbench suite of modules is For Drupal 7 and it aims to ease some of the pain points for content authors in Drupal 7 So the base workbench module provides a Landing page for content editors to see an overview of the content. They may care about edits they've recently made other views of Active content in the site at the moment and that's a that's a page That's meant to be customized depending on how extensive the site is That main workbench page might get customized by taxonomy or any anything that reflects the organization of the site And then we have this module workbench moderation which primarily does this task of Workflow moving nodes from a draft state to a needs review state to a published state So although they often get used interchangeably. They are independent modules workbench workbench moderation There's also workbench access which does some sectioning and edit controls so we've been living in the the Drupal 7 contrib world and as we worked on the 1x set of workbench modules we found some places for improvement and We're working with other modules in the space like state machine to try and get the best of of all possible worlds with this idea of Content workflow and making the node editing experience a little bit better Get closer to the mic. Okay. All right. Thank you. Thanks for letting me know So workbench moderation addresses two main questions. There's the issue of workflow a note is in a draft state It's in the needs review state. It's in the published state Potentially even an archive state after a node expires something like that depending on the needs of the site And then there's this concept of a forward revision So if you haven't about us page on your site or really any note it may have a published version and as well as a version that you know will go live at some time in the future if a University has an about us page that page might change once a year or information about applying to that university That might change every so often, but it's a Big set of changes. It's a set of changes that needs to be saved revised and run through a set of Approvals so that's why workbench moderation Tackles both of those together it tackles the concept of workflows as well as forward revisions and before you move on And this was something we were seeing that our clients were asking for so You know, there's a need in I think the larger community at a minimum for the forward revisions where you're you know You want to work you have your published version of the node But you want to work on it because you're getting ready for that next version that you want to publish on a particular day or You know after certain results come in and things like that So this is the way we handle workflow. This is just a zoomed-in screen grab from our node edit form The current state of this node was draft. It could be moved to needs review published And there are user access controls as to who can move what nodes to what states? And this is the way workbench moderation handles this concept of forward revisioning So although this text might be a little small All you need to know is that the green row is the published node revision if you go to I think this is Probably node one in my example site if you go to node slash one anonymously the version that you'll see is this green version of the node and then there's this Version that's in progress. It's it's version five. So workbench moderation just has has one way of of tackling This issue and and as I mentioned there are a couple modules in the Drupal 7 contrib world that handle this idea There's entity revision scheduler maestro revisioning state machine workbench moderation workflow There might be others and it's a confusing landscape and for site builders. It often comes down to a question of which of these Modules has the best trade-offs of the things I need Scheduling is something that comes into play at which entity revision scheduler handles very well But entity revision scheduler doesn't deal with that concept of workflow It just has this is the published version of the note and this is the editable version of the node so We have all these modules that do some of this and they all have to struggle with core in the way Core handles node saving so core doesn't have this concept of a forward revision If you run node save on a node object it gets saved to the node table, but back in This example we have to save this highest version through node save It has to go through all the note hooks, but we don't want it to live in the note table We want the published version to live in in the note table. I Agree Yes So D7 does does something like this so this is a summarized view of what happens between Core and and these various contrib modules you call node save on a node object You write to the node table you write to the node revision table and then these various modules entity revision scheduler workbench Moderation state machine they have to then figure out in one of those hooks Is this the version of the node that we want to be published? Is this the version that should live in the note table and if so after the fact Reload the published vid and then save the published vid again in hook exit or a shutdown function So you get at least two note node save calls even if all you're doing is saving a new revision and it's buggy and unreliable and And just overall something we'd like to avoid right and on top of that I think the larger issue is any entity that is revisionable Could you know we might end up running through these same hoops or jumping through these hoops again? And so you know we'd like to find a way that streamlines this a little bit more so in the contrib world It's just easier to manage this type of thing Yeah entity revision scheduler starts to answer the question of how could we? juggle this idea of the the published version and the editable version in an entity agnostic way So it's a good start, but there there are things that we can do better in in Drupal core So here's here's a more fleshed out diagram. This is a little bit hard to read But yeah, perhaps you can walk through this this more detailed diagram of what's happening Currently in the Drupal 7 contrived world. So what ends up happening in those top dotted line rectangles a lot of that is really contrived so we're looking at things that workflow or Workbench moderation or a state machine might do where they're kind of writing their own data and tracking the revisions the way they need to And then we get to this point where it's like, okay, so is this revision going to be published? Okay, okay, all right well, then we need to update the node table and that's good and and and then we need to then Also see, you know, well if it isn't going to be published then we need to see in the node table is something published there and if so then on Either you know like a hook exit we need to basically resave that revision in the node table So that it continues to have a status of one and the vid is set to the correct vid So we're finding that we have to do that on any time someone is is actually editing the node or creating a node So In Drupal 8 we're hoping to have something In a simplified version like this you call node save and rather than working out the node table first save the revision first Save it to node revision Any field revision tables anything that's revisionable data save that and then ask is this version supposed to go into the node table is this supposed to be public and then if so right to the node table so I think this might Impact some of our hooks and and we'll get to that later Here's a here's a more broken out version of what this could look like in in Drupal 8, right? So again the the lighter gray and the and at the top there That's what might be happening in contrib beforehand and then we get to that node save process We're basically we're going to go ahead right to the node revision table then ask that one question Is this revision going to be published and then go ahead and update the node table at that time So we just have a more simplified process and We get contrib out of worrying about which revision they need to manage and Then for the UI implications I think it could be as simple as replacing our save preview and delete buttons with publish save draft and Delete and if we do that then we we don't need preview we don't need that fake node object getting passed to node view and you can't really rely on its its vid and I know anytime. I've tried to theme that page. It's it's just felt Like it could it could be blown over by a gust of wind and and I think if we are instead previewing an actual Saved revision it'll be a lot easier for themers and and one less thing for for us to worry about But I will point out in the comments on this session quick sketch suggested That C tools object cache could solve the same problem I can't speak to that But if anyone in the room can please come up to the mic once we start the question portion So What what happens to the code? I imagine we would Start by cleaning up node save we could expand the the helper function underscore node revision save we Probably would add or change some of the hooks. Maybe we could have a completely different hook for For this last step of actually writing to the node table For instance, it's possible that path auto or just path in general doesn't want to operate on a node revision until it's actually going published because Maybe you need to alias your node revisions, but I'm guessing we don't need to alias our node revisions We only need to alias the thing that is actually visible So this is a this is a kind of a buggy place currently in d7 can trip because if you are Doing your aliases based on a field value and that field value saves our changes in a draft version and that draft version isn't going published yet it gets messy because Contrib modules and core modules don't have this concept of here's a saved revision, but it's not live yet And then there's this question of workflows in core and This to me is secondary I think it's Important for the the end user experience we get requests for it all the time It's is a big reason we built workbench moderation, but right now we don't have to struggle against core to get just this part working The the forward revisions is is a bigger priority for for at least Robin and I But there there is community momentum towards getting workflows into core Even even in the the keynote this morning Earl mentioned the the need to improve the content editing experience out of the box So workflows could be a part of this It's It's not as easy in my opinion as just adding another field a field of this is a draft This is needs review. This is final review as we've we've built some Full sites and workbench moderation and thought about this There's the issue of defining the workflow defining the rules around who can go to what workflow? Or I should say who can go to what state and when do workflows apply across entity types Do we need to account for? user workflows, or we've got these Bean module or bean entities. I should say in Drupal 7. What does a workflow mean in that case? And then you could have the state itself could be an entity That's that's one of the things we're working on As as we try and integrate workbench moderation with state machine Making that that record of the state change itself an entity so that when you change the state Even if you're outside the note editing form You could be assigning the next person as you're changing state So you go from draft to needs review and you fill out a user reference field on the state itself designating who needs to see this next and I think I covered all of that I think I just want to add that we're doing a workflow sprint on Friday where you can see what Steve was just talking about in action So, you know, we'll be showing some of the the work that's been underway here for improvements to workbench moderation and state machine All right, so so as I said the the UI also could could change a lot in this Work so here's a Mockup of what the content editing form could like could look like in Drupal 8 so This is all being worked out on groups dot Drupal dot org right now. I want to thank Your Roy Bojan Jared anyone else who's who's working on? Yeah. Yeah, thanks so much Yeah, I think this looks great. So There there are plenty of questions to be answered here. How do you do the layouts? How do you group fields and I think these are questions that we can answer in a great way? for Drupal 8 and This GDO thread 2 1 7 4 3 4 is is the place to work on that and There's also a bucket list of other node eccentricities that that we could discuss if we run short on time but at this moment we're at 15 minutes and If there are any questions Does anyone have any questions? Thanks Yes, please come up to the microphone. So so we're recorded. I Have a question about the delete button. I noticed that that's still up there and Just working on administering a lot of Drupal sites have had a lot of issues with People deleting stuff that they didn't really mean to delete and kind of are any plans in the work? Yeah, it's the last item on our bucket list because we've had clients as well who because we're editing or Modifying the node form to make it feel like you're editing a node revision rather than necessarily editing the node itself So when they see that delete button, they think oh, I'm deleting this revision because I'm just editing this revision Well, the delete button still deletes the whole node And that I think is something that could be addressed. I don't I don't have a great answer for that right now But I think I agree that it's a problem Hi guys Larry Two hopefully quick questions one the sample you know revised buttons that you showed With you know publish save as draft and delete doesn't that hard code the workflow concept of published which applies Only in certain cases. I mean I've run into many cases like forum posts where Published it would not make sense as a concept for the typical use case Sure, are you asking about the string published not making sense? Or are you talking about the technical implications of that button? Both I suppose Because if I'm having a forum then I don't want to expose the concept of save as draft to someone on a forum post sure I just want a post this button and You know the rest of this would be too confusing for them. Sure. So I I see this also as a as a replacement for the published checkbox I think if we have two buttons one for publish one for save as draft that Essentially matches the the functionality of the published checkbox so Save with that checkbox checked currently means publish if you are unchecking it Well, it doesn't exactly mean save as draft where it kind of means save as draft So in the case of a node type where it's public-facing. You just want people saving. I would say make it an honor perhaps turn off revisions for that content type what you can do now or Yeah, I think that would be the easiest way to do it and you're just saving well, I think my expression actually touches on that because Would this process be made easier or actually harder if we Finally switch from a crud approach to a crap approach and don't deal with updates We just have new revision. That's the end of it which has been discussed several times in the past year But I don't think it's been happening yet Crud create read update delete crap creates read archive purge Basically, you get rid of the idea of an update command Updated simply save new revision and delete old revision. That's the nutshell version sure so I think that more or less fits with With this idea of Prioritize the saving of the new thing and if at the end of that process, you know that you're also put Overriding the old thing in the node table and go ahead and do that But if what you're doing is creating a forward draft then everything up until that point is the same and then only at the end Do you ask is this going in the node table? So this would fit better with a crap model than a crud model. You're saying I Think so. Yeah, and We're not stuck on labels. We can call the buttons. Whatever you want. I don't think any of its crap first of all So I'm you'll Hastings have mentioned talking guys in the phone before I met you but So I work with Fred to go over there as the gentleman we work on the state machine and state flow those buttons I was gonna comment those buttons first. So we actually have a similar concept of those buttons on our Modern or moderation tab right and the buttons that show up or the buttons the user has permissions to Transition for Wednesday to the next state So the user does not if so this is your state of your node is currently in the draft state And the user has permission to change it to Permit to published or to needs review or to whatever then that's what buttons will show up And that's kind of how I picture seeing that work a little bit And I think that kind of makes sense with even the workflow stuff we've been working on. Yeah, I agree To look at what's been posted to GDO. It's a little smaller drop-down That there's there's a drop-down box and a save button and the preview button Yeah, I see that as analogous to having one button per option in that drop-down Yeah, so to me I think it works the same way you're saving and you're going to whatever state you're going to yeah So buttons are drop-down. I think either way works And that's a much more predictable UI than having multiple buttons. Sure. Yeah, if you have 15 states for whatever reason I think I think yeah, probably not. I hope you don't have 15 states But if you do a select list, you know Go to the mic, please He's going in line and well real real quick though. I was going to talk to see tools I was catching so basically views use that now to just save a Like a view and it is drafts it before it saves was actually always persistent there So I have some ideas we can okay. Yeah, so so maybe we can keep preview and just make it better It's it's it would That's some interesting ideas. I'm not sure how practical they are yet. Okay. Thanks now Yeah, I just wanted to add that and the feedback on this design has been great Thanks, all I'm impressed about how many people have already seen this The feedback is has especially been about that button and the states in the publishing options that we're just going to iterate on that Some more and find the node and put in your use case. We want to Have a design that covers most of it So find it and put in your feedback on exactly that stuff. So thanks. Thanks Hi Krell's comment on crap probably has answered this for me already But I was just wondering from like a Drupal 8 perspective instead of a Drupal 7 perspective Would it be important to have the? the interactions with how Nodes are controlled be like an interface that other modules could override and implement Yes, I know there's work to make Nodes and other entities actual classed objects and I think some of that might already be in and I know some of it's in In-progress patches, and I think that will make all of this easier. Yes, I Wish that the delete What the delete button did was post a new revision that says that the node is deleted That way you can undelete But that you know sometimes I want to have the delete button actually delete things sure but that's my wish yeah, and I think that's also a permissions question because Maybe your administrator can delete anything. Maybe a lower level user can't actually delete and it's and it's another state so draft needs review published maybe there's a Flag for deletion state which kind of duplicates flag module, but they could be used for a similar use case. So there's there's a state beyond Published that Potentially actually unpublishes the node or just flags it right and we were talking about that as perhaps being archived Right, so that you know you could go from publish to archived something that still exists and is around But isn't available for the public to view at that point. Mm-hmm. Okay Hey, this is a little bit of a loaded question because we've already been talking about some of this stuff But you know I noticed in your original designs you have the idea of saving as a draft replacing preview Yes preview is something that I Probably think would be considered a necessary feature for most CMS is sure so what is are there other ideas for how? We might try to preview nodes based on revisions. Yeah, just for the example of those buttons I'd be fine with keeping the text as preview rather than save as draft But for my understanding of the problem It would be easier if what preview did was save an actual revision of the node So if we want to keep that user experience of I click a button and then I see what it looks like That that is a good user experience in my opinion. We want to keep that we can I Would prefer it work on an actual node revision rather than a Kind of fake node object that might be saved, but isn't really saved Yeah, and I agree I think that you know where that could head is also allowing you to see some of the other site context Around that preview or of where is that node actually going to end up? Yeah, because you know the the project that we've been talking about with time machine and all that stuff is all about the Contextual side right I've seen what a node looks like at some point in the future And so that preview functionality having that be able to display all the other blocks and menu bits and everything else Around the node is really valuable for content authors Yeah, and I think that'll all be easier if we're working with a node object that we can trust is still there Yeah, definitely. Yeah It seems to me that one of the things that might be beneficial to think about would be taking the idea of a revision and abstracting that away from just the entity itself and putting it into the actual field one of the things that Dries talked about this morning was Inline editing and if we had revisions of fields You would only have to submit that field and create a new revision of that field so an actual node would be made up of Version one of this field version five of this one So the aggregate together would make up that revision of that node sure and it would almost kind of be like get for a node Sure a similar question came up in the entity API boff today The idea of once we start making things entities where do you stop should the field itself be an entity so that? the field can be revisioned independently of its parent entity and I I see the use for it. I don't have a Solid answer on making sure I think is that big of a change Yeah, it was really more of a suggestion than sure But you also can do that now I think in Drupal 7 with field collections if you want all of your fields to be objects You could make a field collection for every single field rather than adding a text field You had a field collection that just contains a text field and then you kind of have the same thing It still feels a little wonky to me But you would get the the idea of the field being revision well field collections aren't yet revisionable That's there's a patch for that But you get that idea of the field being an entity. Yeah, okay I think we have time for these two folks and then we have to cut off So up next crystal and web chick on more content editing So along the idea of save as draft have you given any thought to autosave or something like Locking on an editing a node with multiple people along its long lines of C tools cache I've definitely thought about it. I don't have a great answer beyond what's already available and contrib there are auto lock Or I should say autosave and content locking modules Whether or not they are are the perfect solution. I really can't say Hi, and we've talked quite a bit about Editing a single node. I guess quite a common use case is someone preparing a lot of nodes that they're preparing ahead of time Right as single task Which you can kind of get around with the the scheduling of when you publish But if you're trying to get 50 nodes edited and then when you're finished all 50 you want them kind of grouped in a Task is there any kind of thought along this line of how you group them together and how you'd maybe create a Almost you'd create a task and you'd have nodes Yes, yeah to that task. Yes, it's definitely something that we thought about so this model that that I've discussed is All around the idea of a single node and seeing what this one node might look like with a future revision and then you have that use case of Basically what deploy module solve so it was written for a magazine that had to deploy an entire month's issue of nodes all at once so That works with server to server Services basically so you have your staging server you have your production server And then you send all those nodes over at once and that's a very different model than this just one revision forward So we're trying to figure out how those could be the same right now There isn't a great answer on how to get the best of both worlds because there are great advantages to having just an on my Production site. This is a future revision. There's also the advantage to here's what this whole site looks like with these 50 changes If we can figure out how to get both of those together It'll be huge. Yeah, and I think one possibility here is that What we're looking for right now are some foundation changes to make something like that happen more easily It's a little bit hard to do when we're still thinking about, you know, how we move through that node editing process Okay, thanks All right. Well, thank you everyone So I created kind of a placeholder thread on on GDO where I'll post these slides and any follow-up issues will get cross posted there Issue two one eight eight six four. Thanks. Do you want to mention the sprint? Yes, so we'll be having a sprint that'll focus on the D7 implementations of these modules on Friday Wherever sprints are happening somewhere somewhere here Yes. All right up next More more content related stuff with with web chick and crystal Hey everybody Talk amongst yourselves just dealing with So I am web chick I'm also known as the IT guy So today is going to be a bit of an interactive session Instead of showing slides, we're going to be showing a lot of videos It's also the part of the day where we start to get really terrified and scared and that's gonna be a lot of fun But we'll all be together. It'll be okay. I didn't have faith. There we go. So trying that again Welcome everybody We're here to talk to you today about five things we need to create an awesome experience for content creators Drees mentioned this in his keynote this morning. This is kind of a major focus for Drupal trying to get this right My name is web chick or Angela Byron as I'm sometimes known And I'm Chris straw or Chris straw because I'm sometimes known And we both work for aquia in the office of the CTO with trees So we probably have a lot of people in the audience here who are developers or themers or site builders If you fall into any of those categories you and raise your hand Pretty damn near everything. Okay. Yeah, that's great. This talk is not about you. Sorry Every other talk at this conference is gonna be about you, but this talk is about content creators Okay, these guys are the victims of Drupal, right? They are the people that once you do your site building theming developery thing They're the people that are stuck with whatever you've just built and they have to actually use it every day 9 to 5 and you know to do their jobs And then the interesting thing about these people is not only are they victims of Drupal? They're also the people largely making the decisions nowadays particularly in larger companies But even if you think about it even hobbyists are evaluating different solutions And they're trying them out of the box and they're seeing which one has the best features capability and then they're going with that one So it's really important to get this right for these people because they're becoming more and more powerful in terms of the overall selection process And if we don't make it right for these people then we start to lose Drupal people pretty fast so This talk is going to be about looking through looking at a number of different things That's Drupal, Plone, Squarespace, Squiz, and CQ5 and we'll talk a little bit about what all those things are We're going to look at all these products through the eyes of a content creator, okay? Just so you can kind of see a comparison So let's start with Drupal out of the box For anyone here who has not seen Drupal out of the box we're about to enlighten you on how that looks Oh, I have to click the video So has anyone seen Drupal out of the box? Has anyone done that? Yeah, okay looks a little something like this so you install Drupal and Your first thing and actually the default Drupal doesn't even add that it just says you have no content create some So you go when you create an article and it has some fields on it like title tags Image, you know and this is cool. You can select an image. You couldn't even do that in Drupal 6 So that's already like way better You know that used to be get a nice little preview there and then you can start typing in text into your your your body there It says honey badger don't care about editorial experience Everybody here know the honey badger theme if you don't you should definitely look it up after this talk Which is fascinating anyway So you save it and you get your little picture and it's nice and cropped in a nice way That doesn't break your theme and that is what Drupal can do if we go back and edit it I Don't know what's gonna happen here for shadowing conclusions about the honey badger says, but maybe he should And so you can also update nodes very easily is the whole point of that So you have the ability to create and edit content in a very simplistic way in Drupal everybody got that Good So you're gonna say web chick don't be stupid Nobody installs Drupal out of the box and it gives that to a content editor I mean that would just be ridiculous right no no no no what we do is we put a whole bunch of contributed modules in there Like whizzy wig and media and all these other things and then we give it to a content editor, right? Yeah, so let's take a look at what that looks like So this is a some of you guys may have seen this is Drupal gardens showing what it's like when you have a bunch of Modules installed over Drupal that lets you do a little bit more So we're gonna do the same thing create an article So you can do simple stuff because you have a whizzy wig editor now, so more than just simple plain text editing you get to do things like Basic styling so you can make things bold you can underline them You have a little bit better presentation of this in the default editor and so you also get With full HTML you can do a lot of other different interesting things and the reason why I make this distinction is that There's a lot of worrisome things about whizzy wig in terms of security and full HTML has a lot of Capabilities when you give it to users, but it also was very limiting if you can't give somebody full HTML So you can create lists a couple other things one of the really huge advantages to a bunch of modules is the support for Galleries and media libraries, so this is all media module stuff Where you can check out the basic options of media module But really the powerful thing with this is you have some some pretty badass capabilities of putting things in line actually in a node body so we have our our Neil deGrasse Tyson meme and You're able to see that right in the body of the the editor that you're creating your content And then when you save a note It's pretty much like out of the box to Drupal it does that that same thing where positions it well inside of your theme and all that other stuff So there's the note that we just created We did that one already that's Drupal plus contrib for those who weren't paying attention And now for something completely different and I'll hand it off to Chris for this part So I spent a tremendous amount of time I was I was asked by Dries and by a few other people at Acquia to look into what other systems are doing in this area and One of the ones that we have talked a lot about is a squeeze squeeze is PHP based It's open source and that if you download an 800 megabyte virtual machine, you might be able to find the code in there somewhere It has a very strong focus on editorial experience. I don't want to show you guys what what they do So this is a one of the videos from squeeze You can look at this online at their particular site What they do is they're able to enter an editing mode on any page that they see and One of the interesting things here is they have this really neat toolbar across the top of the page And that toolbar is contextual based on what you're you're selecting in terms of a field And if you'll notice they update the title of the site they update Different areas within the site and it updates navigation and updates breadcrumbs All of those things are dynamic based on an inline editor tool And so all of this is in line in the DOM like this looks exactly how it looks when you view the page And I think that oftentimes in Drupal when we think about whizzy wig We think about a toolbar and we don't think about real whizzy wig where I have my CSS applied in line in a system Like squeeze so this is a really powerful capability just from the editing perspective Here in a second they're gonna jump into how they also alter layouts, which is Another really interesting piece for squizz everything is all about Being able to select from libraries having common libraries for images having common libraries for content and being able to drag those things on to a page So the Drupal analogy there would be everything that is a field in your entire system Could be drug anywhere on a page at any given time so you have fields that exist independently on their own and You can edit them and place them on a page independently So he's about to drop an image in there to protect particular regions of a page So that only certain areas can be edited by individual users And yeah, they're talking about revert So that's that's what squizz does and that's a system that In aquia we run into here and there in terms of other places where we're looking at and trying to get Drupal adopted Another one is clone most of you guys have probably heard of the clone It's kind of a smaller CMS It's got an actual open source GPL license behind all of it. It's very much an open source project It's a cms and a cms and a cms so a framework and a cms much like Drupal and it's all written in Python So this is an example of what's coming in plume with the the deck of UI And I'm gonna fast forward just a little bit because the first bit isn't really all that relevant So what you have here is you have what what plume considers to be a content type And so you're able to go in and edit this particular content type in line much like you can in squizz They have highlighting of the regions that are like fields. That's a title in two text fields And they can go ahead and make changes in line like you could in squizz with all of the CSS applied What plume has is they have this field layout on that right toolbar there So it's a drop-down and that's their list of possible fields that they can include on any page that they want And that is governed by the content type that you're creating So that list of fields is dynamic based on what type of content I'm creating the system So here he's dragging a beer bottle onto the page And you'll notice that beer bottle acts independently as its own field, but it places itself within the layout Based on this like little snap to grid system that they have I mean that's pretty powerful the ability to do in line of flexible layouts like that is a really powerful system And that's all we're gonna show that one Now we're moving on to the big guys CQ5 it was made by day software bought by adobe CQ5 is like the 800 pound gorilla of CMS. It's Java based it costs like 14 gazillion dollars Really big enterprises use it It has a tremendous set of out-of-the-box capabilities There's not really any modules or anything that you learn on top of it It is fully buzzword compliant Angie and I probably watched 25 videos with movie overlay voice about value propositions for your CMS But there is some really good content here. This is probably the best I have seen in industry in terms of managing an editor We're gonna actually show you two videos From them one is going to be their content management capabilities and the other is going to be their mobile capabilities You don't want me to So in this case they're taking a flash file from their desktop and they drug and drop a swift from their desktop into Their page editor and because it's adobe it automatically works So now they're going to do some flexible layout stuff where they say I want to have a two-column layout in here So they drag a two-column layout container onto the page And they're able to take any portion of fields and put them within those columns and The one thing that I don't really like about this is it kind of makes their screen a little bit messy in terms of editing But it gives a user a very clear idea of where they can put content on a page Yep So again this theme of centralized assets And then they're completing this so that's that's their basic content editor experience in a very short video And then we're gonna look at their mobile experience Little too far just a second So when you have a mobile site you manage a mobile site independently of your other sites in cq5 And cq5 relies on this concept of inheritance So a mobile site automatically inherits from its base site and you'll notice you can actually browse by mobile device and see exactly how Each individual page is going to look on any number of mobile devices that adobe has actually licensed the images of those devices To include in their UI and so here they're they're saying they're going to break the inheritance between this mobile layout and their original page They have inline photo editing and cropping capabilities You know adobe is pretty famous for getting that right but for example here They have a mobile title that's too long and they want to be able to edit this title Independent of the page edits that are happening on the desktop site And so they're able to take just this field for just this device Just the Samsung Android device they have here and edit it now every other field on this page still updates based on the inheritance back to The desktop however this one at this one field is different just for this device And you can make it different for all mobile devices for one mobile device for specific orientation all sorts of things And last we're gonna look at a square space. So this is a proprietary platform. It's sass. It's mostly a blogging tool It's brand new This is probably the coolest eye candy I have seen for a user-facing Layout system before so here Angie keep grabbing like oh, hey, how about that? So this one we're actually gonna do demo because we couldn't find any good videos And it's kind of cool to just kind of watch it in action So I'm just gonna show you guys how to build a page in this so when you're building a page in square space It comes up and you you basically have the idea of I have all these different content types They're based and you can customize these we're just gonna create a basic page for right now Automatically does path URL aliases there. Yep So and forgive me if this does break occasionally. It's still in beta and so it has had its problems, but Bear with me so I'm adding a block to this page And it's gonna be a text block and this is the one of the bugs that I've found is that when you add the first block to the page You have to refresh it Come on in there. There we go. So you can type It applies styles We're gonna go ahead and just drop in a bunch of Wikipedia text Sure, you don't want to use corporate ipsum. Yeah That's right So it automatically pastes links it has really nice pasting from HTML capabilities and This is always saved at any given time So you don't even have to leave the field right now if I were to reload this page this content would all exist here You know, you can you can do the typical headline stuff Now I want to dress this up a little bit And I'm gonna do it by adding a calendar widget So you can say what you want to publish on your calendar directly from when you add that block and in this case I want to publish all of my blog posts on that calendar now I don't have any blog posts on this site. So there's actually nothing there But here's where things start to get really cool So I now have you know a typical ordering of fields on a page If I want to take this field and be like well actually let's make this a two-column layout That's all you have to do. I want to take it and drag it across the top. I Actually want to keep it two-column, but then I want to put it Insert it above the other part of the the text another really interesting thing here is The ability to take an image I'm grabbing one from my desktop here and Drop it into the page and this takes a second I think this might be one of those reload situations is it yeah, you might be right So bear with me It all worked we don't remember this part. Yes Well, I had to grab the image again. It still makes you redrop the image. Oh, yeah So in other news we're applying for jobs is square soft base beta test. No squares. Yeah, well, it works yesterday So oh there we go So now the image is able to be inserted So I'm just dragging and dropping this maybe just like the honey badger So I'm just dragging the top dropping this or my desk desktop it automatically comes up allows you to enter a caption Those little blue lines that you probably can't see very well That's it saying whether it should be a column whether it should be What is the different things call this column so you can insert it? Okay, or you can put it in a column And so we can go three column now if we wanted to go three column we can drag between columns But what is also really cool is if I put it if I put it as an insert into here I could take honey badger and actually put him inside of the text Notice to how it keeps resizing the image to fit the column dynamically grabbed an image. It's a little bit bigger than I should have Come on I can't get the right button It keeps scrolling me up when I'm trying to do it. I think it's a screen resolution I think it is too So anyway, the idea is is that all of this stuff you can also adjust its ability to float You can say where it needs to go in terms of being able to place it within text So it's got a lot of powerful layout tools just like other things and you can split these columns and number of times and all of this Basically is governed by four actions in the system You can view a site you can author in a site You can view analytics about it and you can change your site settings. So this is a really elegant experience I know it didn't quite demo as smoothly as I'd hoped but This in terms of like just this base set of tools is what we should be aspiring to Go ahead So, yeah Everybody feeling good about Drupal now. So the good thing is that These things have really nice eye candy But they suck for the most part under the hood and this is a strength that Drupal really has is Drupal's API is it's extensible It's got a huge community all this kind of stuff. The problem is Content creators don't give a crap about that They give a crap about what it looks like out of the box and how easy it is for them to do their jobs Oh, right. I forgot about that Okay, so how do we fix it right because we said that the title of this thing was the five things We need to do to fix the content creator experience. These are the top five things Represented by a pony. So we need real whizzy. We're editing Meaning inline editing not like a cute little toolbar on a text area. We need like the full thing We need flexible layout tools the ability to move seamlessly between two column three column insert a two-column layout within a Three-column layout all of that kind of an image load an image Drag and drop everything drag and drop blocks drag and drop fields drag and drop menus whatever it is Everybody expects expects this stuff to be drag and dropable everywhere. We need kick-ass media support We need the ability to do asset libraries out of core it out of the box We need the ability to seamlessly add videos and images. It turns out people like blogs with like Videos on them. It's kind of crazy like it's kind of out there for me I write all my you know blog posts in drush, but apparently people like this And then oh, yeah, and we want all of that and we want it on any device Yay, right just asking it so back to Dries's point picture the baby picture the baby with the sand and as a you know It's time to make Drupal 8 kick-ass Okay, we need all hands on deck to get Drupal 8 up to the level where we can do this kind of stuff And we need to do it fast So join us come join the usability group come join the media group the mobile group the Drupal 8 block everywhere initiative We have a we have a group on groups groups out Drupal org That's called cms feature reviews and that's where we're sort of doing this sort of analysis on competitors and talking about what they do And and we invite other people to contribute to that as well because the better we understand our competition the better We can kick their ass right so we all want to do that finally any questions Please step up the mic. Sorry. Yeah, and also we are over time, but we'll go ahead and take like two or three questions because Hi first I wanted to bring up the issue of configuration versus content and As we make stronger distinctions between them some of this may get harder in certain ways So the new version of panelizer I think is a good step forward towards this kind of in line Block end user oriented editing, but it all exports down to configuration as we're drawing that divide and I think we needed to work in a content style way so that you can make a node and do all those Layout options on a node. Do you have any thoughts about are those layout changes configuration? Are they content? Does it matter? I think that they are probably configuration changes because I I would hate to see these things be specific to nodes Because when you look at these videos, they're drag and drop in calendars They're drag and drop in images whatever it doesn't matter what it is So I don't think it's part of the content personally. I think that it's a configuration layer on top You know essentially if you talk to Chris Vanderwater Eclipse GC about the blocks everywhere initiative You know as far as he's concerned everything on the page from the top left to the bottom right whether it's primary links Whether it's the site name whether it's a node whether it's a block whether it's a view whatever it is That's a block. Mm-hmm But not like a crappy Drupal 7 and below block like a good block The way that the way that Alex Bronstein and I have been talking about it is this idea of containers Where you would have containers that were configurable and those containers could be placed anywhere on a page We would have some sort of you know Interesting layout system that would manage the placement of those containers But the containers are configurable and that's what holds the content and then that way you have like widgets You can drop into containers. You can have text. You can drop into containers all these different ideas It's very similar to the whole entity everywhere concept right so so if you make a page and it's a blog post and you write what is the body of your blog is That saved to the node or is that actual text the configuration of this page which happens to be a blog page Oh, I see what you mean. Um, I think that's probably Text but I think the field that the text is in is a block that is drag and dropable. Does that make sense? Yeah That might not make sense. I'm totally just making shit up But you know like that's kind of what I think there are still things to be ironed out as we go forward. Thanks. Yeah, no problem Hey, I was wondering could you show that previous slide with the links to all the GDO groups? Yeah, you used to get involved in cool Thanks. Yes You don't like my funny joke That's hilarious. Okay How's it going? Good. How are you good? The one thing that we've been talking about at Treehouse. I'm Frederick Mitchell, by the way is maybe maybe a 5a or 6 is in terms of the five things is Incorporating a lot of the Principles of UX pushing them to as a developer Recommended practice and so one of the one of the things that you know, we've been talking about internally is It's really you know, it's it's one thing for developer or for anyone to build a cool feature to add Especially if it's part of the enterprise platform, but if the content creator in that particular situation Uses that one feature repeatedly having it at the bottom of a really long node form because of the complexity of the platform isn't very usable so adding Things to either the the API that can easily you know flow things to the ride or make something drag and dropable I think should also be included as part of the the top five things outside of how a content creator could use it because In order for them to actually have it the people who are customizing the platform need to need to understand When and how to use those UX principles to get the most out of their particular feature So I guess my question is is that with with some of the things that's been outlined with Drupal 8 Do you see a future where? The best practices and maybe even some of the parts that are included at part of the API would reflect The UX principles of maybe you know floating fields to the right or making this particular Dragable, you know if you have a node form or whatever type of form more than X amount of fields It should be formula formulated a certain way. So then that way Whether you're building for enterprise personal hobbyists or whatever as Developers build modules as they build different features. There's a Concept that's kind of pervasive throughout, you know, how things are put in so that it's consistent because that's kind of the key thing with Making an experience usable. Yeah, I think I think that's exactly right I think like on this superblock concept there needs to be a set of properties that are consistent throughout everything that you Stick on a page I think we need a lot of help deciding what that is You know if it is region that it goes into if it is like is this editable by a content area Maybe the permission required to drag things in it We don't really know because we're just at the beginning of figuring all this out But we would love to have your help as a matter of fact if anyone is interested in working on this at all Please come talk to us And give us your cards and all that kind of stuff because we really want to put a lot of focus on this This is a major focus with within aquia too that we're gonna try to really beef up our community contributions in this particular area significantly I've got two questions First one. I noticed you didn't use like jumella or WordPress or Tbo3 or any of those Other CMS's and I wondered why maybe because they weren't as good as the ones you mentioned in content editing That's one reason the other reason is if we can do this We beat those guys out of the water. I mean they can't do this stuff, right? They don't have like whizzy or WordPress has like an inline It doesn't have an inline editor at all It has a whizzy way editor on a text field and I think jumella is the same But I don't really know yeah, that's so we could do this Drupal would suddenly become a leader in ux in the open Source CMS thing and that's exciting So that's really why we're striving towards like what is the best of the best regardless of what their licenses regardless of what? You know whether they're like a direct competitor of ours or not Let's like actually look at the landscape and see what it's like So I mean also aquee a bot all the WCM and forced or wave reports and everything like that that I combed through in and read and You know developed a score in rubric for 11 different CMS systems that were part of the evaluation that we consider like peer systems and stuff like that And all that data is there and trees actually is part of in this keynote with those cool little spider webby radar graphs So that is all compiled based on a pre-throw analysis of the stuff that's out there I mean we care about that from from a sales perspective You know not necessarily the core contributors really care about that from a sales perspective You know it's important for us as aquee as a business to understand where competitors are at So a lot of this data is coming from there But the spirit is hey we want to be leading ux and I think that that's really the message that we want to come Through it today is like we want triple to be a leader in the authoring experience not just in the technical leadership show My second part of the question is because I'm a project manager you have a bunch of links there But if someone wanted to start What do they start with did they start with ux they start with like the block layouts is your way still here Hey, what would you recommend on that? Should they start in ux like is this something that you guys have an interest in yeah Why don't you come up to take this this is your way one of our usability Drupal usability team leads everyone give him a hand Thanks Join the usability group the first one listed Is it on him? Okay. Yeah Johnny the usability group first There's a couple of posts there that outliner strategy for the content and creation page there's And Drupal eight blocks layouts thing has our vision document for what we need to get done in order to Get to the drag and dropy stage We need to establish the component library where we make everything a block and we need to establish this new concept of a page Because right now I mean panels does it but core does not really know What a page is so those two? are Basically the foundations that we need to work on To get this thing moving we just I just came out of a workshop above that turn it to a workshop in the Drupal eight blocks group we identified we posted Our brainstorm around one thing about getting our terminology right because there's a lot of confusion about what is a page And we came out with like 30 rough user stories About smart pages like about the context stuff where we derive Pages from page templates etc So where to start usability group and Drupal eight blocks layouts group check those out and you So we're already pretty far over time. I want to go ahead and if you guys can just be quick We'll try to get through everybody that's in the line right now. Sure. I'll try to be brief I didn't hear it come up and this is awesome. I want to turn my team into cheerleaders, but I Didn't hear anything about simultaneous editing and I know there's a little bit I think it was like a summer code a couple years ago, and it didn't quite happen There's some lovely stuff and wave is dead, so we might have some free code there So I don't know if that was gonna come into it if that was been thought about so that that's been talked about Quite extensively. We've done some work around like annotating and tracking changes similar to like the Microsoft word paradigm for that But the value proposition That won't help the Gartner report quadrant on this you know if you only just synergized your sticky blow I don't know right right it's gonna bubble up to the top Yeah No, so we did talk about that and in speaking with Jerry's about it You know his thoughts on the matter were that we need to get this first And then collaborative editing comes later But there is a huge need for that and whoever is able to build a Google doxy sort of a collaborative CMS is Gonna really be leading the pack in terms of of you know an editor experience. It's awesome stuff to that point though Google summer of code just kicked off on Friday and this week because we love to the timing there is awesome This week is the week if you have ideas that you want a student to work on and you're happy to mentor them This is the idea to a proposal so go to groups dot Drupal at org right on the homepage at this moment right now There's a post and you can get involved there and write up ideas for students to work on so if you have the technical Capabilities to mentor somebody but not the time to actually do it that would be an awesome way for you to contribute I actually worry a lot about the Interaction between those kind of interfaces and permissions and the severe frustration that a content editor would experience If they clicked on something and it said you can't edit that Especially if it was like I want to move this from here to here But you're not allowed because you're not allowed to edit that Like that worries me well to some extent you can fix that by like this visual things like we saw in Squiz essentially the only place you could drag drop things had a little dotted outline So you know you wouldn't be dragging it to something else. There's other ways you could do you just like make it red Which means you can't do that you could you could hide things? There's all kinds of things we could play with design wise there I think we could make it intuitive for people to understand like that thing you can do this thing you can't but it definitely needs it needs designers and Like we lack design talent our community a big way at least in our core contributor community So we definitely need help figuring that out, but I agree It's it's something that we need to to deal with carefully because it could be very confusing Hi guys, so I'll keep this super quick mark. I work. My name is Mark Dorsen. I work at Martha Stewart, so I Just wanted to stress how important I think the line is between Configuration and content when it comes to this and I know you mentioned that you think maybe it's more to the configuration side But in some of those examples like on the CQ 5 I think and Overriding stuff for mobile layouts I think for smaller sites and that may be a large part of the Drupal community That seems awesome when you're dealing with big sites with tens or hundreds of thousands of nodes If I told my editors that they had to go and like override stuff for specific note like they're they probably pass out So, you know one of the big wins for Drupal You know when we migrated to Drupal's like we can standardize this for you We can you know build systems around this content So you do it once and we're gonna lay it out correctly in all these different areas So there's like a important line there that I think I'm sure you guys are trying to find so I think that flexible layouts and Like inheritance controls and stuff like that It doesn't mean that we get rid of the idea of templating or that we get rid of the idea of Here is one way that it's always going to be unless you say otherwise And you make a very conscious decision to break inheritance or to change a layout just for that one page You know you want to be able to enable your content authors to have a tool set that does what they need to get their job done And to understand well and to interact with the website. Well, but there is definitely that that caution Around I have 10,000 nodes and all of them are now different and how in the heck do I manage this system that I've created? So it introduces a new problem space for us as well And something we have to be very aware of when we design this and to a large extent What we're trying to do is just fire hose information at you because like I never knew any of this stuff before Chris showed me And I figured probably there's other people like me So it's sort of like not necessarily like let's copy and paste CQ 5 But more like this is how other systems deal with that and we can choose to do it or not But I think that the having the flexibility there is kind of interesting where you as a site builder could decide I'm not overriding inheritance anywhere and my content errors get the same thing everywhere Or you could make the conscious decision that our iPad content needs to be absolutely stellar And so we're gonna make a special, you know thing just for that or whatever, but I think having the choice is important Yeah, you might have answered that I wanted to have a provocative question. Is Drupal 8 gonna have a note form? Is Drupal 8 gonna have a note form? Yeah So it's like is it worth it to we build a note form and the blocks UI and everything if we build the parallel system for it Um, I think it's that we still need the ability to edit things that aren't visual, right? Like the path alias the workflow state the this this this this so yes I think there is still value in editing the tip, but I think we need to attack it on multiple fronts Well, I think it's some people out of their way there wouldn't be but I think that Probably that's not the best case because we don't want to be too jarring at the same time Like having a system like this with the capability of getting to a note form It's great and a lot of people just like you know They're they're content monkeys and they just want to tab through fields and type stuff in and that's fine and we should keep that experience there for people that want to do that stuff, but Creating some richness like this that might eventually replace a note ad form It's an interesting idea Ultimately, yes, awesome. You're gonna make a muck of the other thing is I think we'll always have the note edit form Anyway, because all of this stuff needs to be accessible and obviously someone who with a screen reader is not gonna be able to drag and drop things So we're always gonna have to have that that sort of manual fallback regardless. So yes to your question It's absolutely worth spending time on the note edit form as well We just need lots of people to get everything done at once. Okay. Yay. Thanks everybody