MidCamp - Midwest Drupal Camp: MidCamp 2021 tickets are on sale now!

Planet Drupal - Thu, 2021/02/18 - 5:42pm
MidCamp 2021 tickets are on sale now!

MidCamp 2021 is just over a month away, and we’re excited about our new scheduleTickets are on sale now, sponsorships are going fast, and we’re excited to see the community gather today for Florida Drupal Camp.


This year we’re embracing the virtual format and working to create spaces that encourage community building, connection, and mentorship.

  • Wednesday, March 24: Community Onboarding — Audience-based discussions focused on welcoming people into the Drupal community and letting experts share their knowledge.
  • Thursday, March 25: Building Community — Attendees will enjoy a day of lightly structured activities to decompress, talk shop, and have some human time.
  • Friday, March 26: Unconference — Instead of formal sessions, we’ll discuss Drupally things in a one-day Unconference format.
  • Saturday, March 27: Contribution Day — Our traditional day to give back to the Drupal project. All experience levels are welcome.

This year’s tickets are all flexible:


Our sponsorship packages are designed to showcase your organization as a supporter of the Drupal community and provide opportunities to:

  • grow your brand,
  • promote the health of the Drupal community,
  • and connect with new leads or Drupal talent.

More information is available on our sponsorships page. Sponsors get full access to our job board, targeting our audience of experienced web professionals from Chicagoland and beyond.

Help Us Spread the Word

The first day of this event is geared towards newcomers to Drupal. Now is a great time for you to invite your co-workers and colleagues to our community. Newcomers will find a welcoming format to learn more about open-source, network with other professionals, and get excited with hands-on learning. MidCamp is a great place to get started and no technical knowledge is required!

Thanks for sticking around. We’re excited for what 2021 has in store. Join the conversation on Slacklisten in on Twitter, or subscribe to the email list.


Tag1 Consulting: On 20 years of Drupal: an interview with Doug Green

Planet Drupal - Thu, 2021/02/18 - 4:28pm

Tag1 Consulting team members talk about their experiences and memories as part of the community. In this installment, Managing Director Michael Meyers talks with Senior Architect Doug Green.

Read more lynette@tag1co… Thu, 02/18/2021 - 07:28

DrupalCon News: Share your skills and talent at DrupalCon

Planet Drupal - Thu, 2021/02/18 - 1:39pm

Join us for DrupalCon North America 2021, where Drupal experts, enthusiasts, and users come together to share what they know and collaborate on ways to create better, more engaging digital experiences.


Centarro: Introducing the Centarro Commerce 2.x multi-store, multi-domain demo

Planet Drupal - Thu, 2021/02/18 - 7:24am

Who doesn’t love a good demo? 😄

Late last year we launched a new Commerce 2.x demo site using our Belgrade theme and Commerce Demo. Not only does it look great, but the new site also beautifully demonstrates Drupal Commerce's "out of the box" multi-store, multi-domain features using Domain and Commerce Store Domain.

Multi-domain support

Commerce 2.x supports multiple stores out of the box. This is useful if you wish to sell specific products to different countries, for example. Products are published per-domain, and the current store context is determined through a pluggable system that lets you determine when to use something other than the site's default store.

Our new demo site uses four stores, each tied to a different subdomain. The current store is checked when we enabled payment gateways on the checkout form, so the subdomains are prepared to demonstrate different integrations:

Read more

DDEV Blog: Execute commands and interact with your cloud containers

Planet Drupal - Wed, 2021/02/17 - 9:13pm

As the owner of a web project, you may want to directly access your production site to run developer tools. Historically, many of us would access a live site using SSH for direct shell access on a single static server for traditional hosting. Some hosting providers give limited access to run single commands from a local command line, or start a remote shell session with more complicated commands...



Promet Source: Drupal Migration Drives Massive Savings for Lenovo

Planet Drupal - Wed, 2021/02/17 - 6:58pm
Seeking to ultimately create a globally centralized, online presence for all of its commercial customers, Lenovo reached out to Promet Source for a range of initiatives that included a performance audit, a Drupal 8 migration, integration with the Lenovo Martech stack, consolidation of 15 separate websites from 60 markets and 87 different languages into its Lenovo Tech Today site, and ongoing support. 

clemens-tolboom starred qarmin/The-worst-Godot-test-project

On github - Wed, 2021/02/17 - 4:21pm
clemens-tolboom starred qarmin/The-worst-Godot-test-project Feb 17, 2021 qarmin/The-worst-Godot-test-project

Test project to check as many as possible functions, nodes and their parameters

GDScript 11 Updated Feb 17

Tag1 Consulting: An interview with Jeremy Andrews

Planet Drupal - Wed, 2021/02/17 - 3:15pm

Tag1 Founder and CEO Jeremy Andrews has been in the Drupal community for nearly all of its existence. From one of the earliest Drupal websites, to the first and only paper publication focused on Drupal, to the success of Tag1 Consulting itself, Jeremy’s experience is nearly unmatched. In this special series of Tag1 Team Talks covering 20 years of Drupal, Jeremy joins Managing Director Michael Meyers for a short discussion about those years, what’s changed, and what it’s been like as a business owner and a developer in the open source industry. For a transcript of this video, see Transcript: 20 years of Drupal - Jeremy Andrews. --- Photo by Jess Bailey on Unsplash

Read more lynette@tag1co… Wed, 02/17/2021 - 06:15

clemens-tolboom opened a pull request in jayaarrgh/BookOfShaders-Godot

On github - Wed, 2021/02/17 - 1:51pm
clemens-tolboom opened a pull request in jayaarrgh/BookOfShaders-Godot Feb 17, 2021 Prevent scrolling out of screen on itch.io #3

When scrolling the within the app https://jayaarrgh.itch.io/book-of-shaders-godot it scrolls out of screen which is annoying. Not sure this helps b…

+4 -0

clemens-tolboom pushed to patch-1 in clemens-tolboom/BookOfShaders-Godot

On github - Wed, 2021/02/17 - 1:51pm
clemens-tolboom pushed to patch-1 in clemens-tolboom/BookOfShaders-Godot Feb 17, 2021 1 commit to patch-1
  • 4ae39b7 Prevent scrolling out of screen on itch.io

clemens-tolboom commented on issue boku-ilen/geodot-plugin#58

On github - Wed, 2021/02/17 - 9:30am
clemens-tolboom commented on issue boku-ilen/geodot-plugin#58 Feb 17, 2021 clemens-tolboom commented Feb 17, 2021

I should have linked to #57 (comment) regarding MacOS failing on .a file extensions

Mediacurrent: How to Fix the Catch-22 Problem of Drupal 9 Fixes in Composer

Planet Drupal - Wed, 2021/02/17 - 8:24am

TL&DR: Use drupal.org's issue forks to make Drupal 9 compatibility fixes work with Composer.

While most software developers are in agreement on the two hardest things in software development – cache invalidation, naming things, and off-by-one errors – not everyone is in agreement on how to rank the rest of the top ten challenges. One that must surely rank high is dependency management algorithms and dependency management tools. These make sure that different libraries and additions to a codebase are kept up to date and APIs are kept compatible. For example, supposing a codebase has SquareWidget v2 and CircleWidget v2; if SquareWidget v3 comes out but is incompatible with CircleWidget v2, the codebase's dependency management tool would prevent updating to SquareWidget v3 until a compatible version of CircleWidget was available.

In the Drupal world we've historically avoided formal dependency management as we could just download a package from drupal.org and get running, occasionally realizing "Oh I needed CTools too" and grabbing it. Along the way some folks built the Drush tool which, amongst other things, could download these dependencies automatically. It wasn't until Drupal 8 came along that more formal dependency management became a thing because of its heavy use of 3rd party libraries, in large part thanks to the use of the Composer system. This tool came out of the wider PHP community's need for a generic, reliable dependency management system, and in the Drupal maintainers' drive to adopt more 3rd party libraries and tools it was the obvious choice. After an initial bumpy learning phase, almost all contemporary Drupal 8 and 9 website projects today are managed using Composer.

The drupal.org infrastructure provides a custom wrapper around Drupal core, module, and theme meta data so that it can be loaded using Composer using its metadata platform Packagist. Modules and themes which already include a composer.json file will have that made available as-is. However, a large portion of Drupal 8 and 9 contrib projects don't have this, so the drupal.org infrastructure maps the info.yml files into a format Composer can understand. This way a module that was initially ported to Drupal 8 a few years ago can still be added to a contemporary D8 project managed with Composer, even if the module hasn't been touched in years. It's awesome.

The World of Drupal 9 Updates

Back in October 2019, a new feature was added to core 8.7.8 which allowed modules to specify the versions they were compatible with by using a new line in their info files. This new line became a requirement on Drupal 9 as there needed to be an indication in modules & themes to indicate what APIs they were compatible with. For most projects the new line makes the info file look like this – note how the old "core" value is now replaced with a "core_version_requirement" value:

name: Commerce Migrate type: module description: Provides various Commerce-specific Migrate handlers. core_version_requirement: ^8.8 || ^9 package: Commerce (contrib) dependencies: - drupal:migrate - drupal:telephone - migrate_plus:migrate_plus

A module (or theme) could use the new line to indicate they were compatible with both Drupal 8 and 9 simultaneously, and the majority of the most popular modules have made the necessary changes.

Drupal 9 presented the first major release of Drupal core that was such a low impact update it was possible to run many websites on either 8.9 or 9.0 just by swapping the core files out (and updating the dependencies). Gone are the days of having to rebuild a site from scratch for each major upgrade, instead we just have to keep our codebases fully up to date and swap to the new core release pretty quickly.

Except for that one line.

That one new line has to be in each info.yml file in the codebase (except for test files, but that's a different matter), so any under-maintained or unmaintained module or theme will need to be updated. Thanks to the wonders of modern development tools, it was estimated that almost a quarter of all Drupal 8 modules & themes could be upgraded to be compatible with Drupal 9 by just changing their info file! Over the course of 2020, thanks to contributions and collaborations from folks all over the world, a huge number of modules and themes were updated to be fully compatible with Drupal 9, and a large portion of those that don't have releases have patches available.

The Catch-22

The fact that there are patches to make Drupal 8 modules & themes compatible with Drupal 9 is great for maintainers or would-be maintainers - they don't need to go through the efforts of making all of the changes themselves, they can just review what has been provided and, hopefully, commit it. Normally patches are great for end-users too, because again they don't have to take the time to make the change themselves, someone has made it available for them.

Here is what happens when you apply a patch using Composer:

  1. Composer downloads the project's listing from Drupal's custom Packagist system (see above).
  2. It compares the dependencies from the listing against what's currently in the codebase.
  3. It deletes the existing copy of the underlying module or theme, if present.
  4. It downloads a fresh copy of the module/theme that matches the dependencies.
  5. It applies the patch.

Normally this patch process works great - you find a patch, add to your codebase, and away you go, remembering to leave a comment to the patch creators how well it works for you. However, there's a major limitation here - even if the patch contains changes to the composer.json dependencies, it's applied after Composer has decided whether or not to install it.

In short, you can't use a patch to tell Composer that a Drupal 8 module is compatible with Drupal 9.

Improved Code Collaboration Workflows

Drupal originally used CVS to manage the codebase. This was very limited by today's standards, but it was reasonable back in the early 2000s and provided a means to centrally manage the large codebases of both core and the ever expanding array of contributed modules & themes. Proposed changes to these codebases were handled using patch files, which are simply text files which indicate a file to be modified, which lines are to be removed and which are to be added. It worked well enough, but there was a large learning curve for beginners to get past.

Over the years more flexible & functional replacements for CVS became common, including centralized systems like Subversion and decentralized systems like Mercurial, Perforce or git. Rather than take the short jump to another centralized system, the effort was taken to build out a replacement code management platform using git, under the umbrella project name of "The Great Git Migration". Completed in 2011, the effort was lead by Sam Boyer, and the community has been all the better for it.

However, after the git migration was completed the community was still stuck with patch files. While github had its pull request workflow, the Drupal community was screaming at the need for somewhat archaic collaboration workflows.

Skip ahead nine years and an awful lot of discussion and research, in 2020 the community finally had a replacement code collaboration workflow in the form of merge requests via the Gitlab system. This new workflow allows anyone to create a fork of a project, make changes, and then create a gihub-pull-request -like change request, dubbed a "merge request", for others to review. Unlike github's pull request system, it's also really easy for anyone to collaborate on the same merge request, which lends itself really nicely to collaboration with others rather than solo development. After some opt-in beta testing, the new system was launched community-wide for every single code project on drupal.org to use.

The new issue fork and merge request system is based upon the simple concept that each individual issue on drupal.org can have its own copy of that project's codebase, an issue fork, and that codebase can be downloaded individually using git. With an issue fork anyone can make whatever changes they need directly with git and others can then download those changes directly using git - no additional tools needed, no patch files flowing around.

This also means that it's possible to tell Composer to download the codebase from an issue fork instead of from the main repository.

This means that an issue fork can be used to get around Composer's patch-vs-dependencies catch-22!

Putting it All Together

First off, it should be noted that issue forks are, to all intents and purposes, a separate physical repository than the parent project they fork from. This means that you cannot just download the issue fork by telling Composer to use a specific branch of the main project, Composer has to be told to use a completely different repository.

It's also worth bearing in mind that, for a given Drupal project (module or theme), only one issue fork can be used at a time. Because an issue fork is a separate repository, it isn't possible to download two different versions of the same module/theme and magically have them squish together. Therefore, if multiple merge requests / issue forks are needed for a given project then the others have to be applied as patches; alternatively, a separate "meta" issue could be created that combines multiple changes into one merge request, but at that point it might be easier to just become a maintainer and commit the changes.

In this example, I'm going to use the merge request created for the Drupal 9 compatibility issue for the Commerce Migrate module.

  • First off, find the issue fork portion of the d.o issue, which should be right underneath the list of attachments & patches, which is underneath the issue summary.
  • Click the "Show commands" button to expand out the example git commands.
  • In both the "Add & fetch" sections there will be a "git remote add" line. Included in this is a URL that's needed to download the codebase from the issue fork - one starts with "git@git.drupal.org" while the other starts with "https://git.drupalcode.org". Copy the full line (click the "copy" icon to copy it to the clipboard) and extract the URL, e.g. git@git.drupal.org:issue/commerce_migrate-3150733.git.
  • Click the "commands" button again to hide them, and then get the branch name, which in the example above is "3150733-drupal-9-compatibility".
  • In the site's composer.json file, in the "repositories" section add a new item with two values: {"type": "git", "url": "URLFROMABOVE"} e.g.: { "type": "git", "url": "git@git.drupal.org:issue/commerce_migrate-3150733.git" }
  • Look for the item in the "repositories" section that has "type" set to "composer". If it doesn't exist already, add an item called "exclude" and make it a list. Add the Composer name of the module/theme you want to use, e.g. "drupal/commerce_migrate", so that it looks like this: { "type": "composer", "url": "https://packages.drupal.org/8", "exclude": ["drupal/commerce_migrate"] },
  • Change the listing for the project in the "require" (or "require-dev") section to point to the branch name identified above, e.g. "drupal/commerce_migrate": "dev-3150733-drupal-9-compatibility",
  • Save the changes to the file.
  • Update the project in composer, e.g. composer update drupal/commerce_migrate.

The last command will now download that project from the issue fork instead of the main codebase.

Note: these should only be used as a short term solution, the goal should always be to collaborate to get changes committed so that these steps aren't needed.

(there might be other ways of doing this using repository priorities, but this method works)

But it Didn't Work?

One problem that can arise is that Composer can't process the project, which it will tell you with this error message:

[Composer\Repository\InvalidRepositoryException] No valid composer.json was found in any branch or tag of git@git.drupal.org:issue/commerce_migrate-3150733.git, could not load a package from it.

This simply means that the project doesn't have a "composer.json" file in it, so you can fix that by adding a composer.json file to the repository. Once that is created (make sure to run "composer validate" before saving it!) and uploaded to the issue fork, it'll be possible to download it to a site's codebase again.

Put That Thing Back Where it Came From or So Help Me

Because they don't keep current with upstream changes and can fall out of date quickly, issue forks should be used sparingly in website projects. As it happens, the patch for Commerce Migrate I wrote this blog post around was committed between the time I started the blog post and it was published – "The Drop Is Always Moving", as they say.

When the day arrives and the project has its Drupal 9 fixes committed, there are a few steps to remove the issue hackery and make the website's codebase happy again.

  1. Remove the extra "repositories" item.
  2. Remove the "exclude" line from the "type":"composer" repository; if there aren't any remaining items in the "exclude" section it can be removed entirely.
  3. Change the "require" line (or "require-dev" line) back to point to the appropriate release that includes the Drupal 9 fixes.
  4. Run "composer validate" to make sure the compost.json file is correct.
  5. Run "composer update drupal/PROJECTNAME" to get the new, cleaner version of the project.
  6. Commit the changes.
  7. Celebrate.
That Was a Lot of Words, Do You Have a Picture?

This topic was covered in a recent Contrib Half Hour. Because I forgot to record that meeting (I'm a professional, honest) I repeated the steps the following week, so now there's a recording of me stepping through the process to create an issue fork to make a Drupal 9 fix for a Drupal 8 module work in Composer:


OpenSense Labs: The Evolution of Digital Media and the Role Drupal Plays in It

Planet Drupal - Tue, 2021/02/16 - 10:10pm
The Evolution of Digital Media and the Role Drupal Plays in It Gurpreet Kaur Wed, 02/17/2021 - 02:40

Every morning we get up and something big has happened somewhere in the world. Sitting in the capital of India, we get to know how the inaugural ball went on in the capital of the United States. And how are we able to get this knowledge?

It is the media and publishing industry that constantly reports all the national and international happenings to our households. From getting to know about election results to knowing the extent of natural calamities and political unrest, we know it all. 

The role of the media is all the more important today, it has essentially become the voice of the voiceless all over the world. With such a magnitude of responsibility, the media and publishing businesses need to be at their A-game all the time. 

Today, we’ll try to understand how they can enhance their online presence for a rich user experience with the help of Drupal. Before doing that, let’s shed some light on the changes in this industry and understand the consequent change in their web needs. 

What changed over the years?

Time changes everything and everyone. People change their appearances, their style and their thought processes over time. Something that may be important for them is highly likely to become trivial in the distant future. This is what happened to people’s perspective towards the media and publishing industry and the change in point of view led to a substantial change in the running and management of this industry. 

Think of a decade ago, were we as dependent on smartphones and other mobile devices as we are now? The answer is no. However today, from teenagers to the elderly, everyone is glued to their third limb, being the smartphone or smart devices in general. Look at the usage in the graph below to get a clearer idea.  

Source: Deloitte.com

Once reading a news article on a smart gadget was a novel thought. However, today it is an everyday occurrence. And that is the pivotal shift that the media and publishing has had to take. The readers are more inclined to reading news updates on their phones. And that is why, this sector has had to transcend from print and paper and provide their audience with digital platforms that are easy to access anytime, anywhere and on any gadget.

What the change comes down to is the delivery mechanism. The media and publishing outlets are performing their duties much in the same way. They are reporting much in the same way. The stories that need to be told are being told and the questions that need to be raised are being raised. However, all of this is happening on digital platforms and it happened in four phases. 

The four waves of the media and publishing industry. Source: Weforum.org

I wouldn’t say that the physical medium of media has become antiquated, not by any means. I still see my dad having his morning tea with a side of the front page news of The Times. However, he also gets constant updates on his phone about the world happening without having to wait for the next day’s paper. 

And that is the change that has happened, that is how the evolution of the media and publishing industry took place, with the core values still remaining the same. 

Look at this report by Statista to understand the emergence of digital media platforms. With such a substantial amount of revenue, I’d say it has come out with a bang.

Source: Statista What do media and publishing houses seek today for digital presence?

Like we just discussed above, the media and publishing houses have transformed a great deal in the way they relay information to their audience. Today, there isn’t just one kind of audience and you can’t just build your entire persona around that one category. From young people perusing news on their smartphones to the minority population fluent in their own regional language, the media and publishing industry has to be able to provide for the diversity they have in their audience.

With the move towards digitalisation, we are going to take a look at the needs and requirements of this sector as they are in the present day.

Ease of publishing 

The primary purpose of a media and publishing business is to provide its audience the content that they need. This purpose mandates that the site has an enhanced ease in editing and publishing content, be it blogs, articles or press releases. These content pieces should not be limited to text, images, audios and videos are as equally important as the powerful words of a news writer, and that is the first requirement of this sector today. Faster production and publication of content across multifarious channels is key. 

Friendliness towards the search engines

Now that we have published the article with ease, the next major requirement is to ensure that it reaches the audience it was intended for. If I talk about myself, I always end up at Google whenever I want to read about a major or even minor happening in the world. This is true for most of the readers out there. That is why, Search Engine Optimisation is essential today. 

Producing SEO friendly content would help your content become all the more visible to a wider audience and garner organic traffic for your site. With over 3.5 billion searches everyday on Google, I’d say there isn’t any harm in taking advantage of SEO by adding the necessary words and phrases to your articles. Everything about SEO and its implementation can be accessed here.

Amiability to social media 

Social media is a game changer for the media and publishing industry, allowing it to take its content across the globe in mere seconds. Therefore, social media integration is key, with Facebook becoming the front runner, being that it is the largest platform. 

Having a social media handle, providing sharing options on your articles and creating custom posts of your social media handles, all three of these would lead to a streamlined integration with social media channels. With over half the world population using these platforms, it is only wise.

Responsiveness of design

Next major requirement for the media and publishing industry in going digital is the need to be responsive. Websites that can only be browsed efficiently through a desktop are essentially doomed for failure. Being responsive to all sorts of mobile devices, especially the smart phones, is integral to media outlets. Accelerated Mobile Pages are a trend that more and more websites are following. These help in delivering a smooth experience of browsing for all your users across all the touchpoints. Here is your complete guide to web design.

Warmth of personalised experiences

Coming to the final requirement, which is personalisation. Every web user today is treated differently, since they have different taste. We, as web developers, become aware of these tastes through web cookies. Therefore, as a media and publishing site, you have to become aware of your audience’s likes and dislikes and provide a personalised experience for them that they end of loving. Informational noise and never-changing ads need to be left in the previous decade. Your complete guide to web personalisation is available here.

Why is Drupal great for the media and publishing industry?

Sports, FMCG, Food, FinTech, Elearning, Government, healthcare, nonprofit, travel, or whatever website you need to build and whichever industry segment you belong to, Drupal has just the right ingredients to build your digital presence. Media and publishing industry is no different.

Drupal is an open source Content Management Software that has a worldwide presence and is renowned for its efficiency in managing content. It has clientele from multitudinous trades and businesses. And with a community of over a million, it is indeed a force. It is a force that is equipped to provide digital experiences that enable you to connect with your audience no matter where they are.

I would not get in every minute aspect of Drupal, because that’ll make this blog quite lengthy and nobody wants that. Rather I would only talk about those aspects of Drupal that make it extremely compatible with the media and publishing industry. So, here goes.

Drupal eases content management and distribution 

The thing about media sites is that they are not limited to just one, they have a huge family with many subsidiary sites. The higher number of co-dependent sites means that you would have to have a lot of content to deal with. Drupal comes quite handy here, as it acts as a single home for all the sites. 

And the amount of content that results in would not be bother as well.  Be it photos, videos, audios, podcasts or graphs and analysis. Everything would be seamless in terms of production, management and distribution with Drupal. Have a look at an example of how content authoring can be performed at ease with modern solutions like Layout Builder module in Drupal core.

Drupal eases the mobile transition 

I believe I am going to be mentioning this one for a third time now, but mobile responsiveness is pretty high on the priority list so it deserves another mention. When we talk about user engagement, a modular design is key and when that design is flexible to respond to any device the engagement soars. Drupal provides a number of modules to achieve the same.  To know more, read about mobile-first approach and Drupal’s provisions for building mobile solutions at scale.

Drupal eases multilingualism

With media sites catering to a large number of audience worldwide, language can become a problem. Drupal provides multilingual support that makes publishing the same content in different languages an ease. Drupal offers translations in as many as 94 languages. More on Drupal’s multilingual capabilities here.

Drupal eases profits and lessens costs  

Drupal is equipped to make you money as well. Advertisements, promotions, subscriptions and one-purchases, all are inclusive in Drupal modules that result in media outlets being more profitable. 

Then is the fact that Drupal is open source, which means it is free of cost. There isn’t any licensing fee required to be paid. All you need to do is install and configure it and you’ll be ready to go. Learn more about the perks of contributing to an open source CMS like Drupal and being a part of a growing open source community here.

Drupal eases the security concerns   

Drupal security is one of the best in the market. With modules for authentication, password protection and encryption, your data is always going to be safe. Open Source security isn’t anything to be taken lightly and Drupal has proven that. Here is a survey to prove that. 

Percentage of security issues in a sample group. Source: Acunetix

With this level of ease, you can become relaxed and bask in the efficiency of Drupal and become free of the burdens of running a media site that you might have to endure otherwise. However, you would have to write stellar pieces that are able to resonate with the audience and accomplish what they were set out for. That is a burden you would have to bear, Drupal wouldn’t be able to do so.

Here is a glimpse of Drupal at work with digital media houses

Drupal has indeed proven to be one of the best CMSs for the media and publishing industry. I don’t just say it for the sake of it, I come bearing proof. OpenSense Labs has worked with many media and publishing houses to build impressive experiences for their web portals with Drupal and here are some of these sites. 

Men's Health 

Men’s Health magazine is a global brand, which publishes in close to 60 countries. It required a software that would provide an ease of management for the content authors, with an adaptable content architecture that would be responsive and browser agnostic. It also required to balance the performance and images conundrum without trading off on either of these. And Drupal was able to fulfil all of these requirements and an impressive digital experience was created. Read the complete case study of Men’s health to know more.

Earth Journalism 

Earth Journalism Network is a leading non-profit environmental new network that aims to improve the quality and quantity of environmental reporting. With such crucial work, it required the best. Drupal provided ease in publishing and managing varying categories of content types with a heightened flexibility. Drupal also had the right kind of core and contributed features that allowed for better design scope and ability to handle enormous amounts of content. 

Farm Journal 

Farm Journal is a leading US publication site for agricultural news with a host of subsidiary sites serving varying sectors of this industry. With such a magnitude of services, its content needs were becoming a challenge. Drupal was able to overcome this challenge with ease. Customer sites were enhanced, upgrades were made faster and convenient, the architecture was made scalable and modular in nature and most importantly, the content journey, from the editors hitting save to the consumer clicking read, was reduced to mere seconds. 


A part of the Farm Journal brand, AgWeb was able to improve its brand identity as well as user engagement with Drupal’s help. Being an agricultural news site, AgWeb needed to improve its web performance, at the same time the site’s SEO needed to be kept intact, while improving the site’s web SERP rankings. ReactJS was also implemented as part of progressive decoupling for a better frontend experience. 

All of these are a blatant proof of Drupal’s efficiency in this constantly evolving domain of publishing and you would be wise to choose it.


The news, newspaper and article sites are growing at an impressive pace. Therefore, having a CMS in your corner that is powerful enough to let you scale in accordance to the growth rate is ideal. Drupal is just that, it can do and achieve things for a media site that other CMSs may not be able to. And we at OpenSense Labs have actually witnessed that with all media projects. So, trust me when I say that you cannot go wrong with Drupal. For any doubts you may still please feel free to contact us.

blog banner blog image Media and Publishing Industry Drupal Digital Media Blog Type Articles Is it a good read ? On

Evolving Web: Avoiding the Redesign: How to Constantly Improve Your Drupal Website

Planet Drupal - Tue, 2021/02/16 - 7:12pm

There’s always a desire to start from scratch. Whether it’s the development team saying that the architecture is fundamentally flawed, the design team looking to add a new brand system, or the leadership team looking to make a big impact or justify a budget-spend, starting a digital project from scratch is appealing. 

And sometimes starting over is justified—for example:

  • A website based on an unstable content management system that is impossible for the marketing team to update
  • An organization that is pivoting and needs to completely rethink its digital strategy
  • A brand that truly needs a revamp because it doesn’t reflect your values

Starting a web project from scratch is definitely the best option in some scenarios.

But I love the challenge of iterating on what’s there. And in so many cases it’s a better choice. Here are some ways to build continuous improvement into your digital maintenance and improvement plan for your Drupal website:

Design refresh for the win

It might be overused but I love the phrase “design refresh”. The concept of taking the brand that your customers and staff know and turning into something that brings delight. Or taking a brand that is too limited and flat, and providing more depth with an image guide, complementary colours, or new design elements. 

Just because a designer five years ago thought that a pixelated pattern would make you seem modern, or that a black-and-white colour palette would make you seem sophisticated, it doesn’t mean you are stuck with these choices. 

Refreshing the brand can simply mean adding more options to how colours, fonts, and images combine. Or it could mean swapping out previous graphical elements or styles with ones that are more mature, give more breathing room, or are adapted to the new audiences you find yourself speaking to. 

A refresh doesn’t have to mean redesigning your logo, building a new website, and reprinting all that swag in your supply closet. It can start with a fresh set of digital components that you can roll out organically. If the front-end of your Drupal website is built following best practices, you’ll be able to improve things like colour treatments, typographical choices, and other patterns without a complete overhaul of the site.

Switch to content components

Everyone these days talks about modular or molecular design, creating design systems, and adopting page building tools. If your website was built more than five years ago, you might feel like you’re missing out. 

Read next: https://evolvingweb.ca/blog/speed-front-end-development-drupal-ui-patterns

Being able to construct engaging content and not being limited to a title and text box with which to express yourself is a frustrating limitation. Switching your website over to using content components to build important landing pages doesn’t have to mean starting from scratch with a new website. 

CMSs like Drupal allow you to add page-building tools into your content editing toolkit retroactively. So you can start replacing those lengthy blocks of text with more effective and imaginative content, so you can actually tell the story you want to tell.

Revisit taxonomy

Organizing the spice drawer on a rainy day is one of my favourite activities. And, just like organizing your taxonomy, it’s a rewarding task that will make it easier to find the right spice (or the right content) when you need it. Reorganizing your spice drawer doesn’t have to wait until you move to a new home. And tidying up your taxonomy doesn’t have to wait for a huge content revamp or site redesign.

In fact, having a well-organized taxonomy system will make your site revamp easier when the day comes. Analyzing which keywords users actually want to search by, the ones that pop into their head when they go to your site, and making sure that these are clear and prominent in your information architecture can be a painstaking challenge, but it’s worth it if you want to get the most out of your content. 

Here are some good ways to quickly get started:

  • Run a content audit with Screaming Frog
  • Look at your analytics
  • Review the vocabularies and terms you have set up in Drupal
  • Decide on a set of terms to tag your content with that will bring the most value when users are searching for your content
Add missing integrations

Often the content or feature your website is missing doesn’t need to involve replacing what’s there right now. It might just mean adding a missing piece or integrating a set of content that currently lives somewhere else. 

You might be surprised at how easy it is to add new integrations to your website post-launch. With Drupal, simply adding a module and creating a new content type could mean that you go from a static corporate website to displaying and selling products that bring value to your customers. You can use a combination of Migrate and Views to pull in content from a third-party API or database. For example:

  • Here's an integration we built with a CRM for membership renewal - This integration was built as a separate module and can be added in post-launch.
  • We built a custom integration for Tourisme Quebec that pulls in tourist listings from a variety of sources
  • An integration with HubSpot - for launch you might have just embedded some forms, but post-launch you could add true API-level integration for more customized form options.
  • Chatbots are a really easy integration to add at any time because the integration with Drupal just involves a JavaScript snippet, while most of the customization you can do through the chatbot service. 
  • JSON:API to push your content to an app or another platform

Adding new features doesn’t have to result in a Frankenstein’s monster (or a pizza as we say in Quebec). The result can be modular and forward-thinking, so that you don’t have to build the new integration again from scratch when it is time to revamp your site.

It’s never too early to ask your users what they think 

I find organizations I work with often want to wait until after the big revamp to do user testing—and I understand the instinct. You want to put your best foot forward before asking for feedback. 

But in fact, the best time to do user testing is now. Getting some input on how users actually interact with your site, what they’re missing, and what your competitors do better, will help you with iterative improvements and build up a knowledge base about your key audiences that will help you with that future site revamp.

Some easy user testing you can do:

  • Comparative testing between your site and your competitors’
  • Tree testing your existing menu navigation with an alternative
  • Testing of key landing pages
  • User interviews to identify your users’ most important goals when interacting with you 
It's never to early to start iterating on your website.

When you're not convinced that your site is achieving what it needs to, it’s easy to jump to the site revamp, but a long-term strategy of improving what you have can not only save you the cost of a complete overhaul, but will also mean that you’re building in organizational practice of valuing maintenance and sustainability. So that when you are ready for that revamp, you make the best choices and get the most out of the process.

When clients come to me asking about moving to Drupal 9 from Drupal 7, I always recommend making improvements as part of the upgrade. It’s an opportunity to make improvements at the architectural level, and to transform your content using an automated approach, which can save your team a lot of time. But you don’t need to wait until that big upgrade project to make improvements. Often the best approach is taking it one step at a time.

We’re increasingly focusing on long-term partnerships rather than one-off redesign projects, because we believe in iterative development and continuous improvement.

If you're looking to get ideas & skills to start your own Drupal site refresh, check out our UX for content creators course, or get started from scratch learning how to create a Drupal website. You can also always reach out to us about your plans to improve your website.

+ more awesome articles by Evolving Web

Evolving Web: Creating an Inclusive Digital Content Strategy

Planet Drupal - Tue, 2021/02/16 - 3:56pm

When I first meet a new client and start imagining how we can improve their digital strategy, their content, and the user experience of their website, I start by asking about their target audiences. The questions are simple, but they can be hard to answer.

What do you want to accomplish with your website? Who is your website talking to? Who do you want to be talking to?

The “Who” questions are particularly important for large institutions that are looking to show their purpose and humanity. They want to feel less like a large, opaque organization and more like a human-centric organization made up of individuals. As one client told me recently “we want [our users] to know that we’re people."

But the problem with jumping from “Who are you talking to?” to creating user personas is that it reduces your diverse audience. We create personas to pinpoint a more effective strategy, so that the most important links and menu items are readily available to our primary audience. But this can have the effect of denying the diversity of your users and how they think.

So don't just ask "Who are you talking to?" The second "who" question above is critical. Who do you want to be talking to? It opens a space for us to think about viewpoints other than the ones we already know.

Since diversity and inclusion are more and more top of mind, the conversation often arises that an organization wants to show that it values diversity and inclusion. When creating personas, then, we make sure to represent diversity in their gender, ethnicity, age, abilities, and occasionally socioeconomic background. At that point, it's easy to decide the work is done. But when creating content, it's easy to forget about the diversity that we strive to present. Instead, we fall back to our default mode.

So how do we create a content strategy that promotes inclusion? What might it look like? Here are some ideas:

Plain language

One approach to content strategy is to make the default mode "plain language" so we can speak to everyone. 

Removing jargon from the primary pages of the website and creating a summary of more in-depth, technical content so that a general audience can understand it is a clear signal that you want more users to consume your content. A simple way to evaluate if you're writing with plain language is to use a tool like Hemingway App to check the general grade level and complexity of your content. Aim for a readability of Grade 9 or lower if you want to be sure your message is clear and readable.

Don't use a glossary to get past using any acronyms or industry terms in your writing. A glossary doesn't solve your jargon problems; no one is going to click on menu items and calls to action that are full of acronyms. I find this advice particularly useful for governmental organizations that have “policy maker” and “citizen” as primary and secondary audiences. Colloquial expressions can also be hard to understand for users who are reading the website in a second or third language, or just people who are stressed and distracted by life.

Diverse voices

Another approach is to showcase individuals with their own voice, allowing you to break out of the brand’s tone of voice and expose more of your existing diversity. Testimonials or “Community Spotlights” are a great example of this. Go beyond just showing diverse faces. Let them speak. Including diverse views in your content's writers is a sure-fire way of increasing the diversity of the content itself. 

Ask people

If you’re serious about appealing to more diverse audiences, recruiting diverse people in your user research is important. We create a “recruitment guide” when we’re looking for participants for interviews and usability testing studies. If you plan to build an accessible website, you could find participants who use assistive technology. When we were running interviews for a business school that recruits internationally, we looked for students who had just moved to Canada. If you’re building out a website for people with mental health issues, you will want to seek out participants from that specific audience. 

Don’t be afraid of personality

Storytelling is how you make content more accessible. It also implies a storyteller, a perspective, and an opinion. This can be hard to scale up if you have a lot of content authors. A formal tone of voice scales better, which is why large institutions have a tendency to go with a more formal tone of voice. But if you find places for the personality to come through, with some key messaging and some selected content that speaks more from an individual’s perspective, this can make all the difference.

If you’re revamping your digital strategy or doing a content audit, it’s a great time to reassess how inclusive your website really is. Evolving Web was founded more than a decade ago, and our commitment to inclusion is shown in our team & our customers. With all our experience in building for accessibility and inclusion, we are always happy to help others out as well. 

If inclusion and accessibility matter to you, we’d recommend you check out an interactive training course we have created specifically to address how to make a website that is more broadly accessible to others. 

And of course don’t hesitate to reach out if you’re looking for a team to guide you through the process. :) 

+ more awesome articles by Evolving Web

Specbee: Managing Editorial Workflows with the Content Moderation Module in Drupal 9

Planet Drupal - Tue, 2021/02/16 - 2:33pm
Managing Editorial Workflows with the Content Moderation Module in Drupal 9 Shefali Shetty 16 Feb, 2021 Top 10 best practices for designing a perfect UX for your mobile app

A good content management system should not only focus on the way your content is presented to the user. It should give you the flexibility to manage the content publishing workflow smoothly and effectively. Many times, teams must work together with the content teams to churn out content regularly. Without a structured editorial workflow, where content moves from one state to the other, managing a publication process becomes tedious and chaotic. Enter the Content Moderation module for Drupal 9.

The Drupal 9 Content Moderation module gives complete flexibility to content editors and marketing teams to manage their editorial workflows effortlessly. The module works in conjunction with the Workflows module to manage and create different workflow states and transitions. The Content Moderation module was first introduced to Drupal 8 as an experimental module in Drupal 8.2. It was based on the contributed “Workbench Moderation” module. With Drupal 8.5, a stable version was released and is now a Drupal core module! On a sidenote, did you know that 88% of the top 1000 Drupal projects are now Drupal 9 compatible? If you’re still on Drupal 8 (or 7), what are you waiting for? Migrate to Drupal 9 today!

What can you do with the Drupal Content Moderation Module?

Here’s why you should be implementing this amazing module for all your content workflow needs:

You can have different states for your content workflow – Draft, Published, Archived (much improved from the previously Published and Unpublished states).
Create and add your own state to the list! It could be a Needs Work, a Ready to publish, or any state that is required by your business process and editorial workflow.
When you create your own state (or edit an existing one), you can choose if you want to publish the content soon after entering that particular state. Or/and you could also choose to make it as the default revision.
You can create a transition to define what to do when the content moves from one state to another. 
It allows for granular permission control for every state and transition.
You can select the content types that you want to apply the workflow to (Article or Basic page by default).
In addition to the default editorial workflow, you can create your own customized workflow too!

Implementing the Content Moderation Module

As previously discussed, the Drupal Content Moderation module is available in core (since Drupal 8.5). However, you will need to enable the module by navigating to /admin/modules. Next, click on Install. 

Enabling the Content Moderation Module

Once the module has been enabled, go to Configuration -> Workflow -> Workflows. Here you will be able to see a default workflow called “Editorial”. Or if you have added multiple workflows, you can see a list of them in this page. Click on Edit to make changes to the existing workflow.

Editing the default Workflow

Label: You can add or modify the name of the workflow.
States: By default, there are three states - Draft, Published and Archived. You can click on the “Add a new state” button to create your own state like “Needs Work” or “Needs a Second Review”.

Adding a new state - Needs Work

Transitions: Transitions tell the content editors what to do after a change of state. In addition to the pre-existing transitions like “Create New Draft”, “Publish”, “Archive”, etc., you can also create your own transition to handle more complex workflows. For example, if you have just created a new state for “Needs Work”, you could support this state by adding a transition called “Move to Needs Work” from a “Draft” state to “Needs Work” state.

Adding a new Transition

This Workflow Applies To: You can choose to apply this workflow to your custom block types (Basic blocks) and content types (Article and Basic page).




Workflow Settings: When you create new content, you can choose to default a state in the form. By default, the state is always “Draft”.

Track it with Content Revisions

Now with all of this information, you know that your marketing and/or content team can create and move content from one state to another effectively with the Content Moderation module. But how would you know who made that change, when did they make it or was it even made? Yes, content revisions to the rescue! With the revisions feature in the content moderation Drupal 9 module, you can not only see who made the changes and why, you can also revert to the previous changes (if there are more than one revision).

Content Revisions

Access Control with Permissions

Having a content workflow and moderation system for a one-person team or a team where each member has admin privileges, is never a great idea. The permissions and access control feature for the Drupal 9 content moderation module gives granular control to a team of multiple content authors and editors. For example, you would want only a content author and editor to be able to use the Create New Draft transition. While a content editor can be the only one to be permitted to use the Publish transition.

To setup permissions for different users, navigate to People -> Permissions.


Every organization has different editorial workflow needs. With the Drupal 9 Content Moderation module, you can now meet your unique workflow demands with ease. Content is king, as we all know. Content moderation done right can prove to be extremely beneficial and can enable you to create rich content with customized workflows. This module is yet another testament to why Drupal stands out in comparison with other content management systems. 

Check out Specbee’s range of Drupal services to find out how we can help you with your upcoming Drupal project. We’d love to talk!

Drupal Planet Drupal Module Drupal 9 Drupal 9 Module Drupal Tutorial Drupal Development Shefali ShettyApr 05, 2017 Subscribe For Our Newsletter And Stay Updated Subscribe

Leave us a Comment

  Shefali ShettyApr 05, 2017 Recent Posts Managing Editorial Workflows with the Content Moderation Module in Drupal 9 Image Front-End Frameworks for Drupal – Helping you to Make a Better Choice Image Boost Up your Drupal 9 SEO game - Implementing the RobotsTxt module in Drupal 9 Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

A Drupal powered multi-site, multi-lingual platform to enable a unified user experience at SEMI.


Discover how our technology enabled UX Magazine to cater to their massive audience and launch outreach programs.


Discover how a Drupal powered internal portal encouraged the sellers at Flipkart to obtain the latest insights with respect to a particular domain.



Lullabot: Avoiding Drupal Disillusionment: Drupal for the Long-Term

Planet Drupal - Mon, 2021/02/15 - 11:31pm

In our many years of helping clients, large and small, build and optimize their websites, Lullabot has seen a common pattern in digital projects: recurring cycles ranging from energy and enthusiasm to disillusionment and destruction.


clemens-tolboom commented on issue boku-ilen/geodot-plugin#58

On github - Mon, 2021/02/15 - 9:30pm
clemens-tolboom commented on issue boku-ilen/geodot-plugin#58 Feb 15, 2021 clemens-tolboom commented Feb 15, 2021

Not sure I agree as in #57 only the .dylib version works so I want/need that back right?