Drupal Step-by-Step: How We Built Our Training Site, Part 1


This is the first part of a two part tutorial on building a site in Drupal 7. In this webinar, we’ll look behind-the-scenes at our site Training.acquia.com built in Drupal 7. We’ll also look at how the site was built to be flexible with room to grow, so non-technical content editors can make future changes to the site easily. You’ll also get an overview of great modules to make your site easier to extend and customize.

You will learn about:

Click to see video transcript

Moderator: Today's webinar is Drupal Step-By-Step, How We Built Our Training Site Part One with Dave Myburgh, who is the senior engineer here at Acquia. We're excited to have Dave on the call. Heather James will also be on the call, who's the Manager of Learning Services here at Acquia.

Dave Myburgh: Today, I'm just going to go through some of the site architecture and construction of how we moved our old training.acquia.com site from Drupal 6 to Drupal 7. A little bit about me, I'm a senior engineer at Acquia. I've been here for about two and a half years now. I'm the lead engineer on acquia.com I also have a bunch of other small sites that I look after, including now training.acquia.com.

The things we're going to cover today is a little bit about the site architecture, some of the modules that we used in building the new site. How we put together some of our content types. We'll talk a little bit about the data migration from Drupal 6 to Drupal 7. I'll show you some interesting views where we throw in a couple of arguments on contextual focus. Then in the last two little bits we're going to talk about how performance got improved a little bit and how we made maintenance easier for all of us involved in the site.

Who will benefit from this talk? Developers and site builders mostly. If you have some experience in Drupal, that will definitely help you out a little bit, but if you're new to Drupal as well, you'll definitely pick a couple of interesting and useful tips.

Just a preview of where we were and what we ended up with. On the left is our old training sites kind of 90’s style looking and I think we did a fairly good job upgrading it to a more modern look. Definitely a lot easier to use now as well.

Some of the requirements for this project; we wanted to keep the basic site architecture the same. The landing pages, content types more or less the same. We did drop some content and we did add one or two new things, but for the most part the main architecture is more or less the same. What we wanted to improve was a better editing experience for us as admins as well as for the partners, who are actually creating the events on the site for us. We wanted to better handle the Events Status, because sometimes we had issues where an event got cancelled and it was a complicated process on how to manage cancelled events. Publishing Workflow, we wanted to help make that a little bit better and if I need to use the management for the partners on how to deal with the bunch of stuff on the site for them to make their life a lot easier.

Some of the building blocks. Right. I'm streaming to a demo. I will show you a little bit of the site looks like right now. Here's our front page. I'm just using a local copy of the site just so that we don’t have any issues, technical difficulties. The site focused on events. We're going to look at the upcoming events. We have a nice map and at the top, we show online events and then we show our various in-person events. I'm just going to pick one of these guys. There's one group of module development.

This is the Event Page. We have all the various important information on the right side. We show some information about the course that the event is going to be doing. Click through unto the course that's related to this event. It'll tell you all the details; the level, the track that the course is in. So several courses can form a part of a certain track. You'll see the upcoming events for a particular course. I'll click you through to the track. So this is for developers and these other courses that you can find for this particular track. So we have three content types here that we're look at now. We're having an event node which has a node reference to a course which itself is a node reference to track. All right. So that's basically an overview of the most important part of the site.

All right. So next. So our main site architecture; events, courses and tracks. We have a couple of static landing pages for general information. I think resources, private training, that kind of thing.

Let's look a bit more in depth at some of the content types that we have. Event Nodes. The Event Nodes have the location, the date, the cost. That's the actual thing that you're going to be attending to learn about a particular subject. The Course Nodes, which are a node reference from the event have the learning objective, the pre-requisite, that kind of information. Finally, the Track Nodes are simply a grouping of courses. Like a category but we're using node reference to link all of those together.

Event Nodes. These are created by our partners. They have, like I have mentioned already, a node reference to a Course Node and by the node reference we actually displayed the course information or a brief part of that information at the top of each event node as you saw. The address for the actual event is handled with the Location Module. In fact, our Drupal 6 site and our Drupal 7 site both used Location Modules. That actually made our migration, which I'll talk about later, a little bit easier. Events can be in-person where you go to a place to actually physically attend it or they can be online. That designation will affect the display of the map. If it's online, obviously, there's no physical location so there's no need for a map.

Then we have Events Status Options. So when the partner is actually creating the nodes, they can set the status of the event. We have a Draft Event which is not visible to anybody. We have Cancelled Events which are, as well, not visible. Then we Tentative Events which are events that are probably going to happen. Finally, we have Confirmed Events. I don't know if you'll be able to see those two, but I'll show you a bit more in depth later. Some of the content type changes are quite nice, especially moving to Drupal 7. We have vertical tabs which make organization of the various fields a lot nicer visually. It's easier to follow the track of the node from where things are. It just makes it easier for everybody to handle.

All right. A little bit more detail on the Events Status thing because this is one of the more important features that we added to the new site to help everybody. As you can see, the field is a list field using radio buttons. So you can only select one thing at a time, obviously, and depending on which option you select, different things will happen to the node. You'll see a different badge or button displayed on the actual node itself. As I mentioned, draft and cancelled events are unpublished so people don’t get to see them - the point is if it's not happening.

Tentative has the orange button. Confirmed is green. We actually use pre-processed field function to install the button. Adding a class to the icon and the pop-up text. When you hover over something, you'll see some interesting texts. Particularly the Tentative Events, we link to another page which explains what the event is. Those buttons then get displayed on each Event Node right next to the event detail.

Let's have a like at the node form. I'll show you how the Event Node has put together. So I'm just going to use this same event that we looked at a little bit earlier. We edited it, we got the title, the usual kind of thing. We have our node reference link to the Course Nodes. So we just simply list the various course nodes to choose the one that the event is going to be on. Our Events Status is positioned just at the top right. That's pretty important so we did some special formatting just to have it nicely positioned. The regular body - just so in case you're wondering, I'm using [BU] editor as the default editor. I don’t personally like [BU Editor], they do weird things. Hopefully in Drupal 8 that will be much nicer.

A couple of other things. Text Formatting Help. I just took that out of the way. Here's a signup link. Each department will have their place that we actually go do the signups. We've grouped some of the details together in a vertical tab. So dates, costs, delivery, and the language. Location is the Location Module. You enter in your various address details, you got a little nice map that automatically geo-codes the latitude and the longitude which we'll then use later on the main Events Page. All the Event Nodes get shown here. Then Provided is just a bunch of things that will get provided at the event.

That's what the node form looks like. This is what the partners and the administrators are going to see. Let's have a look at how this was put together. Content types, and then managed fields. Using Field Group Module allows us to group stuff really nicely. Status for the Event Status section. That is a couple of external things we can add. Different types of fields, not just regular field bits or in case the details of the vertical tab. This one is using a HTML 5 site field type. It's just a way to differentiate. That allow us then to target the status field group and stick it over to the right. The rest of the stuff is just the main body. Group things together nicely. You can add classes and stuff to do whatever special styling, kind of things you need.

On the display sites of managed fields, this is what the form is going to look like when people edit the node. Display is obviously what gets shown up on the front end. We have Event Details. We have basically status, body and location. That's the only thing that gets shown through the node display settings. But if you remember, we have all the actual event details on the right hand side and that's done with the View and I'll show you that in a little bit later as well.

That's just the basic idea of how we put together at least the Event Nodes type. You can see here we use the module as field formatting class so that we can actually add specific classes to the fields for output. Sometimes, the default classes that Drupal has are not what we want or they're too generic. It’s always nice just to throw in your own classes. It allows you to do fancy things like have generic classes like adding a margin to the left and to the bottom if you want rather than having to style and add a specific CSS thing in your custom style sheet. You can just add in existing classes.

Let's carry on here. Some of the modules we used for that field formatting class like I mentioned, it's the custom class on a field for display. GMap actually outputs the map on the node themselves and uses the location information. Then obviously, Location is for adding the address. It does the actual geo-coding on the back-end for us.

Data Migration. Initially, when we said okay, we're upgrading from Drupal 6 to Drupal 7, the initial thought is usually, “Okay. You just run a regular update.” But with any site that has more than like one or two content sites, usually you're going to run into some kind of weird problems and you end up spending a lot of time trying to fix stuff. My Preference, and I don't think I've actually ever done a regular Drupal 6 to Drupal 7 update, is to actually migrate data.

There's a couple of advantages to this. One is that you can exclude data that you don’t actually want anymore. You can also finesse the data, or tweak it a little bit if you need to change some stuff. Sometimes, an old site might have the date in a weird format and you want to use the UNIX timestamp in the new site. During migration, you can actually do things like you can actually change the way the data is. To migrate the data in this example in the site, I used the Migrate Module.

Now, in other modules that I used that works with Migrate is called Migrate D2D. This is a Drupal to Drupal Migration Module. It's build specifically to migrate Drupal 5 to Drupal 6 to Drupal 7. In fact, this is more or less I think what's pretty much going into Drupal 8's core setup, which is kind of nice. The nice thing with the D2D Module is it gives you a user interface, but the one caveat at the moment is that you need to use these two specific versions of the module; the RC1 of Migrate and the 2.1 B21 of Migrate D2D. Without those versions, you don’t get the user interface. So just be aware of that.

The way we did the migration is we initially first migrated our user across. What that does is it allows the old user IDs to be matched to new user IDs. Then when we import our content, say, Joe Shmoe created a page or also an event or something, his new user ID which is probably going to be different in the new site will then get correctly assigned to the node so you don’t lose your authors for the various bits of content.

The other thing you better watch out for when you're migrating content is that you migrate content in the right order. So users usually come first. If you have files to migrate, you want to migrate those pretty much next. In our situation, we have Tracks, Course and Event Nodes which are all nodes referencing each other. We want Tracks first because Courses need them, and then we want Courses before Events because Events need a node reference to Courses. You've got to migrate that content in the right order. During each migration of each type of content, a map is created by the Migrate Module and the map says, “Okay. This is the old node ID. This is the new node ID.” When I'm migrating the Event Nodes and I'm linking to Course which had an old node ID of, say, 25. The new node ID is what, 300 or whatever, it will map correctly and you'll get data linking to the right stuff.

The only custom work I had to do in this migration was for Event Nodes, which is one of the major benefits of Migrate D2D. That's the link for the module. It gives you a very nice user interface where you can click what the source and what your destination fields are going to be. You can manually set some fields, and basically you have to write a whole lot less custom codes. I don't think if you can see this too clearly, but basically on the left-hand side you're going to get your destination fields.

This is all running on the Drupal 7 site. You already have your content types created with a field that you want. So they're all listed on the left-hand side. The source field, which is the next column, you get a dropdown for all the fields from the content type that you're importing from and you can map them to whatever fields need to be. You can set a default value, which is the third column there.

Then in the last column is called the Source Migration. Once you've migrated anything like your users, you can what they call a Source Migration. That Source Migration is the mapping of the old user ID to the new user ID. If we were importing Event Nodes here, you would a Source Migration for your Course Node reference field so it would then map the correct course node IDs to the new nodes.

The custom module that we did for the events, I had to do that. There was no avoiding it because Migrate doesn't know how to handle the location field at all. I think it was called CCK Location in Drupal 6, and it doesn't have any migrate settings for that, so I have to do it manually. The location is obviously on the Event Node. We also didn't want to import all the very old events. We just want to basically the most recent and anything obviously that's going to be still coming up.

Let's have a quick look at the code that I did. This is very, very simple. If you didn't use Migrate D2D, you would then have to create the same custom module but you would then physically have to write in here all your mappings for each field. What your source field is, what is the destination field is, all that kinds of stuff. You'd have to basically write a whole lot of codes to do that. In this case, the most important thing that I needed to do was make each location field - so address, address to, cities, state, country, that kind of thing - available as options in the Migrate D2D UI. Then I can just simply map it to the new fields. What we do is, in your migration class, you create a new migration class and you basically pull in the main query, the database query that Migrate is going to be doing. You join in the tables that the old Location Module in Drupal 6 used.

The last line in the field, basically you say which fields you want to map. So if for whatever reason you didn't want to map the latitude and the longitude field, you could just exclude them. You don’t list them there and then they don’t show up in the UI. I pretty much just took every single column and if I didn't want to use it, I simply don’t map it in the UI. I just leave it blank. By doing this, I would then have all the location bits of data. A separate field that I could then map to the new location field in Drupal 7.

The other thing we wanted to do was exclude the old events content. So in the function prepare road, you do this kind of stuff. This allows you to modify your incoming data if you wanted to. Like I mentioned before, if your data was in a weird format and you wanted to change it to a different format, you could do it here. The other thing you do is you return “false” or something and that basically makes sure it does not get imported. What I did is I checked the event dates which is using value “2” which would be the end time of an event, making sure that that has passed. I check what the current time is right now, what the time I'm doing this migration. If “now” is greater than the event date; in other words, has the event passed? I return “false” which means, “Just ignore it. Don’t bother with this road. Leave it alone.” Then afterwards, you just need to return “true” and so if now it lists an event date; i.e. the event in the future, it's going to return “true” and it will continuing doing with whatever it needs to do to migrate the data in.

That's literally all that I needed to do and write custom code for the migration anyway. A lot easier than having to write hundreds of lines of code to do mappings and that sorts of other things.

I want to do some interesting views. Most of the content is normally accessible. We don’t really to do anything fancy. Except for if you want to have content displayed in a nice way in certain cases like the events having all the details on the right-hand side in a little block. The simplest way to do a lot of our stuff is using Views. Views is great because it has caching. You can do pretty much anything you want with it and it's the most used module, so everything works most of the time pretty well. We have used Views in various places to show things like upcoming events, the courses in this track as you can see here. These are all using contextual focus and, in some cases, relationships to actually pull in the data from other nodes that are linking to your current page or actually in the case of the event sidebar, showing content from the Event Node itself in a block. We do it on Event Node, Course Node and Tracks and I have a couple of administration views for some advance content management where I can search titles and that kind of stuff. The default Drupal content admin is lacking a little bit in some cases.

Like I said, Event Detail. This is actually a block created by Views and the View actually just pulls in the fields from the node that it's actually on at the moment and throws them into a block. Let's have a look at how that View is built.

This is the Event Detail Block. Basically, we're just creating an unformatted list. We have the field that we want to show in that block; signup, costs, state, all that kind of stuff. Obviously, always by default have it published and content type is for events.

Now, how does Views know what node it's on and what field to actually use? If you just did it like this and you can see it shows you just basically get the fields every single event node on the site, which is probably not what you want. We use a thing called Contextual Filters. Now, we use the node ID as a contextual filter. Let me show you how that's configured. By default, it says display all results from the specified field when both the values are not available. But what we do is we select provide a default value and the default value - you could specified a fixed value but we use the content ID from the URL.

If you look at an event node on our site, the URL is events/something and the name, the title. So it's using URLs. But in reality, the actual node URL is always going to be node/a number. In fact, the node ID. So Views knows this and it can always find that ID. It pulls in the I'd, it loads it up and it looks for the use fields and then generate a block for us. This is the node ID of that same node that you saw a little bit earlier, the Event Node. If you don’t have anything here, by default the query shows you nothing. There's no node ID.

Update the preview and you see all the fields. This is just the fields and they're pretty much they're in a raw state. We'll do some pre-processing on the View field to make them look all pretty. You can see it provided for you is just a straight text in-person, but when you actually look at the display here, it looks a lot nicer. Basically, what we're looking at is a simple contextual folder we're were pulling the node ID from the current URL of the node. So it knows, “Pull the information from this node, not any other nodes.”

Now, if we look at our Course Nodes, on our Course Nodes we show a block of upcoming events. These are events that have a node reference to the node you're actually looking at. So I call this a reverse node reference or a view using the reverse node reference. It's a little bit more complicated. Here's the View. In that table, we want to be creating a table, obviously. We want to show the title, date, cities, province, various information. Then we throw in a link to actually go to the Event Node itself. We have some folders. We have the exposed dates folder and country as well as an exposed folder. The magic happens in contextual focus again, using a node ID, as well as in this case, you need to use a relationship.

Because right now, if you used a straight node ID and you'll see it's being to be using the same setup where it uses content ID from URL. If you do that, you're looking at the Course Node because that's the node you're on at the moment but you want the Event Node that actually reference this Course Node. So we need to use a thing called a Relationship. Basically the only relationship that you can use are node reference fields. So we're using the relationship of field course, which is the field name that we use in the Event Node.

We just simply add it in and then we make sure that our contextual folder, content node ID, is actually using this relationship. By default it does not use the relationship, but like I said then you'll only be looking at the Course Node you're on and obviously you won't find the event fields. We use the relationship, it can then go through the reverse node reference and find event nodes that are referencing the node you're on and then show the relevant data.

Don’t worry if this stuff sounds a bit confusing, because it is. I struggle through it about how to set up these things. Once I've done it, I write down my instructions on what to do so, “Okay. User relationships, use the relationship on the contextual folders for the node ID.” That kind of stuff. Then if I don’t use it for a couple of weeks or a couple of months, I always forget. I just go back to my list of useful tips and find out how to do it. These are somewhat complicated things. They're not very intuitive. That's probably one of the more complicated kind of setups that we have for Views. We do this kind of View in various places. You can see it on the Track Nodes which list the courses that is using the same setup.

A little bit on improving performance. The biggest performance gain that we really got was just using Drupal 7 over Drupal 6. It has been caching of modules we use as much as possible. We have very little custom code. We only used custom code when it was absolutely needed. We try as much as possible to do everything with Views like you saw. I mean, you could write custom code to generate the blocks yourself but why do that when you Views. It does it all very well and has great caching. We actually only have eight blocks on the entire site and seven of them are actually created by Views. We have one custom block that creates the login link and it will use a profile dropdown when you're actually logged in.

Then performance-wise, for myself as the admin as the developer on the site, we were initially on SPN which is horribly slow. We managed to switch over to get the new site and it just makes my life a lot easier.

Maintenance. This one of the things where us as the admins, we're struggling a bit with handling a lot of the data and the content, dealing with certain events not happening or cancellation as I mentioned. So we created the Event Status setup, which depending on what radio button is checked, the Event Node will then automatically be published or unpublished. We do it using the Rules Module. So it will enter the value of that field and do stuff accordingly whenever the node is saved.

We gave our partners a lot more power to manage their own events. The screen show on the right is what a partner would see when they log in. They can see all their events. They can filter automatically by Confirmed and Unconfirmed which is Tentative and Cancelled events. The partners are the only ones who can see Cancelled Events because they're unpublished. We gave them bulk operations on each of these lists so they could then select the whole bunch of events and say, “Okay. All of these are cancelled.” Or, “All of these are confirmed.” As we go. We gave them also the option to override some of the stuff that's published and unpublished.

On the admin side, we use a theme called Shiny. It gives you nice big buttons. The text is a little bit bigger. It handles a lot of contract modules, like Views. It has scheming already for that just to make our life a bit easier. We could use 7, which is built in Drupal 1, but there are a few things I didn't like about it too much. Shiny just looks a lot nicer and fitted more with the front end view. The front end theme is Bootstrap. It looks a little bit like it. We can't actually use for the Bootstrap as the backend because Views does not work with it. Bootstrap requires jQuery 1.7 and the Views UI tends to break horribly if you do that with jQuery. We run jQuery update on the frontend but not for the backend.

Custom Site Module. Pretty much every site I've ever built is at least something that you want to write custom. You want to modify a couple of things, maybe tweaks to the user interface. On the admin side, override some theme functions. Field processing, that kind of stuff. You can also do some of those things in the theme layer as well, but sometimes you also just want to do in the modules so it's always ineffective regardless of the theme. So in Our Custom Site Module, we have things like collapsing the text format information. Below text areas, usually on the Drupal site, you can have a bunch of information about the text format using full HTML, those kind of things. Most of the time, people don’t really need to see that stuff as it takes up space.

I basically did essentially like a full alter and wrapped that whole little thing in a collapsed field set. Just using regular Drupal collapsible field sets. So it does it all by itself. I don’t have to write any JS or anything for that. I also added a documentation link just below that that information, so it's below the text area. That allows people who are editing the nodes if they want to add in some classes, to get some kind of an effect. Maybe to make a button or a panel or something like that. They get a link straight to Bootstrap information. They can see what classes they need to use, how they need to set up an HTML if they want to do that. That link was added in as well just to make life easier for everybody.

Then the Custom Side Module is also going to include some custom actions, which is what you saw with the partner/admin Cancelled, Confirmed, Unconfirmed events. Those actions we created and they're all in the module. Lastly, we use the module for the exportable. So Views, Rules, whatever else you want to export. All right.

That's pretty much it. If there are any questions, feel free to ask them now. I'm just going to the next slide. I'm just going to show you is, some of the modules we use that I may have not mentioned earlier. One was draggable Views. That allows our admin side people to reorder stuff in tables on our course listing views. You want to be able to reorder the courses randomly. It's easy to drag. You just look at page and drag it around. The Google Analytics EP Module allows you to add custom Google Analytics events on things. You just write a little bit of code. It's very simple AVI. You write some code and basically, you can say, “Okay. On this track, every button clicks to this button or for that link.” It will do it and automatically feed into your Google Analytics account. You'll be able to see events there of how many times people have clicked on Google and those things.

The other one, Menu Position, is for bread crumbs so you can say, “Okay. All Event Nodes should fall under the Upcoming Events menu item.” Then they get the right breadcrumbs. Just simple things like that's pretty much the main module to use for the site and use both operations obviously. That's pretty much it. Custom Modules, the Migration Module and the Toolkit Module. That's it. Any questions?

Heather James: Yes, I have a question, Dave. [Laughter]

Dave Myburgh: Sure, go for it.

Heather James: Yes. I don't know if I ever asked you. I'm curious, why did you use Views? I'm talking about the event display and the detailed information from the event, you put it over into a visual sidebar but it's obviously all the same node. Why did you use that instead of Display Suite in this case?

Dave Myburgh: Yes, a good question. I have used Display Suite on other sites and I do like it. We're only really doing something fancy on Event Nodes, so I don’t really see the need for slapping in the whole mess of things that Display Suite to do something fairly simple. If we had more content types and we needed to do more fancy stuff, yes, we could definitely switch to Display Suite to do that. Literally, this is the only content site where we were doing something like this. I did add some little JS to make this thing sticky. That was the other reason I wanted it in a sidebars so that when people are scrolling down, they'll don’t use the signup link as well.

Heather James: Right. Oh, very good. Well, another thing I wanted to know then about this issue, this choice that you're going to use, is obviously someone might hear this and think, “Oh, boy. There's like a map every time an event is loaded.” But you've obviously done some caching because it's a very speedy site.

Dave Myburgh: Yes.

Heather James: Could you show us how the caching configuration on that View?

Dave Myburgh: Literally, you don’t have to do anything. You just run it. You set up your View and it's automatically cached for you. The other thing is we use Varnish as a frontend cache. That also helps. I literally have not selected any specific caching. The default uses caching. It works fine with this setup.

Heather James: All right. Creative, cool.

Dave Myburgh: It's pretty straightforward. There's no craziness that you have to do with using Views. It's built-in cache is pretty much sufficient for everything.

Heather James: Cool. I was going to ask questions about like the use of Twitter Bootstrap and Views and then I realized; oh, we're going to actually talk about that next week. I'm really excited about that. It's made my life so much easier as well.

Dave Myburgh: Right. Yes. So yes, next week as Heather mentioned, we're going to talk about the frontend side of the site. How we used Twitter Bootstrap; how Views and Twitter Bootstrap can work together quite nicely. Grid system, responsive layout and all that kind of stuff. One of the cool things with the site and in fact, I didn’t mention it earlier is that the whole thing is pretty responsive and works really nicely on the mobile phone as well. It all works out-of-the-box for Twitter Bootstrap. You don’t have to do anything. You have to tweak a few things here and there obviously, but for the most part, it just works straight out of the box which is great saving me a little pain and something.

Heather James: Yes, and it all comes free. There's so much stuff that comes free with the Twitter Bootstrap. It's kind of shocking.

Dave Myburgh: Yes. I mean, all these buttons are just bootstrap classes. This little popup that you see in the black, that's just a bootstrap thing. There's a lot less coding and customization that you have to do with Bootstrap.

Heather James: Brilliant. Oh, gosh. I'm actually amazed. Hanna, are there any other questions from the audience?

Moderator: Yes. The first question that came in is; in pushing from SPM, did you just start with a new “get repository” or is there a tool to bring over all the history that is in SPM?

Dave Myburgh: I believe there is a way to bring SPM history across, but because the site is in Drupal 6 we didn't really bother. We didn't have a huge amount of history anyway. I literally I got the SPAM checked out and then just made that into a rule to delete the SPAM folder. It was pretty simple and then did the Drupal 7 Bootstrap on top of that to override the whole thing.

Moderator: Great. If anybody has any additional questions, can you please ask them now? Okay, I think that's it for questions. Heather and Dave, do you want to end with anything?

Heather James: Well, I just wanted to say I'm so glad that you could come in and do this presentation, Dave. The whole site is just so simple and really elegant. It's kind of funny when you're showing some of these tricks, it's like, oh, it means I didn't have to do a lot of work. I love your version of lazy [Laughter] and doing things in an easy way.

Dave Myburgh: I figure if I do things simple like that, it's actually going to save me a lot of time and you guys didn't have to come back and say, “Oh, wait. We need this fixing. We need to do this.” It's pretty much all done automatically.

Heather James: Yes, thanks. I'm looking forward to next week, too.

Moderator: Great.

Dave Myburgh: Yes, thanks everyone for listening.

Moderator: Yes. Thank you everyone for attending and thank you, Dave and Heather. Dave especially for the wonderful presentation. We can't wait until next week. The slides and the recording of the webinar will be posted on the website in the next 24 hours and we'll also email you a copy. Thanks so much everyone.

Dave Myburgh: Thanks, bye.

Heather James: Okay, bye.

Customers: You Asked, We Answered: Introducing the Highly Anticipated Features and Capabilities


Our engineers have been working hard to get our customers’ most requested features ready for you! What’s up their sleeves you ask? That’s a great question! In our upcoming webinar, we’ll review new tools and capabilities that make site management and troubleshooting even easier.

Just sit back, relax and learn. We’ll demo it all for you, including:

Get Certified: Acquia Certification Program


Join Peter Manijak, our Global Certification Lead, and Ben Ortega, Director of Learning Services to find out about Acquia's newly launched certification program. We'll show you what credentials can be earned and the roadmap for future exams. We'll also show you what the certification process is like and how to prepare yourself to achieve an Acquia Certification credential.

In this webinar you will:

Click to see video transcript

Moderator: …seminar is Get Certified: Acquia Certification Program with speakers Peter Manijak who is the Certified Program Lead for this program, Ben Ortega who is the Director of Learning Services here at Acquia and Heather James, who is the Manager of Learning Services here at Acquia. We’re really excited to have all three of them on the call today so thanks very much for taking time out of your day. Peter, you’re all set to start.

Peter Manijak: Okay, thank you very much. We are going to start off with introductions and actually, at this point in time, I was hoping that Ben would introduce himself first, and then Heather, and then myself.

Ben Ortega: Alright. Hello everybody, my name is Ben Ortega. I’m the Director of Learning Services here at Acquia. When I’m at play in the office, Heather, Peter, and Prasad, who you’ll learn about a little bit later this afternoon, we helped create learning programs for Acquia’s clients, our partners, as well as the community to help teams develop and deploy rich user experiences using Drupal as their web development platform. So I’m looking forward to this conversation and I’m looking forward to your questions.

Heather James: Cool. Well, I’ll introduce myself. I’m Heather James. I’m the Manager of Learning Services and I’ve been using Drupal for a while. I’ve been with Acquia for a while and so I’m really excited because I’ve been talking about certification within the community for a long time and this really is a dream come true and a plan that’s been long in the making so I’m really excited to talk to you guys about it today.

Peter Manijak: Okay. Thanks, Ben and Heather. So this is Peter Manijak and I’m thrilled to be here. I’ve been part of the team since November. Ben brought me on board to build the certification program and we announced it very recently and we’ll go through essentially the whos, whys, whats about the program. I do have some experience doing this sort of thing. I’ve got about 14 years experience launching major certification programs and I’ll tell you, this program here is one of the most exciting efforts I’ve been part of. So with that, we’re going to spend some time talking about the program, why we built it, the benefits, how we built it, exam details, what the exam is like, a sample question, and also some helpful hints along the way towards the end on how you can best succeed in taking the exam.

So moving forward, why did we build this? Essentially, we looked at the industry and the industry had a gap. Essentially a certification program was something that’s been missing for quite some time and that the timing seemed to be right or it is right now to create such a high stakes certification program. One of the things that we also want to do is we want to create creative awareness and use of Drupal and we believe that this program will do this. At the same time the certification program will provide paths for skill development. You’ll be able to figure out what you need to know along the way. When you actually are taking an exam, you’re being measured. What we want to do is we want to measure objectives, skills and knowledge that matters. That’s one of the key goals during this whole process and through any exam and that at the end of the day, this exam will matter and be of value to you. So the benefits we believe that it will absolutely establish your credibility. It will make you more visible within the marketplace. You’ll gain a formal certification in a dynamic field. We don’t have a registry just yet. We’re working on a registry so when people do obtain their certifications, they’ll be able to validate that they’ve earned them, send other people to validate their credentials as well. So we’ll make sure that this is going to be available in the near future.

So how we built it, one of the key things that we looked at, we wanted to determine the goals of the program, what is it that we wanted to do from Acquia’s standpoint, what was good for the industry, how we can - for instance, how we can raise the profile of Drupal is one of the key goals. We then conducted an audience analysis: who’s out there, how many people are out there, what would be of value if we determined the framework of the program and the roadmap? We’ll get into the roadmap that we have in place today a little bit later. Then one of the key activities is we conducted job task analysis around the key roles that we discovered were in the marketplace. Once we were able to do that, we created the exam blueprint which is available for everybody to see. So it lays out the skills, tasks and knowledge that we expect people to have to be a certified exam developer. Then we lay out also the objectives so you can see what is being tested. Of course, one of the key elements is we brought in subject matter experts from Acquia in a workshop to develop and write scenario-based questions that will measure and validate your skills and knowledge to be an Acquia-certified developer.

So with that, we have a high-stakes proctored exam in place today. It’s available on-site globally through 750 Kryterion test centers. Those are the brick and mortar test centers. We also have this test available as an online proctored test which will really expand the reach of the exam itself. We’re going to go a little bit more into detail of what that actually means so you can have some expectations if you were to take an online proctored test. It’s available at the address I’ve posted here.

So for the roadmap, right now, we have the Acquia certified developer exam. In place today, available, people are testing as we speak. The next two exams that we’re looking at, the front-end specialist and the back-end specialist, we’re looking at over the next three to six months working on those exams and having those available. There might be some opportunity for the front-end specialist exam of having the community participate in the development and we’ll be sending out more information on that. There are also other areas that we are looking at. We are looking at performance-based testing as well. So for the immediate future, we have an exam in place today announced on the press release March 20. The other two exams will be coming out. We’ll be announcing schedules as we have a better idea of when they’ll be available.

So for exam details, the exam is $250.00. It’s 60 multiple choice, multiple answer questions. You get 90 minutes and the pass/fail mark is 65%. Again there’s more information on the exam blueprint, the exam objectives. They give you just more information about the exam, how to prepare, what you’ll need to know. For instance, there’s information that tells you which domains the test is actually covering. You can see web concepts, site building, front end, back end. It gives you the percentages of how much is covered within each exam. One of the things that we look at in terms of the developer that we feel that they should know all these areas. This will enhance their skill sets and their ability to work within teams. So that was one of the key driving points when we created and conceptualized this exam. Put together a sample question just so you have an idea of what to expect. The test itself is primarily scenario-based questions. Literally almost all questions are scenario-based. So there are no memorization type questions. We’re asking you to be able to understand a scenario and use your real world knowledge in order to answer these questions. Then you’ll have a choice of options to answer from. Sometimes you’ll be asked to select two out of four or three out of five as well as the one out of four scenarios. The whole idea we wanted to show you was the type of question that you could expect within the exam.

The exam is available today. There is a follow up webinar and I think we’ll have more information on that. What I also want to do is give you some helpful hints. If you are going to register, which we hope you will be doing in Kryterion, do not use Chrome. That could cause you some problems. Use a browser such as IE, Firefox, and Safari. Also, don’t use a second monitor if you’re going to be taking the online proctored test. They don’t like having that in place and they’ll stop your test. There’s also Sentinel software that you’ll need to install when you take the online proctored exam. It’s not a problem to take it off once you’ve completed your exam but it does take a few minutes to set up. You’ll need 24 hours in advance to set up your exam whether or not you take it at a facility or you take it online. We highly recommend you find a quiet place to take the exam. Also, please be aware, you are being monitored. So if something does happen, a proctor will pop in and I know that can be disconcerting but the key is be prepared, use the restroom before you go and sit down to take your exam if you’re taking an online exam. Make sure you are hydrated as well. Be ready to use that full 90 minutes to take the exam.

Some other hints. Just that when you’re taking an exam is that we would highly recommend that you trust your first answer. It’s usually the right one. The one thing that we’ve also seen is that people who are very knowledgeable tend to overthink the question. These are not trick questions. We aim to be fair all the time. We want you to take the questions at face value. If you think it’s the right answer, don’t overthink it. It usually is. The other thing, too, is that you may want to save the longer questions to the end. That’s just a good practice for test-taking just to push it off. That way, you can focus on the answers that take less time. Then, let’s see what we have here next. We have a great webinar with Prasad to help you prepare even better for the exam. I know that I went very fast so I’m guessing there might be a lot of questions and also an opportunity for Heather and Ben to add what they like.

Moderator: Okay, we can open it up for questions and Heather, do you have anything that you want to add in before we did that?

Heather James: One thing I was amazed about just through the process of watching this get pulled together and all the subject matter experts being pulled in is just the amount of – I mean, just how difficult it was actually to come up with these scenarios. I appreciate it now so much more. You’re seeing people coming in with a feedback. They see that, “Oh, yes, you can’t actually just cram for this.” How did you know that this was going to work, Peter? I know you’ve got many years experience in this but why do scenario-based questions work over rote memorization questions?

Peter Manijak: Well, the key part that when you have all the experts together and you have an opportunity for them to hash through what are the pain points and the like. What we do in a very systematic manner is once we’ve established the objectives, we make sure that the questions themselves are congruent, they’re technically accurate, they’re relevant. Those are the three key things that we look at. Does the question matter? If someone could answer it, then that’s great. I guess the question we ask is so what? So what if someone knows this? So we go through this process, “Does this matter?” So it all comes down to “Does this matter for someone doing this job?” So we’re asking people to be able to put two and two together and some [Audio Gap] two and four together to be able to think through the answer. Much different than just memorizing if something is red or green or blue or how many pins or a number that they’d have to remember. What we want them to be able to do is think through the problem with the question at hand and come up with the answer. So it really starts with the subject matter experts being able to identify what really matters and tie it to the objectives. At the end of the day, if you have 60 of those questions, we feel very good that we validated your skills and knowledge as a developer.

Heather James: Definitely. It sounds – sorry. Go ahead.

Peter Manijak: [Crosstalk] okay for it?

Heather James: What’s that?

Peter Manijak: Did that answer your question?

Heather James: Yes, definitely. I feel like I just have so much respect now for your experience and the process. It’s been amazing to see it get put together. I think that if people hear that and understand that that’s what the exam is like, I think they’ll be attracted to take it because developers are problem-solvers and there are 60 interesting problems that are truly challenging. I think people will find it – I know it’s probably strange to say this but fun in a fun, challenging sort of way. So I hope that people take that attitude about it rather than being so scared about it, I suppose. So I wonder, Hannah, are there any questions coming in?

Moderator: Yes. We had quite a few questions come in. The first is is the base ACD a precursor to the specialist exams? So is the Acquia Certified Developer a precursor to the specialist exam?

Heather James: I think they’re a requirement. Oh, yes, you go ahead, Peter. You know that.

Peter Manijak: Yes. We are definitely looking at it to be a prerequisite for the specialist exams. However, when we start delving in into more details around the exam, the exam objectives, and what the goals will be, we may not require it but I think at this point in time, we’re leaning heavily for it to be a prerequisite at this time but the official announcement won’t come out for a couple of months but I would anticipate that it probably would end up being a prerequisite. It may not be a prerequisite for all the exams further down the road but for these two, we feel at this point in time, it’s probably going to be most appropriate to be a prerequisite.

Moderator: Okay. The next question is will you have training classes to prepare for the exam?

Peter Manijak: Yes, absolutely. There’s also material that we list and post on the exam blueprint of the training that they can take but we are in the process of putting together supporting training for this particular exam. So you’ll be looking out for announcements on that as well, I hope.

Moderator: Awesome. The next question is, “I’m a site builder exclusively so I’m strong on Domain 1 and 2 but only sporadically touched Domain 3 and 4. What should I do?”

Peter Manijak: Well, what we try to do is we try to hit the sweet spot for all roles that we feel that you should know a fair amount within each of these sections. We put the pass/fail rate at 65% so what we would like you to see is to increase your knowledge in the areas where you’re weak in and we can help you boost your skills and knowledge level up. I believe that you’ll be able to pass it with some additional training to leverage the deep experience you have in your area of specialty. Then the other thing too is we are – and by the way, this is unofficial but we are looking at a site builder specialist certification as well but that’s not in the office roadmap just yet.

Heather James: Yes, definitely. I’m very excited about that one because there’s so many specialists within the Drupal community and have in-depth knowledge that even say, a front-end specialist wouldn’t know and these site builder specialists will know so much about major ecosystem modules and the contributed modules which we couldn’t really include in this exam and I think that a site builder exam would be very interesting to dig into because you’re talking about when is it appropriate to use various ecosystem modules and what’s the right layout tool or those types of things. So it would be very exciting to put that together. I’m very, very hopeful.

Peter Manijak: Yes, and keep in mind that we set the pass/fail mark at 65%. So we’re not asking people to score a 95 or 100. So we are expecting them to miss certain areas and certain sections. We expect people to be stronger in one area than the other. So hopefully, with a little bit of instruction and a little bit more stick time, you will be able to pass the exam without a problem.

Moderator: Great. We had a couple other questions come in. How long will the certification be valid?

Peter Manijak: Well, what we did is we date-stamped your certification. So you’ll get a logo that says “2014.” So it will always be your credential. It’s just that 10 years from now, if you’re still saying you have the 2014 credential, that may or may not be a good thing. Essentially, we probably would expect within the partner programs to have to recertify every two years. Again, this is part of the partner rules and partner requirements and the channel programs that will be coming out. As with anything, if you are up to date and want to recertify and get your credential in 2015 or 2016, it will be date-stamped as well. The marketplace should be able to recognize it.

Moderator: Okay. The next question is how many times are you allowed to take the exam? Say you don’t pass it the first time, are you allowed to take it again?

Peter Manijak: Well, we didn’t put any restrictions on it but we do flag it if someone has failed three times, that we’ll probably reach out to them. That’s for a variety of reasons but what we do have in place today is if you do not pass the exam on your first attempt, we put a cooling off period of 14 days before you can attempt it again. The only other exception that we would do is if we do an event where we’re hosting the event and we’re having the exams taken at the event and we spent some time with you and spent some time maybe chalk talking and doing some coaching with you. If we feel that you’re ready to retake the test, we as a program office will waive the 14-day period. We really tend to want people to have a cooling off period. I’ve seen people at events where they take the exam and then they go back two hours later. They think they’re ready and they do worse. Then I’ve also seen it where we spend time with people and we chalk talk them and go through the points that they just need to get over the hump and they go back there and they make it. But we’d like to be in person with them before we waive any sort of 14-day waiting period.

Moderator: Great. The next question is what other exams are you considering besides the back-end and front-end specialist?

Peter Manijak: We are indeed looking at site builders very, very hard. We feel that that is a credential that could be very well in demand. The other one that we’re looking at is the architect exam. Now, we’re looking at that being a potential performance based test where we’re going to ask you to do a certain amount of activities. We’ll give you some problems to work on and basically we’re going to ask you to execute and perform. One of the things that we’re looking at is automated scoring so we’ll be able to scale up that program. So instead of people having to come in to Burlington or whatever sites that we’re going to have for in-person performance-based testing, we’re looking at creating an environment where we can do some automated scoring from remote testing. So that’s the exciting thing that we’re definitely looking at. So the architect exam, that’s a little further down the road. The site builder one, I think, could be sooner than we think right now. Right now, it’s not immediately on the roadmap but that’s something we’re looking at. We’re also looking at some lower level qualification type exams, not high stakes, more foundational, people just entering into that marketplace just something to get them going but for now…

Heather James: I think that’s what’s interesting is it would be for people in non-technical roles. So this may be people in project management roles, people in the technical sales role maybe who are just new to Drupal and that sort of foundation qualification role. Just make sure they’ve established that they understand Drupal, the community, how the software works, et cetera.

Moderator: Great.

Peter Manijak: Right. The thing is when we picked this particular exam, we thought this was the sweet spot for the technical audiences to get started with. I hope that answered your question.

Moderator: Yes. Going on to the next question, “Is every exam the same or is there a pool of questions and dynamically changing the test?”

Peter Manijak: This will evolve on a per test basis but the exams will be changing, will be updating. There will be multiple forms as time rolls out. So depending on how each exam gets rolled out, some might come out what are called “Multiple forms.” Some might be a single form for the first month or two and then updated and added in other forms so it’s a fairly dynamic process.

Moderator: Okay. The next question is, “Does one maintain credential by retesting or participating in other activities?”

Peter Manijak: Well, that’s part of what we want to look at in terms of recertification but for right now, we’re looking at a retest. I know that we can look into – we’re essentially gaining credits by attending or participating in other events and so we can look at that but it usually comes down to retesting.

Moderator: Great. The next question is, “Is this certified for a certain Drupal version? If so, do we need to take every time a new version comes out, for example, Drupal 7, Drupal 8 and et cetera?

Peter Manijak: Yes, that’s a great question. This particular one focused on Core Drupal 7 and depending on what your role is, you might be set with staying with Drupal 7. For instance, if you’re in a support role that’s supporting Drupal 7, the Drupal 7 customers, and so you may not have a need to go to Drupal 8 or maybe not right away. As we look at the program, long-term, we certainly see some exams going from Drupal 7-centric or focus to Drupal 8. There are other exams where simply because of the type and nature of exam, it may not be necessary for you or for us to develop an exam per version. That could essentially lend itself to the architect exam where we feel that if you are an architect and you’re able to execute and perform on the exam, that you essentially validated your skills and knowledge as an architect and - but we probably then would just be recommending training to take for new products or new versions but at this point in time, we’d have to work out a case by case basis with the channel or partner programs for requirements. Does that make sense with everybody I hope?

Heather James: Yes.

Moderator: Okay. The next question is, “Have Dries and Angela passed these tests?” [Laughter]

Ben Ortega: I’m happy to take that one. So Angie Byron, you can go to her web blog at webchick.net and she had just posted her results and she has successfully passed the exam. Her blog post actually gives a lot of really great information around how to prepare and what she went through. It would be a great reference point for anyone online who’s considering taking the exam. I would certainly recommend you go there and view that page and see what she went through as she describes her experience of taking the exam. She has certainly successfully passed and Dries, as you know, is our founder and Chief Technology Officer who’s all over the world doing all kinds of crazy things for the community and for Acquia. He has not had the opportunity yet to sit down for the two hours that we grant – or the 90 minutes that we grant for him to take the exams. I can tell you that there is an internal pool going right now for when he’ll take it and what his score will be. So we’re all very anxious to get him to sit down and do that. When he does, I’m sure he’ll blog about it and everyone in the community will be able to see it.

Moderator: Great. We have a lot more questions coming in. Will you only be testing on Core Drupal or also on contributed modules?

Peter Manijak: For this particular exam, we focused on Core Drupal. That may change but right now, we’re trying to stay with Core Drupal.

Moderator: Great. The next question is how do other people verify a certification?

Ben Ortega: Yes, so I’ll answer that one. Our plans are to build a directory that anyone can visit on Acquia.com to verify whether someone is certified or not. The plan is to give those that have been credentialed with the Acquia certification an opportunity to post their profile. We’ll initially build it so that way, it’s validated through the program office that they have successfully passed the exam. Once that’s been built, then they’ll have an opportunity to build out their profile a little bit more. We have some early thoughts about allowing those that are certified to build out some sort of like a portfolio so they can show some of their previous work and help them as they make use of earnings that is gives them credential as a certified developer. That’s in our plans and that’s certainly something that will be coming.

Moderator: Great. How long between taking the test and the notification of the status if you passed?

Peter Manijak: Well, you do get an email if you take it online immediately. It gives you your section report and your overall score and if you go to a test center, you get a printout as well. So you do know immediately.

Moderator: Great. We pass…

Peter Manijak: It will take you two to three weeks to get your credential via email and the logo that you’ll be able to use and display. The logo is for an individual. It’s not for a company use. It’s for an individual to use. However, a company can declare that they have multiple Acquia-certified developers. Does that make sense?

Moderator: Yes. Alright, we’ve had a lot of questions on sample questions and training and I think, Heather, this is a great time for you to talk about the next webinar coming up with Prasad.

Heather James: Oh, yes, that’s actually going to be fantastic because Prasad’s actually taken it so many times [Laughter]. He’s actually obviously involved in preparing the blueprints and as part of the workshops that we did to write the questions, but he also took the exam at a test center. He took it proctored. He knows what it’s like to take the exams and he is going to talk about preparing for the exam. He’s a curriculum developer with us and he’s also involved in training so he really has a great insight into how to help people and we’ve really came to hear about your question and what you're wondering. That’s going to be on April 23 and that’ll be at 11:00 Eastern time and I’m not sure what time in Europe, actually because of the time zone difference but - [Laughter] excuse me, because of the time change. That should be very useful and especially if you have any questions about this, about the exam.

Moderator: Great. So I think that’s it for questions. Does anybody else want to end with anything, Ben or Heather or Peter?

Heather James: Well, actually, I had a question come through. It was interesting. It didn’t come through the Q&A. I think it came through the chat. Some asked, “How do you distinguish between a themer, site builder and developers?” So actually, the way we went about this is we started last year doing research, talking to our partners and our clients actually and tried to understand how teams were built – what are the typical teams and what are the size of the teams and what’s the makeup of these teams, who’s actually building the websites? So we saw some common patterns in small and large teams. We saw things that surprised me. I learned that a themer is like a pink elephant. [Laughter] It doesn’t seem to exist. It actually turns out there are different job titles and they don’t necessarily match up to the rules that people have on the team. So someone could be acting as a themer and be the front-end developer or it could be the junior developer or it could be the senior architect and they are maybe acting as a themer on any role or sorry, on any team at any time. So what this helped us do was to make a determination about the types of skills that were required. We couldn’t tightly tie the exams to specific job titles and descriptions. What we tried to do with this first one, was look at what was the absolute required skill set if you had even a small team. If you had someone like this on your team, you could be successful. So you can actually look at that research prepared and published at the end of last year on how to build a great triple team and it’s there – you can download it as an e-book, read them as blog posts and it should give you a really good idea of the pathways to building this. When I did the research, one of the final topics I was looking at was evaluation, and how do you evaluate candidates. It really impressed upon me from two sides. First of all, that there is a huge struggle for people who are evaluating candidates that didn’t know if they weren’t familiar with the software, if they weren’t familiar with the community. We could bring them to someone’s community profile and talk to them about how to look at a Drupal data profile and they have even a tutorial online how to do that. Yet there are so many people, it turns out, as individuals, they don’t have the time, the luxury of time as it turns out to be able to commit. I know we all want people to be committing but it actually – what I learned is that there are a lot of people for whom making a public profile is impossible through their job or circumstance and that actually is very limiting. I really felt quite passionate about the idea that we could provide people with a chance especially with this first certification if someone is a junior developer to get a leg up and to demonstrate their skills and knowledge. I think that we don’t really know the effect right not but I’m very excited about it. So yes, we answered the question about distinguishing between those different roles but they are, like I said, there are things that we validated out in the wild. If you want to know how we did that, that’s available online.

There was another – oh sorry. Go on. Oh, I think there was another question but it was about taking the exam again without paying but I think you do have to pay. So I don’t know if we’ve missed anything else.

Moderator: No, I think that’s it.

Ben Ortega: No. Yes. I just want to let everyone know that we’re really, really excited about the program and the exam. We’ve received some really great feedback and it’s something that we’re very committed about going forward and I think you can hear that in some of our comments here about the plans moving forward for additional exams around different areas within Drupal, moving into performance-based and all we’re trying to do is just create a program that allows those that use Drupal, those that hire Drupalists to really find the talent that they need to be successful when they build out their web experiences. I believe that Acquia and the certification program are doing that. We’re looking forward to working with everybody as well as the community in furthering the program. So if you guys have any questions about the program that you weren’t able to get answers here, or you want to take off-line with us, by all means, you can reach us at certification@acquia.com and I will get back to you as soon as we can.

Moderator: Great. Thanks everyone for attending and thanks, Ben, Peter, and Heather for the great presentation. Again, slides and recording will be posted to our website in the next 24 hours and we’ll also email you out a copy so you’ll have that. Thanks, everyone. Have a good afternoon.

Ben Ortega: Thank you.

Peter Manijak: Thank you.

Search Engine Optimization Basics in Drupal


Drupal has great SEO out-of-the-box, and Drupal sites typically rank well without putting in a ton of effort. However, if you want to move to #1, there are many tools and tricks you should learn. This demo-oriented webinar will take you through the most common modules, including:

  • SEO Checklist
  • Page Title
  • Pathauto
  • Path Redirect, Meta Tags, Global redirect, XML Sitemap and more.

After this webinar, you will be able to quickly optimize your site content and increase organic site traffic.

Drupal 8 Preview: Content Authoring Improvements


Get ready! Your mobile and content authoring experiences are about to be significantly improved in Drupal 8. In our upcoming webinar, Kevin O'Leary, Director of Design, Office of the CTO at Acquia, will demo the content authoring improvements that will allow users to make site updates from multiple devices with ease.

Drupal 8 Core will include a responsive toolbar that works well on mobile devices, improved image uploading capabilities, an editor that allows you to edit nodes and blocks in-place on the page and much more!

In this session, you will get an overview of:

How to Build APIs with the Services Module


HTML is for humans. With the number of internet connected devices increasing rapidly it's important to make sure that your content, and your business, can be read and understood by machines. Creating an Application Programmer Interface, or API that exposes your content in machine readable formats like JSON or XML is one of the best ways to accomplish this. Drupal core itself, with its concepts of content types and fields, does an amazing job of allowing us to store our content in structured chunks but it needs a little extra help to expose that data.

Kill the Shop Button: How to Inspire Customers with Integrated Content & Commerce Experiences


Customer expectations are only getting higher. They want to review your products wherever they are, on any device, whenever they want. But, delivering on these expectations can be challenging for brands with a disjointed content and commerce experience.

Click to see video transcript

Sasha: During today’s webinar we’ll talk about “How to inspire customers with integrated content and commerce experiences.” I’m joined here in the Burlington office by Acquia’s Senior Director of E-Commerce, Kelly O’Neill, as well Senior Vice President of Commerce Ray Grady. Also joining us from the other side of the Atlantic in the UK are i-KOS’ Managing Director, Myles Davidson, and his colleague and Technical Director of i-KOS, Richard Jones.

Ray Grady: Welcome everyone to the webinar. As Sasha alluded to, we’re going to talk today around trends that we’re seeing in commerce. Specifically, how brands today about B2C and B2B are needing to engage with their consumers and customers in different ways. So what we’ll do, we’ll kick it off with a quick introduction of Acquia and what it is that we do and our value proposition in the space. I’ll then spend some time sharing with you our experiences and what we’re seeing in the digital marketing e-commerce industry, and some trends that we’re seeing both B2B and B2C. Then, I’ll hand it over to Myles. Myles will kind of step you through an interesting customer that he has worked with in the UK that’s doing innovative things digitally and how digital is allowing them to not only engage with their consumers in a unique way, but also get to market differently with new products. Then hopefully, we’ll have some time left in the hour to have a healthy Q & A with the group.

So as I said, I’ll kick it off with a quick introduction of Acquia. For those of you who don’t know Acquia, we’ve been around for almost seven years. The gentleman who invented the product Drupal, which is the largest open source content management solution on the planet, started Acquia in 2007. We’ve grown very rapidly as you can see. We’ve grown 250% over the three-year compound annual growth rate, lots of customers. We’re growing rapidly from employee-bases with offices not only here in the United States but also throughout the globe. We’ve gotten a tremendous amount of accolades over the last couple of years. A couple that was referenced is Deloitte’s Fast500. We’re the fastest growing privately held company on the planet last year as well as good accolades and strategic recommendations from Gartner and from Forester around not only where we are today but where we’re taking the organization into the future.

As I mentioned, the organization is founded on the backs of Drupal. So obviously, we have tremendous expertise in Drupal. We’re pretty bullish not only on Drupal but the overall C-change within technology around the adoption of open source across the enterprise. So we have just some quick stats here on our Drupal relationships. We contributed a lot back to the community. We feel like that’s very important. We have tremendous amount of modules and as I mentioned, Dries not only started and invented Drupal but also helped start this company. We’ve built the organization out very thoughtfully over the seven years, bringing in executives from all parts of industry whether it’s enterprise software, consulting services, the agency world, and you can see where some of these folks have come from in the experience section there.

As I mentioned, Drupal is the largest open source digital community and the largest overall open source community on the globe. Many, many sites as you can see are being powered by Drupal and these sites are doing – these can be internal sites, they can be commerce sites, they can be internet of things sites, as well as sort of brands site as well, but a huge depth and breadth. We feel like our customers in small, medium businesses as well as the enterprise, gain a lot from this massive adoption of Drupal because the more people that adopt it, which means the more people are developing and adding products to the community. We feel as though customers who standardized on these types of solutions can innovate faster than maybe some of our partners in the enterprise space.

So, I’d like to then kind of jump off to some things that we’re seeing within the industry. It’s a unique time to be in digital today. Commerce today is evolving rapidly as rapidly as I’ve seen things. I’ve been in digital for 20 plus years and we’re seeing lots of interesting trends happening out. When we started talking about e-commerce solutions, it was typically a departmental initiative whether it was a webmaster or someone on the technology side who was maybe trying to push a boulder up a hill around an e-commerce business. Today, we’re seeing board level edicts from Fortune50 down to enterprising digital-only customers who realize that digital is their growth channel and e-commerce is their growth channel and that sort of business level sponsorship is driving interesting investments in the space. With the amount of places where a consumer can engage with a brand today, whether it’s on a handheld device, be it a smart phone or a tablet, whether it’s on a social media channel or quite frankly, if it’s in an internet of things or an internet-enabled vehicle, brands need to step out and differentiate themselves. They can’t just take a catalogue and put it online and throw a couple bucks at Paid Search and feel as though they can be in the e-commerce business and in the digital business. So what we’re seeing is brands doing interesting things and we’ll speak to one of those brands today to kind of marry and really get the ethos of the brand into the overall shopping experience whether it’s on site or on third-party retailers as well. Finally, based off my first point, we’re seeing that organizations are having to evolve internally to support the demands and needs of digital today. I mean historically, maybe it was a marketing silo and maybe marketing didn’t interface really well with technology. This is truly a cross-functional group of merchants, digital expertise, technology that now need to come together. We’re seeing organizations having to transform their businesses and transform their companies to deliver on these promises.

As I mentioned, digital is truly changing how companies exist quite frankly. New market entries are entering into the space and are causing major disruption, traditional brick and mortar retail can be challenged if they don’t think through maybe a digital first or a true multichannel approach. So historically, it was very much a silo-based process that our customers would go through, right? They’d get the brand out there. They would merchandise the product which would lead to some level of retail acquisition. Now, we see there are multiple touch points and these things are much more integrated today. So the brand owned versus the brand influenced model has evolved.

Why is that happening? Well, we feel there are many irreversible trends that are happening in the marketplace today. This stat shows just massive adoption of smart phone and mobile phone. Obviously, that has direct ramifications to everyone on this call, on this webinar. Consumers now have the web wherever they go and they can engage with - and not only engage with your brand wherever they go, but they can speak positively or negatively about their experience with the brand wherever they are.

That’s not only on the tablet - I’m sorry. That’s not only on the smart phone, but it’s also on the tablet. So you may have heard sort of the lean in or the lean back approach to communicating, folks having a tablet as they’re watching television with their smart phone next to them. Brands today need to figure out how they can be relevant across all of these different devices in a seamless and cohesive way.

It’s our perspective that brands, as I mentioned, they need to provide an integrated digital experience. These things have to come together seamlessly and they’ve very complex. They’re complex because they’re in different silos within the organization. They’re complex because content can be spread across the organization. They’re complex because they may not own the end destination point of where the consumer is engaging with their brand. So customers today need to take a step back and figure out how they’re engaged across the entire digital life cycle for their customer.

As I mentioned, the folks in the business need to transform how they think through the customer, how they think through the brand, how they think through their product messaging if they’re product merchandising, how they think through listening to feedback from customers, how to handle customer support and customer complaints. We feel as though it needs to be done in a more integrated way as opposed to the silo way that is happening in some customers today, but unfortunately, most customers today that we talked to feel that they’re not ready for this. Obviously, this explosion in digital, the sort of retrenchment on retail based on the market collapse in 2008 and now this acceleration into digital have left organizations ill-prepared internally to really take advantage of the opportunity and really support the consumer in a way which he or she expects to be supported today from a brand engagement perspective.

This trend that we talk about is not specific to the consumer and is not specific to B2C. Business to business commerce is also evolving. At the end of the day, the person on the procurement side, someone in an MRO, someone at a manufacturing and distribution, they may be buying products internally in a B2B world but they are a consumer. Their expectations are being set by Google and by Amazon and by Apple. Oftentimes, the B2B experience falls far short and we’re seeing a tremendous amount of investment in this channel as well.

The smart B2B folks are ones who are applying B2C tactics, B2C digital marketing tactics appropriately in their B2B business. So the ones who we think really understand it are appreciating and embracing the fact that the B2B buyer is a consumer but were applying the right tactics to the right channel

At the end of the day, it’s a proven fact that the more channels a customer has and the more that they’d take a step back and understand the different touch points a brand could have with the consumer and deliver a cohesive experience, the more revenue that these brands can expect to see. As you can see, folks who we think do it and the analysts community doing it correctly, you can see a 44% increase in AOV which is, as you know, one of the most important business metrics in the e-commerce world today.

So that’s just a quick snapshot on what we’ve seen on some trends that are happening. I’d like to hand it over to Myles now to have him step you through a great customer example of someone that we’ve collectively worked with that has evolved the brand and now created what we think is the best in class experience, not only around their current products but have positioned themselves to enter into new markets based on the agility of their business model and their platform. So Myles, I’ll hand it over to you.

Myles Davidson: Ray, thank you very much. Yes, that’s great. It really helps, I think, set the scene and I get fascinated picking up some of those items because we just have the same observations. Hopefully, let me express those through a very relevant case. This little story right now is about lush.co.uk. We’re going to explain who Lush are very soon. A little bit, just to introduce me as well. So as it was said earlier, I’m Myles Davidson, the managing director of i-KOS. We’ve been into Drupal since 2007. Since 2007, we’ve been in to e-commerce but as we’ve seen, our business has transformed in 2014. We’re all about commerce, content, and community leverage in Drupal. We worked for some great brands and Lush is one that we’re extremely proud to have worked with.

So let’s go through some of the stories. By context and background for anyone who doesn’t know Lush because they have a different footprint globally, that they are a highly ethical business. Now, let’s just read everything but they’re all into natural handmade cosmetics. They are headquartered in the UK, which is why you’ve got someone from London on the phone, but there are 910 stores in 50 countries and they’ve got a pretty big turnover. This website, they see as being absolutely critical to their growth plans.

So what were the goals of the project when we started? Well, it sounds like a strange thing to say but more than a soap shop and that maybe slightly UK-centric. If anyone knows the retail stores, they have a really strong smell. You can normally smell it several stores away. You’d get that very overpowering shop in the retail work and that’s really distinctive. It’s a key part of their brand, but actually, what they really need to do and what became fascinating working really closely with the Lush digital team, was to understand that the level of story that sits behind so many of their brands and their ethical values. They just don’t treat ethical programs as a badge to just sign up to. These guys often, when they go and source products, they set up and they manage and they run schemes. Their whole philosophy is to improve everything in their value in their supply chain, which is just wonderful. So really, everything about their kind of goals so I’m going to just say was what they’re looking to do here is that they used the UK as a flagship site to actually create a digital push to improve its global brand presence. As we will see, they’re really doing this through content and deli-style cosmetics. Yes. So there are lots of things in there around about what we’re looking to do and even the soap box. They’re very well-aligned to campaigners and certain charities and they really want their website to also be a platform to talk about issues that are important to their business, issues such as climate change and human rights. They really want their website to engage with people, not just their customers but with people, who are aligned and believe in some of the things that they really believe in so strongly. As we’re hearing from Ray, the story partially of choosing Drupal and the story we found out was with those goals, they absolutely wanted this content-driven commerce experience. I think this is a huge philosophy. That the whole point was every fresh ingredient has got a story, how it’s sourced, what’s in it, and every product has got an inspiration. When their products are made, you see the little sticker on it. It tells you who made it and when it was made. It got these great stories they really want to tell. Community, they’ve got some lovely ideas that are coming up fairly soon. They’re going to be launching fan clubs and that going to be based for the loyalty, it’s not based on price but it’s going to be based on exclusivity. I think that’s really important. All these things are just really important. How, as a brand, they were looking to use digital to absolutely stand up and be clearly counted for what they believe in and really engage with people.

So a little bit about Drupal and perhaps why, where, and how Drupal was chosen and some of the really big criteria that when it came down to it where Drupal wins. I think there are some good points that you can see on there. Yes, a unified platform to manage content and commerce. Yes, what we’re doing in the UK has to pave the way for a global program. Yes, the powerful – in fact, I’m going to take the last two bullets points the other way around. What was really important, design was no way could that design could be inhibited by technology. So a quick shout out to Method. It was the design company who came up with a strong, wondrous design. They took a lot of discussion and lots of convincing to make sure, they wanted to know if in any way will the technology inhibit the design. We proved that it wouldn’t. The website stands great testament to that. Also, I think but what they want there, of course, what the business needed was a really powerful content curation and a really great experience, too. They wanted both sides of the coin. They wanted the fantastic customer experience which couldn’t be held up by the technology, but the business also needed to be able to support that, manage the content, add their new stories, and engage with their people. That’s really where Drupal has, without a doubt, absolutely won wonderfully.

I encourage everyone after this to have a real good look at the screen on whatever device you want to look for it, but just to explain this content and commerce. So what does that really mean to some people? Well, the homepage I think is a great example. Let me just give you a little roll call of what the homepage does and what it delivers.

So the homepage, it blends content and commerce. To give you this sort of content items that’s on there. We have hero products and we have products. We have hero products combined with their reviews and this all fits alongside ingredients and the ingredients that you used within certain products. We also have information about the key values to the business, and we have frequently asked questions, and we have collections. We also have features and featured articles. The really kind of mind-blowing and I think the wonderful part about all of this is all of those items fit beautifully within the design framework that just works on every device that we’ve tested it on and that’s putting it out there. The management of this, all of this information is just curated and is beautifully linked or to use a phrase that I love so much is it’s deeply intertwingled. So I just thought it’s worth labeled on this slide a little part to say what they’ve actually done is create a lovely editorial end product but it’s all link through its sort of taxonomy and classification, and it’s curated easily readily by the customer. I think that is just incredibly important. As Ray was saying earlier, this is a project and it brought together some great domain expertise. I-KOS got the joy of leading this project, developing this project, and providing solution architecture. As with the projects of this size, we absolutely looked for the main expertise brought in and worked alongside in a consulting capacity with Acquia, deployment, hosting. What’s great is that we’ve now got this Drupal project sitting on a platform that’s got the full 24/7 support.

I think it would be remiss not to mention a couple of other partners. We have Method, I mentioned, who did an amazing job of the design and I know we talked about how we worked with those guys and Commerce guys were brought in for some really great expertise around some of the module development on the site. So just kind of what made this project special and this was super hard because I was challenged with the idea of just to pick two things so that we could make sure this didn’t take too long. On the project that we were so proud of, I think we could have picked personalization, how this works with a returning customer, the experience that they get, but I’m just going to pick two parts that I think just showcase some uniqueness to the project. That’s what we call the live style-guide and the kitchen concept. That’s my section. Once we ran through this, I’m pretty much done. So let me dive into the live style-guide.

We retrospectively call this an absolute key to success. As I said earlier, we’re working alongside a design company and this was a very strong design, visually led project from the get-go with lots of ideas. Not only did they have to work across devices, when you look at the side, we’ve got things moving. The homepage moves in about four different directions based on swipe, touch interaction. This presented a lot of challenges for any technology so what we actually managed to do on this was we created what we called a live style-guide or which later became known as the front-end framework because what started off as a method approach typing in doing a proof of concept became the actual front-end code base that allowed us to look at a few points here. We could really test some of the interactive design in the browser. We worked alongside in an agile fashion with the designers, really got things moving fast. It was a really great way to test things out, not just test out the interaction because working with the design agency like Method, it’s not just about things moving, it’s the speed they move, and the feel, and the touch. It was wonderful to be able to deliver the level of tactile visual concepts using this front-end framework or this live style-guide, test it across browsers and device. We know this created a great ROI in the whole project. There’s no doubt about it. This helps.

We’re going to do some - if not podcasts, some blog posts about this in great depth and show a lot of detailed examples of how we kind of brought this whole project down, how we tested it in multiple different ways and how we think this has presented itself as a real beacon of a great way to work. I would say almost in any Drupal projects but it’s the only Drupal project that’s responsive. In case it wasn’t clear, I think there are six break points, seven resting states of this size at the site. Everything on it has been pretty much handpicked and customized.

One of the other things, so the second part, what makes this unique? Well, I think the kitchen, the deli style cosmetics. This is literally a physical kitchen. At the moment, there’s one and I think there’s going to be multiple. You’ve got a kitchen where they’re all making fresh for the day, one or two key products of the day. This is going to become really interactive. They’re going to have Google Hangout integrated. You’re going to be able to follow it on social media. They’re going to make products, they’re going to be able to literally make products live. You’re going to be able to interact with it and you can order that product. It presents some interesting e-commerce challenges as well because you’re talking about the rapid putting up of products, limited stock runs. If I just look at the next screen, yes. This is creating demand really fast and we think already we’re going to see cases where people are just ordering this stuff quicker than it can be made. That’s really exciting because that creates – that’s digital creating a real world problem that can be solved. I think one of their big challenges or one of their big aims here is that this kitchen is not only getting people excited in seeing things happening in real time, that you can order and get it delivered tomorrow, but they’re also testing out and trialing new formulations and new products. So it’s small batch productions. I think what we like building into this part of the interaction was a real sense of urgency. This is a little slide-out which feels very much like an app when you’re using it on a tablet. This just comes out from the right-hand side and we automatically know in this case, this happens to be a kitchen product. It’s a pre-released product and therefore, we’ve had this flag that says, “You have a time limit to your product in your basket. Make sure you check out soon.” That is definitely helping to create a sense of urgency of the experience and something that feels really unique. It’s permeating through the business in so many different ways. Social media is really picking up and they’re engaging with customers so it’s been a great part of the journey.

I think that helps keep things on time because, believe me, I think we could have picked another 10 great features. So we’re going to stay on with Richard who’s the technical director in case any questions get on a more technical note. Please link with us on social media because we want to keep this conversation going and we’re happy to answer questions as they come.

Ray Grady: Thanks Myles. This is Ray. So I think we wanted to make sure that we could give you a sense on the industry, specifically what we’re doing with this customer. We have other interesting customer examples that are leveraging the power of the partner ecosystem that Myles talked about as well as the technology to not only tell a better story and allow brands to become storytellers but also allow them to be very innovative as they think through new ways in which to not only develop products. Products that may be a digital first introduction or a product launch, but market those products - not in real time, but in a much more iterative and rapid fashion based on some of those solutions that we bring to bear. So with that end, I’ll hand it over to the group and we can maybe start the Q and A session.

Kelly O’Neill: Hi all. This is Kelly. I’ve got a question that’s come in around for you Myles just to talk a little bit about what’s next for Lush. So you mentioned this was a relatively recent go live. What plans do they have for the next round of featured functions and evolution of the areas like the curated products?

Myles Davidson: Yes. So there are a few things that are coming on-stream quite soon. Richard is here too so I’m going to prompt him as well. I know that we have an algorithm-based recommendation engine that’s going to come in that’s all based on site-wide user behavior and your personal user behavior. That’s really question of - that’s delivering very much the Amazon style, matching one product with another, but it’s all based on learning. It’s just product learning so that’s coming. That’s going to be coming on-stream. The kitchen which is the whole interaction make-up part, they really want to build that. They want to embed - They’ve met with Google and they’re looking at a really engaging way of using Google Hangouts so that you can literally see the product that you want to order being made and you can really feel like you’re a part of that whole experience. For a brand like Lush, they’ve got some really interesting things, it’s just that they never discount on their brand. They just don’t do it. They don’t do coupons. They don’t do sales, but what they absolutely want to do is they recognize that they’ve got some very, very passionate – they’ve got super consumers, really passionate people who love the brand so they want to absolutely, “We have to offer these guys exclusivity.” So we’re going to really see a ramp up of the small batch productions, the deli style cosmetics, and really providing exclusive, unique features to the people who love them and keep coming back to them. So a real nice rewards program and this is all what’s coming next.

Kelly O’Neill: Excellent. Thank you for sharing. For those of you on the line, if you have any questions, you can just enter them in the chat window as a reminder while we wait for others to come in.

Another question from the group was for you again, Myles. Can you talk a little bit about kind of the life cycle of the project? How long did this take? You shared the design side, but were there other learnings in terms of working with partners to bring this altogether given the number of partners that were involved?

Myles Davidson: Yes. The most significant size, the most stakeholder projects and multifaceted projects that we’ve been involved with, the full aspect of the project was almost a year. It initially started off with Lush who was looking for a totally different project. They were out looking for Lush TV and they found Method because Method had done the design for TEDTalks and done a lot of the – and they met and they started talking about this. This little side project started around Lush Digital and actually, we should be looking at more than just a TV stream, we should be looking at the main website. The first we became aware of this was around July 2013 and at that stage, there was already a sort of proof of concept, visuals, and then a non-coded but interactive design piece. After seeing it, it was like “Wow, how is that’s going to be built?”

There were incredible ideas [Laughter] that came about here. I mentioned that job before, so what really happened is we went into a discovery route, a six to eight-week discovery and definition phase working really closely with the designers, with Lush, and ourselves. We worked with Acquia as well, we did some workshops - in fact, a lot of workshops. I think that’s a key part of this project. Everything was workshopped out extremely well. Then we ran two sort of concurrent agile streams. So it’s the design stream running for two weeks and we had our front-end engineers join that and we’re building that style guide with the designers. Then we got to see the output from that design stream and we were involved in helping shaping it to make sure that some crazy ideas didn’t come up that couldn’t be delivered. It was kind of – you design it in two weeks, we build it in two weeks. So [Crosstalk] that’s an easy turnaround.

Richard Jones: I think Myles and I are on audio now. Hi. Yes, it’s Richard here. So yes, one of the most interesting things about this is the design process was carrying on all the way up to three months before launch because it was an agile process iterative between us and the designers. So we were working directly with them all the way through. So it wasn’t like your conventional designers who designs off then an agency comes in and builds it. It’s very much interaction between all of us, all the way through including the client. So I think that was the most interesting part, for me it’s that we had that back and forth and the ability to influence design decisions, where we can look at something and say, “You know what? If you just did it like this, it would take a week less to do,” and then being responsive to that kind of thing really, really helped this project. As I say, it meant that we were still iterating through the design using the style guide that Myles mentioned earlier all the way through to the end.

Kelly O’Neill: Okay, thank you for talking us through. I know that we really enjoyed the process as well and one of the areas that we particularly got involved in on, it was on the search side and working through some of the innovative ways you do a leveraging search to draw out category pages and things like that. So the team really enjoyed working in that iterative process. Another question from the field and the related topic was specific to the commerce guys and what their role was there. So if you could expand on that a little bit, that would be great.

Richard Jones: Yes. [Crosstalk] Can I jump in a little bit as well?

Myles Davidson: Definitely.

Richard Jones: Yes. We had the Commerce guys with us all the way through the project. So we had permanent members of Commerce guys within our spring team all the way through. So the idea was that they would be helping us directly with working on the commerce-specific modules that we were building. I’m just adding a little bit to my expertise in as well. So yes. All the way through, we had a couple members of commerce guys from the London commerce guys team with us directly all the way through the project.

Myles Davidson: Yes, that’s correct.

Kelly O’Neill: Excellent. One of the other things I wanted to drill in on is the plans around more of the social side. You mentioned about the ardent fans that the brand has. Are there plans specifically to further leverage that? Any thoughts around integrating more social information and content as the brand evolved?

Myles Davidson: Yes. In fact, let me start on that Richard. I’m sure you may have a slightly different one.

Richard Jones: Sure.

Myles Davidson: One of the things that I should have mentioned is already implemented and which we really love is all of the Lush stores in the UK, so when they go to the main shop, you don’t – I love it. You don’t have a shop button, which is what this webinar is all about, killing off the shop partner. You do have a shop button which is the physical retail stores. What we love about that is that there the store manager has access to the shop page so the opening and closing times and key information is all managed directly through Drupal for that particular shop. They also get to put that shop’s - all of their social feeds go into that. Their Facebook, their Twitter, their Instagram. They’re really big on some of this, especially things like Instagram, it’s a really big one for them. I think two of those three are now already in. So they can just add the local part and then that way, they’re also able to build up social engagement on a local level. That’s really important to them because some of the campaigns I talked about earlier could be really localized and they want to be able to have communication both on topic level or company-wide level, campaign level which there is a lot of their content and articles, but the reason you’ve got this micro-store level social engagement and you can do that. You can go to the stores, you need to look at it from a UK perspective so maybe just type in “London” and you can see a whole bunch of stores. Pick one of the shops in London like Waterloo and you’ll see the details and you’ll see the local social engagement which we think is – we just think that’s a really great use of engaging with people at just lots of different interesting levels.

Richard Jones: Yes. One other thing with this is that they tried to give a personality to the individual shops as well. Because you see, a personality is very much what this brand is about. So, yes. We’ve got a combined mainstream social media element to the site, which is on one of these pop-out sidebars and then each individual shop has their own feed which, as I said, strikes their own regional and local personalities all the way through.

Kelly O’Neill: That is a great example of driving multichannel, across channel, omni-channel, whatever buzzword [Laughter] you want to use, driving that consistent brand experience throughout all channels and leveraging the power of a really flexible digital platform to be able to do that. So those are the areas where I think we’re going to see incredible innovation moving forward. So it’s great to see that Lush is already moving down that path. So, thanks to Myles and Richard for telling us the Lush story and bringing that to the webinar today. Thanks to Ray for setting up the market trends and for all of you on the call, we’d love to continue the conversation so please by all means, reach out to us either email, phone, give us a call. Let us know how you’re evolving your digital experiences moving forward. We’d love to continue to help you innovate and move the market forward.

Ray Grady: Great. Thanks everyone.

Myles Davidson: Yes. Thank you so much. It was a pleasure to be a part of it.

Drupal 7 Tutorial: Features Module


Join Prasad Shirgoankar, Curriculum Developer, Acquia Learning Services for a step-by-step introduction to Features in Drupal 7. Features helps you package up configuration so you can move it more easily between environments. Prasad will also cover best practices when creating Features, and give you some tips to make it easier.

In this webinar you will learn:

Click to see video transcript

Moderator: Webinar is a Drupal 7 tutorial with the features module with Prasad Shirgaonkar who’s the Curriculum Developer for our Learning Services Department here at Acquia. We’re really excited to have Prasad on the call. Thank you, Prasad, for presenting to us today.

Prasad Shirgaonkar: Hello, everyone. So good morning, afternoon, evening to everyone. We are going to talk on the Features module today. Just a quick introduction of myself, I work as a Curriculum Developer for Acquia Learning Services. I design and conduct training programs on Drupal as well as on Acquia products. I worked for over 20 years and I have been working on Drupal since Drupal 4.7. Today, we are going to talk about one of the key challenges faced by Drupal developers. That is the configurations management challenge. Let’s talk about challenge first and then obviously we follow by the solution

Prasad Shirgaonkar: Yes. Perfect. Okay. So we’re going to talk about one of the key challenges and that’s about the config management or the configurations management challenge and obviously it will be followed by the solution. Let’s first look at the challenge, what exactly is the challenge first. If you followed Drupal’s recommended development practices, you will typically have a well-defined development workflow. A typical Drupal development workflow consists of multiple environments where your code resides. For example, you may have a local development environment, and a staging environment, and production environment there remotely. You do development on your local environment, you post your code to your staging environment, you do some testing over there, and once the testing is finalized, you push your code to the production environment.

Now, a Drupal site. Typically, the components of a Drupal site as you are aware are the code which are your modules and themes, the configurations which are the content types and views and vocabularies and all the configurations that you do using Drupal’s GUI and the content, that’s the nodes, and terms, and users blocks, all the contents which is added by users to the site. So typically, code resides in code files, so modules and themes are in their own individual files, the .module files and .tpl.php files, java script files, and CSS files, and so on. The content on the other hand, that resides in the database so the nodes and terms and users, they’re all form of the database. Up to Drupal 7, the interesting part was the configurations that we do for building a site like the content types and views, they also reserved. The definitions are also stored in the database.

Now, when you are doing the initial development of your website, copying your code and data or the database from your one environment to another environment, it’s a very straightforward process. So if you’re using some version control system like GIT, you just check-in your code into GIT and check-out on your stage environment and database, you simply take the database down from the environment and push it to another environment and all your environments are getting synced, obviously. When you go down the development stages and when you are doing the continuous development of your website, copying code is simply straightforward but copying database from an environment to another environment becomes increasingly difficult. In some stage, it might become even impossible.

Now, this is because the developer develops the code locally, he adds his own data and does the testing, pushes the code to staging environment. On staging environment, the client test users might add some data independently and when they add the data, they do their own testing and then the code is pushed to the production environment. In production environment, then there’s a live data, the actual data added.

Now, if you copy over your database from one stage, one environment to another environment, it wipes out the data off the target environment. That’s why it becomes almost impossible to copy all the data on the database or actually the configurations that’s stored in the database from an environment to another environment. So this is one of the most prominent challenges faced by Drupal developers. So how do we manage Drupal’s site configurations? How do we move configurations from one environment to another environment without affecting the data or content of the target environment? That’s the challenge that we are going to discuss today and as everything else in Drupal, there’s a module for that. That module is called as features. So what is features module? So this is the URL from where you can get features module, it is drupal.org/project/features. Features modules, as its own name says, it enables the capture and management of features in Drupal.

Now, a feature can be defined as a finite, a defined set of functionality or entities which taken together can satisfy a certain use case. So take the example of, say, a news article. So you have content-type name news articles. You can have a view in which produces various pages or blocks. You could have some taxonomy terms which are used for that particular content type. On that bundle together can create a news feature for your website. What features module does is that it converts and stores site configurations in code rather than in the database.

Now, here are various applications or use cases of features module. We can move your site configurations from database to code which makes it extremely easy to move between environments like the development, staging, and production. We can also check-in in a version control system, like if you just define all your configurations in the database, it’s impossible to check them in in a version control system. Say for example you want to revert back to a previous version of a view, which might be an extremely complex view, it’s absolutely impossible to do it without Drupal’s UI. If you convert that into code and if you version control it properly, you can very easily revert back to a specific version in the past. Another great application that it has got is that you can distribute these features as independent features or independent modules and re-use them across various sites. So suppose you are developing a large set of sites and all the sites require, say, use functionality or requires a user listing functionality or requires, say, a products catalogue. You create it once, you convert that into a feature, and you can use it across multiple sites to minimize your effort or minimize duplication.

So how does features module do it? Let’s have a quick demo of features module. I’m using my local environment and on my local environment I have this dev site and staging site. Now right, now both of these sites or both the environments are on the single machine but they could have been on completely different machines or completely different places, but for this demo purpose, I’m using it on just a single machine but two different code bases completely. So both the sites have almost the same set of modules, but different data. As you can see, the site names and the home pages and everything is slightly different. Now, suppose my dev site is having, say, a content type. That’s news and also a view, news, which pulls the data of that content type and displays it as a page. That functionality is not there on my staging site. Now, if I want to push this specific functionality from my dev environment to my staging environment, I first of all check if I have features module enabled, so I had downloaded and enabled the features module. So enable the module. Features functionality is available on the structure and features. There is no feature right now so I’ll just create a feature. I’ll give a name to my feature, let’s call it as “News”. Just give a unique description. A package, I can just give, say, “My features” and I’ll give a version for this particular feature.

Now, on the right-hand side, I can see various components that I can select. So inside this, what I’m going to select now is the news content type. It could automatically detect the various dependencies that are required to give news content type and I’ll also select news view. So I select all the features that I want to be bundled in this particular feature. I could either download the feature so that it will create code files and download it into a tar or open “Advanced options” and I’ll give a path where it can generate, give an existing path where it can generate the feature and I will click “Generate feature”. Now, if I go to my code base, I’ll find that under the site, so we’ll use the path which I’ve specified. It has created a new folder called the “news”. Inside, features has created several files which are these feature files. I’ll go back to my URL and go to features page again and I can see that it has created a new feature, the news feature which is currently disabled, so I’ll just enable it on the current environment.

Now, we’ll see the use kits; why we need it too or why we should enable it on the source environment. That we’ll be in a few minutes. So this is enabled, I have the news feature of news content type and view, now that’s bundled into a feature.

Now let’s move that to my target environment so just copy this module with folder, you go to my target environment and you’ll have the same folder features custom. I’ll just put it as that folder. Going back to my target environment, I’ll just check. I’ll verify features module is enabled, so you see that features modules is enabled. I can also see that this item module might be just inside that group, it’s the news module. I could either enable it from here or I can just go and check from my features site and I’ll see the news feature is added on my staging environment as well. I’ll enable it and bam, I have a news view added over here and the content types. I have the news content type added over here. So this has absolutely saved me a lot of time of rebuilding that content type as well as a view on the stage. It could be actually a bundle of like multiple content types and multiple views. You can bundle inside a single view, a single feature, and post it from one environment to another environment. So that’s the basic use case or basic use, basic application of features module.

Going further in the workflow of features module, what happens if we make changes to our configuration? So in the content type, say, news content type. If I want to add a new field later on, and I added a new field which is the location field and the text-based field. Now, this on the dev site, if I go to structures and features overview page, and I’ll also add inside the view, if I make some changes, say, I don’t know the behavior. So “no data”. So I’ve made some changes to my content type, I’ve made some changes to my view. If I go to structure and features now, it shows me the state as overridden. What that means is that the configurations which are stored in the code of features are now different than the configurations which are stored in the database. So I need to either to match them, I need to regenerate the code on my source site. So I’ll just click see what’s happening so that you can be sure that the database is different and I go to recreate, and under recreate, under advanced options, and just generate the feature. So after I generate, I’ll just view it again and make sure that it’s in the default state. Now, I need to copy the newly generated code from my source site, that’s my source site from where I’ll just copy this new and better code and I’ll just replace the code on my destination site.

So I’m just doing it fairly crudely over here. I really should be doing it and checking it in a version control system and checking out from that system in the real world. Now, if I go to my staging environment and go to structure, and features, just let me try clearing the cache. Okay, so it has the empty text as well as I can see that it has created on content types in news as either the new feed. So basically whatever changes I do on one environment, I can keep on adding, keep on just reflecting those changes or transferring those changes from one environment to another fairly easily with features module. Going back to our – let’s have some discussion on some other features of the features module. So some intricacies of features modules and how do we extend features module. There are some unique terminologies with features module. Those datasets that we saw on the features page, sometimes, that shows a state that’s overridden that we saw. There’s an option to revert or there’s an option to update the feature. So when we want to save, make changes, use site configurations in the database. When we do revert, actually what it does is that it changes the configurations in the database to match with that in the features module’s code. When we update a feature, what it does is that it creates and produces a newer version, a newer code versions between the configurations from the database.

So these two terms are used quite often with features module. The key question that people asked is that what exactly can be ‘feature’ized? So these are the things which can be ‘feature’ized or which the configurations can be stored in features module. From the core, we can store content types, we can store vocabulary definitions, user loads, permissions, field definitions, text formats, menus and menu items, and image styles. They all can be exported to a feature. From contributed modules, we can store the views definitions, panels, mini-panels, rules that we use for sites, context, as well as the display suite configuration. These all can be ‘feature’ized and many, many other contributed modules. They can export their own settings to features module. What cannot be ‘feature’ized are field like content. So things like nodes, terms, users, and your custom blocks that you add, and the native blocks that you add to the site. These cannot be ‘feature’ized because that’s content and they cannot be stored as a part of code.

A couple of advanced usages of features modules, if you use the module called the Strongarm module that exposes Drupal’s entire variables system to features which basically means that you can export things like your site name, the site slogan, or your team setting, and anything that is stored in the variables table that can be exported into a feature. If you use Diff module, you can actually compare when it shows that feature is overridden. It shows what exactly is the difference. That, you can be using Diff module. Features module has got fantastic integration with Drush. There are lots of Drush command like we can lift all the features, you can see the components of an individual feature. You can see the differences in the feature, in the database and the code. You can expose features, you can revert features, and of course you can update features. So these are all the extensions or advanced uses of the features module.

Just a little slide on resources, where you can find all these, so features module on drupal.org is at drupal.org/project/features, then comprehensive documentation along with examples on drupal.org, and the links for Strongarm module, and Diff modules. So this was a brief presentation about the features module, its use cases, and how to use that module. I’m open for questions now.

Moderator: Great. Thanks, Prasad. If anybody has any questions, could you please ask them now in the Q&A section? We had one come in so far. Can installation of features be automated during Drupal installation like installation profiles in some way?

Prasad Shirgaonkar: Yes, perfectly. It can be. So when you create features, they actually become like your modules. Sorry, just a minute, I just stopped sharing my desktop. Okay. When you create features, they become like modules and you can include them as part of installation profiles and they can be automatically enabled while installing new sites.

Moderator: Awesome. The next question is using Drupal 6 here still. Is there a very big difference between 6 and 7 in the features module?

Prasad Shirgaonkar: Yes. The main difference is in the URL features module but the core, I think, that it does. The core content, the core entity that can be exported. That hasn’t changed.

Moderator: Okay. As a reminder, slides and recording will be posted to our website. I think that’s it for questions. If anybody has any follow up questions, you can reach out to me or Prasad and we can get them answered for you. Prasad, would you like to end with anything?

Prasad Shirgaonkar: No. I just would like to say that for doing the normal day-to-day, Drupal Development workflow, and if you are especially working on complex projects, features is an absolutely must have step in your Drupal workflow. It saves a lot of time for development as well as keeps our code, our configurations completely under our control. So it’s absolutely worth spending time and exploring that module. Make sure that you use it and make it a part of your day-to-day workflow.

Moderator: All right, thanks so much everyone. Thanks Prasad.

Prasad Shirgaonkar: Thanks, bye.

- End of Recording -

Consultancy Scrum: Making Agile Work for Clients and Vendors


Scrum and other agile methodologies were created by organizations to manage and develop their own products using their own resources. As a result, they’re inward facing. The stakeholders and team are part of the same company, have the same budgets and resources, and are invested in the same process, which makes communication between the players relatively easy.

Why Interscope Records Ditched the Digital Marketing Suite


Don’t let another vendor determine your roadmap and digital priorities. Your customers are unique, and your digital experience should be too. It’s time to adopt a digital marketing platform that lets you pick the products you need, to drive your individual business results.