Drupal Association blog: #DrupalCares: Thanks to Drupal Businesses, You Can Now Triple Your Impact

Planet Drupal - Tue, 2020/04/21 - 4:42pm

It is incredible to think how far the #DrupalCares campaign has come in such a short time. Last week, Dries and Vanessa Buytaert announced they would match individual donations alongside new and increased individual memberships up to $100k, and you truly answered the call.  The vigor and compassion of the community response is inspiring - and you inspired yet another amazing element of the #DrupalCares fundraising campaign!

When they saw the #DrupalCares matching gift challenge, a group of dedicated business leaders in the Drupal ecosystem came together and said, "We can make this even better."  Acting quickly and without prompting, these business leaders saw the impact the Drupal community was making, and in the truest sense of the open source spirit, decided to multiply that impact even further.

Today we announce that individual #DrupalCares contributions are now being matched for another $100,000 by these generous organizations who believe in the power of Drupal. Both matching gifts apply to all individual contributions, donations or memberships from the start of the campaign.

  • First, every $1 the community contributed created the core foundation that would ensure the Association's success.
  • Then, that $1 became $2 when Dries and Vanessa announced their generous matching gift challenge, and your impact was doubled.
  • As of today, that $1 has become $3, as these organizations who believe in the power of Drupal and Open Source have taken your contributions to a new height.

 Will you join the campaign, and triple your impact to secure the Drupal Association's future?

Give to #DrupalCares

Thank you to these organizations, who have funded this match

This incredible coalition of matching gift organizations and their generous donation further proves the power of the Drupal Project and the Drupal Community.

Thank you to these #DrupalCares Champions

Several Drupal Community leaders in particular are responsible for bringing together this incredible expansion of the #DrupalCares campaign.  I would like to send my heartfelt thanks and sincere gratitude to: Anne Stefanyk of Kanopi, Baddy Breidert of 1xInternet, Chris Murray of Oomph, Inc, Jeff Walpole of Phase2, Michel van Velde of One Shoe, and Tiffany Fariss and George Demet of Palantir.

Special thanks and extra #DrupalHugs

While there are so many people in the Drupal community deserving of our gratitude and praise right now - I want to give special recognition to Matt Westgate of Lullabot. Matt is the person who first reached out on Twitter to pledge Lullabot's sponsorship, regardless of what might be happening in the face of COVID-19, and the person who has quietly encouraged others in the Drupal ecosystem to step forward in this time of need.

With that pledge, Matt kicked the first pebble that created the momentum behind additional sponsor pledges, member renewals, and donations. In short, Matt and the Lullabot team made us believe that launching the #DrupalCares campaign really could work.

Thank you, Matt.


Agaric Collective: The Find It Platform - An Open-Source Program Locator for Communities

Planet Drupal - Tue, 2020/04/21 - 3:48pm

We partnered with the City of Cambridge to redesign Find It Cambridge, an online opportunity locator serving city residents, in a unique way— designing and developing out in the open, and releasing the software under an open-source license so that other cities can spin up their own Find It platforms.

Cambridge, like many cities, has a wide array of programs and events happening to serve residents. However, it can be difficult for people to find and compare the many offerings out there. The city website has a calendar of events and list of departments. These are limited to government-run programs, though. There are myriad nonprofits and community groups that run programs and events that go unlisted. Social media platforms like Facebook have filled the gap in some areas, but promotion of these opportunities relies in many ways on people's social connections— leaving those most in need of services out of the loop. Find It Cambridge solves this problem by aggregating the many different opportunities happening into one website.

Intuitive, Structured Authoring Experience for Service Providers

The value of a directory are the listings within it and it's truly a community effort to assemble enough accurate and up-to-date resources in a single place, for it to be useful. For Cambridge, the service providers that work at government agencies and nonprofits are the lifeblood of the directory. Without them, there would be no Find It Cambridge.

The challenge then, is building a system that is easy enough for people (many already pressed for time) to take the time to enter their information into, while structuring the data to be easily searched and filtered on.

Through user research, we mapped the information architecture to the mental models that service providers hold for their events and programs.

Working Tabs

Most service providers thought of their events in terms of what the event is about, how to contact the organizers, who it is for, when it is happening, where it is happening, how much it costs, and if there is any sort of registration required. So we organized fields into working tabs to match: About, Contact, For whom, When, Where, Cost and Signup.

Autosave and Soft Required Fields

Even with fields grouped by tabs, the form can take some time to complete. That's why we introduced autosave and soft save features. When working on a form, the site automatically saves the current draft every few seconds. Service providers can also save a draft to return to later. Fields that are required for publishing, are optional for a draft.

Draft States to Save Work for Later

Service providers have many responsibilities to juggle. It's important that they can start creating an event or program, save it and return to it later before publishing it.

Drupal has powerful workflow states, which we've put to use to help service providers clearly know the status of their content.

A service provider can either save their content as a draft or publish it immediately. If saved as a draft, a banner appears on the page clearly indicating that the event or program is not yet published.

Authors can save their work as a draft, bypassing required fields until they're ready to publish.

Authors can also create a draft alongside a published version. This allows new versions to be worked on, while maintaining the current page for site visitors.

Authors can have a published version of a page and also have a working draft that eventually becomes the new version.

Help text and character counts for guidance

There are particular ways to write and format content on events and programs to make the most of Find It's features. We provide help text along the way to clue providers in on the best ways to write their content. We also include a character count so providers know if they're staying within the recommended limits for certain text fields.

Bulk Select for Quick Data Entry

Certain fields have many options. In some cases the majority of them apply. For example, many educational events are for all ages up to 18. In that scenario, having a "Select All" option speeds up the data entry process. The Selectize JavaScript library adds elegant toggle and check all options to multivalue fields. We created the CheckboxesJS Drupal project so that other Drupal sites can easily incorporate these features on fields of their choosing.

Conditional Fields to Show Only What is Relevant

Some fields on Event and Programs only need to show under certain conditions. For example, if an event doesn't require registration, then there's no need to worry service providers with a registration link field. Using conditional logic keeps forms simple and streamlined.

Multiple Dates

There was a lot of discussion on whether to support repeating rules or instead allow multiple dates. We decided on multiple dates as experience has shown that even repeating events oftentimes have exceptions (and because the events we import from Cambridge Public Libraries are a list of arbitrary dates rather than a recurring rule, and somehow no one in computer science has created a library to produce a best-effort recurring rule from a list of dates).

Multiple date fields allow for flexibility on events and programs that happen more than once.

Easy but Powerful Search for Residents

Find It search is powered by Apache Solr, a popular open-source enterprise search platform. We use its numerous features to make the search results as relevant as possible for site visitors.  It's an ongoing process of tweaks; here are some of the things we've done so far.

Weighted Fields for Relevance

On content with lots of data like the events and programs of Find It, certain fields carry more importance than others. The title of an event, for example, is one of the most important. The transporation notes, on the other hand, carries less significance in search queries. When someone types the keyword "music lesson", an event with music lesson in the title or summary shows up before a program for English lessons.

Synonym Matching

When someone searches "childcare" but a program uses "child care", the search engine should know these are equivalent. The same is true for "STEM" and "science education."

Find It supports synonyms. The site manager can define synonyms so that when site visitors search for a certain term, results with matching synonyms show up as well.

Key Information in Search Results

We used the results of our user research to show the critical information people need to pin point the right opportunities: title, neighborhood, and a short summary.

Filters for Sophisticated Queries

Filters help users narrow a search query down to specific criteria. In our testing, we found that age and neighborhood were most important, especially for low-income caregivers. For those of us that rely on public transportation, events and programs need to be nearby. We placed these filters accordingly towards the top of the page.

Naming conventions in Cambridge are unique, which is true for other cities too. Residents might not know the official name of their neighborhood or live at the border between two. We've included a labeled, clickable map to help users choose the right neighborhood. We built this so that other Find It platforms can upload their own SVG map to show their neighborhood.

Informative Opportunity Pages

Find It comes out of the box with four different types of opportunities: Events, Places, Organizations and Programs.


The organization serves as the foundation for opportunities posted on a Find It page. Every event and program posted to Find It, belongs to an organization. This helps an organization's page serve as a mini-website. When an event or program is published, it automatically shows up on its organization page.

Organizations can also have "child" organizations, which is helpful for larger groups that might have distinct sub-committees or departments that have sub-departments.

An organization can have a parent - child relationship.


An event is an opportunity with a clear start and end date. When an event is published it shows up on the Homepage, Events page, Search page and on the organization's page.

Visitors can sort opportunities by start date to find upcoming events.

An event's multiple dates is converted into human friendly language.


A program is similar to an event. In fact, most fields are shared between the two. A program though, implies more longevity and commitment than an event. Rather than requiring a specific date or dates, a program can simply be "ongoing." There is the option to include specific dates though.


In the first version of Find It Cambridge, a new opportunity surfaced that didn't quite fit into the event, program, or organization categories. Parks, neighborhood pools, and other destinations were a good fit for Find It's library of opportunities. They have open hours, but many of the event fields were irrelevant. The same went for Programs. In fact, sometimes these places have events or programs happening at them.

These are community-minded destinations people can go to. In other words, places.

Bring Find It to Your City!

Find It is helping Cambridge residents connect with activities and services to improve their lives. We would love to help do the same for other cities, counties, and other communities. The platform is open-source and flexible so that communities can customize it to their needs.

Whether you are city IT staff, a developer that works with cities, or are a resident that could use a Find It in your community, we'd love to talk.

Read more and discuss at agaric.coop.


Specbee: Drupal Masquerade Module – A Brief Tutorial on How to Easily Switch Your Drupal Roles

Planet Drupal - Tue, 2020/04/21 - 2:10pm
Drupal Masquerade Module – A Brief Tutorial on How to Easily Switch Your Drupal Roles Karishma 21 Apr, 2020 Top 10 best practices for designing a perfect UX for your mobile app

As the old adage goes, “Walk a mile in his shoes before you judge him”. The best way to find out what your website looks like to your client is to impersonate him. Drupal 8 offers thousands of modules to make working with it easier and more efficient. And some of them are hidden gems that need some discovering. The Drupal Masquerade module is one such handy module that every Drupal developer needs but not everyone knows about.

Working on a Drupal website and want to know how it looks like to another user when they are logged in? You will probably need to switch users by logging in and out as different user accounts. If you are having trouble remembering all the various accounts login details you need to test with, the Drupal Masquerade module can be a savior. 

What does the Drupal Masquerade Module do?

The Drupal Masquerade module lets you switch accounts of different users and surf the site as that user without undergoing the login process. Of course, you would need sufficient permissions to do so. What’s more, you can also switch back to your own account any time! Without the Drupal 8 Masquerade module, you will need to log in and out of the various accounts, which is not always convenient.

Getting Started with the Drupal 8 Masquerade module Installing

Installing the Masquerade module for Drupal 8 is like installing any other contributed modules. I’m using the Composer to install since it automatically installs all of the necessary dependencies and Drush commands to enable the module. Open the terminal, within the project enter the following command.

$ composer require drupal/masquerade $ drush en masquerade The Easy 6-Step Configuration
  1. Configure user permissions as required in Administration -> People -> Permissions. Usually, it is only the administrator that’s allowed to do the masquerading. However, permissions to use masquerade can also be given to other users with a role.
  2. Once the Drupal Masquerade module is installed and enabled and permissions are granted. Add Users with roles in People -> Add User. Ignore this step if you already have a user whose account you want to test or switch. 


  3. Once a user is created, “Masquerade as” option will become available next to each user in the dropdown list of “operations.” We can also see it on each user’s page.
  4. In addition, there is a block form in block layout for quick user switching that can be placed anywhere on the website, like any other block. 

    1. In Structure -> Block layout
    2. Click on the site’s region where we want to see it, click “Place block”
    3. Find “Masquerade Forms” on the list.
    4. Click “Place block” again and finally save the blocks.
  5. The following Masquerade block appears in the region it was placed.


  6. In the block, enter the name of the user in the Masquerade field and click switch. You are now switched to that particular user’s account without undergoing the login process.

    You can see the “Unmasquerade” link at the top of the page. On clicking on this, you can switch back to your own account.


This article will give you a brief overview of what the Drupal 8 Masquerade module can do for testing different sorts of content and users by switching between user accounts without undergoing login procedures. Need help in making the best out of Drupal 8 with features as valuable as this? Contact us now.

Drupal Planet Shefali ShettyApr 05, 2017 Subscribe For Our Newsletter And Stay Updated Subscribe

Leave us a Comment

  Shefali ShettyApr 05, 2017 Recent Posts Image Drupal Masquerade Module – A Brief Tutorial on How to Easily Switch Your Drupal Roles Image An Introduction to Design Patterns in PHP Image Drupal 8 Webform Module – A Brief Tutorial Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

Know more about our technology driven approach to recreate the content management workflow for [24]7.ai


Find out how we transformed the digital image of world’s largest healthcare provider, an attribute that defined their global presence in the medical world.


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


Dries Buytaert: Shop local to fuel the Open Source dividend

Planet Drupal - Tue, 2020/04/21 - 2:06pm

In the small town where I live, some of the local businesses have "shop local" signs on their windows, and even out on the curbs. They are reminders to support local businesses instead of going to large supermarkets and department stores. When we support local businesses, we know that they are investing a portion of their profits back into our communities.

We know that shoppers need sustained public education of why to "shop local", hence the many signs. We also know that this education pays off: by making a small change in their shopping habits, shoppers can make a huge impact on their local economies.

The same applies to Open Source. We need sustained public education to encourage end users to "shop local" and to support those organizations and individuals that contribute to Open Source.

The Open Source dividend

Open Source ecosystems have a built-in dividend system. The concept is straightforward:

  • Every commercial project that is awarded to an Open Source Maker (an organization that contributes back) results in contributions to the underlying Open Source project as a whole. Some companies give back more than 5% of their revenues by contributing "time, talent or treasure".
  • In contrast, every commercial project that goes to an Open Source Taker (an organization that doesn’t contribute back) results in little to no contribution or benefit back to the community, or a 0% dividend.

Open Source projects can grow faster when you funnel commercial work to Makers, and away from Takers. It's an Open Source dividend system. By promoting those who give back, we maximize the total amount of contribution, to the benefit of the Open Source community at large.

End users of Open Source software can help maximize the Open Source dividend by working with implementation partners that give back to Open Source. If more end users of Open Source took this stance, it would have a massive impact on Open Source sustainability and innovation.

Large end users could even mandate Open Source contributions from their vendors. We have large-scale, institutionalized examples of this in the Drupal community: organizations like Pfizer and the State of Georgia made Open Source contribution a required vendor selection criteria and only work with agencies that contribute back to Drupal. (Sources: Pfizer, State of Georgia)

Last week, Acquia announced that it is buying advertising space for top Drupal contributors. It is the equivalent of putting "shop local" signs in the windows. This is just one of many ways we can promote Makers.

All of this follows the recommendations in my blog post Balancing Makers and Takers to scale and sustain Open Source. I’m excited that we are experimenting with ways to improve Open Source sustainability.


Palantir: Supporting the Drupal Community Through #DrupalCares

Planet Drupal - Tue, 2020/04/21 - 2:00pm

Why now is the right time to contribute to the Drupal Association

Here at Palantir, it’s no secret that we’re strong supporters of Drupal, one of the largest independent open source projects in the world.  Whether it’s contributing countless lines of code, helping organize past DrupalCons and other events, or serving on the board of the Drupal Association, we’re dedicated to doing everything we can to help the Drupal project and community flourish.

Drupal is not just a great content management platform that’s used by countless companies to power their websites, it also provides infrastructure for many public health organizations and health care systems around the world who are at the forefront of providing vital information to the public during the current COVID-19 crisis.

Unlike many open source projects, which are sponsored by a single private company or umbrella organization, the Drupal project is supported by the Drupal Association, an international non-profit that is dedicated to fostering and supporting the growth of the Drupal software project and community. The Drupal Association provides essential funding, infrastructure, education, promotion, distribution and online collaboration for the Drupal project. 

The Drupal Association is facing a significant financial shortfall right now because it derives the bulk of its funding from conference revenue, which has been disrupted due to the COVID-19 crisis. As a result, many companies and individuals have stepped up to help support the Drupal Association financially in a wide variety of ways.

We were particularly inspired by the pledge that Dries and Vanessa Buytaert made last week to match up to $100,000 in individual donations to the Drupal Association, and several of us in the Drupal business community got together to see if we get enough other companies to offer a match as well. Within days, we were able to get nearly two dozen companies from around the world to agree to pledge a cumulative $100,000 as well, meaning that any individual donations made between now and the end of the month are effectively tripled. These additional pledges are on top of the commitments that many companies have already made to donate their sponsorship dollars in the event that DrupalCon is canceled, or other financial contributions that are not part of this matching campaign. 

While this show of support from the business community is inspiring, it still relies on individual contributors to make the difference. If you haven’t already done so, please check out the Drupal Association’s #DrupalCares page to find out how you can contribute today. Together, we can help ensure the future of the Drupal project and community.


Agiledrop.com Blog: Guide for Project Managers working with development teams

Planet Drupal - Tue, 2020/04/21 - 10:57am

I spoke with Ivana, our super capable project manager, who was happy to talk about her efficient process of juggling multiple development teams and client-side stakeholders, and offer some tips and tricks on successfully tackling it all.


Centarro: Customizing Inline Entity Form's Complex Widget

Planet Drupal - Tue, 2020/04/21 - 5:46am

Inline Entity Form is a popular Drupal module that lets you create multiple types of content (or other related entities) from a single form. We originally created the module for Drupal 7 to improve the store administrator experience in our popular Commerce Kickstart distribution. We made it a core dependency for Commerce 2.x on Drupal 8, and today it is primarily used to let you manage order items from the order add / edit form.

I subscribe to the commerce tag on Drupal Answers to give fast advice to folks when I can, and every now and then a question intrigues me enough that I can't help but research it fully and share the results. Last week, that happened when someone asked how to add a new column to the table of order items shown on the order edit form. Since it's a table, they expected to be able to edit a View to make it work, but Inline Entity Form's "complex widget" used there is far too complex (hey, it's in the name! ; ) for Views to be of use.

The default order items table on an order edit form.

The field widget defined by the Inline Entity Form module can be added to any Entity Reference field, itself another powerful module born out of Drupal Commerce. On the edit form, it lists all of the entities referenced by the field in a table, and operations buttons in each row let you edit or remove the referenced entities. The columns in this table are defined by an inline form handler for the referenced entity type. Inline Entity Form defines a generic handler, but modules can provide custom handlers for their entity types, as Commerce Order does for the order item entity type.

Read more

Mediacurrent: COVID-19 Alert: Designing a Drupal Solution for Emergency Sites

Planet Drupal - Mon, 2020/04/20 - 8:54pm

In a recent post, Communicating Coronavirus: Planning Your Emergency Response Website, we shared examples of COVID-19 sites around the U.S., highlighting insights we gleaned from our review. Mediacurrent has been using these findings to build out an open source Drupal emergency site, COVID-19 Alert. Our goal is to support organizations that are on the front lines, providing trustworthy, timely information during times of pandemic. We’ve partnered with Pantheon who is offering free hosting services—for at least 90 days—to qualifying organizations that join their platform.

Our UI Design Approach 

We took a user-centric approach, as always, mapping the journeys of citizens faced with perhaps some of the most difficult days of their lives—and in some cases matters of life and death.

On a personal note, my user empathy is strong as I am currently quite concerned myself with getting coronavirus/covid-19 information for my family from the city of New Orleans, where we live. I also have first-hand experience navigating another emergency—Hurricane Katrina in 2005. We evacuated, watched our city fall, and spent months navigating life as refugees—suddenly jobless and homeless and in a strange city with no way to return home. Information was vital every step of the way and not always easy to track down in a timely manner.

I may be a part of one or two use cases, but it is important to broaden my personal lens to encompass an appropriately diverse audience, with a focus on the most vulnerable users. User testing is ideal but at this time, at our current velocity, we are relying on our own internal teams, a wider network of experts, and the examples being set on other, similar sites. We will continue to hone the distribution over time.

Dire User Scenarios

While we always engage in mobile-first design, the mobile user seemed the most likely to be in a hurry—if not desperate in an emergency. So we prioritized and put together user scenarios for various difficult situations, imagining them both on mobile devices as well as on desktop:

  • I’m homeless and I don’t have health insurance but I feel very sick. What do I do? Who can I call?

  • I lost my job and I don’t have money for diapers or food for my children. Are there places I can go to pick up donated food and supplies? How do I apply for assistance?

  • I am blind. I use a screen reader to interact with websites and must be able to access the same vital information that impacts my health and safety as sighted citizens.

  • I’m parked outside of a place that has wifi—I don’t have it at home. I only have my mobile phone and I need to find what evacuation route is safe so I can go pick up my family and get out of town as quickly as possible.

Digital Psychology provides us with much applicable insight. Emotion affects cognition. Anxiety—even panic—can limit one’s ability to perform the most basic tasks, like navigating a website or even just touching a button.

While we considered action and information priorities for emergency scenarios, our overall design approach also took the panicked user into consideration. We strove to maximize findability by employing high color contrast, clear type hierarchy, plain language, and classic interface colors (such as blue for links, red for alerts, yellow for warnings, etc.) We allowed for large, clear pointer/touch targets for shaking fingers. We make certain that in the code all menu items, buttons, and other interface elements are clearly labeled for screenreader users.

We took into consideration the fact that the most vulnerable users may not have fast internet, or users may be on mobile data. In an emergency, networks can become overloaded and slow. That’s where Drupal comes in. 

Drupal sites are typically highly performant—speedy. While these emergency sites won’t typically serve lots of large images or videos, when they do, we’ll employ code to prioritize the delivery of information via text, even loading the display font after the data, so info reaches users as rapidly as possible. 

We also decided to make image alternative text a required field. Reading the image description is a faster way to take in the information so the user can obtain it and move on if they do run into situations where their internet is very slow.

We built in an alert system for the very most important and timely pieces of information. Below that, a row of quick-info cards can be used to summarize additional sets of information and options to lead users to the landing pages that they need:

  • Stay At Home Order 

  • Student Lunches To Go 

  • How to Help Others 

We also provided navigation elements that can be used to lead users to landing pages for collections of information relevant to specific personas:

  • Seniors & At-Risk

  • Homeless

  • Undocumented

  • Parents & Youth

  • Unemployed

  • Small Business

Each of these landing pages will contain collections of summaries of additional sets of information and options to lead users deeper into the site’s content and connect them with the local resources they need most.

Design note: despite the highlighting of urgent needs, and cognizant of the fact that we will sometimes be showing “red alert” messages to people who are potentially in states of intense stress, we strove to design in a task-oriented manner. The user interface itself should not inspire panic. Quite the opposite; it should reassure the user that help is on the way—the situation is as under control as it can be. 

Messages we want to convey include: Survival is possible; Here is the latest information; Here is what you can do; Here is what we—your city, organization, etc.—are doing. We built in areas that could be customized and suggested optimistic content for them in our mockups. For example:

  • A large image at the top of the page of the city skyline or perhaps the facade of neighborhood houses and the suggested message “We’re in this together” to play on emotion to inspire an immediate sense of unity and hope. A sense that there is a bigger entity the user is part of that is taking care of things. A picture is worth a thousand words and a good slogan goes a long way to provide grounding and comfort.
  • A spot to display data with the suggestion to show charts highlighting how many have recovered compared to died (as recoveries is always the larger of the two numbers). Little touches like this can subliminally shift focus from bad news to the bigger picture.

Our goal for defining user pathways was to provide multiple ways for users to find relevant content by incorporating concise titles and offering summaries of information leading to easy-to-follow step-by-step instructions, clearly defined options, and lists of resources.
Our next priority was to provide the latest data or at least a way to point the user in the direction of reputable sources of data. Our design suggests a separate component to aggregate charts, maps, and apps to aid the user in navigating the crisis.

We also included an area in the footer that can be used for links to suggested, reputable info sources such as the CDC or NOAA.

Next we prioritized the latest news and updates from the city, college university, healthcare organization, etc. as well as a spot for the latest social feed if there is frequent activity on a platform such as Twitter.

Site Builders & Content Editors

While the majority of website users will be end-users, those who produce and publish the website are a crucial link in the chain. A Content Management System (CMS) must take these folks and their specific user journeys into account as well. These users will be spending their time building out pages and putting specific content into the set of containers (also known as “components”) the system we are building provides. These components must do their jobs flexibly. They must display a wide range of critical information clearly, offering content editors the right set of tools for their job: to provide end-users with the help and the resources they need in a crisis.

We wanted to build a system flexible enough to accommodate not only a wide range of emergency scenarios but the many potential competencies and quantities of personnel that would be resourced to make this vital information available to the public.

For large cities, universities, or organizations, they may have the resources to maintain the website with all the needed updates,  but what about a small town with a very limited number of staff members? We considered the various scales and skills for potential content administration teams and not only leveraged some great out-of-the-box features, but baked a flexible content strategy—complete with hints—into the system. This gives those entering information a sound roadmap to getting crucial content to the citizenry.

We’re here for you

We’re continuing to make improvements to our open source emergency website, COVID-19 Alert, to provide organizations who are communicating timely information during this pandemic the best framework for their site. If your organization is in need of help with your COVID-19 website, we’re ready to help. Contact us now to learn more about our open source solution for emergency websites.


Drupal Association blog: PreviousNext: Our ongoing support for the Drupal Association

Planet Drupal - Mon, 2020/04/20 - 8:41pm

Today's guest post by Owen Lansbury, Co-Founder & Chair of PreviousNext, is the next installment in our #DrupalCares series. My thanks to Owen for sharing why the Drupal Association is so important to his business.


As an Australian based company, we’re often asked why we support the Drupal Association when their direct involvement in our region is relatively limited. To paraphrase Monty Python, “What has the Drupal Association ever done for us???”.

Like most of you, our first exposure to Drupal was visiting Drupal.org, downloading Drupal core and a few modules and seeing what we could do with the software. In our case, we quickly saw its potential with our Australian clients, and within a year had a thriving little company building Drupal websites. During this time, we'd also created our first personal and company Drupal.org profiles, started engaging with the local Drupal community via groups.drupal.org and attended our first meetups.

PreviousNext had officially started business in February 2009, so we felt it would be a bit extravagant to attend DrupalCon D.C. the following month before we'd even billed our first client. This meant waiting a whole year until the opportunity presented itself again at DrupalCon San Francisco in April 2010. Drupal was well outside the mainstream in Australia at that time, so attending DrupalCon meant our first taste of how big it was becoming internationally, and most importantly, who the community were that we were now a part of.

That first DrupalCon was the catalyst for us to ingrain code contribution as a core business policy at PreviousNext, providing our team with the opportunity to spend up to 20% of their working hours on non-billable Drupal code. We also viewed attending DrupalCon as an important part of our team's professional development, and implemented a policy of full funding for accepted speakers and partial funding for people that wanted to attend as part of a longer overseas vacation. This saw PreviousNext have at least a couple of attendees at most DrupalCons in North America and Europe throughout the 2010s.

Our engagement at DrupalCons meant the PreviousNext team developed personal relationships with other Drupal contributors around the world, which they then continued online once they returned home and kept contributing code. This contribution along with our financial support of the Drupal Association as a Supporting Partner has helped keep PreviousNext consistently in the Top 10 firms listed on the Drupal.org marketplace, providing us with a profile as a trusted Drupal services company despite our relatively small size and remote location.

At a broader level, the Drupal Association helped drive the local Australian and New Zealand Drupal community forward by staging DrupalCon Sydney in 2013. This played a key role in positioning Drupal as a viable platform for the Australian Government to adopt on a large scale in 2014. Since then, our locally organised DrupalSouth events have benefited from having a Code of Conduct for our attendees to adhere to and a Community Working Group to escalate incidents to that require a formal mediation process.

I recently told a group of Australian Drupal agency executives that the Drupal Association is often invisible when things are running smoothly. Drupal.org is handling its 10 million plus yearly visits, well managed DrupalCons are running on multiple continents every few months, collaboration between community members being facilitated and governance processes for when things get complicated.

As a company that has built its business on Drupal, PreviousNext considers the stable operation of the Drupal Association to be crucial to our continued success. Now that they need our financial help, we've been more than happy to increase our Supporting Partner commitment and paid for our entire team to maintain their individual memberships. We hope you can help too!

Join #DrupalCares


Microserve: 5 Benefits to Drupal's Layout Builder - from an editor’s perspective

Planet Drupal - Mon, 2020/04/20 - 4:03pm
5 Benefits to Drupal's Layout Builder - from an editor’s perspective Hannah Bryson Mon, 04/20/2020 - 14:03

Late last year I was lucky enough to attend DrupalCon. At the conference, I heard about Layout Builder, a new tool developed within Drupal 8 that allows editors to configure content more efficiently and easily. 

Having worked with Drupal for several years, I was excited to hear that they were building on an already great foundation and improving the user interface by making it more flexible and sophisticated for editors. 


Jacob Rockowitz: Individual users can now customize a webform's results table

Planet Drupal - Mon, 2020/04/20 - 3:18pm


The Webform module for Drupal 8 provides a customizable table of submission results. The table of submission results does not use Drupal's Views module but does extend Drupal's EntityListBuilder, which "defines a generic implementation to build a listing of entities." The WebformEntityListBuilder allows users to filter, sort, and add/remove columns from the submission results table.

The below screencast shows how the submission results table can be customized.

The goal of this user experience is to provide a quick and easy way to review submissions without requiring or expecting someone to use a View. Of course, developers and advanced site builders can replace the Webform module's submission results table with a custom view. Here is a video showing how to customize and improve the Webform module's Views Integration.

Every instance of a webform and webform node submission results table can be customized by anyone that can update the webform. Every submission reviewer will see that same customized table of submission results, which is fine for basic forms with a few reviewers. A problem arises for complex forms with very different reviewers. For example, in an application review process, evaluators might want to see certain table columns while an administrator might want to see completely different table columns.


Luke Leber recognized this problem and created Issue #3108433: Allow users to personalize the submission list in the Webform module's issue queue. Luke suggested using Drupal's Read More


Ny Media: E-commerce after the corona crisis; a lasting change

Planet Drupal - Mon, 2020/04/20 - 12:36pm
E-commerce after the corona crisis; a lasting change thomas April 21, 2020

Over the course of a few months, the Corona crisis has changed the way we live, work and spend money. In recent months, consumers' trade patterns have changed drastically. While the physical stores have been closed or affected by sales failure, most serious and well-established online stores have done very well. The grocery and construction industries in particular have seen a huge upswing in the nordic markets. But also in other industries such as the interior-, books-, shoe and clothing industries, our customers experience a significant increase in sales.

Turnover in e-commerce in the Nordic countries has been steadily increasing in recent years. The corona crisis has probably only accelerated a growth that would have come anyway. One thing that often follow a crisis like this, is a rapid change of society. The e-commerce explosion is a good example of this.

We have reviewed the figures from 5 of our well-established online stores in 5 different industries to look at the trends through the corona crisis. In terms of sales, all the stores have had a formidable increase. On average, the increase has been 50% in the period from the 15th of february to the 21st of april when comparing 2020 to 2019.

Turnover in MNOK in the period 15th of february to the 21st of april, 2019 and 2020.


So how can we assume that this change will be permanent and that not all sales will go back to the physical stores after the crisis is over?
  • Several larger surveys (such as DIBS's annual e-commerce survey) show that as sales increase, new and larger groups of people are becoming aware of the benefits of ecommerce. A large and important part of the annual increase in turnover is that a larger part of the population adopts e-commerce in everyday life.

We have reviewed the figures from the same 5 stores to look at the trend of new users registering av customers during the Corona crisis:

Comparison of the number of registered users in the period 1 February to 20 April for the last 3 years.


The result shows a formidable increase in the number of newly registered customers from 2019 to 2020 in the same time period. In fact, the increase is over 300%. Not only do the existing users shop more online during the period, but new customers are now flowing to the online stores. If these stores manage to give these new customers a good trading experience, there is reason to believe that a large proportion of these will become regular customers even after the corona crisis is over.

A switch to digital commerce and a unified shopping experience across channels and platforms is imperative in the time to come. Focusing on e-commerce has never been more important than now.

Where should you start if you have a physical store and are one of those who has not yet established an online store?

Don't panic and make hasty decisions. Many are now settling on simple solutions that are virtually "free", in order to be able to start selling online as quickly as possible. Remember, however, that having an item and a payment solution online does not mean your're going to sell your products. It is also such that nothing is free. All the time you spend on learning platforms, integrating systems and entering all product data also represents a significant cost for your business. It is important that the choices you make now are something that you can build on in the years to come.
Ecommerce is complex and customers' demands for product information, editorial information and shopping experience are very high, compared to the situation just a few years ago.
We therefore think it's a good time to take a deep breath and set up a digital strategy before you get started. It will determine what kind of solution you should go for, what product range you should prioritize, how to work and what channels to promote in.

Start by asking yourself the following questions:

  • What shopping experience and product range do I want to offer my customers online? How should the online store work together with your physical store?
  • Who are my competitors and what do they offer online? How can I distinguish myself from these with the same goods, without competing on price alone?
  • Where and how will my customers find me online? And how do I ensure that I take best care of the visits I receive?
  • How much time and resources do I have available to work on this? What can I do for myself and what services do I need to buy from others?
  • What features does my technical solution have to offer and what do I need to tailor to differentiate myself from my competitors?
  • How do I keep track of logistics and customer communications when I get more sales channels than I'm used to?
  • How do I make sure the online store is profitable? What do I earn from my goods after marketing, payment solutions fees, etc. have been paid? 


What does all this mean for those of you who have been running an online store for a while? 

This is both a great opportunity and a potential challenge. On one side, the total net sales in the future will increase and your potential increases accordingly. At the same time, competition is naturally intensified as well.

  • You've probably got more competitors in the last few months who have many of the same products at the same prices as you. There are probably also more people competing for the same keywords and coming up with similar messages.
  • This means that you have to work on making the shopping experience better, separate yourself from the rest with better / more editorial content and become even better at digital marketing!


We would love to hear from you!

Get in touch if you are thinking of either establishing an online store or improving your existing concept. Chances are that one of our consultants has worked on the same or similar problem as you are facing right now. That means there is also a chance that we can assist you with a faster, more efficient and more profitable solution. Please contact us for an informal chat!

Phone: +47 920 28 082
Email: post@nymedia.no


Tag1 Consulting: How a virtual DOM could bring Drupal to a reactive front-end future - part 2

Planet Drupal - Mon, 2020/04/20 - 6:52am

A debate has been ongoing for several years about how Drupal's front end can compete against the primacy of JavaScript frameworks that are rapidly gaining steam in the wider web development community. In this multi-part blog series, we review the most important concepts behind this potential future for Drupal's front end, including Web Components, virtual DOMs, and what Drupal can learn from other ecosystems. In this second installment in the series, we examine how Drupal's render tree bears striking similarities to virtual DOMs in other frameworks and what future Drupal versions could look like under the hood.

Read more preston Sun, 04/19/2020 - 21:52

Evolving Web: Designing a Flexible Content Model with Drupal: Layout Builder & Paragraphs

Planet Drupal - Mon, 2020/04/20 - 2:58am

Since I started building websites in 2007, two things that I constantly hear are: “How do we make it easier for non-technical users to update our website?” And “How can we give content editors more flexibility?"

In 2008, when I first used Drupal, it seemed like the first problem was already solved. Drupal is designed for managing consistent, structured content. So creating content with a predictable set of fields, like events, news, courses, or publications, has always been easy to do. You don’t need to know HTML and CSS to fill in a set of predefined fields, and the theme system allows you to display those fields how you want on the page.

But combining that with the requirement for really flexible marketing content was always tricky. For example, if you asked me 10 years ago, “How do I build a homepage where I can feature a set of curated news items, display a couple clear calls to action and supporting images and videos that I can customize when I need to?” it seems like it should be a simple question. But you could get 5 different answers, and none of them would be described as “a great experience for content editors”.

In the meantime, responsive design, content portability, and accessibility concerns are increasingly important. Now more than ever, we need to make sure that by adding flexibility, we’re not sacrificing semantic markup and data.

Enters Layout Builder

When I first tried out the Drupal Layout Builder a couple years ago, I got really excited. Finally, the drag-and-drop page builder we’ve all been waiting for that will make creation of flexible pages without code possible. Since that first release, the Layout Builder has become a stable solution that we can start to use on real-world projects.

Last year, my colleague Annika and I ran a comparative usability study, to see how Layout Builder could be used by content editors for creating flexible landing pages. There are definitely some usability issues when you use Layout Builder for this use-case out-of-the-box. But a suite of helper modules has emerged that make it easier to use for content editors.

Paragraphs Everywhere

In the meantime, over the last 4-5 years, a module called Paragraphs has garnered wide-spread adoption in the Drupal community. It was originally designed to create collections of fields within a larger piece of content. Although it wasn't designed to manage layout specifically, it is often used to build flexible, landing-page style content where the content author can mix-and-match content components (Paragraphs) to assemble a page. Fields can be added that act as settings for the style of each Paragraph, to add more flexibility.

So, Paragraphs or Layout Builder?

So which is the best approach to creating this flexible content. As usual, it depends. And the answer might be both.

(Note that the Layout Builder can also be used to create a layout for more predictable content types as well. I’m not going to cover that use case here, and will focus on the flexible page use case only.)


Paragraphs is great for building structured content that is consistently formatted. With Paragraphs, you get to create Paragraph Types, each of which has its own set of fields, that live within the parent content. The content editor can pick from a list of options (which the site builder can control), deciding which content components to add to the page. With Paragraphs, the content editor is building a form, and then filling the content into that form. For example, they can add a call to action and then a video, and then a side-by-side text. And then they can fill in the content for all those elements. Later, they could reorder them.

Paragraphs provides a lot of control and more streamlined options for content editors. It requires fewer clicks to add a new piece of content. It’s great for situations where you want to keep things simple. Many situations don’t actually require variations in layout, but just to need to allow for a flexible content model.

With Paragraphs, you can combine components to create a flexible page.

Caveats: With Paragraphs, it’s important to customize the Form display, so that paragraphs are collapsed or displayed as a preview, instead of always displaying the mega-form that can result from constructing a page this way. Nesting a lot of paragraphs within each other can slow down the editing experience. Also, Paragraphs is a contributed module, although a very popular one. It's not part of Drupal core.

Downsides: Paragraphs was not designed to manage your layout. Building nested paragraphs with field labels like “Two-Column Layout” with sub-fields like “First Column” and “Second Column” creates confusion for content editors. You don’t get the ease of dragging and dropping elements from one part of the layout to the other. And behind the scenes, your content model will get messy very quickly if you use a lot of nesting.

Layout Builder

The Layout Builder is ideal for giving your content editors a visual way to manage how content and layout fit together. You do this by configuring Block Types (similar to how you would configure Paragraph Types) and then giving editors access to edit the layout of a page. They can add Sections, each of which has a layout, and then place blocks into those regions.

Layout Builder provides an open palette of options to the content editor or marketer who will be managing the page, although you can restrict some of the options using the modules below. The biggest difference with the Layout Builder is the ability to add “Sections” for each page, which display a set of serve as containers for the content that makes up the page. The fact that each Section can have its own layout brings a whole other dimension of flexibility that Paragraphs lacks. This is the key to your decision of which approach to take. Is that extra flexibility desirable or not?

The layout is visually represented in the back-end of the site, so you can see what your layout will look like as you edit, a feature that delights content editors once they've figured out how it works.

Layout Builder provides much more flexibility in how content components are displayed on the page. You start by assembling Sections, each of which has a set of regions, in which you can place your content.

Caveats: the layout builder requires customization to be usable by content editors. I recommend that you:

Downsides: There will be a learning curve for content editors used to the approach of filling in a form. They’ll need to change their workflow, and it will take time for them to learn. More clicks are required to get your content onto the page. Regardless of how much you trust the editors’ judgement, you’re giving up more control to content editors when you use the Layout Builder.

Another thing to note is that there are currently no migration tools for getting your content into a layout (although there's an issue for adding a Destination Plugin that would make this easier).

Other Ways to Build Flexible Pages What about Gutenberg?

Gutenberg for Drupal doesn't store your content as structured content, it gets stored as markup. You can use the Gutenberg interface to create things that appear like content components, but the data essentially gets stored in a large body field.

What about Cohesion?

Over the past few years, the folks at Cohesion (now part of Acquia) have been busy creating their own flexible page-building framework in which you use Components to assemble pages. Cohesion goes beyond the functionality of Layout Builder and Paragraphs, providing tools for changing the look and feel (using CSS and JavasSript) of Components and Templates through the admin UI. It also has features like “Helpers” providing default sets of content components that can be dropped into a page, and the ability to share a library of Components between sites.

Cohesion is optimized for marketing teams that need additional flexibility and control across pages and sites, and need to be able to create new types of Components without a developer stepping in. And by offering the ability to change the look-and-feel without touching a single Drupal file, its ambitions go beyond solving the problems of content editors. Its goal is the ultimate no-code solution for not just one, but many websites. Note that Cohesion is a paid service that Acquia offers as part of its Digital Experience suite.

What about Metadata? What about Accessibility?

I’m so glad you asked! One problem with really flexible content is that it’s inherently less consistent than predictable content types And that means you can easily lose the semantic markup you need for your page to show up correctly in search results and social media, and makes your content easily available to screen readers. Whatever approach you take, it’s important to add meta data to your content along with all the flexible content components, and to make sure that value of this meta data is clear to content editors. You're using Drupal because it's great at managing structured content and outputing semantic markup. Don't get in the way of that!


Remember that you’re configuring a system, not building a page. Whatever solution you pick should be the way you’re planning to manage a whole set of content and pages. When you're staring at the diagrams above, look at your whole range of design patterns, or wireframes and mockups, and think about which model would work best.

We’re currently working with the University of Waterloo on their migration to Drupal 8, and they took the step of prototyping both options and running it by their content editors to get their feedback before making a decision. This is a great way to test out the pros and cons of each option and to get buy-in from them in advance.

Keep in mind that it’s possible to combine both approaches. You can use Paragraphs for structured content elements, and use Layout Builder to put the pieces together in a Layout. Just try not to over-engineer your solution. Think again about the experience you're building for content editors.

Whichever option you pick to build your flexible pages, try and make a decision at the outset of the project, as you’re designing your content components and creating your Pattern Library or UI Kit. It will have an impact on how components are combined on the page, and the layout options you provide.


+ more awesome articles by Evolving Web

PreviousNext: Fast and fuzzy client-side search with Lunr.js and Drupal

Planet Drupal - Mon, 2020/04/20 - 2:51am

For a recent project a client asked us to investigate an "instant search" feature, where as the user begins to type, suggestions for matching pages appear immediately. The following post introduces the Search API Lunr module and how it solved this problem for us.

by Sam Becker / 20 April 2020

Lunr.js is an implementation of a search index written entirely in JavaScript. Using the library, you can generate an index of content and then query the index with search terms. The library supports a powerful ranking system, per-field boosting, partial and fuzzy matches as well as a plugin system for processing keywords during indexing and querying. This library turned out to be a good choice for the instant search feature, as well as the primary search interface for the site. The quality of search results returned from Lunr seems to stack up well against other solutions like Solr, when configured in similar fashion.

Lunr.js search results with misspellings and partial matches.

In order to integrate Lunr with Drupal, the existing Lunr search module was evaluated, however the architecture was based around pre-building a Lunr index and distributing that index to clients. While this has the advantage of speeding up searches and is more performant for users of static sites, it requires a long build process to take place when content is updated, either by the site editors in a browser or via Node.js running on the server. Additionally, as search results are matched by the index, the associated document is downloaded separately during rendering, which wasn't going to cut it for an instant search that is expected to provide immediate feedback.

Given the target site for this feature was an integrated Drupal back-end, the design goals were:

  1. Unaffected content authoring workflow for content editors, with no latency between content changing and results appearing in search.
  2. No additional Node.js dependency on the server.
  3. No additional dependency on a build process (ie, unattended content changes such as scheduled updates would continue to work).
  4. Indexing across multiple entity types and bundles.

To address these points, an alternative implementation based on a custom Search API back-end was created in the Search API Lunr module. The module manages to overcome some of the difficulty in creating a pre-built index by pushing the collection of documents to users, then allowing the browser of each user to build their own index. After indexing, the results are cached locally until such time as it needs to be rebuilt.

The standard Search API interface building a series of JSON documents to be downloaded and indexed by clients.

To build the collection of documents that are sent to the client, Search API can be used by developers in the same way as other back-ends are configured. Tasks such as the following can be performed as expected:

  • Configuring which entity types and bundles appear in the index.
  • Configuring which fields are indexed and the process pipeline applied to each.
  • Administrative tasks such as flushing and rebuilding the index.

While requiring clients to generate a relatively expensive search index carries with it some practical limits, I've found it to perform with up to around 2000 or so large content pages generated with devel_generate. Putting it into action, the results of the instant search are relatively snappy and provide high quality results, even when given misspellings and partial words.

The JavaScript API shipped with the module is designed to give developers easy access to query and access documents from the index (which both the search page and block each consume for their functionality). To run a query against the Lunr index on any page or to gain direct access to the underlying hydrated Lunr.js object, developers only need the ID of the Search API server and index that was configured in Drupal. Here is a minimal example of the API in action, fetching a list of blog posts matching "foo", then firing an alert and redirecting to the first result:

(function(api) {   const blogIndex = api.getServer('lunr').getIndex('blog_content');   blogIndex.search('foo').then((results) => {   const firstResult = results.shift();   alert(`Found a blog post! ${firstResult.getLabel()}`); window.location = firstResult.getUrl();   }); })(window.searchApiJs);

It's worth noting that any number of indexes can be configured and that downloading and indexing the documents only occurs when a query is actually executed. In the out of the box use case, no cost is incurred for any sessions that don't actually make use of search. For optimisation purposes, a light index (perhaps including only the titles of documents) could be built for the autocomplete feature, with a larger index only used once a search form is actually submitted.

The module is still in an early alpha state however feedback is always welcome. For sites with a small to medium number of pages, perhaps the module could be a useful tool for providing high quality search results, without the overhead of provisioning and maintaining additional infrastructure like Solr.

Tagged Search API, Lunr

clemens-tolboom deleted branch patch-1 at clemens-tolboom/cnovr

On github - Sun, 2020/04/19 - 5:44pm
clemens-tolboom deleted branch patch-1 at clemens-tolboom/cnovr Apr 19, 2020 clemens-tolboom/cnovr

Updated Apr 16

DrupalEasy: DrupalEasy Podcast 229 - Yuriy Gerasimov (Diffy), Ryan Price (Drupal news)

Planet Drupal - Sun, 2020/04/19 - 4:11pm

Direct .mp3 file download.

Mike speaks with Yuriy Gerasimov, one of the principles of Diffy, a cloud visual regression testing platform as well as Ryan Price to discuss all sorts of things including #DrupalCares, Drupal 9 launch parties, and an interesting Composer/Git workflow model. In addition, Chris Weber also has some new change records for us.

URLs mentioned Yuriy Gerasimov interview #DrupalCares Drupal 9 launch parties Composer 2.x The Change Notice DrupalEasy News Sponsors Subscribe

Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher.

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.


qed42.com: DIA Contribution Weekend, April 2020

Planet Drupal - Sat, 2020/04/18 - 1:12pm
DIA Contribution Weekend, April 2020 Body

What divides us pales in comparison to what unites us.

– Ted Kennedy

That especially rings true in the time we're living in now.

Because of a much needed country-wide lockdown here in India to prevent the spread of COVID-19 disease, everyone has been locked-out in their homes and have socially distanced themselves form their communities. This, of course, includes the Drupal India community as well. And what better way to bring this community together than an online pan-India contribution weekend organized by Drupal India Association.

First-ever fully-remote pan-India contribution event

Today, on 18th April 2020, Drupal India Association (DIA) conducted it's first online 'Contribution Weekend'. It's the first event of its kind in that it was completely remote and saw participation from Drupalers across India.

We had 116 RSVPs, 22 Mentors, 96 Issues on Contribkanban board.

Thank you, organizers!

Before I talk more about the event, I would like to give a huge shout-out to everyone who was involved in the planning of this amazing event and a special shout-out to Rakhi Mandhania, Surabhi Gokte & Sharmila Kumaran (#WomenInDrupal FTW) for managing this so well. The planning team worked super hard to make this a success. They took time out of their personal and professional lives to have various meetings for issue triaging, communication and marketing for the event, arranging for speakers and much more. Thank you, everyone, who contributed to planning this.

Introductory hour for new/first-time contributors

We started the event at 8:45 in the morning,(Yes, That's 8:45 in the morning!) with a special session for new and first-time contributors. A big shout-out to all the newcomers and especially the mentors who took time out this early in the morning to volunteer for mentoring them. And boy did we have a lot of mentors! We had a mentor-to-mentee ratio of 5:1! Don't you feel special now mentees!

Main event

The main event started at 10:00 pm with more than 40 people joining in. And more people kept pouring in as the event went by. At a time we had around 70 people in the call!

Drupal India Association

Rakhi, our host, got us started and handed over the call to Mukesh Agarwal. Mukesh is CEO of Innoraft, one of the member organizations of DIA, and introduced us to DIA, its goals and purposes and the role it is going to play in representing the Indian Drupal community to the world. Major goals of DIA can be summarised as:

  1. Becoming an exemplary community leadership organization to the rest of the Drupal world
  2. Developing thought leaders in Drupal who will enhance India’s image in the Drupal world
  3. Becoming a major influencer and enabler in the adoption of Drupal in the Gulf & ASEAN region
  4. Making India an innovation hub for Drupal
  5. Making Impactful Contribution to community & the extended stakeholders of Drupal
DA needs our help!

Mukesh's introduction was followed by Tanisha Kalia, a representative from the Drupal Association, and she talked about DA and the financial effects of COVID-19 on DA and the larger Drupal community. DA is a very important entity for the whole Drupal community. Among the numerous things they do for the community, a few are:

  • Managing, hosting and conducting DrupalCons
  • Managing the infrastructure of drupal.org

Tanisha mentioned that the majority of DA's funding comes from the revenues of DrupalCon events and the almost inevitable possibility of cancellation/postponement of DrupalCon NA has put DA in a big financial hole. DA needs the community's support. 
Tanisha encouraged community members to either donate to DA directly via #DrupalCares initiative or support DA by purchasing/subscribing to be a member of DA, the cost of which starts from just 15 USD.

As of this moment, DA has reached 25% of its USD 500,000 goal:

As an individual member or an organization, you can help DA sustain the COVID-19 Impact and help reach its goal. Read more here: https://bit.ly/2VyKbmM

Tanisha also talked about the initiative taken by prominent members in the community to encourage donations and financial contributions. Some of these are:

  • From now until April 30, Vanessa and Dries are offering a dollar-for-dollar match for new, individual contributions to the Drupal Association - up to a total match of $100K! More details: https://bit.ly/2KefaPJ
  • Gábor Hojtsy, Acquia, will be donating 9EUR for every module ported to Drupal 9 for a total of up to 900EUR. More details: https://bit.ly/2wS5uaE
  • Jeff Geerling, @geerlingguy, will be donating 2$ for every like on his recent Youtube video for a total of up to 1000USD. Video link: https://youtu.be/fdk7zUwDQdM

A big thanks to all of you! 

Thanks to an amazing community, we had 6 new individual memberships registered before the introduction call finished.

Code-of-Conduct and Tips for the day

Next up Rakhi communicated the Code-of-Conduct to all the contributors and shared the various channels for communication that people could use throughout the day.
We were using channels on DIA slack. There were various channels set up for clear and effective communication:

  1. #new-contributors: For first-timers and newcomers.
  2. #regular-contributors: For experienced contributors.
  3. #issue-reviews-contribution day: For issues ready for review.

This setup was really efficient and was instrumental in keeping people engaged and active throughout the day.

Hussain kicking off the day 

Rakhi then handed over to Hussain Abbas from Axelerant who joined us as guest speaker for the sprint. He started by talking about the power of open source and how open source has in past sustained and in fact grown in face of financial crises. Truly, Open Source is here to stay!
Hussain then proceeded with talking about the path for Drupal core and contributes projects to Drupal 9 and how we can make sure that projects we frequently use and maintain can be made ready for Drupal 9. The Drupal community has created various tools to help us with these:

  1. drupal-check: A PHP CLI tool to get a report of any deprecated code used. This can be integrated into build processes and continuous integration systems.
  2. drupal-rector: A tool for automated deprecation fixes for some common cases.
  3. Upgrade status module: A wrapper module around drupal-check internals that generates a full site report of contributed and custom modules used in the site. This report can be used to assess the overall Drupal 9 compatibility of the modules.
  4. Upgrade rector: A user interface on top of drupal-rector, which also integrated with Upgrade Status.

Read more about these tools in the official Drupal documentation: https://bit.ly/3apZhAA

After Hussain finished his session and just before we were about to wrap up the call, we realized that Rachel Lawson, Community Liason - Drupal Association, has joined us in the call. The presence of the Community Liason from DA also inspired & motivated us to give our best to this contribution weekend.

Let's code:

After all the sessions, it was time for the code contribution now. From the start, one could tell that it was going to be a productive day. Just under an hour we made significant progress and moved a lot of issues to RTBC or Fixed.

Start of the day:

An hour into contribution:


Come for the code, Stay for the community!

Highlights of the day were the appreciation that the mentors received from the newcomers and first-time contributors for their help and support. We had a first-time contributor who had been contributing back to Wordpress community in the past as well trying their hands-on Drupal contribution for the first time. They really loved the experience and appreciated the welcome and support they received from the community. In their own words: "You all (Drupal community) are awesome and doing great work!"



With our spirits high we continued the rest of the day with the contribution. And to have the feeling of togetherness in this endeavor, we had the zoom bridge open throughout the day so that people could freely reach out to each other. We even had regular check-ins every couple of hours so that everyone feels connected.

We ended the even at 3:30 pm with a call where everyone shared their experience and appreciation for the community. It turned out to be a very fruitful day of contribution. By the end of it, we were able to move around 50 issues from needs work/active to RTBC/Fixed.

Thanks to all amazing mentors for their support to make this happen @azeets@JayKandari@piyuesh23@yogeshmpawar@AshishVDalvi@subson@ankushgautam76@meenakshig489@sonvir249

In the end this would never have been possible without all you contributors who supported the event with writing patches, reviewing/testing them,  showing up to the event motivating all organizers. We hope for your continued participation over the coming Sprints.

My experience

Overall, it was a very productive day! I really enjoyed this new experience of contributing from the comfort of my home and it was also a much-welcomed distraction from the grim time we all have been having because of the current pandemic. I appreciate the opportunity to work with everyone from the community and would love to do it again soon.

Oh yes! That reminds me of something! Guess what? We already have another contribution weekend planned for next month! It's planned for May 16th and I would love to see and work with the community again. Read more about the event here: https://groups.drupal.org/node/535887.

See you all again on 16th next month.

Until then, stay safe!

dipak.yadav Sat, 04/18/2020 - 16:42

Help finish up the Help Topics!

Documentation Team - Fri, 2020/04/17 - 10:57pm

I've made a few posts here in the Documentation group on groups.drupal.org over the past few years about the Help Topics experimental module. Today, I have a very brief update on the project, and a call for help in editing/reviewing the topics for the new Help Topics system!

Status update: The Help Topics module has achieved "Beta test" status, which means that when you download Drupal 8.x or 9.x, the module is included in the "Experimental" section. We are working towards getting it to "Stable" status, so that it can move out of the Experimental section; the plan is to merge it into the existing core Help module, so that people installing Drupal with the Standard profile will get the new Help Topics by default.

Call for help: One of the things we need to do to get Help Topics to Stable status is to finish writing help topics covering all of the Drupal core modules. We are well on our way to having that done... The main need right now is for people to review the topics that have been written. Here are the steps:

  1. You need to be logged in to drupal.org, and I recommend using a desktop or laptop sized browser. You'll need some knowledge of how to use the Drupal administrative interface, as these instructions are not too detailed. Also this doesn't go into much detail about how to use issues in the Drupal project. But you don't need to know any programming! We're looking for review of the text of the topics here.

  2. Go to the "Meta" issue that lists all of the issues about writing new help topics:

  3. Look in the sidebar of the page for an issue whose status is Needs Review and whose issue title is something like "Convert ___, ___, ___ module hook_help() to topics". If you can see colors, status Needs Review issues have a yellow background; you can also hover your mouse over an issue link and see the status.

  4. Click the link to open the issue.

  5. Locate the latest "patch" file on the issue, which should be shown at the bottom of the issue summary, just before the Comments section starts. Copy the link to the patch file into your clipboard.

  6. In a new browser tab or window, go to https://simplytest.me/ and create a new Drupal testing site with the following parameters:

- Project name -- Drupal core
- Version -- 8.9 or 9.0 branch (branches are listed at the bottom of the version list)
- Advanced options > Add a patch -- paste in the link to the patch file from your clipboard

Once those parameters are set, click "Launch sandbox" and wait for the site to be created.

  1. Log in to the site with user name "admin" and password "admin" (which is standard for simplytest.me sites).

  2. Go to admin/modules and turn on the experimental Help Topics module, plus all of the modules for the help topics issue you are reviewing (they should be listed in the issue title by short name).

  3. Go to admin/help and review the topics. There are instructions in the issue summary about what to look for in the review (under Remaining Tasks in the issue summary). To figure out what topics are being created or modified in the issue, click the link for the patch file and look for lines that look like this:

    +++ b/core/modules/help_topics/help_topics/breakpoint.overview.html.twig
    @@ -0,0 +1,21 @@
    +label: 'Managing height, width, and resolution breakpoints'
    That means that if you go to
    in your test site, you should see the topic.
  4. Add a comment to the issue about what you found in your review. If you found problems, set the issue status to Needs Work. If it all looked good, set it to Reviewed and Tested by the Community.