Drupal Planet

Chapter Three: Creating a New Self-Help Portal for the California Courts

1 month ago

California's court system is the largest in the nation and serves a population of more than 39.5 million people — about 12 percent of the total U.S. population. 

Every year, thousands of Californians seek support for legal claims as self-represented litigants, or SRLs. This self-help system is managed by the Judicial Council of California, the administrative body for California’s courts; it offers legal assistance resources on a variety of topics such family law, civil proceedings and a variety of other issues. Every year, more and more Californians choose to represent themselves before the courts, a trend that the State has sought to address with new investments in technology and content.

Sooper Drupal Themes: Bootstrap 4 Support! DXPR Builder Security Update

1 month ago

We celebrated many milestones in the past year (like our complete rebrand and new website!), and looking back, we can't help but feel overwhelmingly grateful for our community. Without you Drupal would not have the fully featured visual layout editor it has today!

Bootstrap 4 support 

DXPR Builder now supports Bootstrap 4! This means that you can use a Bootstrap 4 theme on your next project and bring in DXPR Builder to produce awesome content with "Cards" and modern responsive "flexbox CSS"!

This addition was incredibly complex to produce and deliver but it's incredibly easy to use. DXPR Builder automatically switches between modes based on what Bootstrap library is loaded on your website. 

In order to be able to deliver this release to you today we aimed for "feature parity" with our Bootstrap 3 release. Expect further developments like equal-height card decks soon!

Read about other new features in the release notes.

Security Update

This release includes a moderately critical security update.

We chose to release the security patch for Glazed Builder as well. Officially we stopped supporting Glazed Builder September last year. Unfortunately we see that many clients did not receive this message.

We feel that we did not communicate the "unsupported status" of Glazed Builder successfully and for that we apologize sincerely. If you have a contrib module from Drupal.org the update module will ring the alarm by signaling this to the Update module. The Drupal community expects this mode of communication and we failed to implement this.

We will correct this, expect more communication about this next week.

What's next? Now that we reached these incredible milestones it's time for new initiatives! A prime candidate for refreshing is the DXPR Builder UI. Do you have a special UI style, feature, or workflow in mind that you would love to see in DXPR Builder? Drop us a message in our Product Idea Form.

Promet Source: How to Optimize a Drupal Site for SEO

1 month ago
In the current, digitally driven climate, search engines serve as gatekeepers, determining whether and where a site appears on search engine results pages (SERP). Latest stats indicate that 93 percent of all web traffic is routed through search engines, with Google accounting for the vast majority -- 76 percent of all desktop search traffic and 86 percent of all mobile search traffic. 

Tag1 Consulting: How to Fund your Open Source Project: A talk with Marijn Haverbeke - Part 2

1 month ago

Funding your interests isn’t always easy, and that’s true of many open source projects as well. The majority of open source projects are created and maintained by people working on their projects in their spare time. For some, their employers or other companies are willing and able to sponsor open source development projects, enabling their maintainers to do work they would not otherwise be able to do. In this Tag1 Team Talk, CodeMirror and ProseMirror, and Acorn project founder Marijn Haverbeke joins Tag1 Managing Director Michael Meyers, Vice President of Software Engineering Fabian Franz, and Yjs creator Kevin Jahns to talk about how Marijn funds his projects, and the expectations that can come with that funding. For more from Marijn, see part one of this series, where we talk about how Marijn runs his projects. ### Additional Info and Links - ProseMirror: https://prosemirror.net/ - GitHub development site for project - CodeMirror: https://codemirror.net/ - Acorn JavaScript Parser: https://github.com/acornjs/acorn - Eloquent JavaScript: https://eloquentjavascript.net/ - Marijn’s Personal Site: https://marijnhaverbeke.nl/ --- _For a transcript of this video, see [Transcript - Marijn Haverbeke - part 2](/transcript-marijn-haverbeke-part-2 "Transcript - Marijn...

Read more [email protected]… Wed, 03/10/2021 - 12:36

TEN7 Blog's Drupal Posts: Why TEN7 Actively Supports the Drupal Bug Smash Initiative (and Why You Should, Too)

1 month ago

The Drupal content management system is an amazing piece of software. It’s an open source project that people all over the world contribute to and it’s currently celebrating its 20th birthday. It’s a rare beast in the computing world that survives for two decades as a single system. Depending on who you ask, Drupal powers something like 2% of all websites on Earth. Drupal can do everything from simple “brochureware” sites to elaborate platforms that integrate with dozens of other services. However, all that power and flexibility comes with a price.

Palantir: COVID-19 Vaccinations, Content Strategy, and the Patient Journey

1 month ago

How Loyola Medicine is helping patients get the information they need about COVID-19 vaccines

As we move into the vaccination phase of the COVID-19 pandemic, health systems are facing a new challenge: effectively communicating about vaccine availability, eligibility, and scheduling. For many systems their website is the primary - and sometimes only - channel of communication about vaccination.

This is a content strategy challenge: how should we structure the patient journey to prioritize quick answers to top patient concerns while enabling visitors to drill down to get more information at any point?

We just teamed up with Loyola Medicine to update their COVID-19 pages, and in this post we’ll walk you through the before and after.


At the start of the pandemic people had a flurry of questions: What is COVID-19, what are the risks, what are the symptoms, how can I protect myself, when should I seek medical help, how do I get tested, what does this mean for patients who need non-Covid medical care? 

Loyola’s original COVID-19 page shows a patient journey focused on demonstrating immediately that Loyola can answer all of those questions. The tabbed interface at the top of the page helps visitors quickly find and click on the tab that matches their need.


Right now, the question that is driving the majority of patient inquiries about COVID-19 is: how do I get the vaccine? This is a much more task-oriented goal than the early need for accurate information, which means that the patient journey can be radically reshaped to prioritize vaccine scheduling steps and streamline the rest of the content.

The new Loyola COVID-19 landing page leads with the primary call to action question: Are you an active Loyola patient or not? Visitors who are active Loyola patients are directed to MyChart to register, visitors who are not active Loyola patients are directed to registration through the city/county/state.

By making the first patient “doorway” a path to vaccine registration, Loyola is addressing the top priority of the majority of their visitors. However, some visitors are still looking for other COVID-19 information, and that content hasn’t gone away - it’s simply been deprioritized. A visitor scrolling down the page can still quickly and easily find clear, bold links to more detailed information about symptoms, prevention, Loyola’s safety precautions, vaccine safety, and how to care for someone who is ill.

How We Did It

Creating and publishing this new page took five business days as a routine part of the ongoing strategic services and managed support we provide to the Loyola team. There was no need to spin up a new project or team because we were leveraging their existing Drupal 8 platform and design system.

This page was built using a content type designed to enable Loyola Medicine to reorganize their page-level content strategy as priorities change. This template is a flexible landing page: it has a hero image, space for body copy, and then a big field that you can use to mix and match a wide range of visual components. 

With this template the Loyola Medicine team can build pages that look really different and deliver against different page-level content strategies without having to route new page development through Palantir or other support vendors. In this case, they brought us on to speed the new page along, but going forward they can adjust it themselves.

Extensible platforms like the ones we’ve built for Loyola Medicine, HonorHealth, and Baptist Health South Florida enable marketing teams to optimize their patient journey as the realities on the ground change.

Photo by Ivan Diaz on Unsplash

Design Drupal Industries Healthcare

Tag1 Consulting: AFT's Share My Lesson: Part 1: Building the Largest Online Repository for Lesson Plans

1 month ago

The American Federation of Teachers is one of the largest unions in the United States, representing 1.7 million members, including educators of all types - from teachers to nurses to support staff, and others. In their roles as educators and staff, their mission is to provide opportunities and education for everyone. Share My Lesson is the AFT’s website for sharing lessons, lesson plans, and other resources for educators of all types. These free resources provide a platform for teachers, homeschoolers, or anyone working with children as an educator. From preschool to adult education, Share My Lesson provides a place for people to find and share educational materials. In this Tag1 Team Talk, Managing Director Michael Meyers, and COO Peta Hoyes is joined by Kelly Booz, the Director of Share My Lesson and eLearning at the American Federation of Teachers. In part one of our series on Share My Lesson, learn about what Share My Lesson is, what it does, and how it has successfully grown without becoming a victim of its own success. * Part 2 (coming soon) * Part 3 (coming soon) _For a transcript of this video, see [Transcript - Kelly Booz, Share My Lesson part 1](/transcript-kelly-booz-share-my-lesson-part-1 "Transcript...

Read more [email protected]… Tue, 03/09/2021 - 06:34

Specbee: How to perform Automated Backups on a Drupal 8 (or 9) Website

1 month ago
How to perform Automated Backups on a Drupal 8 (or 9) Website Aaditya Walawalkar 09 Mar, 2021 Top 10 best practices for designing a perfect UX for your mobile app

Different Drupal developers have different techniques to backup their Drupal websites. In this article, we will be talking about two of my go-to methods to backup a Drupal 8 or Drupal 9 website. One with the help of the Backup and migrate Drupal module. And the other way is with Cron jobs using CLI. 

Data loss can be brutal and devastating, no matter who or what caused it. The good news is that it can be prevented by taking regular backups of your site. Sometimes, backups are done every day and sometimes, occasionally. The regularity depends on various factors like the size of your Drupal site or how often you update the website. Luckily, Drupal 8 and 9 provides you with easier options to backup and restore your website with the help of the Backup and migrate Drupal module and via CLI.

Using the Backup and Migrate Module for Drupal 8 and 9

The backup and migrate module can backup both database as well as files. It can also backup the entire Drupal application folder. The module also has an encryption feature which requires you to download an additional library called the Defuse PHP encryption library-

composer require defuse/php-encryption Steps for usage:
  • Install the Backup and Migrate module.
  • Create a private directory and assign with writable permissions (similar to what we’d give to the files folder).
  • Set the path of private directory in settings.php file so that the module can use it for storing the backups.

UI for the Backup and Migrate Module

Once you install the module, head to Administration -> Configuration -> Development -> Backup and Migrate. You will see 5 tabs:

Backup – where you can do quick backups. Once you click on Backup now, you will be able to see it in the Saved Backups tab.
Restore – where you can restore the earlier backups
Saved Backups – will have the list of all the backups you have taken so far
Schedules – where you can schedule your backups
Settings – contains general settings and options for this module


This is one of the most important features of the module. The module provides an automated scheduler where you can schedule your backup. This runs automatically during every cron run. You can add as many schedules as you want, to take backups of the database, public or private files directories or the entire site.

Viewing all the Schedules

Configuring the Schedule

Here is where you can add or edit the schedules. You can give a name for the schedule. There’s an option to enable or disable the scheduler. Select one of the various backup sources like the database, public or private files, directories, or the entire site. Or add your own in the Settings tab. If you are backing up both the database and files, you can have different backup destinations configured for each of the backup type. This means you can have a different destination for the database backups, a different destination for the file backups, and such. The module also provides configurations for adding more destinations of your choice in the Settings tab. The Frequency option lets you specify how often you want a backup to take place as a cron job. You can select options from hours, minutes, days, and weeks. The Numbers to keep option allows us to specify the number of backups we want to keep. It automatically deletes the older backups once it reaches the limit that you set, thereby solving memory and storage problems. 

Configuring the Schedules

Adding your Backup Source

Are there any limitations?

Sadly, yes. As per my personal experience, I’ve noticed that when the database size grows, I do run into Time-out errors. And this is a problem because on certain servers, we cannot increase the maximum execution time for the database to execute. The other issue that I have faced is memory issue. It may run out of memory in some cases depending on the configuration of the server or the database size or the size of the backup. When we run into such issues, we can use the CLI method.

The CLI Method to Backup 

In the command-line interface method, we can perform backups using these two methods:

  • Using Drush in combination with the Crontab
  • Using Native commands and Crontab depending on what we need to backup.

Using Drush and Crontab

Scenario: Scheduling a database backup at 3 a.m. every morning –


0 3 * * * -r sql:dump --result-file=.sql --gzip


0 3 * * * /var/www/html/drupal_demo/vendor/drush/drush/drush -r /var/www/html/drupal_demo sql:dump --result-file=/var/www/html/drupal_demo/db-dump-`date +%d%m%Y%H%M%S`.sql --gzip

Using Native commands and Crontab

Scenario: The same one - scheduling a database backup at 3 a.m. every morning -


0 3 * * * mysqldump -u -p | gzip -c > .sql.gz


0 3 * * * mysqldump -u drupal -p drupal_demo | gzip -c > /var/www/html/drupal_demo/db-dump-`date +%d%m%Y%H%M%S`.sql.gz

Scenario: Scheduling a Files backup at 5 a.m. every morning -


0 5 * * * tar -czvf .tgz


0 5 * * * tar -czvf /home/ubuntu/backups/drupal_demo-files-`date +%d%m%Y%H%M%S`.tgz /var/www/html/drupal_demo/web/sites/default/files/

Backups are not just essential when you need to migrate your website. Taking regular backups is the best thing you can do to protect yourself from data loss. And it doesn’t have to be a tedious job when Drupal 8 (and 9) offers you with modules that can help automate backups. The Backup and Migrate module and the CLI method we discussed here, are my two most recommended methods to automate your backups. Curious to know how we can implement such amazing Drupal modules and features for your next project? Talk to our Drupal experts today.

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

Leave us a Comment

  Shefali ShettyApr 05, 2017 Recent Posts Image How to perform Automated Backups on a Drupal 8 (or 9) Website Image How to Export/Import Menus, Custom Blocks & Taxonomies with the Drupal 9 (& 8) Structure Sync Module Image Drupal Project Management: What No One Is Talking About 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.


OpenSense Labs: Everything Is Better With Some JS on The Head: Progressively Decoupled Drupal

1 month ago
Everything Is Better With Some JS on The Head: Progressively Decoupled Drupal Gurpreet Kaur Tue, 03/09/2021 - 18:00

The 21st century is a pretty marvelous time to live in. There is so much that can be achieved today with limitless possibilities. There aren’t any inhibitions found in people. If we want it, we get it. I mean the 21st century folks have landed on Mars, so is there anything that we can’t do? I think not. 

If you look at all of our accomplishments, you’ll find that technology is at the root of it all. It is the advancements we have made in science that has allowed the present time to be as marvelous as it is.

Talking about all of these technologies would take as long as a year, even if I do it succinctly. So, I’ll not get into it. However, I will talk about one segment of tech that has had a profound effect in the way we surf the web. And it is the web development process. 

To be concise, I want to discuss a trend in web development that has aided the developers, designers and project managers to build to their heart’s desire without having to rely on one specific technology, which used to constraint them. It is a trend that eliminates restraint and promotes innovation. 

Let’s find out what it is. 

The Drupal Prequel

Before I get to the main agenda of this blog, I felt like I needed to talk about the underlying technology, which is Drupal. Being a content management software, Drupal ticks all the right boxes when it comes to building versatile web experiences. 

To build websites from the ground up and being completely responsible for all of the site’s aspects is deemed as Drupal being traditional or monolithic. What it means is that Drupal would have total control over a site’s technological stack. The front end and all the presentational aspects along with the back end and all of its data layers would fall within the realms of Drupal. Such use of Drupal is quite sufficient for standalone websites and applications, where editorial needs surpass developers' needs and the former seeks complete control over all the visual elements of the page. With Drupal offering features like in-place editing and layout management, I don’t disagree with wanting such control. 

However, what happens when the developers want to start implementing the current technology on the front end? What happens when the site needs more interactivity than before? Wouldn’t React or Angular seem like a better option to achieve that? 

I think they would and that brings me to the trend I was talking about in the introduction, being Decoupled Drupal.

Unfettered innovation and Decoupled Drupal 

Decoupled Drupal essentially removes the link between the frontend and backend and makes the developers free to do what they want with the presentation layer of the site. The reason for this separation is the flexibility it gives to the architectural development, empowering the front end developers to have total control over the projects’s rendered markup along with the user experience.

It’s not just the control over the frontend layer that motivates developers to push for decoupling, there are plenty of other benefits that make the feat of decoupling too good to give up. 

These include; 

  • Building impressive features through server-side rendering or Node.js; 
  • Securing data through a publicly inaccessible CMS; 
  • Publishing your content on all forms of IOT devices; 
  • Increasing the speed and efficiency of work with a clear separation of concerns and duties, less interdependence and less hassle; 
  • Updating the software becomes quicker too, without any impact on the working of the other end;
  • Finally, being able to take advantage of the rich JavaScript framework or a static site generator of your choice for an immaculately interactive site. 

All of these advantages of decoupling have made the trend to follow. Depending on your need, decoupled Drupal has the potential of building your project with its inbuilt web services and APIs. REST, JSON:API, and GraphQL are the prominent contenders in this regard so that the flow of information from the front to the back is seamless.

With decoupling, it is also easy to find the right personnel for your project. When you are building a frontend with JavaScript, you would need developers fluent in JS, and it is a well known fact that there are far more JS developers than Twig.

However, decoupling Drupal can also leave you in a bit of conundrum as well. The thing is when you decouple Drupal, you are saying goodbye to many of the out-of-the-box features Drupal offers such as layout and display management, content previews and certain security features. Some of these can be written from scratch by your developers, but there are more than a few that cannot be compensated for. 

So, in a situation like this how do you lessen the losses? How do you ensure that you get the unfettered innovative edge on the front end and still be able to reap the benefits of Drupal’s frontend capabilities? 

The Middle Ground: Progressively Decoupled Drupal

How to decouple Drupal? There is a perfectly reasonable answer to the decoupling dilemma and it lies in its categories. Decoupling Drupal can be achieved in two different aspects. 

  • The first one is when you decouple completely, totally extracting the frontend from the backend. This is called fully decoupled Drupal architecture. It can be done for dynamic sites using JavaScript or for static sites by relying on static site generators like Gatsby and Metalsmith
  • In the second approach, you will separate the presentation and data layers, however, there won’t be total interdependence between the two. By this, I mean some aspects of the front end would be developed outside of Drupal and the remaining would house inside of Drupal. This is called progressively decoupled Drupal architecture. 

In the first approach, with a total separation you would have to part with Drupal’s out-of-the-box features on the frontend, there is no going around it. However, when you take up the second approach, which is to progressively decouple Drupal that won’t be the case. You would get to play with other front end technologies, yet enjoy all the functionality Drupal has to offer. More on best frontend technologies for decoupled Drupal here.

You must be wondering how that becomes possible, and let me tell you that. 

When progressively decoupled Drupal is in the picture, you get to build a frontend using Drupal and all its out-of-the-box features. Once you have done that, then you can layer a JavaScript framework on top of the layer you have built. 

It is important to understand that in progressively decoupled Drupal, it is up to you and your needs to decide the kind of responsibility you are to dole on JavaScript. The JS layer on top of the Drupal frontend could be responsible for rendering an independent block or component on a single page or it could go as far as to render every single aspect of that page. 

The kind of progressive decoupling you would do, would have a direct impact on the kind of control your editors would have. More JavaScript rendering would mean less editor control because Drupal’s administrative capabilities would diminish on the frontend, while less JS rendering would automatically mean more room for Drupal’s administrative capabilities and more power to the editors.  

Progressively decoupled Drupal is indeed the perfect balance between advanced frontend technologies and the powerful capabilities of Drupal. You would not need to compromise on one to get the other. The reference of the middle ground for web development in the decoupled sense is an accurate description of the progressive architectural approach.

But how do you decide whether taking up progressive decoupling is the better choice. The question progressively decoupled Drupal or fully decoupled Drupal can often prove to be quite difficult to answer, yet we have to try. So, let’s do just that.

Think of the Editors or the Developers?

For any web project, be it a site or an application, there are two important players. These are the people who bring the project alive, being the developers, and the people who become the voice of the project, being the content authors and editors. So when deciding whether to go for coupled, fully decoupled or progressively decoupled Drupal approaches, you have to keep them in mind. 

For the editors, you have to think about; 

  • The kind of ease they would need in manipulating page content and layout; 
  • The kind of in-context tools they would require; 
  • The kind of accessibility they would need in Drupal’s HTML by default; 
  • And the kind of previews they would be in need of without custom development

For the developers, you would have to think about; 

  • The king of control they want over the frontend presentation; 
  • The kind of server-side rendering they want; 
  • The kind of APIs they want to write JavaScript;
  • And the kind data security they want.

Assuming the editors want it all, an ease of manipulating page content and layout, tools like in-place editing and contextual links, the ability to preview unpublished content and a constant access to content. Now, assuming that the developers also require the same kind of ease, with control, with the ability to choose between server-side rendering and Node.js built features, with JSON:API at work and a publicly inaccessible CMS. 

If that is the case, progressively decoupled Drupal architecture would help you give the best to both your developers and editors. The developers would be able to adopt JavaScript for portions of the pages and satiate their appetite for interactivity and advanced development. At the same time, the editors would be able to work without any blocks with all of the Drupal features they always wanted. A win-win situation for the crucial players. 

OSL and A Progressively Decoupled Drupal Project

We, at OpenSense Labs, have worked with a global brand, Produce Market Guide (PMG) to cater to a specific need by performing progressive decoupling. 

PMG is a leading name in the market for producing commodity information, trends and data analysis. A part of the Farm Journal family, but aimed to provide an advanced and enriching experience to its users. However, because of a slow search feature that was becoming impossible. 

Other than that, the site was functioning pretty well with Drupal. So, in order to rectify the slow search feature, a progressively decoupled Drupal approach was implemented by OSL. using React and elastic, the new search function was built and this improved the time it took to present the result to mere seconds. Look at the detailed case study for PMG for a clearer picture of the project. 

This was one project that made our developers understand decoupled Drupal a lot better. The fact that you do not have to build an entire front end from the ground up is a prominent benefit of the progressive approach. Using JS for just one function, making it as advanced and interactive as possible, and calling it a day is essentially how progressively decoupled Drupal works. And I think there are very few architectural approaches better than this one.

The Final Verdict 

I want to conclude by giving you another example. 

“Imagine you have a site that needs a lot of interactive elements that would encompass user choices and give the user the option of getting a personalised experience based on his history, with future recommendations. Also, imagine that your site has a lot of traffic and a lot of content to manage for which you are bound to need highly competent content management and site building tools.”

For such a site, neither the coupled Drupal architecture would work, nor would the fully decoupled architecture work. It needs a balance of the two. 


Because Drupal alone cannot build a highly interactive site like this one, it would have to rely on JavaScript and the likes. However, with high traffic, a lot of the data is often cacheable and Drupal is equipped to handle that very well. If the content isn’t handled properly, the performance of the site would be affected drastically. That is why a middle ground has to be chosen and progressively decoupled Drupal is just that. I wouldn’t be totally wrong in saying that the future of decoupling Drupal could lie in doing it progressively. Do you agree?

blog banner blog image Drupal Progressively decoupled Drupal Decoupled Drupal Frontend technologies Blog Type Articles Is it a good read ? On

Droptica: How to Create TODO Lists in Drupal? The Checklist API Module Overview

1 month ago

A to-do list is the primary tool of a productive person. It helps in everyday work and allows you to carry out your duties better. As it turns out, some of its elements can also be entered into the administration panel of a Drupal website.

In this article I'll take a closer look at the Checklist API module, which provides Drupal users with an interesting implementation of a TODO list.


The first alpha release of the module was introduced in 2012 for Drupal 7. The stable version 1.0 was released several months later. To date, 12 stable versions have been created – including the newest, marked as 2.0, for Drupal 8 and 9.


Even though the Checklist API module isn't very popular, it has become quite recognisable over the years. Currently, according to the official statistics, it's used by over 30 thousand Drupal-based websites, 63% of which are the 7.x-1.x branch.

Module's creators

The module is maintained by Travis Carden from Acquia, a very active member of the Drupal community. Besides him, 11 other people have also participated in the project so far. About 170 commits were created in total.

Purpose of the module

The Checklist API module is used to create lists with checkboxes. The status of the task execution is saved to the configuration or to the State API, and it can be modified using the code. Checklist API can be employed to build a to-do list, but that is only one way to use it.

In the case of the Droopler distribution, the Checklist API module was used as a mechanism supporting the update process. When automatic processes fail, we advise the user to perform the operations that aren’t checked on the list manually. There are detailed instructions and links available for them:

Checklist API is used by many tools for checking websites in terms of SEO and quality, including SEO Checklist and QA Checklist.


The module is available on the Drupal.org website. You can install it both via Composer (using the composer require drupal/linkit command) and from the .zip file available on Drupal.org.

Module's use

After running the Checklist API module, you'll probably be surprised by the fact that it doesn't have any administration panel. New lists can only be created via the API. This is done using a hook – hook_checklistapi_checklist_info().

Here is an example of a hook that adds a simple to-do checklist when publishing a new website:

/** * Implements hook_checklistapi_checklist_info(). * * Defines an example deploy checklist. * . */ function mylist_checklistapi_checklist_info() { $definitions = []; $definitions['mylist'] = [ '#title' => t('Website deploy checklist'), '#path' => '/admin/config/development/website-checklist', '#callback' => 'mylist_checklistapi_checklist_items', '#description' => t('An example deploy checklist for the website.'), '#help' => t('

This is an example deploy checklist for your website, provided by the hook_checklistapi_checklist_items().

'), '#storage' => 'state', ]; return $definitions; }

This hook references the mylist_checklistapi_checklist_items function, which returns a multidimensional array. You divide the checklist into tabs with tasks. Each defined task can have a description and a list of links to help the user perform it:

/** * Implements callback_checklistapi_checklist_items() for mylist. */ function mylist_checklistapi_checklist_items() { return [ 'tab1' => [ '#title' => t('Drupal admin panel'), '#description' => t('

Set up the Drupal installation for PROD environment.

'), 'aggregate_css_js' => [ '#title' => t('Enable JS/CSS aggregation'), '#description' => t('Enable optimization of the site assets, it is crucial for page speed.'), 'handbook_page' => [ '#text' => t('Performance options'), '#url' => Url::fromUri('base://admin/config/development/performance'), ], ], 'disable_devel' => [ '#title' => t('Disable "devel" module'), 'handbook_page' => [ '#text' => t('Module list'), '#url' => Url::fromUri('base://admin/modules'), ], ], ], 'tab2' => [ // ... ], ]; }

After calling the above code, every authorised user of the website will get access to the new checklist. When they uncheck subsequent items, they'll obtain clear information about the level of completion of tasks:

Defining the content via code has one major advantage – the ability to manipulate tasks, including automatically marking them as completed. Looking at the example above, you could write a module that will check by itself whether the CSS/JS aggregation is enabled and if the "devel" module has been uninstalled. This way, the potential user will save a lot of time.

Here's an example of a piece of code that loads the checklist and enforces its initial state. If the "devel" module is active, the relevant checkbox will be checked automatically.

$handler = \Drupal::service('module_handler'); $checklist = checklistapi_checklist_load('mylist'); $progress = [ 'tab1' => [ 'disable_devel' => $handler->moduleExists('devel'), ], ]; $checklist->saveProgress($progress); Summary

Checklist API is very useful for carrying out repetitive tasks, such as those you perform when publishing a new website. The module can also be used as a tool supporting security monitoring and website optimisation.

With little effort, Checklist API provides plenty of possibilities and a convenient interface for non-technical users. I definitely recommend getting better acquainted with its functionalities.

Amazee Labs: GatsbyConf - A Recap

1 month ago
<img src="https://www.amazeelabs.com/sites/default/files/styles/leading_image/public/images/current-affairs/AL-GatsbyCon-Recap.png?h=994a2424&amp;itok=JliFDiO2" width="1120" height="630" alt="GatsbyConf - A Recap by Amazee Labs" title="GatsbyConf - A Recap" class="image-style-leading-image" /> The very first Gatsby conference took place at the beginning of March and what a fantastic event it was. Not only did we attend, but we also spoke at the conference. Here's how things went down.

Skvare.com: Getting the most out of CiviCRM Entity 3.0

1 month ago
Getting the most out of CiviCRM Entity 3.0

Ready to take your Drupal 8 (or Drupal 9!) website to the next level with CiviCRM? Then you need the CiviCRM Entity Drupal module.

We're pleased to have released version 3.0 earlier this year. Now, it's time for you to learn everything that it can do. 

Join us for part or all of our upcoming "Using CiviCRM Entity" training series.

Part 1: The Basics 

Wednesday, March 24th, 12-1pm CST

Gena Dellett Mon, 03/08/2021 - 17:37

Matt Glaman: Getting phpstan-drupal PHP 8 ready starts, now!

1 month ago

This week I will be kicking off development for phpstan-drupal after Florida DrupalCamp astoundingly met my funding goals. Since this open source work and I am being funded publicly, I plan to do as much development over live streams as possible. I really enjoy live coding, and I hope it helps teach folks some tricks.

I have been using YouTube for my scheduled live streams, but I plan on giving Twitch a try. If you'd like to pop in and watch along as I work on the testing matrix for phpstan-drupal, follow me and get notified when I go live: https://www.twitch.tv/mglaman. I plan on going live at least every Wednesday at 1 PM CST (7 PM UTC) for two hours.

Tag1 Consulting: On 20 years of Drupal...An interview with Greg Lund-Chaix

1 month ago

As we continue to celebrate the 20th anniversary of Drupal, we approach the project from a different angle. Today’s Tag1 Team Talk guest is Senior Infrastructure Engineer Greg Lund-Chaix. Greg’s experience includes not only Tag1, but wealth of experience gained in the Oregon State University Open Source Lab. While Greg’s name may not be prevalent in Drupal’s code, his contributions have nonetheless helped Drupal become what it is today. In this talk, Managing Director Michael Meyers interviews Greg to help us understand one of the ways it’s possible to contribute to Drupal without writing Drupal code itself. For a transcript of this video, see Transcript: 20 years of Drupal - Greg Lund-Chaix. ### Related content In the coming weeks, Tag1 will be featuring Team Talks with some of its long time Drupal contributors. Check back here, or follow the blog to see these interviews as they become available: - Jeremy Andrews - Doug Green - Fabian Franz - Narayan Newton - Francesco Placella - Greg Lund-Chaix - Marco Molinari - Michael Meyers - [Moshe Weitzman](https://www.tag1consulting.com/blog/interview-moshe-weitzman "Moshe...

Read more [email protected]… Mon, 03/08/2021 - 07:24

Flocon de toile | Freelance Drupal: Prevent unsolicited mass submissions on its Drupal 9 (or Drupal 8) site

1 month ago

Several anti-spam solutions exist on Drupal to prevent the submission of forms (contact, newsletter subscription, etc.) by more or less well-intentioned robots. Without wanting to be exhaustive, we can use the Honeypot and Antibot modules which provide (different) non-intrusive defence mechanisms, or the captcha / recaptcha modules which ask the visitor to respond to different challenges before allowing him to submit the form.

OpenSense Labs: Web development planning with Drupal 9

1 month ago
Web development planning with Drupal 9 Akanksha Mehta Mon, 03/08/2021 - 16:58

As a business, once you start with something, it becomes almost impossible to retrace your steps and retrospect on your choices or alter the decisions that you took in the past - especially if one little move holds the capacity to affect both you and your audience exponentially. Hence, optimum planning is necessary for each aspect that your organisation is working towards, including web development for your online presence.

To keep pace with the digital world, more and more businesses are showing up online to grab more eyeballs and solidify their market value. A facilitator in this process is Drupal 9 - and a quite popular one at that owing to its flexibility and scalability. Drupal 9 presently is in use across several industry verticals and powers thousands of websites. 

While there’s a lot that goes into the general process of web development, simplifying the process by placing all your thoughts methodically is always possible. This list is intended to serve both as an exhaustive guide and as a checklist representing the correct chronology in which web development needs to be approached.

Defining the Purpose

The very reason that you’re getting into web development is because you have a purpose in your mind, but what’s essential is to define that purpose. This is required both for your future team and for your audience to understand and resonate with your brand better. Your target audience along with your unique value proposition must be clearly outlined along with your short term and long term goals, including both value addition and business targets. The defined goals should be measurable, relevant to your business value, time bound, and lastly, be attainable in the time allocated. While planning the execution, defining ways to measure the success of each campaign is also equally important.

A blueprint will only help you proceed with web development in a defined, synchronised manner - essential for managing future growth and expansion.

Picking the right team

After defining the purpose, the next step in web development planning would be to pick a team that brings these targets to a tangible completion. Depending on your business, the team would vary in terms of manpower and skillset. If your business focuses on UX (User Experience), you would want to have designers on board. If it focuses on sales of a product or a service, more marketers would be required. Nevertheless, the team that you tentatively need would comprise

  • a project manager for keeping things on the track, 
  • content creators to provide written and other media content, 
  • a content strategist/architect to plan priorities organise the site,
  • Designers to plan and design the layout,
  • Developers - both frontend and backend.

Refer to all the different roles and skills integral to building a Drupal 9 website here. And, for the decoupled Drupal project, you can check out all the right skills here.

Building a Brand Image

Once two and two are together, the first thing that you and your team needs to do is to plan out a brand image as this will be the bedrock to the web development process of all your website content, marketing strategies and social media presence. Some important elements to decide on would be -

  • The logo, as this is what most people would associate your brand to. The layout, colour palette and design of the logo should represent the underlying identity of your business.
  • The domain name, essential for brand identity as well as driving traffic to your website. It must be short and easy to pronounce. 
  • Also keep in mind that the advertised USP (Unique Selling Proposition) must also be in line with the brand image, as anything that reaches out to the audience more often is a matter of greater scrutiny.
Planning it out

Now is the time to analyse every nook and corner of the web for competitor research. Ideally, there should be a list of brands that you both consider a competitor but also look up to, preferably businesses operating in the same domain with a similar target audience. Another area of analysis should be the current market standing of the kind of products and services that you’re offering. What are you audience looking for in the present scenario? What is the gap that your product is intending to fulfill?

Here’s what the mind map for your research should look like -

Post research, comes the actual planning of the website's elements, which will be -

  • The website’s structure. A sitemap can be used for facilitating the layout.
  • Identifying the interests and navigation trends of your audience by deploying relevant tools to do the job, and creation of a users’ persona for better understanding of the market needs. A flowchart software can be of great help in this case, as it lays out the navigation in this manner -


  • Budgeting. Allocation of money, or a draft blueprint of the same needs to be created.
The layout

For the web development process regarding the website’s layout, elements under consideration should be -

  • Deciding on the colour palette, the font, photography style, spacing - basically everything that your audience interacts on a daily basis with, that could be a potential bottleneck later on if left undecided. 
  • Use of wireframes to preview your website’s layout. A wireframe is exactly what it sounds like - the skeleton of the layout like page contents and their placement without added elements of color and design, for an understanding of the site’s functionality.
  • Quality design is invaluable, as elements in your layout can comprise your  USP as well. The layout should be attractive and convenient enough to navigate for your user to want to come back.
The importance of UX

If a website is too complicated, has lousy speed, has a scattered icon placement or the content isn’t comprehensible, even having a good service delivery will not help. The design of a website holds the capacity to create a bond of trust with the user, and also to establish customer loyalty. Areas of focus should be 

  • Use of simple, lucid language.
  • The content should put across the point instantly without beating around the bush.
  • A well thought out design that visualises the effort that has been put into it.
  • A list of FAQs (Frequently Asked Questions) makes knowledge sharing about your service even easier.
  • Multiple device compatibility
  • Interactive, responsive UI (User Interface)

The overall look and feel of the website must be professional and should have an elegant touch in the present elements. If a user is by chance tickled off by the design or performance of the website or if he can’t find what he’s looking for, retaining him would not be possible. Read our comprehensive guide to web design to know more.

Choosing the right CMS

A good amount of work is already done just by choosing a good CMS (Content Management System). Some large enterprises are based on CMSes like Drupal and rely on the softwares for their digital infrastructure due to the inbuilt tools and stability that comes with it, excluding the need for being extremely tech savvy. Depending on the amount of features and flexibility that is required by your business, Drupal can be your best bet.

Certain points to keep in mind after deciding to start your web development project with Drupal -

  • Keep up with the frequent updates that the software goes through. It might seem like a simple, matter-of-fact thing to do right now, but if you are not mindful of planning it ahead, you can miss out on many new features and benefits offered by Drupal by lagging in the update cycle. It is, hence, recommended to schedule reminders ahead of time.
  • The architecture of the website needs to be revisited from time to time. Is there any deprecated code that needs to be removed? Or, have your priorities changed over time, and you require different features than the ones already existing? It is imperative that these questions be answered time and again.

Drupal 9, the latest version of Drupal, is always a good option to go for because of the widespread community support and global usage it comes with. With a variety of packages and distributions, web development in Drupal 9 becomes pretty simple even for new developers as there are multiple tools to their aid - the best part being that there’s something for everyone. Updating Drupal is even simpler, a single click upgrading every theme and module on the site. 

Source : Drupal.org

The correct choice of modules can greatly amplify one’s experience when it comes to web development in Drupal 9. A great choice to make the page layout more methodical would be the  Admin Toolbar module, as it makes the admin toolbar into a drop down menu. A simple XML sitemap module increases the efficiency of SEO by creating multiple multilingual sitemaps along with custom URLs, and a Coffee module greatly enhances the UX by allowing the user to navigate to the admin seamlessly just by using a keyboard shortcut.

To know about the complete list of essential Drupal modules that will help in kick starting your web development project with Drupal 9, read this blog. Access our complete guide to Drupal 9 and go through Drupal 9 FAQs to know more.

Marketing it right

First, a decision needs to be taken on what avenues would be used for advertising and also how these channels will be prioritised, according to the underlying research about one's target audience. Is social media your primary channel to reach your audience? if yes, then which platform fits best with your business model? All these questions need to be answered before hitting the market. Some valuable points to keep in mind are -

  • Search Engine Optimization of all the content on your website is essential to drive more traffic into your website.
  • The URL structure should be logical and also optimised. 
  • Meta description is what a person reads before clicking on the website link, and it should be viewed as an interactive opportunity for a business to make a good first impression. 
  • Targeted marketing like cold emails and DMs might also work for some businesses.
  • The content strategy should be end to end, which schedules in line for planning, creating, executing and measuring it.

Brainstorming sessions with your team about new marketing strategies and ideas are also a good marketing execution method.

Choosing the right agency partner 

Taking expert aid can never hurt. Instances where the work gets too bulky or complicated for you, it is best to delegate it to an agency that knows the job inside out owing to years of experience and varied resources suited to different purposes.

  • An agency not only does your work in a much better and professional fashion, but also acts as a consultancy for any queries that you might have. 
  • Technology is fast evolving, hence, it is best to have a safety net that fills in the gaps in expertise wherever required. 
  • Your development gains maximum momentum with an additional number of hands working towards a specific goal with a focused intent, hence catalysing the development process. 
  • Strategising, design and development are all areas that can gain significantly from an outsider’s perspective. 

If you sync well with your agency partner and are able to make it long-term, a professional advisory would always be at a close proximity. Hence, it is an investment disguised as a partnership. An agency can help you migrate a bulk of content or develop a new website from scratch with ease - using their seasoned knowledge. Often, agencies also provide you post production support and maintenance. If your functional CMS is Drupal and you are unsure about how to incorporate the latest Drupal upgrade, or if you’re a business just setting up their Drupal website, you can well utilise the services of certified Drupal experts at OpenSenseLabs. Or, if you wish to extend your team of Drupal developers, UI/UX strategists and JavaScript developers, our unique staff augmentation model is available for flexible contracts with dynamic availability of certified professionals.

Future Plans

Lastly, everything might be moving on track for now, but that won’t be the case forever. Pre plan safety nets for all possible ups and downs. Also, it is important to not lose track of your long term goals by getting too engulfed in the day to day functioning of the website. A little farsightedness goes a long way.  

blog banner blog image web development Drupal 9 Drupal Blog Type Articles Is it a good read ? On
14 minutes 19 seconds ago
Drupal.org - aggregated feeds in category Planet Drupal
Subscribe to Drupal Planet feed