Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough
Nov 09 2020
Nov 09

[embedded content]

Sarah Durham (00:02):

Hey everybody. Welcome to today’s webinar. I am Sarah Durham, and I am going to briefly introduce my colleagues. They will talk a little bit more in a minute and also we’d love you to introduce yourself as people start to arrive. If you are comfortable doing so, you’ll see a chat panel. And if you could chat in to us your name, the name of your organization, your pronouns, and where you are, where you are geographically, so who you are and where you are, would be great. Theresa, you want to say hi. 

Theresa Gutierrez Jacobs (00:50):

Hi, I’m Theresa Gutierrez Jacobs. I am a project manager at Advomatic. And for today, I’m going to just quickly chat my email. If you have any, I don’t know, tech issues or questions or anything like that, that is more tech related to this webinar. Feel free to reach out to me via my email. Otherwise, you can always chat or ask questions, particularly for this webinar here. And Dave, you want to say a quick hi, before we get rolling.

Dave Hansen-Lange (01:18):

Hello. I’m Dave Hansen-Lange and where I am, I’m about an hour from Toronto. I’m the director of technical strategy at Advomatic. I’ve been with Advomatic for about 13 years. And I’ve been doing work with nonprofits in the web for maybe about 15 or 17 years.

Sarah Durham (01:42):

Okay. So we’ve got a bunch of people who are already with us, a few more people who might join us in the next couple of minutes, but just to keep the ball rolling and use your time thoughtfully, we’re going to dig into our content for today. And as I said a little bit earlier, I will reintroduce myself. I’m Sarah Durham, I’m the CEO of Advomatic and also Advomatic sister agency, Big Duck. Some of you may have noticed that the Zoom we’re using today is a Big Duck/Advomatic shared Zoom. So if you’re wondering what the connection is, there’s some common leadership across both companies. For those of you who might know Big Duck, but don’t know Advomatic, Advomatic builds sturdy sites that support change. We build, and we support websites in Drupal and in WordPress. And Advomatic has been around now for, I think almost 15 years, although it’s partnership and collaboration with Big Duck and my coming into the company is relatively new.

Sarah Durham (02:43):

It’s about, I’ve been in it about two years. And so Dave is going to really take us through our topic today. And Dave, you could advance to your next slide, if you would like, which is this, what should you do with your Drupal 7 website? So Dave’s gonna talk us through why this is an issue and a few other things in a minute. What I am going to do throughout this conversation is I am going to be monitoring both the chat that you can see in the bottom of your screen, a little button that says chat. And if you click on that, you have the ability to either chat privately to the panelists. So if you want to ask a question confidentially, or you don’t want everybody who’s here to see it, just chat to the panelists and only Dave and Theresa and I will see it.

Sarah Durham (03:26):

If you want to chat to everybody and share who you are, like shout out to Rick, who’s already done that. He’s from the National Council of Nonprofits and he’s in the DC area. If you want to share your information with the panelists or to everybody, you can chat to all attendees. Also, you have the ability to specifically ask questions. There’s a Q&A feature in Zoom Webinar. And that will give me the ability to keep an eye on your questions. And some of them I can type back to you and others will be addressed verbally. So throughout the presentation, I’ll be monitoring all of that and we will address your questions perhaps as we go on, certainly at the end if it doesn’t make sense to do so in the webinar. So don’t hesitate to chat, don’t hesitate to ask questions. We are recording today’s session and Theresa will be sending out an email with a link to that recording and the transcript and the resources we’re mentioning later this week or early next week. So you will have all of this and you can share it with any colleagues if that is useful. So with that, we are going to get rolling over to you, Dave, and thanks, Theresa.

Dave Hansen-Lange (04:44):

Okay. Thank you, Sarah. All right. So to kick things off before we get into the details of all the different things that you can do with your website and what might be best for you I thought we should start with some backstory about like, why we’re at this spot and like, what does end of life even mean? Like, it’s software, how can software… and it really all comes down to security. And just to explain a little bit about how security in Drupal works, there is the Drupal security team, and that’s a team of about a dozen people all across the world. And then there’s a group of people even wider than that who contribute things to the team and say, Oh, this could be a problem. We should look into this. And people on the security team, you know, a lot of their time is paid for by their employers or their clients, but a lot of their time they’re just volunteering for free.

Dave Hansen-Lange (05:50):

And you know, there’s a lot of commitment there. Like, they have weeks on call and stuff like that, because security is very important to the Drupal community. And so we don’t want to have those people working forever for free. So the Drupal community at large has decided, okay, thank you for your time of service, people on the Drupal security team, we will let you go after this date. Some of those people work on AAA too. But people are generally committed for like Drupal 7. And so the original date for the end of Drupal 7 was going to be November, 2021. But then COVID happened and the Drupal community decided, okay, there’s this extenuating circumstance. We’ll give everybody one more year to figure out what they’re going to do. So now that the end of life date for Drupal 7 is November 2022, two years from now. 

Dave Hansen-Lange (06:56):

Drupal 8, just as an aside, it’s not really what we’re talking about today. Drupal 8, the end of life is November 2021, a year from now. That’s not what we’re talking about today. And thankfully, if you do have any AAA sites, the situation is a lot simpler. And if you want to get into that a little bit more possibly we could at the end of the presentation. Okay. So today we are going to first cover: these are the options that you have in dealing with your Drupal 7 websites. Then we’re going to look at some example scenarios. And by that, I mean like, okay, here’s an organization, they have a website like this, and because of that, they might consider scenario x. And then I’m going to pass things over to Sarah. And Sarah is going to dive into more of the organizational things, like, how do you plan for this and how do you work with this within your organization? All right. 

Sarah Durham (08:15):

Hang on one second, Dave, before we dig into this, I also just want to remind everybody feel free to chat in questions and comments as you go, and we’re going to take pauses in between each of these sections. So if you have, as Dave goes through the options, if you have a specific question about one of the options, and it seems like it’s universal to some of the other people who are participating today, I’ll probably pop in and ask that otherwise we’ll save Q&A for the end. Alright, sorry for the interruption.

Dave Hansen-Lange (08:41):

No, no, all good. I’m also going to be muting every now and then to take a sip of tea. I’ve got a sore throat. It’s not, COVID, it’s just a cold. And yeah, so I’ll be pausing too, as I go. Okay. So what are your options? So I’ve grouped these into four main options, and these are listed in terms of most expensive, to least expensive, most expensive option being start from scratch and build a new website for most people with a Drupal 7 website your main options are move to Drupal 9 or create something in WordPress. There’s some other options that you might consider, but those are the two that are applicable to most people. Option B is upgrade to Drupal 9 and immediately you’re probably thinking what is upgrading to Drupal 9? How is that different from building a website and Drupal 8? And I’ll explain that when we get there, another option is to switch to something called Backdrop. Many of you have probably never heard of Backdrop. And so I’ll start us out by what exactly that means. Or you could just stay on Drupal 7. And even though it has end of life, that there still are ways to keep going on, on your Drupal 7 website.

Dave Hansen-Lange (10:15):

So moving to a new website like I mentioned the main options for most people are Drupal 9 or WordPress. And so just by saying those two names in the same sentence, we immediately get into the topic of like what’s better Drupal or WordPress and what is right for me? I will touch on this a little bit now, and sort of back up a little bit and say that for starters, it’s really hard to make an unbiased and fair assessment of the two. But in a general sense, Drupal 9 is really great for people that, or on websites and organizations that want to do something a little bit more complicated, a little bit more ambitious, a little bit more technological, with more moving parts. And WordPress is generally more applicable to the organizations whose website, in many ways might be similar to other websites. And yeah, that is a little bit vague. I don’t want to dive too deeply into this topic right now. 

Dave Hansen-Lange (11:54):

If you want, we can come back to this in the Q&A at the end. And we also have another webinar that we did a couple months ago on this topic more generally. And if you’re just, if you can, we can send along a link to that as well. One last thing on this, though, I will say that when most people compare Drupal and WordPress, they’re not really comparing Drupal and WordPress, they’re comparing the website that someone built for them in Drupal or the website that someone built for them in WordPress. And because of that, they’re often comparing the skills of those people who built the website and not necessarily the underlying technology. And that’s part of the reason why this is such a sticky, thorny issue with a lot of people being on one side or the other there about moving to a new website. You don’t have to do the whole entire thing. You can find ways to do this in bits and pieces. I’ll show some examples of that later, but we’re at this point of rethinking what should we generally do with our Drupal website. It’s a great time to think, okay, this section, do we need it anymore? Should it be here? Is there a better way to do this then when we created this website however many years ago?

Dave Hansen-Lange (13:30):

Since many of you may not have seen modern Drupal I’m going to show you, or we’re pressed, I’m going to show you some slides here. So on the left, what we see is I am editing a page on a website and I want to add a new component which is a common term that we use these days, a new component to the page. I can browse through this library of available components and then add one.

Dave Hansen-Lange (14:00):

Or how it’s going to appear on the page. There’s many ways to do this in Drupal. Drupal is kind of known for having many ways to solve a problem. What we see in this screenshot is a tool called paragraphs. That’s a tool that we’ve been using for this problem pretty successfully on several websites. There’s other tools within Drupal 9. You may have heard the term layout builder and there was a couple of smaller ones as well on the right side. We see the administrative listing of all the content on your website for each site, it’s going to be a little bit different, what you decide to list here. But this is just one example of how it looks and comparing this to WordPress on the left. This is also how WordPress looks when you want to add a new component to the page. And so the right column there, we see, the available components that you have, again, on the right, a screenshot that’s WordPress of a list of all the content on the website.

Dave Hansen-Lange (15:20):

Looking at these two sets of screenshots, there’s a couple things that might sort of immediately come to mind. WordPress, the administrative interface generally looks a little bit more polished.

Dave Hansen-Lange (15:39):

In some ways WordPress can be a little bit all over the place in that each plugin or each new thing that you add to your website tends to design things its own way and do its thing its own way and it’s WordPress. Compared to Drupal, each new thing works in a very consistent manner. So it’s easy to move around from section to section on the website. All that to say is really either is probably a big step forward from where you are with your Drupal 7 website.

Dave Hansen-Lange (16:18):

All right, so which Drupal 7 website is this going to be most applicable to, or maybe you shouldn’t at all consider this option? If you are really frustrated with any part of your website, be that like how the content of this is organized, or just the general backend experience the design of the website, if there’s anything about it that you’d just want to just toss and start again fresh, this is a good option to consider. But like I mentioned, when I listed these four main options, creating a new website is going to be the most expensive of the options. And in the age of COVID, many of you are probably dealing with some tight budgets. So one of the other options may be the better choice. Also, this might not be a good choice for you if your existing site is very complex. And one way to think about this is like you built your website so many years ago, let’s say it was five years ago. And you put all this work into doing that initial build, but then over those five years, you’ve also put in some work, to make the website more and more better. And in this new version of the website that you’re gonna create, you want to encompass all of that. 

Dave Hansen-Lange (17:52):

It’s going to be a pretty big project. And so it’s just one way to consider looking at your options.

Okay. Option B, I don’t have a handsome, single flat you can upgrade to Drupal net. So how is this different from just creating a new websiteIn AAA? Drupal 9 has these built-in tools that can take your Drupal 7 website and take all those, all that content, all the content structure all the menus, everything that’s stored in the backend of the website and upgrade it and make it work in a new Drupal 9 website. But what you don’t get is any of the, how that content is presented to visitors, all of that stuff. If you go through this upgrade process, you still need to come up with or you still need to rebuild the way that it’s presented to visitors. Maybe, maybe you’re happy with the design of your Drupal 7 website. And so you can just redo that same design in Drupal 9 or another option since we’re here and we’re creating a new website and Drupal 9, you might want to take advantage of that and do a new design.

Dave Hansen-Lange (19:31):

And so, because of all those things, it’s going to be still a big chunk of work, not as big as just doing a clean slate and starting from scratch. But still a lot of work involved. One thing you do need to look into before you get too far down this road is like, are there any ways in which we solve the problem in Drupal 7, that just there’s no equivalent in Drupal 9. And that has sometimes happened because the Drupal 7 way of solving a problem, one example would be locations. Let’s say you got a content type in Drupal 7 called offices of your organization and they’re storing their address and location. That’s almost certainly done in a very different way in Drupal 9. And there isn’t a way to directly go from one to the other, at least not directly in the same sense of this upgrade process that I talked about before. There may be these situations like that, and you’ll have to do something custom or something else. That’s a little bit more complicated. It’s just important that, you know, these things happen upfront before you get into moving down this road.

Dave Hansen-Lange (21:00):

So who is this good for? I mentioned, you’re going to get the same stuff in the backend as you have now. So it’s, if you’re happy with that, great, consider this option. I mentioned that the visual presentation, you’ve got to redo that. So if you want a fresh design, this might be an option for you. Again, avoid if budget is tight, like I mentioned, it’s still a fairly complicated procedure. All right. A third option is to switch to Backdrop.

Dave Hansen-Lange (21:39):

So Backdrop, I said earlier that your main options are WordPress or Drupal. What’s this, what’s this new Backdrop thing? Backdrop is kind of like a different flavor of Drupal. And in the technical parlance, Backdrop is a fork of Drupal 7. And what does cutlery have to do with software? Absolutely nothing. So by fork, we mean fork in the road. You may know that Drupal and WordPress are open-source software. And that means that anybody, anybody really who has the time available to do it, can jump into the project. You got a problem with the way something works, you want to make it better, you can just do that and you can contribute something and get it rolled into the software. But what that also means is that if you don’t like how something works, you can just take it, copy it, and roll with it.

Dave Hansen-Lange (22:42):

And that’s what’s happened with, with Backdrop so well. Drupal 8 was being developed. There were many people in the community who thought, “Oh, no, like Drupal 8 is looking great and all, but it’s going to be really hard for websites that are on Drupal 7 to get to Drupal 8 and whatever it comes in the future. And they were right. That’s, that’s why we’re here. That’s why we’re having this webinar. And so what they did was they took Drupal 7, copied it, called it Backdrop and started to evolve it and evolve it in some of the same ways that AAA has evolved only keeping with the Drupal 7 way of doing things and the Drupal 7 styles. And so you have an option to take your website and sort of just take that fork in the road and start moving down the Backdrop trail.

Dave Hansen-Lange (23:42):

What this is going to look like for your website is that you’re still gonna have the existing content structure things in the backend of the website, just like that, upgrading to Drupal 9 option. It’s all going to look very similar, if not identical, but different from that upgrade to Drupal 9 option. You can still keep the visitor-facing portion of the website. If it’s going to need a little bit of tweaking to get onto that Backdrop fork in the road. But that is going to be relatively much smaller, a much lighter lift. Not to say that you must keep your existing design, you can make some changes and revisions. You might even consider doing a full redesign. But yeah, you don’t have to, as you’ve heard me describe this, you may be thinking fundamentally that the steps involved, it’s pretty similar to the upgrade to Drupal 9.

Dave Hansen-Lange (25:00):

It is, but still, it is almost certainly cheaper than upgrading to Drupal 9. And mainly the reason is because like I mentioned, it is just Drupal 7 evolved. So the changes that you have to make to your existing website are just immensely smaller, some increased risk. So what I mean by this well, like anybody who works with websites for a nonprofit is probably going to know WordPress, and probably getting to know the word Drupal, probably not going to know the word Backdrop, because it is such a much smaller community. Where there might be that there’s about half a million Drupal websites out there. There may be like a few thousand Backdrop websites out there. And because of that, there’s enough momentum in the community that we know that Backdrop will be here for two years, maybe four years, but it’s harder to sort of see deeper into the future. Whereas Drupal, you know, half a million websites. We know it’s, there’s a lot of people working on this, a lot of organizations, big and small, it’s going to be here for probably at least another 10 years, if not longer. Backdrop, much smaller community. There’s just not as much certainty about the future. 

Dave Hansen-Lange (26:44):

But with that said, Backdrop has committed to like the same sort of upgrade structure that Drupal 8 and Drupal 9 have committed to being. We’re not going to do a huge change again in the future. We’re going to make all these incremental changes that will make it much easier for you to stay up to date and evolve your website over time.

Dave Hansen-Lange (27:12):

Great. I thought it important to show some visuals about what Backdrop looks like and looking at these, you might be thinking, “Oh, this looks pretty similar to my Drupal 7 website, but the colors and fonts are more contemporary”. And you are a hundred percent correct in thinking that like I mentioned, it really is Drupal 7 evolved. But there is more to it. There are some easier things on the technical side of how to work with Backdrop compared to Drupal 7. There’s some different ways of managing page layouts. There’s other new features in Backdrop that Drupal 7 doesn’t have. But the thing is, if you take this sort of upgrade from Drupal 7 to backdrop trajectory, you’re not going to get those things all of a sudden. If you want to take advantage of Backdrop’s fancier ways of laying out content on a page then you’re going to have to have a small project to enable that feature. At first, you’re still going to be working in the same paradigms as you are with Drupal 7. So who is Backdrop great for? Anyone who has a lot of custom code. I was talking earlier about like, why you might want to avoid building a new website and Drupal 9 is if you’ve got a lot of custom stuff. Here in this option, and this would be a good option for you because all that custom stuff probably doesn’t need to change very much, probably needs to change a little. But if it’s not going to be all that significant, this is a good option for you.

Dave Hansen-Lange (29:16):

If you are happy with your existing design that’s going to need a little bit of touch-ups to move to Backdrop. I was trying to be consistent here and come up with a reason why you should avoid Backdrop. I couldn’t really come up with one. I think everyone should at least consider this option. It’s kind of like the middle of the road option. You might not choose this option if you’re wanting to do a full redesign, but if all the rest of the things line up for you, then you could do a full redesign in Backdrop. It would be fine. I guess the only reason that I can think of now is that if you are super concerned about keeping the website that you have the same fundamentally as it is now, four, five years into the future, 7 years into the future—because the future is a little less defined for Backdrop—you may want to avoid it in that case.

Dave Hansen-Lange (30:35):

All right. And the last option stay on Drupal 7. I mentioned even though Drupal 7 has reached end of life, there are ways to continue on with it. If you had any websites that were on Drupal 6 and you were in this sort of situation for Drupal 6’s website, when it reached its end of life, there was a program started called the extended support for Drupal 6. This Drupal 7 version of that program is fundamentally identical. And what this is is that I mentioned that many of the security team are volunteering their time. And so this program gets around by trying to force people to volunteer their time by saying it’s a paid program. The Drupal community has vetted several Drupal agencies to offer this extended support service. And what that means is that as security issues come up, maybe there’s a security issue that comes up in Drupal 8 that might also apply to Drupal 7 this, this team of extended support people work on fixing that problem in Drupal 7.

Dave Hansen-Lange (32:11):

And so there’s kind of two ways to take advantage of this: Number one, you sign up with one of the extended support vendors. You’ll be able to find that list through some links that we’re going to send at the end. One of the mandates of this is that they release all of their fixes publicly. It’s happened for Drupal 6 as well. And so if you are technically savvy or you’ve got someone at your disposal who’s technically savvy and can sort out the details and apply these fixes as they come up, this could be a good option for you, too.

Dave Hansen-Lange (33:08):

I think it’s important though, to like, take a step back at this point and talk about why you might think about security in different ways. And one way to think about security is kind of like two groups of websites on the internet—those who security is really important for, for whatever reason. Maybe they’re doing something that some people find controversial and they have people who are trying to hack into their website. Maybe you are processing credit cards on your website and you, you know, someone might want to try and break in and steal those credit cards. Maybe you are a news outlet and you get hundreds or hundreds of thousands of people viewing your content every day. And if someone could break in and get some sort of message out to those people, that might be an incentive as well. So that’s like one group of websites, people who have some sort of special security concern. And then there’s kind of everybody else—everybody who knows that security is fundamentally important, but it’s not more important than it is for everyone else in this group.

Dave Hansen-Lange (34:33):

It’s just the nature of how I described that most organizations are going to be in this group where security is important, but not more important than anyone else. Some are going to be in this heightened group of security. And for those people, they need to think about things more than just like, am I getting the bare necessity basics? Or am I really doing all that I’m responsible for ensuring the security is as good as it can be. And for those people, this may not be the best option in that you’re not on the most recent and currently secure thing you were on, this thing that’s on extended support. And whether that rationale is purely technical, or if it’s purely optics in that if something were to ever happen to your website and it was discovered, “Oh, they’re running this version of Drupal that was created 10 years ago”. 

Dave Hansen-Lange (35:38):

How can that be responsible? And then there’s all sorts of politics involved. I mean, it’s a situation you want to completely avoid, but for those of us who are in the group of security as important, but not more important than anyone else, this can be a very reasonable option to consider. So stay on Drupal 7, if you have a really tight budget. And I admit that budget is in the eye of the beholder. For some of you a roomy budget would be a tight budget and vice versa. Like I was talking about, if you don’t have any special security requirements avoid, if your site needs a facelift or if you’re frustrated with the backend. So like I mentioned, this is keeping the same website and keeping it the same. And so if you want to rip something out and try again, this is probably not the option for you.

Sarah Durham (36:56):

Okay. So, Dave, I’m just going to jump in here for a second before we continue with your sample scenarios. We’ve got about 20 minutes left in our time together, so we’re going to need to move pretty quickly through our sample scenarios and through the make a plan section. But we did get a really good question that I’d love you to try to answer for us before we continue on. It’s from our friend, Rita, and Rita asks, if you choose to migrate or upgrade to Backdrop, what would that mean for your future options to upgrade to Drupal 9?

Dave Hansen-Lange (37:29):

I don’t think it really changes the landscape for that at all. Whether you’re upgrading from Drupal 7 or from Backdrop, it’s fundamentally the same thing. It is technically almost identical and that’s because well, Backdrop has gone on this new trail at a foundational level. The way the content is stored, it’s fundamentally the same. And so if you want to pull that content out of either version of those websites into a new Drupal 9 website, it’s going to be the same process. That could change though, as it’s a fork in the road. So Backdrop could go further one way, while well, Drupal 7 is not moving anywhere at this point, but it could continue to move on in a way that’s more different from Drupal 7. But in my opinion, it’s unlikely to change all that much for the foreseeable year or two.

Sarah Durham (38:37):

Okay, great. So, so back over to you.

Dave Hansen-Lange (38:40):

Okay. So like I mentioned, those options, they were great in theory, but now let’s try and put some of this to practice. I’m going to show, I think, four, maybe five example websites and what is unique or different about those websites and why they might choose one option over the other. As you’re looking through this, you might think, “Oh, that’s nothing like my website”. But I’m going to try and pull some things out here that hopefully are going to apply or at least show some things that you should consider. And you also might recognize some of these websites. Don’t focus on that. We’re going to focus on what is it about these websites? I’m also not going to tell you anything about these websites that isn’t something… Sorry, everything that I’m going to tell you about these websites is something that you could just go to the website, look at and figure out for yourself.

Dave Hansen-Lange (39:45):

So there’s not going to be any sort of like private information here that I’m gonna show either. So in this first example, we’re going to look at the ACLU. On the left here, we see what their website homepage used to look like. On the right side, we’re going to see what the homepage looks like now. And the prior version of the website, that was Drupal 7. The homepage, and I say that specifically, the homepage, is now WordPress. You may remember back when I talked about the option of creating a new website that you don’t have to do the whole thing. Here’s just the homepage. And they’ve actually done the same thing with the blog section. It used to be Drupal on the left. Now it’s WordPress on the right. You don’t have to do with everything.

Dave Hansen-Lange (40:44):

So this is an example of a case on the ACLU website. And like, this is just one really long page here that is cut up into three pieces. See at the top, this is all just fairly straightforward content. But then in this section, things start to get more complicated. Like there’s all these other bits of content elsewhere on the website that are related to this case. That’s something that you can do in WordPress, but the more complicated those relationships get, the more awkward it gets to do in WordPress. Then down here at the bottom of the page, things get super complicated. Visually it doesn’t look too bad, but that’s because I think the design was done well. There’s hundreds of legal documents that relate to this case, all in these groupings and hierarchy and get super complicated. WordPress is not the best tool for this kind of job. And so this part of the website is still on Drupal. It’s still going to be on Drupal for now. It might evolve in the future, but that’s where it is for now.

Dave Hansen-Lange (42:03):

Another section of the website, there is this sort of intermediary thing where you could show an action within like an article or a blog post or something to say, “Okay, come take this action”. And during the redesign or in moving bits to WordPress, you know, if you’ve stepped back and thought, is this useful? Is this complicated? Is there a way to do this simpler? And this sort of intermediary thing was just checked and now there’s just links to actions and there’s other ways to show actions without this complicated section of the website. Please consider for your website: What should I get rid of? There’s almost always something. 

Dave Hansen-Lange (43:11):

Looking at a different organization, here is one that’s a Drupal 7 website. But you might be thinking, “Oh, this design, it looks fairly current”. And you’d be correct because this organization went through a redesign, I want to say, like, two years ago. And so because of that, looking at those four main options, they can probably throw the create-a-new-website option out because the design still looks great. As long as they’re happy with how the content works on the backend, they could really choose any of the other three options. And, yeah, so consider that.

Dave Hansen-Lange (43:47):

Next, we have a municipality. When I was talking about the option of staying on Drupal 7, that’s maybe not the best option for a municipality in the news all the time. We hear stories of like such-and-such municipality, their website has been hacked, or their computer systems have been taken over by ransomware. And so just the optics of staying on Drupal 7 might not be the best choice for them. The design looks, doesn’t look as fresh as those first two options that we showed. But let me guess a municipality kind of has different requirements in that the number one goal is not a flashy design, it’s getting information out to its residents.

Dave Hansen-Lange (44:32):

And so there may be a way for them to choose one of the non-design related options. And at the same time, maybe consider how it can do any sort of restructuring to better present the information that people need to find. Here’s another organization. In looking at the screenshot, you might be thinking the same things that this organization thinks about this website and that the design is very text-heavy, and it is not quite as engaging as they would really like it to be. And so for this organization, one of the first two options is probably the best choice: creating a new website completely or upgrading this to Drupal 9 with a new design.

Dave Hansen-Lange (45:43):

Lastly, we’re going to look here at, this is not so much a website, but a web platform. AFT has 1,300 websites on this one platform for States and Locals within a state. And the center one up top here, this is for a campaign website. And this is an example of a few things: One, it’s not their primary website, it’s not aft.org. And so if you’ve got more than one website, you don’t have to choose the same option for all of them. You can choose different options. Number two, there’s a lot of custom stuff involved here, as you might imagine. Some stuff around creating a new website, around connecting the information altogether. So because of that, you might lean more to one of the options that works better for custom stuff and doesn’t require recreating all of their custom stuff in a brand new website.

Sarah Durham (47:07):

Thank you, Dave. So a quick question, before we talk about where you go from here. Just want to confirm the ACLU, the sections of the ACLU site that are still in Drupal, or are those WordPress? 

Dave Hansen-Lange (47:22):

That is in Drupal. Yes. 

Sarah Durham (47:26):

Okay, so Dave is going to be advancing some slides for me. So I will ask you, Dave, to go onto the next slide. And basically, before we flip over to your questions and discussion, and in the remaining time we have together, what I want to get you thinking about is how to make a plan. And it’s interesting we’re doing this today because actually I had a call with somebody at a higher ed institution this morning, who’s got an old site and they are debating what their options are. They were describing a lot of feelings of being overwhelmed. I think that, you know, these days with the reality of what’s going on in the world with COVID, with elections, all that kind of stuff, tackling these kinds of big projects is feeling pretty daunting. So I wrote an article about planning and we’ll share links to that article and a bunch of other things.

Sarah Durham (48:20):

Dave has also written a really helpful post about Drupal 7’s end-of-life. At the end of this webinar and also in the follow-up email, we’ll send you one of the things I wrote. The first step is to make a plan and you don’t have to have all the answers. You’ve just got to begin by getting your team on the same page about the implications. I think that’s one of the big barriers that a lot of people are facing is that they’ve got these Drupal sites and there is a real challenge coming up, a real cliff coming up for many of you that you’ve got to begin to get your team aligned around so that you can budget and plan appropriately. Next slide please, Dave. So I recommend that you come up with a plan, which you could do in five slides or in two pages.

Sarah Durham (49:05):

And the intention of this plan is actually to give you an internal document you can use to get your team on the same page and build some buy-in. So you can see first you’d start by outlining the situation. I think we’ve given you some of the ammunition for that conversation and in today’s session or in the articles we’ll share with you, and what the risk is to your organization. You might want to outline some options if it’s clear to you and the people on your team where you should go from Drupal 7. You might go forward with outlining some options or making a recommendation, but honestly, if you’re not sure which way to go, a good partner should help you get there, too. So if you don’t have the answers already in mind, if it’s not clear to you which way to go, it might be that you map out a few options.

Sarah Durham (49:52):

But your recommendation might be more to find a partner to help you navigate that. Of course Advomatic can do that. We would love to help you make a decision about this, and we do regularly do that as part of our work. There are many people you could work with who could do that. I think one of the things that’s also really important in your plan is mapping out a timeline, not so much for the build or the upgrade that you might do, but all the things leading up to it. If you are looking ahead and thinking what you really need to do is rebuild your website or do a significant upgrade, that’s going to take time and a lot of work, and you’re going to want to get your team on the same page about when the budget needs to be approved, and when you’re going to get rolling so that you’re doing it hopefully well in advance of some of the deadlines that are going to be important within your organization and within the Drupal 7 end-of-life timeline.

Sarah Durham (50:49):

You know, in the non-profit sector, one of the key pieces that is in my experience kind of do-or-die for many big projects is building buy-in. So with that plan in mind, I would encourage you to have some conversations, share it, get it into the budgeting process and kind of keep it alive because very often you know, you mentioned these things once or twice, but there’s so many things going on that are taking up so much attention and energy for the leaders of organizations today that I think you’re going to have a little bit of work to do to keep it alive, which is the next step. My next slide. Also, keeping it alive is about not just writing this plan and sending it to people, but keep nudging and keep bringing it up. If you know what your milestones are when people are talking about budgets or budgets are getting approved, you know, those are great opportunities to research, collate your plan and go from there.

Sarah Durham (51:47):

Now, many organizations that we work with and talk to are already doing this, and they’re already talking to us and other people about what they’re doing. And a partner can also help you figure out your timeline. So there are a lot of ways to do this. You don’t have to do the heavy lifting on your own. But what you don’t want to do is you don’t want to wait until you’re, you know, a couple of months away from these deadlines if they pose significant risks or implications for your organization. So we have a few minutes left to go before the top of our hour. And I want to hear a little bit from you. So if you’ve got questions or comments, you can either use the Q&A feature, which you will see at the bottom of your screen, or you can chat them in to Dave and I, as we go. And we’re going to stop sharing our screen. Now we’ll take a few questions and while you chat those in, I also want to just remind everybody that we are going to be sending out a follow-up link to the recording here. And Theresa is also going to chat out a couple of the articles we mentioned. Dave has written a really helpful article about D7 end-of-life. He’s also written an article about D8 and there’s an article I’ve written that’s about how you, how you plan for this change. So Theresa will chat those all out.

Sarah Durham (53:17):

Okay, Dave, first question for you. Somebody is chatting in about administrators and they’re thinking, well, actually, this is sort of a double-barreled question. Let’s take it in two parts. First in option A, you talked about building a new site as option A. You specifically talked about WordPress and Drupal. Both of those are open source technologies. Why are you talking just about WordPress and Drupal and not any other systems?

Dave Hansen-Lange (53:46):

One of the things that I also talked about was like, kind of the momentum of these projects, like Drupal is large. WordPress is ginormous. And there’s lots of movement in those projects. There’s lots of momentum as soon as someone has a new idea or a new technology pops up on the internet, like things move quickly. And there’s a way to do it on your website in short order. And I also talked about the security group, that’s not the official title, but like there’s ways like that in which you’re getting the benefits of someone else volunteering their time for your website, which you just don’t get in in some of the other options that you have.

Sarah Durham (54:37):

Okay, thank you. And the second part of this question was about comparing WordPress and Drupal about administrators and the options there. This person is talking about how there’s lots of different people in their organization, who right now have different layers of access in Drupal 7. And they’re wondering if there are any recommendations you have for new platforms based on that kind of complexity.

Dave Hansen-Lange (55:01):

Yeah, so like the area of editorial permissions and controls, like that’s one of the big differentiators between Drupal and WordPress. WordPress has some basic systems around this role can do this, or this role can do that. In Drupal, we can make things a whole lot more complicated, like people who manage this section of the website, they can upload images. Other people can use those images, but only the original group of people can edit them or ways of more complicated things that you can do in Drupal.

Sarah Durham (55:38):

Okay, so there’s a question here about the difference between a Drupal new build and a Drupal upgrade in terms of cost. And actually, would you mind just bringing it up again, cause somebody chatted to me that they arrived a bit late and they didn’t see your slide. I think it’s your slide number six, which outlines all the options. Let’s just quickly go back to that slide for a second and share that. And I think that the question that just got chatted into me relates to this. So on slide six, you mapped out a bunch of different options ranging from building a new site to staying on Drupal 7. And those were ranked, as you talked about them from most expensive to least expensive. So you said building a new site is the most expensive, staying on Drupal 7 is the least expensive, and then the upgrade or the switching to Backdrop were in between. So the question is about the cost differential between building a new site in Drupal 9 and upgrading in Drupal 9. I assume that there are additional costs for design, for UX, things like that, and building a new website, but how significant is that differential? What other variables inform the cost difference there?

Dave Hansen-Lange (57:06):

Yeah, so I talked about sort of in any of these higher options… well, no, let me rephrase that. In the two middle options, you have the option of how much redesign you want to do, of course. And that’s probably the biggest thing that affects how big or small upgrading to Drupal 9, that project is going to be. But let’s say you wanted to redesign and compare upgrading to Drupal 9 versus creating a new website in Drupal 9. It’s difficult to be put on the spot, but I don’t know, 80%, 90% since you’re doing a full redesign. Upgrading to Drupal 9 and moving to a new website, they start to become more similar. The more you’re redesigning, the similar in cost.

Sarah Durham (58:01):

Okay, thank you. That sounds like what we were expecting. So I am just skimming through your questions and it looks like a couple of other questions that we have here are pretty unique to specific organizations, so I’m going to follow up directly with those organizations since we are just about out of time. I want to thank Theresa and Dave for joining us today. Dave, thank you for imparting your wisdom on this topic. And I want to thank everybody who took the time to log in and watch this. I hope this has been helpful for you. If you have specific questions or concerns or things you want to pick our brain about, you can always email us at [email protected] or [email protected]. We’d be happy to get on the phone with you, talk a little bit about your situation if that is of use to you. And again, Theresa will be sending out a link to these articles and the recording to you in just a few days. So thank you, all. And thank you all for the excellent work you do to make the world a better place. Be well, thanks.

Oct 22 2020
Oct 22

A common frustration for Drupal 8 (and 9) site builders is the inability to change text fields from plain text to filtered text through the administrative interface. This was something that was easy to do in Drupal 7 by editing the field’s settings and changing the value for Text processing.

Sometimes requirements for a field change, both during the build phase and long after a site has been in production, and it would be convenient to toggle on a rich text editor and text filtering with minimal effort.

In Drupal 8, there are five types of text fields in core:

  • Text (plain)
  • Text (plain, long)
  • Text (formatted)
  • Text (formatted, long)
  • Text (formatted, long, with summary)

The first two are actually string fields and don’t allow any formatting. If a user enters HTML tags, they are ignored and displayed as plain text.

The last three will allow HTML tags, depending on the settings for the Text Format that the user chooses when entering content. However, only the last two will show the WYSIWYG editor (if it’s associated with the selected text format).

But what happens if midway through your build process, or months after your site has launched, the requirements for that text field change? Your client or designer decides they now want to allow some formatting in a field that was originally Text (plain) or Text (plain, long). And they want their editors to be able to use a WYSIWYG, so they don’t have to deal with HTML code. What do you do?

The long way: create new field, migrate data, reconfigure

One solution is to write an update hook that will create a new field, migrate existing data to it, and delete the old field. If the field is renamed, you also have to consider reconfiguring any views, entity references, display modes, etc. that referred to the old field. Changing a field type this way is entirely possible, but more time consuming and error prone.

Wouldn’t it be nice if you could simply enable a WYSIWYG on that plain text field and be done with it? Especially if your client is on a tight budget. It’s actually possible to do this in a custom module, with a few lines of code.

The short way part 1: add a form alter

First you’ll need to add a form_alter function in your custom module, most likely in the .module file. There are many ways to add a form_alter in Drupal 8, and those are documented elsewhere. See the entry about hook_form_alter in the Drupal API.

You may also need to add some conditions so that the field is only changed on certain forms or for certain content types–this is also beyond the scope of this article.

In this example, I’m adding a general hook_form_alter() that will apply to all forms regardless of entity type. If you have a Text (formatted) field, you may want to enable a WYSIWYG on it to make it easier for editors to create the content. Because it’s already a formatted text field, the form alter is very simple.

use Drupal\Core\Form\FormStateInterface;

function mymodule_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  if(isset($form['field_myformattedtextfield'])) {
    $form['field_myformattedtextfield']['widget']['0']['#base_type'] = 'textarea';
  }
}

We are only changing one value associated with the widget: we change the base_type to textarea. The editors will see a WYSIWYG, and the data will be saved and displayed as formatted text.

If you want to add a WYSIWYG widget on a Text (plain) or Text (plain, long) field, it’s a little trickier. There are a few more widget attributes to alter.

use Drupal\Core\Form\FormStateInterface;

function mymodule_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  if(isset($form['field_myplaintextfield'])) {
    // Fetch the entity object.
    $entity = $form_state->getFormObject()->getEntity();
    // Get the current value stored for the field.
    $value = $entity->field_myplaintextfield->getString();
    // Change the base type for this field to a textarea.
    $form['field_myplaintextfield']['widget']['0']['#base_type'] = 'textarea';
    // Change the type of field to formatted text.
    $form['field_myplaintextfield']['widget']['0']['#type'] = 'text_format';
    // Recommended: set a default text format. When rendering
// you’ll have to manually set this to make the field use
// formatting (see next section).
    $form['field_myplaintextfield']['widget']['0']['#format'] = 'full_html';
    // Set the default value to the currently stored value.
    $form['field_myplaintextfield']['widget']['0']['#default_value'] = $value;
  }
}

This will give us the WYSIWYG where we want it, but the value is still stored and displayed as plain text. We need to add another function to transform it for output.

The short way part 2: let the fields render as formatted text

For Text (plain) or Text (plain, long) fields, we have to tell Drupal to run the stored value through one of the Text Format filters and render it as formatted text. This involves two functions and a configuration setting.

In your custom module, add a hook_field_formatter_info_alter to allow the plain text field types to use the default text formatter:

function mymodule_field_formatter_info_alter(array &$info) {
  // Let the string field types use the text formatter.
  $info['text_default']['field_types'][] = 'string';
  $info['text_default']['field_types'][] = 'string_long';
}

Then, add a template_preprocess_field function to tell Drupal which text format to use when that field is displayed as filtered text. Since this isn’t a regular formatted text field, Drupal doesn’t store that information the way it does for the standard formatted text field types. Be sure to use the same text format that you used in the hook_form_alter().

function mymodule_preprocess_field(&$variables, $hook) {
  if ($variables['field_name'] == 'field_myplaintextfield') {
    $variables['items']['0']['content']['#format'] = 'full_html';
  }
}

Lastly, we go to the “Manage display” configuration for the field in question, and tell Drupal to use the “Default” format for that field. If you are using Configuration Synchronization, you’ll notice this affects the “type” in the “Entity view display” configuration for this field.

...
  field_myplaintextfield:
    weight: 100
    label: above
    settings: {  }
    third_party_settings: {  }
    type: text_default
    region: content
...

Voila! That should be it. View your content and check that the plain text field is now being rendered with HTML formatting.

Conclusion

With just a few lines of code, we added a WYSIWYG editor to a plain text field and enabled Drupal to display its contents as formatted text. This technique will work for both Drupal 8 and Drupal 9. You can refine this approach depending on your needs to display formatted text only for certain view modes, entity types, field instances, etc.

Want to add this functionality to your site? Contact us if you’d like to hear more about our services.

Jul 10 2020
Jul 10

Things aren’t going the way you planned. We’re now in a recession, the pandemic has caused unexpected challenges, and your budgets have been cut. Welcome to the summer of 2020. Still, your website is more important than ever. Your donors, clients, members, and advocates are expecting it to be up-to-date, easy-to-use, and bug-free.

To add insult to injury: Drupal 7 (D7) end-of-life is now looming on the horizon. Although the good folks at Drupal.org notified us in early 2019, most nonprofits haven’t had the time or budget to get rolling yet. And if you’re working on a team that’s had its resources cut it may feel like an impossible set of circumstances to navigate. 

But don’t panic. The Drupal community just announced we’ve got an extra year. As Advomatic’s Dave Hansen-Lange pointed out in an earlier article about D7 end-of-life, there are lots of options that can help you not only manage this proactively but help you come out on top looking like a tech rockstar. Here’s a guide. 


Step one: go from abstract fear to tangible plans. 

In an ideal world you would be building a new website in 2021 that’s ready to go live early in 2022. But it’s not essential that you make the move off of D7 before the November 2022 end-of-life date. What is essential is that you have a plan that you and your leadership feel works. 

To get started, make sure that you or your team have a clear understanding of the implications of keeping your site on D7 after November 2022. It may help to facilitate a conversation within your website team asap about how unique and mission-critical your website’s security is, for instance, and this article will give you a useful overview of the risks. Consider making some background reading a requirement for participation in that conversation so your team gets better informed. 

Next, get on the same page about what’s holding your organization back from leaving D7.  Is it the cost of building a brand new site? A lack of understanding or focus on D7 end-of-life and its implications with your leadership? Is it confusion about whether to stay in Drupal or consider a move to WordPress, Backdrop, or another CMS? Is it your staff’s limited capacity to manage a new website build right now? These are the common scenarios most nonprofits are facing — and they all have solutions, ranging from doing some internal educating, doubling down on support for your D7 site later, or finding a partner who can do more for you now. 

Finally, draft a pragmatic plan for your organization. Now that you’ve got a grip on what D7 means for your organization and your team’s ability to navigate it in the near term you can craft a plan. Your plan should take the folks who must support it on a journey of understanding and, ideally, keep them out of the weeds if this isn’t their job. 

We recommend crafting a plan in Google Slides, PowerPoint, or other presentation deck with just five slides: 

  • The situation: A sentence or two explaining D7’s end-of-life.
  • The risk for your organization: A sentence or two explaining what the implications are for your org.
  • The options: Bullets that outline the top 2-3 options for your organization specifically. 
  • Our recommendation: Bullets detailing your recommendation. 
  • Proposed timeline: A high-level timeline detailing when decisions must be made and actions taken to fulfill your recommendation.

Can’t say it all in a few slides? Use the notes area to add examples or detail if necessary. But try to resist creating lots of text-based slides with millions of bullets or detail. You’ll be more successful at getting support from your leadership if you can simplify the complexity of this issue for them and demonstrate you’ve already thought it through well, so they can trust your recommendation. 

Step two: educate your colleagues and get their buy-in for your plan. 

If you’ve completed Step One, odds are good your plan was crafted collaboratively with any colleagues who work on the web team at your organization– but if not, this is a good time to review it with them and make sure everyone feels good about it. You’ll want everyone aligned and on-board so there’s no confusion or mixed signals communicated downstream and so your recommendations can be integrated into your next budgeting cycle. 

The next step is to take your plan to your leadership. In most nonprofits this will involve presenting it to your Executive Director or CEO and/or COO. While you may not always present formally, I recommend you plan to do so here. Take a few minutes to practice walking through your slide deck, perhaps with family or friends first, so you can present it quickly and with confidence. The prep time you invest will not only make the meeting go smoother it might very well save you time and energy in subsequent conversations. 

If your greatest barrier is the budget and you are suggesting that your organization consider reinstating some funds for a new website, you may also need to present or share your deck with the board. 

When you present, be sure to leave time to answer questions and ask directly for feedback on your recommendations and proposed timeline. If you can leave the meeting with a clear sense of what is working for them and what isn’t, you’ll be better equipped to revise your plan if needed or put other balls into motion. If you’re presenting your plan via Zoom consider recording it. If you are able to get through it in 10 minutes or less, sharing the video with colleagues or board members may be a faster and easier way to educate and build buy-in for your plan. 

Step three: keep it top-of-mind

Experts have studied and written about the importance of repetition in reaching and getting people to remember new things. Take a page from their playbook and plan to repeat your concerns, suggestions, and timeline proactively. Consider setting reminders to follow up with colleagues at key decision-making junctures, bringing your plan up again in management meetings, asking for updates from your E.D., or whatever feels appropriate to your organization’s culture and practices. 

A key moment to keep your recommendations top-of-mind will be when you’re budgeting for your next fiscal year. The more you’ve got folks on the bus already, the more likely you will be to get this project supported during the lean year(s) ahead. 

 

Step four: sleep well at night

Regardless of whether things turned out exactly as you hoped, you’ll sleep better at night knowing that you proactively addressed Drupal 7’s end-of-life and led your organization through a thoughtful process to manage it. You might also have inspired your colleagues to see your leadership and management skills in a new light, too. 

Mar 20 2020
Mar 20

On June 24, 2020 Drupal.org announced that Drupal 7’s end of life has been extended until November 2022 because of the impact of COVID-19 on budgets and capacity. This article still remains relevant– but please note that the dates have been pushed back a year

If you have a Drupal 7 website, you might have already heard that the official end-of-life date for Drupal 7 has been officially set for November 2021. Many organizations should upgrade their Drupal 7 sites before then. But that might not be required. Here’s how you figure out what you need to do.

“What does Drupal 7 End-of-Life mean?”

First let’s talk about what EOL means for Drupal. The main thing is security updates. 

Drupal has a highly regarded security team who manage security for both core Drupal and thousands of public modules, themes and distributions that add additional features. When a security problem is found with Drupal core, the team fixes the problem and publishes advisories that explain vulnerabilities, along with steps to mitigate them. All of this is contributed publicly and freely, just like you would expect from open source software. 

The security team supports versions of Drupal until they reach their end-of-life. 

But after the EOL, the baton is passed along to an Extended Security Support team. This team is composed of pre-vetted Drupal agencies, and they are commercially funded by those clients who want to pay for the extended security support. They are mandated to publicly release fixes for most of the security vulnerabilities that they find. 

“Hold on — What level of security support do I need?”

Before we talk about what you should do about D7 EOL, you first need to think about how important security is for your website.

  • Are there people who are actively trying to attack your website (maybe because of your strong stance on a particular issue)?
  • Does your website process commercial transactions? (Most non-profit websites these days use third-party websites to process donations and event registrations.)
  • Does your website collect a lot of personally identifiable information (PII)? This relates back to the first point: if there’s lots of valuable PII, an attacker will be more interested in trying to steal it. 

If you answered “yes” to any of these questions, then security is of extra importance for you. 

“I won’t have the budget for a big website rebuild before November 2021”

It’s going to be okay, we’ve got a few options for you. You’ll fall into one of the following categories:

1. “Security is really important for our website, we need Extended Security Support”

Regardless of whether you are an existing client, or someone we’ve never worked with before, please reach out to us and let us know if we can help.

2. “Security is just as important to our website as it is for every other website, but not in an extra special way”

If your website does not have a reason for someone to actively try to attack it, then you only need to be guarded from publicly known security vulnerabilities. That way, you’re protected against the automated attacks that hit every website. Typically those kinds of automated attacks are either trying to use your web servers to mine bitcoin, or lock up your website and demand a ransom. 

When Drupal 6 reached end-of-life in 2016 we continued to support our Drupal 6 clients using the publicly released updates from the Extended Security Support team. Our last Drupal 6 client just got a new website a few months ago! 

We’ll do the same when Drupal 7 reaches end-of-life. When a Drupal 7 update is released, we’ll update your website, just like we already do for all of our Drupal and WordPress support and maintenance clients.

3. “Help, I have no idea what I need!”

No problem. We can help here too. Just let us know. 

 

Conclusion

Regardless of where you’re at — or where you’re going next — we’re here to help. Drop us a line.

Dec 06 2019
Dec 06

You may have read our previous articles about how to plan for Drupal 6 or Drupal 7 End-of-Life. The important thing to know is that the Drupal 8 End-of-Life is nothing like those. In fact, “End of Life” is completely the wrong idea. Instead, it’s more like one of those spa treatments where you get a full body scrub to get rid of the dead skin cells. You walk out feeling rejuvenated and refreshed. 

Drupal 9 — Same as Drupal 8, But Without The Old Stuff

Drupal release timeline

In each new minor version of Drupal 8 there are some new features, and some old code is marked as “deprecated” (that just means that it’s time to stop using this, because it’s going to go away some day). After nine minor versions over almost five years, there’s now an accumulation of deprecated code. This deprecated code is like those dead skin cells that you go to the spa to get rid of.  So Drupal 9.0 will be the same as Drupal 8.9, just without the deprecated code. The two might even be released at the same time. 

Then, in Drupal 9.1, we see the cycle starting again: some new features, and some old code is marked as deprecated.

Don’t Rely on Deprecated Code

In the graphic above, you’ll notice that 8.9 does not have any more deprecated code than 8.8. That means that once a website is upgraded to 8.8, we can then start the process of ensuring that the site isn’t using any deprecated code. 

If you are an Advomatic client, we’ll create a ticket in your queue to clean out all uses of deprecated code. In fact, if you’ve done a project with us recently, we’ve already started doing this as part of the Q/A process in our two-week sprints. 

A Window of Almost Two Years for This Cleanup

Drupal timeline by quarters

This is the timeline for the next several versions of Drupal.  We’ve got about 2 years to make this change — more than enough time. 

Alternating Minor Versions

We handle all the technical stuff for you. But the purpose of the website is not for us to have a technical toy to play with, it’s to advance the mission of your non-profit. So we want to devote most of our time and effort towards your web strategy. While we could upgrade your website to the newest version every six months, it’s not the best use of your money or time. So we alternate versions. That means that your Drupal 8 website is either always on an even minor version, or an odd minor version. 

We’ll likely continue that pattern as we cross the threshold into Drupal 9. That means that this process could be delayed by 6 months from what you see here.

Flipping the Switch

Once we’ve cleaned up all the deprecated code, then we’re ready to upgrade the site to Drupal 9.  Remember: this is nothing like past major upgrades in Drupal. Instead it’s just like the minor upgrades from Drupal 8.6 → 8.7 → 8.8 etc.

Conclusion

The key takeaway is that this whole process should be almost seamless. We’ll create a few tickets in the queue to prep for the upgrade, and then for the upgrade itself.  But the majority of our time will still be spent on advancing your mission. Over the years to come the website content and its presentation will be able to continually evolve, all without a costly major upgrade. 

Thanks to Amanda Luker for the charts!

Apr 23 2018
Apr 23

Two weeks ago, the Advomatic team divided up and went to both Drupalcon in Nashville and the Nonprofit Tech Conference in New Orleans – they happened at the same time this year. (A few of us went to both!)

The short story is: We had a great time and met a lot of people and hung out with our clients and got inspired and learned a lot and you should go to one of them next year too.

But, if you want a bit more detail, we took a minute to write down our Big Takeaways and linked to the slides and notes from a few of our fave conference sessions:

Becoming a Digital Pacesetter in Banking, Seeking a Proven IT Architecture. Huntington National Banks acquisition of FirstMerit combined nearly 1,000 branches and 2,000 ATMs across eight Midwest states. At the same time, Huntington was looking 200-125 exam dumps to use digital innovation to improve customer and employee experiences and rapidly roll out new branch offices without significantly raising costs. This marriage of business and technology offered a much-needed opportunity to step back and review overarching 300-075 exam IT strategy.The most pressing problems included: First, Disparate legacy infrastructure created inconsistent performance experiences for branch colleagues. Mainstream services like guest Wi-Fi access and bring-your-owndevice needed to be deployed. Second, the IT team was spending too much time on things like firefighting circuit failures and applying security patches. Last,The banks IT team needed to spend less time on short-term fixes and more time finding innovative solutions for the business. They had to more quickly and seamlessly integrate new people, processes, and technologies. Also, it was important for the company CISSP Lab material to raise customer services levels while lowering costs. It all came back to the same point, recalls Patrick Drew, the banks assistant VP of network infrastructure. We needed a proven IT architecture to turn the business into a digital pacesetter, so we could fast-track customer 200-125 exam dumps experience improvements and make our staff and business processes more efficient. Achieving Business Outcomes,Faster 300-075 exam Keen to protect 200-125 exam dumps existing investment, Huntington engaged Cisco? Services to help define 300-075 exam and then accelerate its IT transformation. We compared increasing circuit capacity and refreshing hardware with a CISSP Lab material new CISSP Lab material software-defined model, says Drew. The latter, based on Cisco CISSP Lab material Intelligent WAN with the opportunity to deploy Application Policy Infrastructure Controller Enterprise Module software, 200-125 exam dumps won hands down.Cisco’s office in Sao Paulo, Brazil, 300-075 exam has created an innovative work environment that leverages cisco technology and real estate solutions to achieve business and financial goals. The increased staff and business needs the network to provide better service.Cisco’s development team and cisco’s IT maintenance team are once 300-075 exam again working together, this time focusing on cisco’s NAM network CISSP Lab material analysis module. Cisco’s Sao Paulo office has grown rapidly — from less than 20 in 1997 to 132 today.However, there is no land available CISSP Lab material near the office.It is clear that the traditional office environment has failed to meet 300-075 exam the flexibility requirements 200-125 exam dumps of the rapidly developing office in Sao Paulo.It needs to adopt new office solutions based on advanced technology to improve flexibility and mobility.In order to improve the office environment of cisco’s Sao Paulo office on a 200-125 exam dumps large scale, cisco has adopted a variety of technical 200-125 exam dumps solutions.At first, each of the office’s employees was given a mobile phone and a high-speed Internet connection to their home computers.This allows them to do their work at home freely and easily through remote access.With cisco’s secure VPN client CISSP Lab material software installed on their laptops, they can access enterprise applications as quickly and safely as they would in an office. The actual layout of the office has also been adjusted.First, the area of the compartment was reduced, and the height of the partition between the compartments was decreased.This has transformed the office from a separate 300-075 exam workspace into a collaborative environment where everyone can always know where the team members are.This new design promotes collaboration between teams.

Hierarchical integrated defense: cisco SAFE that successful security solution should CISSP Lab material adopt integrated protection on the network infrastructure, and not only consider some special safety equipment.As a result, cisco has integrated security capabilities into its various network products to ensure that the entire network CISSP Lab material is fully integrated and three-dimensional.Guangdong development bank has implemented such a three-dimensional integrated security defense.Take the guangdong development bank’s outreach network system, for example, which USES three CISSP Lab material layers of integrated security protection, including 200-125 exam dumps routers, firewalls and switches.1, the first layer security protection provided by the router to achieve router in Internet/extranet wan connection of public information network, such as DNS server with guangdong development bank, the WWW server 300-075 exam and E-mail servers located in external PIX firewall, with these servers CISSP Lab material as part of the opening to the outside world, the ministry of internal and external users to provide the corresponding services, its itself also become a part CISSP Lab material of the public information network.These servers in order to 200-125 exam dumps provide effective security, prevent the outside of the user to the illegal operation of the server, the server, delete, modify, or the content, should be carried out to external access can strictly control.With the firewall function of Cisco router, the operation of external users on the servers can be restricted to prevent the servers from being damaged from the outside.2. The second layer of 300-075 exam security protection is CISSP Lab material protected by PIX firewall, which completely separates the internal network of enterprises from the external network. PIX is the only outlet for the internal network subsystems.By using PIX firewall to isolate the internal and external network, the security of the internal network 300-075 exam is further guaranteed.PIX provides a complete record of all access, including illegal intrusion attempts.PIX realized from the network layer 300-075 exam to application layer security protection, can be CISSP Lab material based on packet source address, destination address, TCP port Numbers 200-125 exam dumps 300-075 exam and 300-075 exam packet length on the communication control, as a move method to access is prohibited.3, the third layer security protection provided by the LAN switches Catalyst 6500 core switches deployed IDS and firewall module, CISSP Lab material monitoring the safety of the complex intranets effectively, is the third barrier against external attacks to prevent, is a good method to prevent internal attacks.Another 300-075 exam Catalyst series switches have MAC address filtering function, therefore can be defined according to the need to switch each port, only allow specific MAC address of the workstation through the specific port access, port to communicate CISSP Lab material with the 300-075 exam connection PIX.Due to the uniqueness of the MAC address and not configured, this kind of control, in fact, from hardware to control a specific machine, compared with the IP 200-125 exam dumps address filtering, this protection has 200-125 exam dumps 200-125 exam dumps higher security.Through the above three layers of security protection, guangdong development bank network system to realize the reliable from link 200-125 exam dumps layer to application layer security control, have the effect to prevent illegal access 200-125 exam dumps external, 300-075 exam has the very high security.Reading this wasn’t the first time Ive paused to consider whether my hearts and my people’s infatuation with autumn is not a worldly indulgence. The promise of the Kingdom is fullness of life, not pretty death. Halloween just means the night before the Saints and all 200-125 exam dumps the gruesomeness on display represents the demons coming out one last night before the Saints arrive and drive them all away. A Christian may secretly treasure the festival for that reason, but how can she join in when her place is not with the demons and decay, but with the Saints and salvation? Whence this covert delight in the seasons celebration of fear and death?

Apr 20 2018
Apr 20

Becoming a Digital Pacesetter in Banking, Seeking a Proven IT Architecture. Huntington National Banks acquisition of FirstMerit combined nearly 1,000 branches and 2,000 ATMs across eight Midwest states. At the same time, Huntington was looking 200-125 exam dumps to use digital innovation to improve customer and employee experiences and rapidly roll out new branch offices without significantly raising costs. This marriage of business and technology offered a much-needed opportunity to step back and review overarching 300-075 exam IT strategy.The most pressing problems included: First, Disparate legacy infrastructure created inconsistent performance experiences for branch colleagues. Mainstream services like guest Wi-Fi access and bring-your-owndevice needed to be deployed. Second, the IT team was spending too much time on things like firefighting circuit failures and applying security patches. Last,The banks IT team needed to spend less time on short-term fixes and more time finding innovative solutions for the business. They had to more quickly and seamlessly integrate new people, processes, and technologies. Also, it was important for the company CISSP Lab material to raise customer services levels while lowering costs. It all came back to the same point, recalls Patrick Drew, the banks assistant VP of network infrastructure. We needed a proven IT architecture to turn the business into a digital pacesetter, so we could fast-track customer 200-125 exam dumps experience improvements and make our staff and business processes more efficient. Achieving Business Outcomes,Faster 300-075 exam Keen to protect 200-125 exam dumps existing investment, Huntington engaged Cisco? Services to help define 300-075 exam and then accelerate its IT transformation. We compared increasing circuit capacity and refreshing hardware with a CISSP Lab material new CISSP Lab material software-defined model, says Drew. The latter, based on Cisco CISSP Lab material Intelligent WAN with the opportunity to deploy Application Policy Infrastructure Controller Enterprise Module software, 200-125 exam dumps won hands down.Cisco’s office in Sao Paulo, Brazil, 300-075 exam has created an innovative work environment that leverages cisco technology and real estate solutions to achieve business and financial goals. The increased staff and business needs the network to provide better service.Cisco’s development team and cisco’s IT maintenance team are once 300-075 exam again working together, this time focusing on cisco’s NAM network CISSP Lab material analysis module. Cisco’s Sao Paulo office has grown rapidly — from less than 20 in 1997 to 132 today.However, there is no land available CISSP Lab material near the office.It is clear that the traditional office environment has failed to meet 300-075 exam the flexibility requirements 200-125 exam dumps of the rapidly developing office in Sao Paulo.It needs to adopt new office solutions based on advanced technology to improve flexibility and mobility.In order to improve the office environment of cisco’s Sao Paulo office on a 200-125 exam dumps large scale, cisco has adopted a variety of technical 200-125 exam dumps solutions.At first, each of the office’s employees was given a mobile phone and a high-speed Internet connection to their home computers.This allows them to do their work at home freely and easily through remote access.With cisco’s secure VPN client CISSP Lab material software installed on their laptops, they can access enterprise applications as quickly and safely as they would in an office. The actual layout of the office has also been adjusted.First, the area of the compartment was reduced, and the height of the partition between the compartments was decreased.This has transformed the office from a separate 300-075 exam workspace into a collaborative environment where everyone can always know where the team members are.This new design promotes collaboration between teams.

Hierarchical integrated defense: cisco SAFE that successful security solution should CISSP Lab material adopt integrated protection on the network infrastructure, and not only consider some special safety equipment.As a result, cisco has integrated security capabilities into its various network products to ensure that the entire network CISSP Lab material is fully integrated and three-dimensional.Guangdong development bank has implemented such a three-dimensional integrated security defense.Take the guangdong development bank’s outreach network system, for example, which USES three CISSP Lab material layers of integrated security protection, including 200-125 exam dumps routers, firewalls and switches.1, the first layer security protection provided by the router to achieve router in Internet/extranet wan connection of public information network, such as DNS server with guangdong development bank, the WWW server 300-075 exam and E-mail servers located in external PIX firewall, with these servers CISSP Lab material as part of the opening to the outside world, the ministry of internal and external users to provide the corresponding services, its itself also become a part CISSP Lab material of the public information network.These servers in order to 200-125 exam dumps provide effective security, prevent the outside of the user to the illegal operation of the server, the server, delete, modify, or the content, should be carried out to external access can strictly control.With the firewall function of Cisco router, the operation of external users on the servers can be restricted to prevent the servers from being damaged from the outside.2. The second layer of 300-075 exam security protection is CISSP Lab material protected by PIX firewall, which completely separates the internal network of enterprises from the external network. PIX is the only outlet for the internal network subsystems.By using PIX firewall to isolate the internal and external network, the security of the internal network 300-075 exam is further guaranteed.PIX provides a complete record of all access, including illegal intrusion attempts.PIX realized from the network layer 300-075 exam to application layer security protection, can be CISSP Lab material based on packet source address, destination address, TCP port Numbers 200-125 exam dumps 300-075 exam and 300-075 exam packet length on the communication control, as a move method to access is prohibited.3, the third layer security protection provided by the LAN switches Catalyst 6500 core switches deployed IDS and firewall module, CISSP Lab material monitoring the safety of the complex intranets effectively, is the third barrier against external attacks to prevent, is a good method to prevent internal attacks.Another 300-075 exam Catalyst series switches have MAC address filtering function, therefore can be defined according to the need to switch each port, only allow specific MAC address of the workstation through the specific port access, port to communicate CISSP Lab material with the 300-075 exam connection PIX.Due to the uniqueness of the MAC address and not configured, this kind of control, in fact, from hardware to control a specific machine, compared with the IP 200-125 exam dumps address filtering, this protection has 200-125 exam dumps 200-125 exam dumps higher security.Through the above three layers of security protection, guangdong development bank network system to realize the reliable from link 200-125 exam dumps layer to application layer security control, have the effect to prevent illegal access 200-125 exam dumps external, 300-075 exam has the very high security.Reading this wasn’t the first time Ive paused to consider whether my hearts and my people’s infatuation with autumn is not a worldly indulgence. The promise of the Kingdom is fullness of life, not pretty death. Halloween just means the night before the Saints and all 200-125 exam dumps the gruesomeness on display represents the demons coming out one last night before the Saints arrive and drive them all away. A Christian may secretly treasure the festival for that reason, but how can she join in when her place is not with the demons and decay, but with the Saints and salvation? Whence this covert delight in the seasons celebration of fear and death?

Apr 20 2018
Apr 20

I went to DrupalCon this year with the goal of doing things a bit differently this time. I’m a bit of an introvert with people at first, but I’ve been told I don’t come off that way. So, I decided to leverage that and just push myself through things that, in years past, I would have avoided: namely, constant interactions with total strangers. This is my seventh DrupalCon and thirteenth year in the Drupal space, so I felt it was time to dip into the community a bit more and challenge myself.

I started by hosting a “Birds of a Feather” meet-up on web accessibility in the Drupal and nonprofit world. I was nervous, but it ended up being a very casual and fruitful discussion about successes and difficulties in getting organization buy-in on accessibility improvements.

On the social front,  I started my week out by attending the Drupal Diversity & Inclusion game night with a couple of my co-workers. It turned out to be a great time, where I met some really friendly people.

I even took part in the code sprint on the last day. Admittedly, it was a bit frustrating to find something to dive into due to many the long issue histories I had to read through, and I didn’t get much done. However, I can now say I’m the proud owner of credit for a core commit!

Some other wins for the week included:

  • Having conversations with people in the community and other dev shops that I’ve admired from afar
  • Mentoring a student sent to the conference on a sponsorship and helped get his portfolio Drupalized
  • Attending more sessions that spoke to specific challenges around self-care and being a remote worker and fewer sessions about bright shiny new technical “toys” that will probably not be useful in real-world, day to day operations

All in all, this year felt rejuvenating and full of personal successes. I’m really glad I pushed myself to be more outward and open to aspects of the conference that I’ve previously skated around.

Becoming a Digital Pacesetter in Banking, Seeking a Proven IT Architecture. Huntington National Banks acquisition of FirstMerit combined nearly 1,000 branches and 2,000 ATMs across eight Midwest states. At the same time, Huntington was looking 200-125 exam dumps to use digital innovation to improve customer and employee experiences and rapidly roll out new branch offices without significantly raising costs. This marriage of business and technology offered a much-needed opportunity to step back and review overarching 300-075 exam IT strategy.The most pressing problems included: First, Disparate legacy infrastructure created inconsistent performance experiences for branch colleagues. Mainstream services like guest Wi-Fi access and bring-your-owndevice needed to be deployed. Second, the IT team was spending too much time on things like firefighting circuit failures and applying security patches. Last,The banks IT team needed to spend less time on short-term fixes and more time finding innovative solutions for the business. They had to more quickly and seamlessly integrate new people, processes, and technologies. Also, it was important for the company CISSP Lab material to raise customer services levels while lowering costs. It all came back to the same point, recalls Patrick Drew, the banks assistant VP of network infrastructure. We needed a proven IT architecture to turn the business into a digital pacesetter, so we could fast-track customer 200-125 exam dumps experience improvements and make our staff and business processes more efficient. Achieving Business Outcomes,Faster 300-075 exam Keen to protect 200-125 exam dumps existing investment, Huntington engaged Cisco? Services to help define 300-075 exam and then accelerate its IT transformation. We compared increasing circuit capacity and refreshing hardware with a CISSP Lab material new CISSP Lab material software-defined model, says Drew. The latter, based on Cisco CISSP Lab material Intelligent WAN with the opportunity to deploy Application Policy Infrastructure Controller Enterprise Module software, 200-125 exam dumps won hands down.Cisco’s office in Sao Paulo, Brazil, 300-075 exam has created an innovative work environment that leverages cisco technology and real estate solutions to achieve business and financial goals. The increased staff and business needs the network to provide better service.Cisco’s development team and cisco’s IT maintenance team are once 300-075 exam again working together, this time focusing on cisco’s NAM network CISSP Lab material analysis module. Cisco’s Sao Paulo office has grown rapidly — from less than 20 in 1997 to 132 today.However, there is no land available CISSP Lab material near the office.It is clear that the traditional office environment has failed to meet 300-075 exam the flexibility requirements 200-125 exam dumps of the rapidly developing office in Sao Paulo.It needs to adopt new office solutions based on advanced technology to improve flexibility and mobility.In order to improve the office environment of cisco’s Sao Paulo office on a 200-125 exam dumps large scale, cisco has adopted a variety of technical 200-125 exam dumps solutions.At first, each of the office’s employees was given a mobile phone and a high-speed Internet connection to their home computers.This allows them to do their work at home freely and easily through remote access.With cisco’s secure VPN client CISSP Lab material software installed on their laptops, they can access enterprise applications as quickly and safely as they would in an office. The actual layout of the office has also been adjusted.First, the area of the compartment was reduced, and the height of the partition between the compartments was decreased.This has transformed the office from a separate 300-075 exam workspace into a collaborative environment where everyone can always know where the team members are.This new design promotes collaboration between teams.

Hierarchical integrated defense: cisco SAFE that successful security solution should CISSP Lab material adopt integrated protection on the network infrastructure, and not only consider some special safety equipment.As a result, cisco has integrated security capabilities into its various network products to ensure that the entire network CISSP Lab material is fully integrated and three-dimensional.Guangdong development bank has implemented such a three-dimensional integrated security defense.Take the guangdong development bank’s outreach network system, for example, which USES three CISSP Lab material layers of integrated security protection, including 200-125 exam dumps routers, firewalls and switches.1, the first layer security protection provided by the router to achieve router in Internet/extranet wan connection of public information network, such as DNS server with guangdong development bank, the WWW server 300-075 exam and E-mail servers located in external PIX firewall, with these servers CISSP Lab material as part of the opening to the outside world, the ministry of internal and external users to provide the corresponding services, its itself also become a part CISSP Lab material of the public information network.These servers in order to 200-125 exam dumps provide effective security, prevent the outside of the user to the illegal operation of the server, the server, delete, modify, or the content, should be carried out to external access can strictly control.With the firewall function of Cisco router, the operation of external users on the servers can be restricted to prevent the servers from being damaged from the outside.2. The second layer of 300-075 exam security protection is CISSP Lab material protected by PIX firewall, which completely separates the internal network of enterprises from the external network. PIX is the only outlet for the internal network subsystems.By using PIX firewall to isolate the internal and external network, the security of the internal network 300-075 exam is further guaranteed.PIX provides a complete record of all access, including illegal intrusion attempts.PIX realized from the network layer 300-075 exam to application layer security protection, can be CISSP Lab material based on packet source address, destination address, TCP port Numbers 200-125 exam dumps 300-075 exam and 300-075 exam packet length on the communication control, as a move method to access is prohibited.3, the third layer security protection provided by the LAN switches Catalyst 6500 core switches deployed IDS and firewall module, CISSP Lab material monitoring the safety of the complex intranets effectively, is the third barrier against external attacks to prevent, is a good method to prevent internal attacks.Another 300-075 exam Catalyst series switches have MAC address filtering function, therefore can be defined according to the need to switch each port, only allow specific MAC address of the workstation through the specific port access, port to communicate CISSP Lab material with the 300-075 exam connection PIX.Due to the uniqueness of the MAC address and not configured, this kind of control, in fact, from hardware to control a specific machine, compared with the IP 200-125 exam dumps address filtering, this protection has 200-125 exam dumps 200-125 exam dumps higher security.Through the above three layers of security protection, guangdong development bank network system to realize the reliable from link 200-125 exam dumps layer to application layer security control, have the effect to prevent illegal access 200-125 exam dumps external, 300-075 exam has the very high security.Reading this wasn’t the first time Ive paused to consider whether my hearts and my people’s infatuation with autumn is not a worldly indulgence. The promise of the Kingdom is fullness of life, not pretty death. Halloween just means the night before the Saints and all 200-125 exam dumps the gruesomeness on display represents the demons coming out one last night before the Saints arrive and drive them all away. A Christian may secretly treasure the festival for that reason, but how can she join in when her place is not with the demons and decay, but with the Saints and salvation? Whence this covert delight in the seasons celebration of fear and death?

Jan 18 2018
Jan 18

One of the things we do on an annual basis for our clients at Advomatic is an annual site audit – a high level kick-the-tires kind of site inspection. For Drupal sites, we check the logs for any glaring errors, check for overrides in Features, run some SEO and accessibility testing, and, of course, take it for a speed test.

If you run speed tests (like Google’s Page Speed Insights), you have probably seen a common, vexing error: “Render-blocking javascript and CSS.” What’s that?

Optimize Images, Eliminate render-blocking Javascript and CSS in above-the-fold content. Your page has 4 blocking script resources and 6 blocking CSS resources. This causes a delay in rendering your page. None of the above-the-fold content on your page could be rendered without waiting for the following resources to load. Try to defer or asynchronously load blocking resources, or inline the critical portions of these resources directly in the HTML.

Pagespeed Insight’s error message for render blocking assets.

Large CSS/JS assets can block rendering “above-the-fold” content. Modern browsers tend to allow concurrent downloading of 6 to 8 files at any given time (a few offer more, now). So developers aggregate and compress CSS and JS files so we have less to load, but that also means front-loading large — though compressed — styles and javascript files. This is a recipe for a log jam.

Here’s how to beat this speed bump. Using the methods described below, I’ve seen Pagespeed Insight scores on Drupal sites increase by 30% or more.

Javascript

For javascript, the solution is fairly easy: ensure the files are in the footer. In Drupal 8, this is already the standard, unless you have added some elsewhere. For your javascript to load in the header, you actually have to set: header: true in your theme’s library.yml file. (Also, be sure you are not loading any javascript that is not needed on the page.) In Drupal 7, you will need to move the files, perhaps using Advanced CSS/JS Aggregation or manually.

If there is specific JS that needs to be there as the page loads, you may want to defer it instead. Again, AdvAgg can help you do that, or you can defer it manually.

CSS

While moving files to the footer technically works for CSS as well, it introduces a new problem: the dreaded FOUC, or “flash of unstyled content.” Put plainly, the content is loading before the styles, so users – especially on slower connections – will see a very ugly site until the page is completely done loading. While not the end of the world, it makes for an unpleasant user experience.

What we do to counter FOUC is load a “Critical CSS” file first. Critical CSS is, as it sounds, any CSS that is crucial to making above-the-fold content appear close to the final product. Think layout, position, readability, sizing – particularly in the header … anything that will smooth a transition to the full CSS loading. These styles will be put in their own file (as straight CSS) and loaded inline, in the page’s .

Place this in your html.html.twig file, in the :

When you view your site, those styles will now load directly .

Now, sifting through your CSS to figure out what is critical is a challenge in and of itself. I’ve tried using automated grunt/gulp tasks (critical, grunt-critical, grunt-criticalcss), that will take “snapshots” of styles that have been called for above-the-fold content only on a specific page, but those tools have their limitations. (For instance, you may build your critical CSS file from a snapshot of a wide view of your page, but then it may miss styles needed for a mobile version of the page. Or there are just too many variations page-to-page with a site with dynamic content.) It’s possible some of these projects have improved since I last checked, so it still may be worth looking into.

If you have (wisely) built your styles using discrete files for base, regions, components, etc, you *could* do a compile just of the your base, layout, header, and header component styles and that would put you in a good position to start building your critical CSS file. You could use a tool like Sassmeister to compile outside your normal workflow.

If you haven’t (or you have inherited a site will less precision), you may just end up taking that final, compiled CSS file, un-compressing it, and doing your best to grab styles for the header and top part of the body (taking special care for the homepage.) Like I said, it’s an imprecise science.

Once the critical CSS is in place, you can try moving the rest of the CSS in the footer. In Drupal 8, this means moving this line in html.html.twig:

Move it down to before the closing   tag.

In most cases, fine tuning what should be in the Critical CSS file takes a little trial and error.

Like with any style changes, make sure you review in a variety of browsers, devices and widths. Also, be sure to try throttling your page speed, under the Google Chrome web inspector’s Network tab. This allows you to simulate a slower network. 

Network tab of Chrome's web inspector

Network tab of Chrome’s web inspector

Note that you will need to maintain this new file. Any time you make changes to things included in the Critical CSS file, you will need to manually adjust it. 

A final word of caution: you may very well be shifting around some structural stuff, and regressions can happen, especially at that level. Testing is very important – by you, and by the client, particularly on inherited sites. In a dream world, we’d have ubiquitous and comprehensive visual regression testing tools to catch anything that might have changed in the underlying load order of styles – but that level of safety netting is rare!

With all this in mind, you can plan for a critical CSS file for the next project that requires stellar performance: start out with all the javascript in the footer, prepare your CSS in compartmentalized Sass files that can be funneled to a critical CSS file, run speed tests throughout the project to see where problems are introduced, and, since you won’t want to maintain it during development, hold off until near-launch to generate your inline critical CSS file. 

Jul 06 2017
Jul 06

The problem

If you are using Drupal’s Configuration Management subsystem to deploy configuration out to the production environment, you’ll run into a problem where the configuration .yml files contain your development settings.  To avoid this you’ll need to use the Configuration Split module

I couldn’t find any good documentation for this, so I had to figure it out by trial and error.  Here’s the results of my investigations.

Development-only modules

In the simplest scenario, we want to enable a few extra modules on development environments (Devel, Kint, Stage File Proxy, Views UI, etc.), but not have these modules enabled on production.  For this we’ll need to create a new Configuration Split Setting for the development environments.

But first:

  1. Ensure that you have no config overrides.
  2. Enable Configuration Split module in a local environment.
  3. Export config, commit and deploy to the live environment as you usually would.
  4. Enable and configure all your development modules in the local environment.

Create a Configuration Split

Navigate to:

Administration » Configuration » Development » Synchronize » Configuration Split Setting » Add configuration split setting

Creating a new split configuration.

There’s a few things that will help you keep your sanity, but aren’t covered in the help text:

  • Keep the Machine name the same as the Folder.
  • The Folder is relative to the Drupal root (it does say this in the help text, I just skimmed right past it the first time).
  • Active should be checked (more on this later).

And add your development modules to the Blacklist.  Stuff listed here will be ignored from the main configuration.  No need to also select their configuration, you only need to select the modules.  Disregard the Greylist (More on this later).

Export your configuration

From this point on, you will never have drush cex again.  For the first time that you export your configuration, use this:

# Create the directory.
mkdir sites/default/config_dev
# Export the development configuration
drush csex config_dev
# Export the main configuration
drush csex

Greylists

As mentioned in the help text, this isn’t a great name, but it’s basically used for configuration that should have different values in different environments.  E.g. Payment processing configuration, Stage File Proxy URLs, Solr URLs, etc..

I’m not a fan of using Config Split for this.  I prefer to keep all this in settings.php.  Then it’s all in one place, you can easily see all the variations between environments, and if you need to make a change you’ll be less likely to forget something.

At the top of settings.php you’ll need some logic to determine which environment you’re in.  We almost exclusively use Pantheon, so we’ve got the following:

// The environment the current site is running on.
// Possible values: local, dev, test, live.
// Configuration further in this file sets different settings for different
// environments.
if (defined('PANTHEON_ENVIRONMENT')) {
 switch (PANTHEON_ENVIRONMENT) {
    case 'kalabox':
      $config['server_environment'] = 'local';
      break;

    case 'dev':
    case 'test':
    case 'live':
      $config['server_environment'] = PANTHEON_ENVIRONMENT;
      break;

    // Multidevs.
    default:
     $config['server_environment'] = 'dev';
 }
}
else {
 $config['server_environment'] = 'local';
}

Pantheon only supports sites/default/settings.php.  But if you are hosted elsewhere, then another method is to use different sites directories for different environments.   

Enabling the split configuration in development environments, but not production

Remember that active checkbox from above?  That’s what defines whether the configuration split is enabled or not.  The trick is that we want to have that setting be different on different environments.  This can be done in settings.php, leveraging the code block above.

// Use development config in dev environments.
if (in_array($config['server_environment'], ['live', 'test'])) {
 $config['config_split.config_split.config_dev']['status'] = FALSE;
}
else {
 $config['config_split.config_split.config_dev']['status'] = TRUE;
}

Make sure to use the same machine name as you configured previously.

Development Workflow

Three things to note:

  1. You don’t need to use any of the following Drush commands, you can still use the UI at:
    Administration » Configuration Development » Synchronize
  2. If you prefer Drupal Console, there’s equivalent commands.
  3. At the time of this writing Pantheon uses 8.1.3.  If you have Drush >= 8.1.10 you’ll be able to use the old cex and cim commands.

Pulling a database from production to a dev environment

The first step is to get the database.  How to do that depends on your hosting and local environments.  We’re fans of Kalabox, and the command is real simple:

kbox pull

Then import configuration

# Clear caches
drush cr
# Then import the development configuration only.
drush csim config_dev
# Check for config overrides from production, and get those back into code.
drush csex

Pushing configuration from dev to production

In the dev environment

After you made some configuration changes:

# Export the configuration.  
# This will update both config and config_dev.
drush csex

In the pre-production / production environment

# Import configuration.
# This will import config; and if active in settings.php, config_dev
drush csim

Next Steps

The above should be able to handle 95% of Drupal sites.  But if you’ve got more complicated requirements, you can always add more splits.

Automate all the things

Running a set of magic commands every time you push code or move a database from one environment to another is error prone, and a bit of a time waste.  You can automate all of this using Pantheon’s Quicksilver.  On Kalabox the automation is a bit trickier (you’d need to create a custom plugin, which isn’t a well-tread path), but we have high hopes for its successor: Lando (currently in alpha). 

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web