The day has come for Drupal 9 to launch. Hurrah! But what does this actually mean for you and your website?
In 2015, the last most recent major release of Drupal was launched: Drupal 8. The launch of Drupal 8 saw fundamental architectural changes, which meant that upgrades from older versions meant a complete rebuild of your website and a full content migration.
The launch of Drupal 8 however, was a little different. As part of this rebuild, came Drupal’s continuous innovation model.
Many organizations are running into the challenge of managing content on their multiple websites for gaining centralized control and ensuring its secure flow.
Ryan Price talks with Michael Meyers about Yjs (an open-source project that enables real-time, collaborative editing similar to Google Docs) and Goose (a load testing tool), after that, Mike Anello talks with Dane Powell about Acquia BLT.URLs mentioned
- Tag 1 Consulting
- Yjs project on GitHub
- Google Docs-style editing in Gutenberg with the YJS framework
- Goose resources
- Goose on GitHub
- BLT documentation
- 12-minute video about deploying to Acquia Cloud with "blt deploy" example
- BLT and DDEV -- Together!
- Lando + BLT + Acquia
- Docksal and Acquia BLT
- Acquia BLT Plugins
- Drupal Slack Workspace #blt channel
- BLT on GitHub
- Acquia Remote IDEs
- Composer Basics online workshop - 7-hour (split over 2 days) online workshop - Monday, June 15 from 1:30-5pm ET (part 1) and Tuesday, June 16 from 1:30-5pm ET (part 2).
- Professional local development with DDEV - 2-hour, hands-on, online workshop held monthly (Tuesday, July 7).
- Local Web Development with DDEV Explained
- Drupal Career Online - next semester begins August 31.
If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page.
As the world navigates through a public health crisis, and we are all responding to unprecedented conditions, it is a good time to evaluate how well your website is working to communicate urgent information, and how it might be improved going forward.
The team at Kalamuna has helped many organizations prepare and respond to emergencies, and in this series of posts, we are sharing research and lessons from our previous projects and the best practices we are now recommending to our clients.Categories Community Drupal Guidance Mobile Responsive Design Security Strategy User Experience Author Mike McCaffrey
Happy to announce we're attempting to kick off a new community initiative primarily focused on fixing and closing bugs.
We're hoping to
- reduce the total amount of open core bugs
- reduce the average age of open bugs
- increase the number of closed bugs
- mentor those looking to get move involved in contributing to core
- give community members from countries in the Eastern Hemisphere the chance to participate in a core initiative in their local time zone.
Resolving core bugs requires a wide range of skills - we're looking for volunteers to join us who can help with one or more of the following tasks:
- Triaging and classifying bugs
- Writing good bug reports, with steps to reproduce
- Writing patches to resolve the bug
- Writing automated test-cases to confirm the bug, and that it is resolved
- Reviewing patches, through the lens of each of the core gates e.g. technical, accessibility, performance, backwards-compatibility, documentation, internationalization and usability.
- Communicating with sub-system experts in order to gain sign off on non trivial changes
- Writing documentation as required
- Manual testing of the patch
- Communicating any changes via blog posts, change records, release note snippets etc.
- Coordination and management
If you are are looking to get involved - come join us on Slack in the #bugsmash channel.
We will meet asynchronously in the #bugsmash slack channel fortnightly on a Tuesday at 0400 UTC which maps to the following times:
- 2pm AEST
- 12 noon AWST, CST
- 4pm NZST
- 9.30am IST
- 6.00am CEST
- 5.00am BST
- 8.00pm PST
- 11.00pm EST
I organized Drupal 9 Porting Day for April 28 as part of my #DrupalCares funding sub-campaign to help the Drupal Association bounce back from their financial losses due to the ongoing pandemic. It was a lot of fun with Lee Rowlands, Vladimir Roudakov, Adam Bergstein and Mike Lutz helping lead the contribution before and after my time of availability. 126 issues were worked on and 43 newly Drupal 9 compatible releases were made then.
Given how fun it was, with Drupal 9 coming out next week it was logical to do another event. Last Friday would have been a great opportunity in person at DrupalCon Minneapolis if not for the pandemic (again). So I decided to schedule the event for that weekend. Surabhi Gokte and Gabriele Maira helped a lot in getting the event off the ground and we announced Drupal 9 Porting Weekend for May 22-23 to accommodate people available on the workday as well as the weekend.
With more time to prepare, a lot more interested folks signed up to help lead the event in their respective timezones. 14 leads signed up and helped contributors for 52 hours, while the event lasted. Thanks Vladimir Roudakov (VladimirAus), Janna Malikova (JannaKha), Vaibhav Jain (vaibhavjain), Tsegaselassie Tadesse (tsega), Gabriele Maira (gambry), João Ventura (jcnventura), Oleh Vehera (voleger), Matthew Radcliffe (mradcliffe), Michael Lutz (mikelutz), Adam Bergstein (nerdstein), Kristen Pol, Qiangjun Ran (jungle), Jaideep Singh Kandari (JayKandari) and Digant Jagtap (digantdj), you were fantastic!
Kristen Pol and Tsegaselassie Tadesse were also very active in the planning stage, Kristen published a very detailed guide to the weekend, Tsega wrote up and posted developer tips. The Bassam Ismail posted this video based on those guides of an actual Drupal 9 project update running with Upgrade Status and Rector, ending in submitting the patch:
So with everything well prepared, Vladimir and Janna started the weekend and the leads were handing off responsibilities to each other throughout the whole event. This is how time coverage looked like for the whole 52 hours. There was not a single time when someone was not there to help:
We had a lot of fun and learned a ton from each other. While numbers will not explain the event, that is all we have after the fact to look at, so here they are:
- 119 people participated on the #d9readiness Drupal slack channel throughout the event
- 521 issues were worked on altogether
- 188 of those issues are Fixed or Closed (fixed) at the time of this writing. That is more than the number of issues even worked on on the previous event!
- An additional 111 issues are Reviewed & tested by the community at the time of this writing, so hopefully many of those will also land soon
When looking at project releases, the weekend also supported a major increase in daily newly Drupal 9 compatible releases also with several days of after-effects (I am counting these with my own script):
New releases at the weekend and shortly after included fun modules like Pirate but also seriously cool modules like the Tome static site generator, Quicklink and top 200 most used modules like Views Accordion and Schema.org Metatag.
As luck would have it Drupal 9.0.0 RC1 was also released on this weekend, which meant that people testing their updated projects also gave the Drupal 9 release candidate a test drive right away.
For me this event was amazing to organize. The results in new Drupal 9 compatible projects before the stable core release and the additional testing of the release candidate are all good material outcomes. The raised awareness around the porting process and tools as well as the know-how shared will last even longer as people use what they learned and teach others as well. Also the concentrated increased use of the tools resulted in more improvement suggestions, so we can make them even better for the next wave of porters to come.
Thanks all for your involvement, you made a lasting difference. Keep spreading your know-how and all the good things about Drupal 9!
Ps. Next up is celebrating the release on June 3rd, 2020! Post your artwork, selfies, videos and events at https://celebratedrupal.org/ and let's have some fun together.
Universal design of ICT is about designing websites, apps and self-service machines so that as many people as possible can use it regardless of disability. Those who use your website may be visually impaired or blind and therefore dependent on screen readers, or people with disabilities who use keyboard only or other tools to navigate the website, or users with cognitive disabilities.
We've put together five tips on how to make the site accessible to as many users as possible.
Your website should be easy to read. Those who use the website may be visually impaired, may have cognitive impairment, or may simply want to scour the content of the page. Simple design concepts such as using the right size of the text, length of lines and subheadings help here.
In documents and on print it is common to use 12 dots on text, while on screen this text becomes very small. It is recommended to use 14 or 16 points instead. The text should also stand out above the background. Avoid long texts on images and, if necessary, use a semi-transparent background color.
Long lines are harder to read, and the long distance from end to start of the next line can also interfere with the flow of reading. For a single-column page, 45 to 75 characters are considered satisfactory lengths. It also helps with the read flow that the start of each line is equal. Body should therefore be aligned to the left, not centered.
Divide the text into paragraphs and use headings and subheadings. This makes it easier to understand the structure of the text. Make sure the headings are bigger so that they are different from the body text.02. Contrast for the visually impaired and color blind, but also those who are out in the sun.
It is of little help that the text is large enough if you have light gray text on a white background. Good contrast on texts, buttons and icons is very important. This is not only for the visually impaired, but also for users who have low brightness and contrast on their screen, such as when out in the sun.
For at innholdet skal komme godt nok frem skal kontrasten være 7:1 på liten tekst (f.eks brødtekst) og 3:1 på overskrifter og større illustrasjoner, ikoner o.l.
For the content to appear clearly enough, the contrast should be 7: 1 on small text (eg body text) and 3: 1 on headings and larger illustrations and icons.03. Proper use of alt text
Alt text is a texts that can be read by screen readers so that those who cannot see the image won't miss any important information on the page.
A typical mistake is to start the alt text with "Picture of ..". or "icon for ...". The screen readers knows that the content is an image, but it needs a text to describe it to the user. Therefore, use the alt text to describing the image rather than explaining that it is an image.
It is also important to be detailed if it is important to the context. The alt text should not consist of keywords, but be a complete sentence. Examples of bad alt text for the image above would be "Person with mask, graffiti wall". A better alt text is "Man with a white Guy Fawkes mask is facing camera in front of a graffiti wall." Also, make sure the text is not too long. The maximum length of the alt text is 125 characters.04. Make the links stand out from the text
Links in the body text can sometimes be difficult to detect, especially for the visually impaired and color blind. The links should therefore be clearly distinguished from the text around, both in color and underline. But it is not just in the design that one can make a difference, it also matters what text you use. We often see links at the end of a sentence that are named "here". For example, “Read about our services here”. Instead, you want to tell the user what the link does or what content it links to in the link text itself. A better link text would be "Read about our services".05. Make the texts easily understandable
This tip is very much related to the first, but this is more about language and content production than design and layout. Keep in mind that some users might have some cognitive disabilities. A simpler language and shorter sentences might make it easier for these users.
- Make your texts short and precise. Avoid writing long paragraphs that cover several topics.
- Use bullet points if possible.
- Simplify the language. If you use abbreviations or subject terms, it is wise to explain these the first time they are used.
- Use images and illustrations to divide the content and to illustrate the main points.
With the imminent release of Drupal 9, it’s a great time to give serious consideration to your update strategy. There is much to look forward to this time around, whether you are a Drupal veteran or new to the family.
The good news is that this will be a much easier process than the most recent major version updates, so if you’ve been using Drupal a while, this should come as a relief. However, It is important to note that while it is not a painful migration process, it’s also more than just a few clicks away. Drupal 9 changes a few assumptions many of us are used to as Drupal site builders, but preparing now will take you far.
Drupal 9 is basically just Drupal 8 with updated dependencies and deprecated code removed, which makes for a fairly straightforward update process, but the devil is in the details.Getting Started
First, there are some prerequisites you’ll want to keep in mind.
- Your current site must be running on at least drupal 8.8 to upgrade. This means a fully up to date install.
- You must use PHP 7.3 or higher. Drupal 9 requires php 7.3
- In some cases, Drupal 9 needs a newer version of whatever database you're on now, so you may need to upgrade your database. See Environment requirements of Drupal 9 for details.
As you start looking for Drupal 9 compatible modules, you may find yourself a little perplexed as you browse modules on Drupal.org and notice that none seem to have a Drupal 9 compatible release.
They do, but it's a bit hidden.
(Note that you do not have to look up every module you are using on Drupal.org. We'll get to a handy reporting and scanning tool shortly, but it's important to note these changes to how modules will work with Drupal 9.)You will find Drupal 9 compatibility in the small text under "Project Information."
The concept of modules being tied to a major release is old Drupal, and we're living in the future now. Modules can work with more than one major version of Drupal! So, you won't see a big highlighted box for a Drupal 9 release on module pages.
In the near future, you'll start seeing more module releases using semantic versioning on Drupal.org. A few are already there. The major version of core will no longer be part of the module's version number. You can see this in action on the semver_example module and on the Lightning project page.Lightning version 5.x.x uses semantic versioning.Evaluate Your Site
Once you have met the requirements to run Drupal 9, the next step is to evaluate your site. The first course of action is to update all modules to the latest version. There's a good chance they're already D9 compatible. Then, check for deprecations in your themes, contrib modules, and custom modules.
Deprecations are old Drupal 8 functions which have been removed from Drupal 9, and you’ll need to find them to replace them with up-to-date code. To do this, I recommend starting with the Upgrade Status module. This module will scan your codebase for deprecations and provide you with a handy report. Install it in your development environment, and note that it must be installed with composer.$ composer install --dev $ composer require 'drupal/upgrade_status:^2.0'
Once you've enabled Upgrade Status and navigate to its report at admin/reports/upgrade-status, you'll see some important information about your environment that will indicate your ability to run Drupal 9.The top of the Upgrade Status report.
Upgrade Status will scan your custom modules and themes and all your contrib projects and give you this lovely output.
One warning per custom project is great news, especially when the fix is as easy as adding core_version_requirement to the project's info file. Further down the report, you'll see the a list of your contrib modules. Even though we've updated our modules, we may still see that they are not all D9 compatible, and Upgrade Status will show those errors.
You may see some text under the module that indicates its status. Module maintainers may optionally provide this very helpful information. Sometimes it might be as simple as "This module is ready for Drupal 9".
If you see something like "Version 1.x-dev is ready for Drupal 9", "dev" means the latest version isn't D9 compatible. They may also indicate which future release will be compatible, and even include a link to an issue on drupal.org with further information about the module's status, and we’ll see an example of that when we dive deeper into evaluating contributed modules.
But wait, you are probably wondering how Admin Toolbar is compatible when it shows 12 warnings!
You'll errors like this sometimes when using Upgrade Status. There are two main reasons why you'd see this:
- The problem might be in a test class, like in this example. Tests can't always be scanned, but you can safely ignore them because you won't run test code in production.
- The module might have a third party dependency that you don't have installed. That's totally okay -- those dependencies may not even be Drupal modules, so they don't matter to Upgrade Status.
Generally, you can trust the maintainers that the module is indeed "ready for Drupal 9."
You'll get lucky with some modules, and they'll have errors that are pretty easy to fix. Some may be a little more challenging or involve some refactoring, but many will have a handy link to the API documentation, as below.
If you click one of the nice error messages, you get to the api documentation page for the deprecated function, which may also contain a helpful link to the change record with thorough examples to help you change your code the best way:
Change records document changes to Drupal core. They will describe the change and the impact of the change. It should include any interface changes, function or hook changes, and it's helpful for understanding how to address these changes with your own code.
Note that not all errors will have a link to further documentation, but that's okay because a little API searching will do the trick.The deprecation notice.
If you look at the top ten most popular Drupal 8 compatible modules, all are compatible in their dev branch, and 9 of the 10 have full compatible releases. This is incredible progress.
But, as we get further down the popularity list, we're likely to find some incompatible modules.
As you continue your discovery process, it's a great time to evaluate where your pain points will be. Get involved and try to help modules reach their Drupal 9 compatibility goals, or if a module seems stalled or the last commit was 3 years ago, have a backup plan to include a patch or re-evaluate the need for the module at all.
Acquia's Drupal 9 Deprecation Status page is also a great source of information. This shows the status of all contrib projects, and gives you an idea of where the entire Drupal ecosystem stands with regard to Drupal 9 readiness.Fix Your Errors
Once you've equipped yourself with the prerequisite information, it's time to move on to fixing any errors you have found. I'd start with the easy ones and work your way up.
Now is a great time to introduce the Upgrade Rector module. Upgrade Rector is a UI that uses drupal-rector to help you automatically generate patches. If you install the Upgrade Rector module, since it integrates nicely with Upgrade Status, you'll be able to generate an automatic patch for some modules as you scan them. Rector is limited at this point though, so you may end up with results similar to the following screenshot, but even a couple patches could get you a little ahead of the game and save a bit of time. And, like everything in the Drupal world, development is moving fast. By the time you install Upgrade Rector and scan your site, it's likely you'll be able to automate several of your patches.Drupal Rector output visible on the Upgrade Status report (admin/reports/upgrade-status). Click the "patch available" link to see the generated patch. Drupal Rector displays the patch in a modal window.
Below, you see the changed lines highlighted, and your custom code is ready to go. There is a caveat, however. If you've found a contrib module that has not yet been patched in the issue queue and you'd like to add one, I can tell you from experience that if you post a patch like this for a contrib module, an experienced maintainer is likely to ask you to make changes to it. In this case, someone could point out that these replacements use the global Drupal class, which is not always the ideal approach in contrib modules, but it's safe to use in your custom projects.
This example used a contrib project, but it's useful to remember that with contrib projects, you aren't alone, so save yourself some work and check the module issue queues to see if the deprecations have already been patched, or even committed. Some maintainers will also have an explicit link to the main Drupal 9 issue in their queue, and this will be visible on the Upgrade Status Report, on the module page, and on the Acquia Deprecation Status tool.
If they haven't, then you can make the changes yourself and submit a patch to the issue queue and do your good deed for the day. With any luck, you'll just have to focus on your custom code.
- Avoid duplicating work.
- Check the issue queue first.
- Then submit a patch.
Once you have gone through your list and fixed and rescanned until it's all green, or you have gotten as far as you can, next make sure all your automated tests are passing. There is a pretty good chance the Update Status results screen will never be completely green, and that's okay because static analysis is not perfect, and neither are automated tests.
Once you feel like you've exhausted all your options with static analysis, you can try actually testing with Drupal 9 core.
You can test your current status by requiring Drupal 9 like so:$ composer require 'drupal/core:~9.0'
Now, you may have to do some composer wrestling to get this going, but you'll get there!
You may see errors like this:Your requirements could not be resolved to an installable set of packages. Problem 1 - Conclusion: remove drupal/cookieconsent 1.4.0 - Conclusion: don't install drupal/cookieconsent 1.4.0 - Conclusion: don't install drupal/core 9.0.0-beta2 - Conclusion: don't install drupal/core 9.0.0-beta1 - Conclusion: don't install drupal/core 9.0.0-alpha2 - Conclusion: don't install drupal/core 9.0.0-alpha1 - Conclusion: don't install drupal/core 9.1.x-dev - Installation request for drupal/cookieconsent ^1.4 -> satisfiable by drupal/cookieconsent[1.x-dev, 1.4.0]. - Conclusion: remove drupal/core 9.0.x-dev - drupal/cookieconsent 1.x-dev requires drupal/core ~8.0 -> satisfiable by drupal/core[8.0.x-dev, 8.1.x-dev, 8.2.x-dev, 8.3.x-dev, 8.4.x-dev, 8.5.x-dev, 8.7.x-dev, 8.8.x-dev, 8.9.x-dev]. - Can only install one of: drupal/core[9.0.x-dev, 8.8.x-dev]. - Can only install one of: drupal/core[9.0.x-dev, 8.9.x-dev]. - Can only install one of: drupal/core[9.0.x-dev, 8.0.x-dev]. - Can only install one of: drupal/core[9.0.x-dev, 8.1.x-dev]. - Can only install one of: drupal/core[9.0.x-dev, 8.2.x-dev]. - Can only install one of: drupal/core[9.0.x-dev, 8.3.x-dev]. - Can only install one of: drupal/core[9.0.x-dev, 8.4.x-dev]. - Can only install one of: drupal/core[9.0.x-dev, 8.5.x-dev]. - Can only install one of: drupal/core[9.0.x-dev, 8.7.x-dev]. - Installation request for drupal/core ~9.0 -> satisfiable by drupal/core[9.0.0-alpha1, 9.0.0-alpha2, 9.0.0-beta1, 9.0.0-beta2, 9.0.x-dev, 9.1.x-dev].
You may see errors like this. Any modules that don't declare compatibility with Drupal 9 will not install. They need to do that with core_version_requirement in their info file. As a workaround, you could temporarily remove them until they do, and test the rest, or you could bring them in without using composer, and check them that way. That will allow you to identify any missing core_version_requirement keys in sub modules, or other issues that may have slipped through.
Once you have a Drupal 9 codebase, you are not necessarily home free, as static code analysis doesn't catch everything. At this point, you may face errors when trying to run your site. In fact, it's likely. A good way to check for errors is to run drush cr once you've upgraded. In my experience, references to deprecated services may have slipped through, and they'll pop up once you've switched to Drupal 9.
At this point, you may face errors when trying to run your site. In fact, it's likely. A good way to check for errors is to run drush cr once you've upgraded. In my experience, references to deprecated services may have slipped through, and they'll pop up once you've switched to Drupal 9.
For example:You have requested a non-existent service "entity.manager". You have requested a non-existent service "path.alias_manager". Next Steps
If errors are coming from a contrib module, your first stop should be the module's issue queue. Report the error if it has not already been reported. Active maintainers and other contributors are likely to respond to the error quickly, especially in popular modules. If you need to explore further, run the module's tests.
If the error is in your custom code, as in contrib modules, some of these changes will be easier, like simply replacing the old service with the new, and sometimes you'll have to rethink your code a little bit. You may find some guidance in the change records: https://drupal.org/list-changes
Once you have your fixes in place, you should again be ready to make sure any automated tests are passing with Drupal 9. Then, give things a manual test for good measure.
But what if it hasn't gone so smoothly? What other challenges might we face?
The differences between getting custom projects ready for D9, versus contrib projects, are pretty clear. You are in charge of your custom code, and you can define your own timeline for a Drupal 9 compatible release. With contrib projects, the maintainers are the gatekeepers, and you may find yourself temporarily blocked while waiting for patches to be committed. The upside is that once ready, it's an easy update away!
Almost all Drupalers are kind and generous people, as you know, but some are a little busy. Ultimately, it's going to take the efforts of many to get the contrib modules you need ready. And in the meantime, you probably have enough custom code to tackle.Making Sense of Contrib
As someone who used to spend a lot more time using Drupal than looking at issue queues, I can understand how the process of evaluating a module's readiness, or progress toward readiness can be less straightforward. But I'll show you some key places where I go digging for this information.
Search API is a great example of a helpful status message. You'll find the status when using Upgrade Status and at Acquia's deprecation status page.
You'll see that this module has included a link to an issue which will tell you what you need to know about the status of its Drupal 9 compatibility. This is very convenient.
But now, let's look at reCAPTCHA. You'll notice there is no indication of Drupal 9 compatibility on the module page.
Next, we can check it on Acquia's Deprecation Status page.
This suggests reCAPTCHA is ready to go, but let's try and verify. Note that no Drupal 9 plan is provided to indicate the status of its compatibility.
It's always a good idea to check the issue queue for Drupal 9 progress when it's not linked from the status message. We got lucky, and this post is right near the top.
There are some good signs in this issue. There's a patch and it was committed.
There are also some less good signs. What are these D9 composer require failures? We don't really know the status based on this. And remember, just because this test isn't running does not necessarily mean this test won't work for you. The only way to know for sure will be when you try it.
So, let's go back to the module page.The modules automated tests are another important source of truth.
This page looks less promising. The module's tests currently fail with Drupal 9. If we click the failure notice, we'll see the test failures in detail.
Here we can see the problem. reCAPTCHA can't be Drupal 9 ready until its depedency, CAPTCHA is. So now's a good time to head over to the CAPTCHA module's page and check its status.
Maybe you could help them move it along!
In this post, I've laid out the major steps toward getting your site ready for Drupal 9.
- Update core and all your modules, and satisfy Drupal 9 minimum requirements.
- Remove all deprecations in your custom code, and make sure all your contrib modules are ready for Drupal 9.
- Upgrade to Drupal 9 and test manually.
In summary, if you start this process now, you'll be a little ahead of the game. If your projects are ready, it's a pretty seamless update, and if not, now is the time to get them there. Keeping your current Drupal 8 site up to date will get you far.Resources
The launch of Drupal 9 is less than a week away, and that is cause for celebration. In the past, the Drupal community and the Drupal Association have organized a variety of celebrations across the globe. For Drupal 8's launch we saw more than 200 release parties happen on six continents.
Celebrations in the time of COVID-19 are a much different affair; the world looks different than it did for Drupal 8's launch in 2015.
But that doesn't mean we aren't going to celebrate!
For Drupal 9, the community has built CelebrateDrupal.org - a central hub for all of the virtual celebrations the community will undertake this year for the release of Drupal 9.
We encourage you to join in the fun!
You can post your virtual events for others to join, upload photos of your Drupal 9 cupcakes, or selfies of your celebration, or add video. We've also provided a complete brand kit with the updated Drupal brand, which you are welcome to use as part of your celebrations.
Finally, we'd love to have you join us for DrupalCon Global, from July 14-17, where we'll be reflecting on the Drupal 9 launch as a community.
While we're sad we can't celebrate in person, we're thrilled to celebrate with the whole Drupal community virtually following Drupal 9's release on June 3rd. We'll see you online!
In a recent Drupal training, I got a question about a replacement for the Drupal 7 Nodequeue module for Drupal 8 and other future versions. What this module allowed you to do was sort your content in whichever order you preferred.
In Drupal, we make lists of content using Views and out of the box, and we have the ability to sort this content in different ways, such as:
- Date created
- Date updated
But what if I want a list of content sorted in whichever order that I want? This is what Nodequeue allowed me to do: let me sort my content arbitrarily.
Unfortunately, the Nodequeue module no longer exists for Drupal 8. But good news: there's a replacement called Entityqueue. This module does everything that Nodequeue lets us do in Drupal 7, and more.
But content creation in Drupal has changed since Drupal 7. Many people are now using the Paragraphs module to lay out their content, so in this video tutorial, I'll be showing you two different methods of custom sorting:
- Entityqueue in Views
- Paragraphs with Content Reference
After installing the module, we have a new option in Admin > Structure called Entityqueues. By default, there are no queues, so we create one:
- Name: Featured Content
- Queue Type: Simple queue
- Type of Items to Queue: Content
- Content Type: Article (or whichever content you'll be sorting)
After saving our queue, we have two different ways of adding content to the queue. We click 'Edit items' and type in the title of the content in the autocomplete field, click 'Add item', and click 'Save.'
Another way to add items to the queue is to go to the content and click 'Edit'. Now, a new tab appears at the top of the page that says 'Entityqueue.' This will show a list of the queues this could be added to (it could be more than one). Click 'Add to queue' to add it.
After adding it, we might want to rearrange the order of the items inside of that queue. Click the 'Edit subqueue items' and drag them around.
For this tutorial, I've assumed you've already created a View of your content that you'd like to sort. Now, how do we get what we see in our View to match our queue?Add Relationship to Your View
The magic of Entityqueues comes from the relationship that we add in Views: whatever happens with our queue can be matched in our View. To add the relationship do the following:
- Open the 'Advanced' section of your View
- Click 'Add' on 'Relationships'
- Check the box next to 'Content queue' (found in the Entityqueue category)
- Click 'Add and configure relationships'
- Check the radio button for the queue that you made (if you've made more than one, they will all show up here)
- Check 'Require this relationship'
After doing this, the View will now only show content that has been added to the queue. Great!
However, the order of our content might be incorrect. How do we get the sorting to match what's in our queue?Add Sorting Criteria
If you've made no changes to the sorting criteria on your View, your content is likely being sorted by 'Content: Authored on (desc).' Basically, it's being sorted by the date the content was created. We need to remove this sorting criteria:
- Click on 'Content: Authored on (desc)'
- Click 'Remove'
Now, we need to add a new sort criteria that matches what is in our queue:
- In 'Sort Criteria' click 'Add'
- Check the box next to 'Content Queue Position' (found in the Entityqueue category)
- Click 'Add and configure sort criteria'
- Click 'Apply' (you can leave the default settings)
And now, our View content and order matches what is in our Entityqueue!Paragraph Type with Content Reference
Although Drupal 7 did have support for the Paragraphs module, this method of laying out content has really gained popularity since Drupal 8 was released in 2016. To keep this tutorial brief, I won't go into all the details of creating new Paragraph types, but here are the basics.
After downloading and installing the module, we have a new section in Admin > Structure called Paragraph types:
- Click 'Add paragraph type'
- Label: 'Featured Content'
- Description: 'Content that can be added and sorted arbitrarily'
- Click 'Save'
- Click 'Add field'
Add a new 'Content' (reference) field:
- Label: 'Featured Content'
- Allowed Number of Values: unlimited
- Restrict to Content: 'Article'
- Click 'Save'
On your Paragraphs-enabled content type, you now have the option to add a 'Featured Content' paragraph. This will display an auto-complete field (similar to Entityqueue) where you can type the Title of the content you want to feature. You can add multiple items, and rearrange them how you'd like.
By default, what's shown is a simple link to the content, but this can be modified at the theme layer to display however you'd like, such as a slideshow of the featured content (but that's beyond the scope of this tutorial).Comparing the Two Methods
From an Editor's perspective, it seems like there's less steps involved going with the Paragraphs approach, so why use that over Entityqueue? There's advantages to both methods and you have to choose which is right for your scenario.
If you have a Paragraphs-enabled content type, going down the Paragraphs route may be the simplest option. Editors just add the Paragraph to the page and begin typing and re-ordering the content. However, this features content in only one location on the site.
With Entityqueue, though there's a few more steps from the Editor's perspective (and you may want to create a menu item so they can get to the queues quicker), if you need content to be sorted and featured in multiple places on your site, this is the route to go. In the video, I created a Views Page which has a relationship with my queue, but I quickly created a Block, which inherits all the settings I had from my page) and I can now place this in a region and have the two show the same content in the same order.Wrapping Up
Nodequeue was a great Drupal 7 module, and luckily its spirit lives on (okay, that sentence might be a bit puffed up). But Entityqueue offers a great alternative and even includes some features that Nodequeue didn't, like being able to sort other entities like users and taxonomy terms.
And content entry in Drupal 8 has evolved with the Paragraphs module, which also offers us a nice, easy-to-use method of sorting content in whichever order we'd like. To get more in-depth web development training, check out our training page or sign-up for a tutorial.+ more awesome articles by Evolving Web
Before everyone was learning to use Zoom virtual backgrounds, Will had built out a full 3D room for his background, including family pictures and other fun details. He talked about what he built and may inspire you to try some more personalized than swaying palm tree and night skies.
If you would like to join us please check out our up coming events on MeetUp for meeting times, locations, and remote connection information.
We frequently use these presentations to practice new presentations, try out heavily revised versions, and test out new ideas with a friendly audience. So if some of the content of these videos seems a bit rough please understand we are all learning all the time and we are open to constructive feedback. If you want to see a polished version checkout our group members’ talks at camps and cons.
If you are interested in giving a practice talk, leave me a comment here, contact me through Drupal.org, or find me on Drupal Slack. We’re excited to hear new voices and ideas. We want to support the community, and that means you.
It’s been a long few months for many of us and we’re all ready for some good news!! Luckily, as a part of the Drupal open source community, we have some. Our group continues to be full of strong, resilient, and uplifting individuals who truly understand that we're all in this together.You Have Resources
We cannot recommend strongly enough to please, stay connected and in-touch with your local community. Now more than ever, this can help maintain momentum and provide the companionship that many of us miss during this time of social and physical distancing. Many local and regional meetups provide time at the beginning of their events for networking, including dedicated time for those looking for work and those who are hiring. We encourage virtual event organizers to continue to provide (or even expand) this aspect of online events.
Beyond the power of word-of-mouth, there are other online resources available to you in these unusual times. There are Drupal Camps that have year-round job boards posted on their websites. Drupal.org has a whole section of their website dedicated to those looking for work. The organizations that are posting here are invested in Drupal, just as you are. This common spark could start you on a new path.What You Can Do for Yourself
In spite of the global state, there are many things you can do - you are empowered! We suggest you start with the following:
- Add your profile on Drupal.org
- If you already have one, give your Drupal profile an overhaul and be sure it’s up to date.
- Update your bio: Ask yourself if that is really how you see yourself
- Past companies: Don’t forget to show your growth
- Bio Picture: Just make sure that if you look like it’s your prom picture, that you intended it that way.
- Ask a fellow community member to review and provide suggestions for improving it. Many of us have difficulty in promoting ourselves, so ask for help to ensure that potential clients/employers see you for all that you are!
- Update your resume
- How to prepare for an interview
- Don’t get shy. We repeat: Don’t Get Shy! Even when feeling the “aloneness” of it all, get out there virtually. Attend local meetups and camps to network and grow the community
- Spread your wings and attend meetups that have pivoted to virtual formats.
- Attend contribution days and give back to the community. These offer great ways to refine your skills and grow your network
- Keep learning. In the face of everything, stay curious! It’s probably how you started down this road, to begin with
Great leaders know that communication is the key to success. Now more than ever, your leadership skills and community contributions are needed to help pull us through this global crisis. Please,
- Be transparent with employees and contractors. We are all in this together.
- Sponsor DrupalCamps at the job board level to get connected.
- List any open positions on Drupal.org.
- And remember the gift of presence; network at local and regional meetups and mentor those you can.
Even in challenging times, we as individuals and as groups cannot stop growing. Take time, get talking, and get excited. There are many more roads to be traveled, together.Resources
- Drupal job board
- Preparing for an Interview from Indeed.com
- Glassdoor Career Guide
- Career Development Guide from Robert Half
We welcome additional resources in the comment section, thanks!
One of the most powerful features with Drupal is the ability to create multiple site instances from the same base platform. The Drupal multisite system is great for managing university departments, government agencies, and corporate microsites wanting to standardize design and features across many sites.
The problem with the standard multisite setup is that it’s not easy to spin up new sites without the help of a developer. Mediacurrent makes this process painless with our new launch tool for multisite! The Mediacurrent Multisite+ solution allows site administrators to create a new site from a simple web form located in their website’s Drupal 8 admin interface. Creating a new site instance now takes a matter of minutes.
Read on to find out how this works, or contact us now for a free demo.Here’s how Multisite+ works
We will get you up and running in 3 steps. For our initial launch, we support Drupal 8 on Pantheon.io’s hosting platform with Acquia support in Q3, 2020 and Drupal 9 coming soon.Step 1 - Configuring the Application
The first thing we will do is set up the application environment to be compatible with a multisite environment. Drupal 8, by default, is built to be multisite-compatible by allowing configuration to be re-used across multiple site instances.
For the Pantheon hosting environment, we will create a custom Upstream from the desired Drupal 8 application. Our Multisite+ integration will leverage this Upstream to provision new sites, each with their own dedicated resources.
Example of Upstreams created by MediacurrentStep 2 - Setting up Automation
As a next step, our DevOps team will set up the automation that allows the Drupal application to interact with the hosting environment. This process does the “heavy lifting” of actually spinning up the site instance and running the installation process.Step 3 - Enabling the Multisite+ Module
Finally, we will add and configure our Multisite+ module for the primary Drupal 8 application that needs to kickoff new site installations. This module connects your application to the automation that does the actual work to set up your new website instance.
When we’re done with this one-time setup, a new form becomes available that administrators can use to initiate a new website build.
Multisite+ form example
And that’s it! Now your administrators have the keys to create new campaign sites, microsites, or any other type of site that leverages an existing Drupal 8 application.Ready to get started?
Mediacurrent would love to work with you to better enable your teams to manage multiple Drupal websites. For more information on how to get your organization set up, please visit our contact page or chat with us right now (see bottom right corner of the page). We would be happy to talk more about your project or schedule a demonstration.
Vardoc, a Drupal distribution, is a knowledge base system, a wiki system, and a document management system designed to host a massive amount of content in a structured and easy-to-find format. With Vardoc, your content can be easily structured, and scheduled. It allows you to personalize your content easily and contribute your expertise in the knowledge base.
You can build a connected organization, product, or knowledge area to allow everyone involved to find the answers they seek and contribute their expertise in the knowledge base with the help of Vardoc. Think of it as a wiki site of your product, user manuals, or organizational processes with an easy structure, collaborative tools, and a friendly design.An insight into Vardoc's elements Who can benefit from Vardoc?
Let’s get to the part where we understand who this system is for. The agencies who want to document their software, product documentation sites and website based interactive user manuals can benefit from Vardoc. It also works a great deal for documentation of Open Source projects and inter-organisational processes. Vardoc is cost friendly and saves the usual development time.What makes Vardoc wonderful? Search
A by default powerful search which searches through the vast repository of the documents and provides the relevant results. The search mechanism is already set and tailored for the knowledge base system by prioritizing headings and titles more than the content's body.Editorial features
The distribution supports editorial features which help keep the documents up to date. The editing mode is also tailored for quick review and vetting of information. Vardoc’s media library is full of interesting features that provide an appealing way to display media libraries. Vardoc also allows one image to have many previews with the help of image cropping and settings present within the CMS. And, it provides simple and easy ways to create and manage new and existing pages respectively.Taxonomy
Being a knowledge base, the website at its core provides powerful features to structure the framework in which the documents are to be stored. This gives the user the power to tailor the structure and present the data in a hierarchy which best suits the organization.User Management
To control and regulate the engagement of the website the admin will have full control of their roles and permission. You don’t need to worry about losing the important experience that is needed when a team member retires or leaves. Vardoc helps you to engage users from various departments to use the information that is needed in one space.Customisable themes
It is essential to have proper theming on your website. You can brand your website by modifying the starter theme with some easy-to-make and quick CSS changes.SEO
When potential users are searching the web, make sure your website is there to be found. On Vardoc you are immediately optimized for search engines when you update your sitemap.xml, create and set customized URL paths and custom page titles, and include specific keywords.Accessibility compliance
The Vardoc based website already complies with the accessibility requirements (WCAG 2.0) for various user groups.Social media Integration
Out-of-the-box social media integration which enables governments to link their social handles to the website.Compatible
Vardoc provides a front-end design to work with all the latest versions of all the commonly used web browsers. Vardoc makes sure that you are able to reach your audience across all devices and web browsers. It is completely optimized for mobile and other devices to access whenever and wherever you want to.Multilingual options
Vardoc provides access to several languages with localized and translated content, date formats, country flags, modern fonts etc.Analytics
Vardoc’s real-time analytics feature allows users to measure and monitor the site activity in real-time through google analytics professional integration.Summing Up
It is much cost friendly and saves the industry-standard development time. It has everything under one roof. Organisations may find it easy to decide but depending on their current website’s dynamics, our resource involvement depends.
OpenSense Labs has always been keen towards finding the appropriate solution for clients and prospects in general. Feel free to reach us out at firstname.lastname@example.org for help.
Drupal 7, our much-loved CMS that was released in 2011, is nearing the end of its life. No, that's not hyperbole; Drupal 7 is scheduled to reach end-of-life in November 2021. Drupal 8 has been out for a few years, but at the time of this writing, Drupal core usage statistics indicate that only about 350,000 of the more than 1.1 million reporting Drupal core sites are using Drupal 8.x. Over 730,000 of those sites are still using Drupal 7.
Drupal is one of the most popular CMS-es in the world. Currently, over a million websites use Drupal. The larger the website, the more likely it is that it was built on Drupal. Why should you choose it for your project? Take a look at what programmers are saying about this topic.Robert
Robert develops web applications on a daily basis. He has been doing this for over seven years.Why did he decide to work using such a technology?
"Drupal has a ready-made system with clear documentation. It is also a safe tool for building websites. We can be sure that it will work properly and will not be hacked. Confidential data is therefore secure.
Drupal provides many ready-made modules at drupal.org, making it is easy to organise a website like from building blocks."
Grzegorz has been working with Droptica for almost three years. Every day he further develops Droopler – thus he offers a real contribution to Open Source. Why does he use Drupal?
"Drupal is different from other CMS-es with which it is often compared. Its characteristic feature is open architecture. As website creators, we can choose what data we want to present on the web and how it should be edited. We are not limited to the article/category/static page model – we can freely model the content, responding to even the most specific needs. Building a basic, functional website is extremely fast when compared to other solutions."Bartek
Bartek is not only a PHP developer, but he also has set up his online Drupal-based store.
"I have built a simple platform for selling electronic products that will be easily accessible to those who have paid for the order – everything is automatic, without any additional admin work.
It required installing and configuring several modules and adding a dozen or so lines of my own PHP code. It took several hours of work. The question is: what will help you do it faster?"Why should you consider Drupal for your next project?
This is a more complicated issue, so:1. Immediately after the installation, I have a working page with the most important functionalities for many types of pages:
- logging in,
- creating various types of content (fully extensible forms),
- simple interface for building queries in order to present data in various ways.
- There are many additional modules that add even such complicated functionalities as a store with just a click of a button.
- Drupal has extensive documentation and a well-described API. If like me, you are not a programmer, you can always use the help of a professional.
- Drupal uses Symfony components and has a similar structure. If you are familiar with this framework, you will find your way around it quickly.
Drupal's security team operates on a very high level. Security updates are being released immediately after finding and fixing any problem with the system.4. Drupal is Open Source What does it mean exactly?
- It is free,
- you can modify it according to your own needs,
- you are independent of other service providers, so you can develop it yourself or it can be done by any team associated with Drupal.
"Drupal 8 is the best CMS written in PHP with programmers in mind. It is also an Open Source platform – accessible by everyone. It is built on Symfony components. It is a very rich API, with a very good and – most importantly – reliable documentation. Why am I a Drupal supporter? It has a huge community that is active and participates in contrib projects. By choosing Drupal as a technology for your website, you get the support of a huge community with members from around the whole world."Summary
These are just a few examples of the programmers' opinions about Drupal. The longer someone works with Drupal, the more clearly, they see its huge number of advantages. Clients also notice this and intentionally choose Drupal as a technology for building their websites, e.g. Bossa or Here.com.
If you are thinking about choosing a technology for your company website or web application, consider Drupal. You can find the complete information on Drupal at "Why Drupal".
Usually, the restrooms are marked as ‘men/male’ or ‘ladies/female/women at offices, restaurants and other public places. Have you ever imagined yourself being in a state of utter confusion while deciding which restroom to use? No? Well, this is an everyday issue in the life of trans genders and gender-nonconforming people. The sad truth is that they fear harassment and keep running into such unnecessary barriers which makes their life harder. No wonder a report on gender and sexuality by J. Walter Thompson Innovation Group had some staggering revelations to make.
With the world gone digital, web designs are one of the barriers in the life of these people. While filling a form or signing up for something, the options for genders are most likely to be male and female. Rarely, we find websites with either no gender options (when not required) or other preferable options to choose from.
In order to provide the best user experience, you need to understand how the facet of their lives intersects with your website. For that, it becomes important to educate ourselves about the LGBTQ terminologies and issues so that you develop a sense of when and what is appropriate to say or ask. If you want to increase the lifetime value of your customers, you need to make your website more trans-inclusive which will enhance the user experience for everyone.Getting things right
Using gender inclusive language and designs means writing or speaking in a way that does not discriminate against a particular sex or gender role. Moreover, it promotes gender equality and stands against gender bias.
Designers should not limit the gender options to male and female, and definitely not make it mandatory! In fact, gender should not be asked where it is not needed. And wherever required, the gender options should not be limited.Key Considerations for gender-inclusive design
Before asking for the gender of a person, make sure you have a good reason behind why you need that information. And when you are sure that it is needed, make sure you give more diverse options to choose from. ‘Prefer to self identify’ or ‘add your own’ are great additional options.
When people are not identified as male or female, they do not like being referred to as ‘he’ or ‘she’. Hence, you can ask for pronouns, so they can be referred to correctly during their experience with your website or app.
Images representing different body sizes, genders on the websites and ads allow room for representation. You can hire models for photoshoots. If you cannot have your own photoshoot, you can use the trans-inclusive stock photo collection launched by Broadly which is free for wide use.
If you ask needless questions or limit the options for the users to select, you lose value in the eyes of the users. Designers should make sure that they put in options that do not perpetuate gender stereotypes.
There should also not be any sort of restrictions to make changes. Once, someone creates a web address, username or complete profile, they should be allowed to make changes if required. The users should be made aware that their information will not be shared with anyone. And if there is some kind of information that needs to be shared, let the users know. This will make them feel safe and build trust.
It is important to have a name change process. It is likely that you have one for marriage related name changes already. Create a process that allows anyone to change their names without any legal documents.
Many websites and applications incorporate gender in their designs and products even though the product is gender neutral. Like, clothing, wine or toys etc. Brands should evaluate an alternative and see what else can be done. Several OTT platforms ask for gender while signing up which is not really needed.
Zee 5, an Indian OTT app, while signing up had male and female as the only two options while asking for gender.
Snapchat profile setting menu does not ask for gender.
There are a lot of gender options and so it is not possible to use all of them. And even if you want to, you will have to change the control you use. For example, consider this screenshot.Source: keepitusableConclusion
We all want to be treated with dignity and respect regardless of our gender, religion, or where we come from. So, make sure that these diverse groups feel at home when they visit your website. Eliminating gender inequality is the future of design.
So tell us, are you ready to ‘trans-form’ your website?blog banner blog image Web Design Inclusive Web Design Diversity And Inclusion Diversity Trans-inclusive web design Gender-inclusive web design Gender neutral Inclusion Blog Type Articles Is it a good read ? On