Subscribe to Planet Drupal feed - aggregated feeds in category Planet Drupal
Updated: 6 hours 48 min ago

Dries Buytaert: Caring for old software

Thu, 2020/06/25 - 8:22am

Given the impact of COVID-19 on organizations' budgets, we extended Drupal 7's end-of-life date by one year. Drupal 7 will receive security updates until November 2022, instead of November 2021. For more information, see the official announcement.

Extending the lifetime of Drupal 7 felt like the right thing to do. It's aligned with Drupal's goal to build software that is safe for everyone to use.

I wish more software was well-maintained like Drupal is. We released Drupal 7 almost a decade ago and continue to care for it.

We often recognize those who help innovate or introduce new features. But maintaining existing Open Source software also relies on the contributions of individuals and organizations. Today, I'd like us to praise those who maintain and improve Drupal 7. Thank you!


Promet Source: Eight Signs It's Time to Redesign Your Website

Thu, 2020/06/25 - 2:46am
Website redesign decisions often percolate for months, if not years, before action is taken and the team dives in for a do-over. Prior to taking the plunge, there tends to be a lot of low-grade dissatisfaction that gains momentum, as more and more conversations focus all the ways that operations would run smoother, marketing would work better, or all of the tasks that could be offloaded to the website if only navigation was simpler or the site was up to date. 

Security public service announcements: Extending Drupal 7's End-of-Life - PSA-2020-06-24

Wed, 2020/06/24 - 9:41pm
Date: 2020-June-24Description: 

Previously, Drupal 7's end-of-life was scheduled for November 2021. Given the impact of COVID-19 on budgets and businesses, we will be extending the end of life until November 28, 2022. The Drupal Security Team will continue to follow the Security Team processes for Drupal 7 core and contributed projects.

However, this means extra work from the Drupal community at large and the security team in particular to review security reports, create patches, and release security advisories for Drupal 7. This community effort will give site owners more time while budgets recover, but the organizations that sponsor security team members and the individual security team members who volunteer their time could use your support. If you can, please donate to support the end-of-life extension.

Drupal 8 will still be end-of-life on November 2, 2021, due to Symfony 3's end of life. However, since the upgrade path from Drupal 8 to Drupal 9 is much easier, we don't anticipate the same impact on end-users.

What does this mean for my Drupal 7 site?

You can continue to run the site and get security updates via the normal channels and processes. This will give you an extra year to work on converting your site to Drupal 9.

Do I need to upgrade to Drupal 8 before I upgrade to Drupal 9?

Migrating directly from Drupal 7 to Drupal 9 is supported with the core Migrate module. Read more on preparing a Drupal 7 site for Drupal 9.

How can I help?

Consider donating to support this effort. If you are a representative of a large end-user of Drupal, we'd love you to join the Drupal Association and the security team as a partner.

You can also consider getting more involved in fixing issues in the issue queue or joining the Security Team as a way to support the effort.

What about Drupal 7 Vendor Extended Support?

The extended support will now run from November 2022 until November 2025. You can read more about the Drupal 7 Vendor Extended Support program.

What about contributed projects?

The Security Team will continue to follow the Security Team processes for contributed projects. Contributed project maintainers are asked to consider supporting existing Drupal 7 releases if they are able.


Matt Glaman: Trying out issue forks on!

Wed, 2020/06/24 - 9:35pm

Have you heard that now has issue forks for Git-based contribution versus patches? This means we can now work in a pull-request style workflow on issues. It's an opt-in beta, and I have not had a chance to work with the feature yet. 


Drupalize.Me: Release Day: Learn Drupal's Layout Builder

Wed, 2020/06/24 - 9:20pm

Drupal In the News: Drupal Featured on Stack Overflow: Why now is the time to give Drupal another look

Wed, 2020/06/24 - 8:14pm

The content management ecosystem at large and Drupal in particular have evolved tremendously over the last 20 years, and many developers who haven't engaged with the CMS market in a while may have an outdated conception of what a CMS can do. With Drupal 9's release at the cutting edge of the CMS world, now is a better time than ever to reintroduce developers at large to what Drupal can accomplish.

Stack Overflow recently invited Drupal Association CTO Tim Lehnen to write about the evolution of the CMS marketplace, and what Drupal has to offer:

For many people discussion of content management systems raises unpleasant specters of the early 2000s. But while CMS platforms may not feel like the shiniest new tech on the block, they still have a lot to offer, and they've evolved in ways that might surprise you. Let's talk about Drupal, a 20 year old open source project that still manages to be on the leading edge of the CMS world.
The Overflow

Read the article


Tag1 Consulting: The story of Drupal 9's release from the inside with the Drupal Association

Wed, 2020/06/24 - 2:00pm

After four-and-a-half years of development, Drupal 9 was just released, a milestone in the evolution of the Drupal content management system. The Drupal Association has long played a critical role not only in supporting the advancement and releases of one of the world's largest and most active open-source software projects; it also contributes to the Drupal roadmap and drives its forward momentum in other important ways. In addition to maintenance releases for Drupal 7 and Drupal 8, the Drupal 9 release not only promises an easy upgrade for Drupal 8 users but also ushers in a new period of innovation for Drupal. But that's not all. Drupal 9's release also means long-awaited upgrades to as well as some of the most essential infrastructure and services that underpin and its associated properties, like,, and Releases in Drupal have also garnered greater scrutiny from nefarious actors who target launch dates to seek security vulnerabilities. The Drupal Association works tirelessly to buttress all of these initiatives and responsibilities, with the support of Tag1 and other organizations. In this Tag1 Team Talks episode, part of a special series with the engineering team at the Drupal Association, we speak discuss...

Read more preston Wed, 06/24/2020 - 05:00

OpenLucius: Update OpenLucius | 3 new features and design update

Wed, 2020/06/24 - 7:57am

We collected user feedback from which new functions were built, we also improved existing features and did a design update. The highlights:

Activity badges in main menu

As soon as there is activity in a group, team or project, you will now see this with badges in the main menu on the left:

Text documents / Notebooks

It is now possible to create text documents, you can also use this as a notebook. Some examples:


Agaric Collective: Online trainings on Drupal migration and upgrades

Tue, 2020/06/23 - 4:25pm

Agaric is excited to announce online training on Drupal migrations and upgrades. In July 2020, we will offer three trainings: Drupal 8/9 content migrations, Upgrading to Drupal 8/9 using the Migrate API, and Getting started with Drupal 9.

We have been providing training for years at Drupal events and privately for clients. At DrupalCon Seattle 2019, our migration training was sold out with 40+ attendees and received very positive feedback. We were scheduled to present two trainings at DrupalCon Minneapolis 2020: one on Drupal migrations and the other on Drupal upgrades. When the conference pivoted to an online event, all trainings were cancelled. To fill the void, we are moving the full training experience online for individuals and organizations who want to learn how to plan and execute successful Drupal migration/upgrade projects.

Up to date with Drupal 9

Drupal is always evolving and the Migrate API is no exception. New features and improvements are added all the time. We regularly update our curriculum to cover the latest changes in the API. This time, both trainings will use Drupal 9 for all the examples! If you are still using Drupal 8, don't worry as the example code is compatible with both major versions of Drupal. We will also cover the differences between Drupal 8 and 9.

Drupal 8/9 content migrations

In this training you will learn to move content into Drupal 8 and 9 using the Migrate API. An overview of the Extract-Transform-Load (ETL) pattern that migrate implements will be presented. Source, process, and destination plugins will be explained to show how each affects the migration process. By the end of the workshop, you will have a better understanding on how the migrate ecosystem works and the thought process required to plan and perform migrations. All examples will use YAML files to configure migrations. No PHP coding required.

Date: Tuesday, July 21, 2020
Time: 9 AM – 5 PM Eastern time
Cost: $500 USD

Click here to register

Upgrading to Drupal 8/9 using the Migrate API

In this training you will learn to use the Migrate API to upgrade your Drupal 6/7 site to Drupal 8/9. You will practice different migration strategies, accommodate changes in site architecture, get tips on troubleshooting issues, and much more. After the training, you will know how to plan and execute successful upgrade projects.

Date: Thursday, July 23, 2020
Time: 9 AM – 5 PM Eastern time
Cost: $500 USD

Click here to register

Getting started with Drupal 9

We are also offering a training for people who want to get a solid foundation in Drupal site building. Basic concepts will be explained and put into practice through various exercises. The objective is that someone, who might not even know about Drupal, can understand the different concepts and building blocks to create a website. A simple, fully functional website will be built over the course of the day-long class.

Date: Monday, July 13, 2020
Time: 9 AM – 5 PM Eastern time
Cost: $250 USD

Click here to register

Discounts and scholarships available

Anyone is eligible for a 15% discount on their second training. Additionally, if you are a member of an under-represented community who cannot afford the full price of the training, we have larger discounts and full scholarship available. Ask Agaric to learn more about them.

Customized training available

We also offer customized training for you or your team's specific needs. Site building, module development, theming, and data migration are some of the topics we cover. Check out our training page or ask Agaric for more details. Custom training can be delivered online or on-site in English or Spanish.

Meet your lead trainer

Mauricio Dinarte is a frequent speaker and trainer at conferences around the world. He is passionate about Drupal, teaching, and traveling. Over the last few years, he has presented 30+ sessions and full-day trainings at 20+ DrupalCamps and DrupalCons over America and Europe. In August 2019, he wrote an article every day to share his expertise on Drupal migrations.

We look forward to seeing you online in July at any or all of these trainings!

Read more and discuss at


OpenLucius: Update Lucius | 3 nieuwe functionaliteiten en design update

Tue, 2020/06/23 - 4:24pm

We verzamelden weer gebruikersfeedback waaruit nieuwe functies gebouwd werden, ook verbeterde we bestaande features. De highlights van deze update:

Activity badges in hoofdmenu

Zodra er activiteit is in een groep, team of project zie je dit nu met badges in het hoofdmenu links:

Tekst documenten / Notebooks

Het is nu mogelijk om tekst documenten aan te maken en aan samen te werken, dit kan je dit gebruiken als notebook voor bijvoorbeeld:


Specbee: Functions and filters to get you started with Twig Tweak in Drupal 8 (with examples)

Tue, 2020/06/23 - 12:07pm
Functions and filters to get you started with Twig Tweak in Drupal 8 (with examples) Akshay Devadiga 23 Jun, 2020 Top 10 best practices for designing a perfect UX for your mobile app

Twig tweak module is a huge time saver for Drupal developers working with advanced twig templates. It offers several useful functions and filters that can ease the developer’s job. Developers can also write well formatted code which is more comprehensible. I highly recommend usage of the Twig tweak module in Drupal 8 for quick and easy Drupal development. What’s more, Twig tweak is also supported in Drupal 9!

How to Install the Twig Tweak Module

You can either download and install the module from or from composer. Once you download and extract the file, place inside your project directory. You can also choose to use composer to download with the following command – 

composer require drupal/twig_tweak

Go to Extend and enable the module. You can even use drush to enable the module.

Implementing Twig Tweak Functions and Filters in Drupal 8 Views and views results

To render the views in twig template, we can use the twig tweak snippet as below.

 {{ drupal_view(views_name, display_id, args...) }}
 {{ drupal_view_result(views_name, display_id) }}

 views_name : Machine name of the views.
 display_id: Machine name of the current display.
 args : Optional arguments for filters. 


  • {{ drupal_view('who_s_new', 'block_1') }}  This will place the who’s new views block_1 in a template.
  • {{ drupal_view('who_s_new', 'block_1', arg_1, arg_2) }} Extra arguments can be passed if the contextual filters are added can be used with passing arguments.
  • {% set view = drupal_view_result('related', 'block_1')|length %}
    {% if view > 0 %}
    {{ drupal_view('related', 'block_1') }}

{% endif %} In this code the view is displayed only if the view has results in a template.


To place the plugin blocks in template, we can use the twig tweak snippet as below.

 {{ drupal_block('plugin_id', {label: 'Example'|t, some_setting: 'example'}) }} 

  plugin_id : Plugin id of the blocks can be found in class annotations of the block.
 options : Second parameter is optional for providing  the configurations for the blocks.

{{ drupal_block('system_breadcrumb_block') }} to place the breadcrumbs block in template.


To render the region contents from default or specific theme.

Syntax  {{ drupal_region(region_name, theme_name) }}  Arguments

 region_name :  Machine name of the region can be found at info.yml   file.

 theme_name : Optional theme name to render the region content of   specific theme other than default.

{{ drupal_region('sidebar_first', 'bartik') }} to place the sidebar first contents of the bartik theme in a template.

Entity and Entity form

To render the available entity and entity form in twig template, we can use the snippet as below.


 {{ drupal_entity(entity_type, id, view_mode, language, access_check) }}

 {{ drupal_entity_form(entity_type, id, form_mode, values, access_check ) }}


 entity_type : Type of an entity i.e node, block, block_content, webform,     paragraphs etc.
 Id: Id of an entity. 
 view_mode: To view the entity by its viewmode available.
 language:  To specify language if not it will take default site language. 
 access_check: To check the access of block default value is true.
 form_mode: To view the entity form by its formmode available. 
 values: Array of property values defaults to [].


  • {{ drupal_entity('block_content', 1) }}  to display the content block whose id is equal to 1 in a twig template.
  • {{ drupal_entity('node', 123, 'teaser') }} to display the node teaser data of entity whose id is equal to 123.
  • {{ drupal_entity_form('node', 1) }} to display node edit entity form in a template.
  • {{ drupal_entity_form('node', values={type: 'article'}) }} to display node add form of article type.

To display the available field value of any entity in twig template or to get field value, use the following twig tweak snippet.

Syntax  {{ drupal_field(field_name, entity_type, id, view_mode, language,access_check) }} Arguments

 field_name:  Machine name of the field.
 entity_type : Type of an entity i.e node, block, block_content, webform,   paragraphs etc. 
 Id: Id of an entity.
 view_mode: To view the entity by is viewmode available.
 language:  To specify language if not it will take default site language.


  • {{ drupal_field('field_image', 'node', 1, 'teaser') }} to display the field_image value of node 1 with teaser view mode.
  • {{ drupal_field('field_image', 'node', 1, {type: 'image_url', settings: {image_style: 'large'}}) }} to display the image field value with more detailed settings in a template.

To print the menu items in a template, we use the twig tweak as below.

Syntax  {{ drupal_menu(menu_name, level , depth, expand) }}  Arguments

 menu_name : Machine name of the menu
 level:  Menu level to display default value is 1.
 depth: Maximum number of menu levels to display   default is 0.
 expand: To allow the user to select whether it is expanded or not. Default is false.

{{ drupal_menu('main_navigation') }} to render the menu with its default values.


To render the Drupal form in a template we can implement the twig tweak as below.

 Syntax  {{ drupal_form(form_id. args ….) }} Arguments

 form_id: Form id of the form that you want to display in template.
 args:  Optional arguments that can be passed to the constructor.

{{ drupal_form('Drupal\\system\\Form\\CronForm') }} to display the form in a twig template by providing the path to its class.


There are several ways of rendering images in twig. Some easy ways with using twig tweaks are as follows.

Syntax  {{ drupal_image(property_id, style, attribute, responsive, access_chek) }} Arguments

 property_id: It is the unique id of the image i.e fid, uuid or file_uri.
 style : Image style of the image.
 attribute : For providing the attributes to the image such as alt, title etc.
 responsive : To indicate the image style is responsive image style.
 access_chek : To specify the access check is required.


  • {{ drupal_image(123) }} this will render the original image whose fid is 123.
  • {{ drupal_image('9bb27144-e6b2-4847-bd24-adcc59613ec0') }} this will render the image using the unique uuid of the image.

  • {{ drupal_image('public://2020/05/ocean.jpg') }} to render the image using the file uri of the image.

  • {{ drupal_image('public://2020/05/ocean.jpg', 'thumbnail', {alt: 'The alternative text'|t, title: 'The title text'|t}) }} here is an example of displaying an image thumbnail by adding the alt and title for the image. Note : uri path will be based on the default files location since it is set to sites/default/files/2020/05/ocean.jpg.


Drupal 8 introduced tokens which are very useful and huge time savers for Drupal developers. From twig tweak we can render the tokens as below. 

 Syntax  {{ drupal_token(token, data, options) }}  Arguments

 token : Name of the token to be printed.
 data: Array of values used for replacement of tokens.
 options: This also used as a flag when replacing tokens.

{{ drupal_token('site:name') }} to display the site name using the tokens in twig


Printing the configuration values in twig will be very useful in a site where you need dynamic data to be printed according to the configurations.

Syntax   {{ drupal_config(config_name, key) }} Arguments

 config_name: Name of the configuration yml file.
 key:  Specific value to be printed from the configuration

{{ drupal_config('', 'name') }} to print the name of the site from configuration into a template.


Debugging is the most important part of the development process. Here are some quick and cool methods to debug in twig. It needs Symfony var dumper component. It can be installed from composer by $ composer require --dev symfony/var-dumper 

Syntax  {{ drupal_dump(var) }}  Arguments  var : to print the specific arguments in a template. If a variable is not provided, then all the variables inside the template will be printed. dd() is the shorthand for the method.

{{ dd(var) }} this will  dump the var data from a template.

Drupal Title

To get the title of the current route we can use the twig as below.

{{ drupal_title() }} this will print the title of the current route.

Drupal URL

To generate a URL from an internal path inside the twig we can use the twig tweak snippet as below.

Syntax  {{ drupal_url(input, options, access_check) }} Arguments

 Input : use input link path.
 options : array of options including query params.
 access_check: to check the access default is false.


{{ drupal_url('node/1', {query: {foo: 'bar'}, fragment: 'example', absolute: true}) }} this will return the https://site_name/node/1?foo=bar#example as output.

Drupal Link

It generates the link path if the URL is not accessible to the user. It works the same as Drupal URL but with extra attributes.

 Syntax  {{ drupal_link(text, input, options, access_check) }} Arguments

 text : Text to be displayed.
 Input : use input link path.
 options : array of options including query params
 access_check : to check the access default is false.

{{ drupal_link('View'|t, 'node/1', {attributes: {target: '_blank'}}) }} this will create a link with name View and also has an option to open the link in the new tab.

Drupal Messages

To display the Drupal status messages in template, find the example below.

{{ drupal_messages() }} will display status based on user actions in the site.

Drupal Breadcrumbs

To display the breadcrumbs of the site in template as below, find the example below.

{{ drupal_breadcrumb() }} This will display the breadcrumbs block in template.

Drupal Breakpoints

To add a debug point to a twig template is as below.

{{ drupal_breakpoint() }} This will add a breakpoint in the template where you have added it.

Token Replace Filter

To replace all the tokens in a given string with appropriate values.

{{ '<h1>[site:name]h1><div>[site:slogan]div>'|token_replace }} this will replace the tokens available in a string with its appropriate values.

Preg replace filter

It will perform a regular expression search on the text and replaces it with the options.

Syntax  {{ text | preg_replace('(pattern)',replacement) }} Arguments  text : Text where the searching and replacing should   happen.
 pattern:  Text that should replace in an input.
 replacement: Replacement text to replace.

{{ 'foo' | preg_replace('(foo)', 'bar') }} in this example “foo” is getting replaced with bar

Image style filters

It will return the image URL with the downloaded image style.

Syntax  {{ image_uri|image_style(style) }} Arguments  image_uri : File uri of the image field.
 style : the style which you want to apply for the image.

{{ 'public://images/ocean.jpg'|image_style('thumbnail') }} this will apply the thumbnail image style to the given image.

Transliterate filter

It will Transliterate text from Unicode to US-ASCII and replace unknown characters with “?” by default.

Syntax {{ text|transliterate(language,unknown_chars,maxlength) }}   Arguments 

 text : The text which needs to be translated.
 language: language code for which it should translate default is en(English).
 unknown_chars: The character which needs to be replaced with unknown character   default is “?”. 
 maxlength: Max length of word that should check for the translation.

{{ 'Привет!'|transliterate }} this will return the output in english that is “Private!”.

Check markup filter

Apply the enabled filters for the text provided.

Syntax  {{ text | check_markup(format_id, language,filters_to_skip) }}  Arguments

 text : the text for which the filters should get applied.
 format_id : id of the text format should be used.
 language:  language to which the formatter should apply.
 filters_to_skip: array of filters to skip defaults to [].

{{ '<b>boldb> <strong>strongstrong>' | check_markup('restricted_html') }} This will apply the 'restricted_html' filter for the text given.

Truncate filter

This will be used to truncate the strings to a specified number of characters.

Syntax  {{ text | truncate(max_length,word_safe,add_ellipsis,word_safe_len) }} Arguments

 text : text to be truncated.
 max_length : max length of text to be truncated.
 word_safe : boolean value to truncate at the end defaults to False;
 add_ellipsis: add … to the end of the text default is False. 

 Word_safe_len : if word_safe is true this option will specify the min length.

{{ 'Some long text' | truncate(10, true) }} This will truncate the text to 10 characters and also truncate on boundary.

With Filter

This will add new elements to the array. It also returns an array with modified value.

{{ content.field_image | with('#title', 'Photo' | t) }} This will add a title to the field image and returns.

Children Filter

To filter out the child elements of the render array in a twig template. Also, this will have an option to sort the elements by its weight. This will be useful when processing individual fields.

{{ node.field_example|children }} this will render all the child elements of field_example in template.

File Uri and Url filter

These both filters will be used when dealing with images in twig. You can get the image Uri and URL using these methods in twig tweak.


  • {{ node.field_image | file_url }} returns the absolute url of the image file.
  • {{ node.field_image | file_uri }} returns the uri of the image file relative to its sites/default/files directory.

Twig tweak is a contributed Drupal 8 module that provides a better development experience by offering quick and easy functions and filters while maintaining readable code. In this article I have listed out some of the many functions and filters offered by Twig tweak module along with some easy tricks to help you implement them faster. At Specbee, we offer specialized Drupal services leveraging some of the most powerful features of Drupal. Contact us now to know how we can help.

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 Functions and filters to get you started with Twig Tweak in Drupal 8 (with examples) Image An Introduction to Headless or Decoupled CMS in AEM 6.5 Image Working with the Devel module in Drupal 8 to Generate Dummy Content 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]


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.

Categories: Our 12 month contribution challenge so far

Tue, 2020/06/23 - 12:05pm

So we challenged ourselves to contribute back to the Drupal community this year. How are we doing? Here's a simple update on what each of us has done so far. Hopefully we'll see other ComputerMinds team members join this list by the end of the year.

Christian Sanders

You may have noticed Christian's recent article on updating jQuery. That work included producing patches to Drupal core itself and the jquery_update project. Christian has also pushed for user interface improvements in paragraphs (which I hope to implement later this year).


James Silver

James updated a patch for using tokens in webform components. He continues to own a whole 17 (yes, 17!) sandbox projects on


James Williams (me!)

I've already written in more detail on my recent contribution to the XML sitemap project and to recommend sponsoring contributions. The Drupal 8 release of the Language Hierarchy project was my first sponsored contribution, and since then I've made it available for Drupal 9 as well. I've started answering support requests in Drupal slack on a semi-regular basis, but otherwise most of my contributions are still around code. Here's a summary:


Mike Dixon

Even our head 'mind still gets in on the act. He has reported and solved a bug in the metadata module (used for SEO) and is helpful when he can to respond to support requests for modules that we use. And as the boss, we should be grateful that he encourages us all to use some of our company time to give back to the Drupal world!


Nathan Page

We kicked off this challenge with Nathan's dive down the rabbit hole, and before long Nathan had even dabbled in reviewing and producing patches for Drupal core. I'd say that was the aim of the challenge: to grow as developers and encourage others to help the Drupal project - so I think we can safely say, 'mission accomplished'. Nathan has since moved onto pastures new (Hi Nathan if you're reading this!), but we're delighted to see his contributions have continued.


Steven Jones

Perhaps our biggest all-time contributor to Drupal, Steven has continued to provide brilliant contributions. I consider him my mentor in this field, and I'm not the only one. Some of his contributions are to the infrastructure that some of us use with Drupal. For example, making Valet+ support Drupal sites better. Here's a summary of how he's helped out on so far this year:


Stephen Tweeddale

Steve's chief contribution this year is actually outside of the Drupal ecosystem - he has continued to maintain a plugin for GatsbyJS sites: gatsby-source-git. This uses a git repository as a source for pages to go into a static Gatsby site, just like the regular one for Markdown files within a site. (Did you know ComputerMinds do GatsbyJS, not just Drupal?!) The two systems are being used together on more and more projects nowadays, so I think it's only fair on Steve to include this here ;-)



We're proud of all this! We've been involved with sorting a couple of security issues in contrib modules too, which are rightly kept secret. Of course there's plenty of scope to do more, especially by giving more of our time to help out beyond code.

Why not join us in taking on this challenge, to make a contribution to Drupal every month this year? Good luck! Let us know how you get on in the comments below.


Amazee Labs: Multilingual Drupal - Part 2: Translation Management

Tue, 2020/06/23 - 10:45am
<img src=";itok=UoMiMPPp" width="1120" height="630" alt="Multilingual Drupal - Part 2: Translation Management" title="Multilingual Drupal - Part 2: Translation Management" class="image-style-leading-image" /> With a simplified translation flow with a balanced use of both human and machine translation, you can reduce your costs and reach even more markets.

Jacob Rockowitz: Webform Cards... To infinity and beyond!!!

Mon, 2020/06/22 - 11:10pm

Our expectations of the Webform module are directly tied to Drupal’s Form API, a robust and secure framework for building, validating, and submitting forms. Still, Drupal’s current Form API implementation is about ten years old. It is starting to show its age. When Drupal’s Form API was built 16 years ago, form rendering and validation were always executed server-side; Ajax was a new kid on the block. Now, with modern frontend frameworks, like React and VueJS, form rendering and validation happen clientside, in the web browser. This approach results in a faster, more flexible ‘modern’ user experience.

Modernizing Drupal and Webform User Experience

The Drupal community is working on modernizing Drupal’s user interface and experience. In the meantime, Drupal and the Webform module should provide the best user experience possible. Any request to the server (aka the Drupal backend) is, by definition, slower than changes and behaviors happening in the client (aka web browser). The first step to improving Drupal and the Webform module’s user experience and performance to move most data validation to the client’s web browser using clientside validation.

Clientside validation

Even though modern browser’s support HTML 5 Clientside validation, the implementation is inconsistent and there are known accessibility issues. The Clientside Validation module , which uses the jQuery Validation plugin, solves some of these accessibility issues and offers the most consistent user experience. Installing the Clientside Validation module will immediately improve...Read More


Matt Glaman: My first livestream, and upgrading to Drupal 9

Mon, 2020/06/22 - 10:47pm
My first livestream, and upgrading to Drupal 9 Monday 22, June 2020 #
  • drupal
  • livestream

DrupalCon News: Drupal9 at DrupalCon Global

Mon, 2020/06/22 - 7:15pm

The Drupal community has accomplished amazing things with the release of Drupal 9. It’s the easiest major version upgrade in a decade, extending the pattern of continuous innovation from Drupal 8, with dramatically easier tools for end-users. 

DrupalCon Global is a great opportunity to learn more about Drupal 9 and the Drupal project overall. No matter your role or where you are in your Drupal journey, there are sessions that will give you the content you need. 



Sooper Drupal Themes: Sooperthemes is now DXPR. Meet DXPR Builder 1.0.0: The Drupal Layout Builder For Marketers

Mon, 2020/06/22 - 4:21pm
A Drupal Authoring Experience For Marketers

We are excited to announce that as of June 22nd, 2020, we have a new name and brand identity:

Sooperthemes is now called DXPRWhy we are rebranding

Starting 10 years ago we have worked to make Drupal easier to use for everyone. In the past 10 years, much has changed for all of you who interact with Drupal in some way.

With the introduction of Drupal 8, a new era of scalable, more reliable development practices were introduced. With Drupal 9, an affirmation of Drupal's intent for long-term stability and easier updates has calmed everyone's hearts (at least here at DXPR).

Drupal authors and digital marketers have replaced themers and site builders as our primary audience. 5 years ago our focus started shifting from developing our low-code Drupal theming framework towards developing a visual authoring experience that lets authors create media-rich, mobile-friendly pages without coding. 

Jurriaan Roelofs, Founder at DXPRTry live demoIntroducing DXPR Builder 1.0.0

Inspired by you — our customers and supporters — we introduce DXPR Builder: the layout builder that showcases the result of our 5 years of listening, developing, and improving the Drupal experience for Drupal's most important audience: The Authors.

Authors, especially digital marketers, have been frustrated by the lack of a visual layout builder for Drupal. With the inability to create mobile-friendly layouts, digital marketers relied on IT support to create landing pages, or even anything more complicated than a Word document.

With DXPR Builder, you can upgrade any Drupal 7, 8, or 9 websites with the following awesome no-code capabilities:

  • Immediate inline editing
  • Mobile-friendly layouts up to 12 columns
  • Access your local media or DAM
  • Add marketing elements including icons, countdown timers, and more
  • Supports Drupal views, blocks, translations, revisions, workflows, and other Drupal technologies.
Giving back to the open-source community: DXPR Theme on d.o.

Because our source driver of new business is now our Drupal layout builder module we have decided to open-source the DXPR Theme.

DXPR Theme, the successor of Glazed Theme, was previously our most successful product. This low-code Drupal design framework is a Bootstrap based theme plugin for Drupal 7, 8, and 9.

With over 200 easy-to-use theme settings, DXPR Theme will save your IT team many hours and improve the time-to-market for global changes to the design of your website.

DXPR is more than just a new brand

With our new pay as you grow pricing model, we will be able to help developers implement and customize our product better than ever.

Customer service and tech support are areas that DXPR will focus on improving. I have been the customer service manager at Sooperthemes over the past 10 months; we grew our support team by employing more tech support engineers and enhanced our workflow automation to improve promptness and efficiency. 

As part of the DXPR team I am excited to say that our support and customer success teams are now ready to handle enterprise-class clients, and are ready to serve the Drupal community. 

Nour Eldin, Customer Service Manager at DXPRCurious what your Drupal experience looks like with DXPR?Try Live Demo

Evolving Web: What's Next for Drupal 9?

Mon, 2020/06/22 - 4:01pm

Drupal 9.0 was launched earlier this month as a continuation of Drupal 8. This time around, the core update was more about updating the technology underlying Drupal's codebase and eliminating dependencies than introducing brand-new features, but fear not: we'll be getting some of those soon enough.

Drupal releases features on a semi-annual basis, and version 9.1 is expected to be rolled out around December this year. Due to the decentralized nature of Drupal's development, the roadmap for 9.1 isn't necessarily set in stone; that said, the strategic initiatives and core objectives are well-documented, so we know what we can expect in the foreseeable future. Most importantly, gone are the days when Drupal was developer-first, editor-second: it's all about usability and accessibility for everyone moving forward.

Let's take a closer look at what that might entail. On the menu: a new front-end theme, automatic updates, and community-driven improvements collected from the 2020 Drupal Product Survey.

Olivero Front-End Theme

When I built my first-ever Drupal site during an Evolving Web training session, I remember thinking two things: "Wow, this is really flexible and fun to use once you get the hang of it", and "Wow, the default theme looks a bit dated". I'm a fan of Drupal, but the Bartik theme and its decade-old design just don't quite do it justice for first-time users.

Drupal has made it a major priority to completely overhaul its user experience and be friendlier for everyone, not just developers. Now that Claro, a new, accessible admin theme, is available in Drupal 9, contributors are focusing on Olivero, a modern front-end theme designed to showcase the CMS in its best light out of the box. Like Claro, Olivero follows a new-and-improved design system that prioritizes user experience and accessibility.

Screenshot of the Olivero front-end theme for Drupal sites

It'll be a good few months before we can officially say bye-bye to Bartik, so here's what we know about Olivero so far to tide you over in the meantime:

  • It looks really good. Olivero's sharp colour palette, modern typography, and judicious use of white space gives Drupal sites a polished, state-of-the art look straight out of the box.
  • It'll be WCAG AA-compliant from the ground up. Accessibility is a major focus in Olivero, which is slated to include a high-contrast mode among myriad other accessibility-first features and functionality.
  • It supports all the most recent features added to Drupal, including embedded media and the drag-and-drop layout builder.

To read more about Olivero's development (and see the prototype high-contrast mode in action), check out this blog post by Lullabot, one of the teams involved in building the theme. According to the post's author, a launch within 9.1 is the most likely release scenario, so stay tuned this December.

Automatic Updates

As it stands, updating a Drupal site isn't the most straightforward process. That's set to change in the foreseeable future, however, as automatic updates have been one of Drupal's main strategic initiatives for some time now.

Major features of the existing Automatic Updates module, which is planned to eventually become part of Drupal core, include:

  • Major update announcements to notify admins when a core update is on its way, what it entails, and how to prepare
  • Update readiness checks to automate the process of ensuring sites are compatible with the latest update
  • One-click updating to allow admins to trigger the database update directly via the Automatic Updates service

These features are currently being tested and refined by the community, and we can expect a core release as soon as they're ready. Get all the details about the Automatic Updates project in the Drupal docs.

The 2020 Drupal Product Survey

Drupal's project lead Dries Buytaert recently started collecting responses to the annual Drupal Product Survey (here's the related post on Dries' blog). The survey's goal is to prioritize upcoming initiatives according to the community's needs. The results will be unveiled this July during the global virtual DrupalCon.

Looking at the survey's contents can give us some clues as to what might be coming to Drupal in the mid- to long-term (but we'll have to wait till the results are out to get a clear picture of how the Survey will influence Drupal's strategic direction).

Target Audiences

When you take the survey, the first questions are about how you use Drupal. The rest of the survey is then tailored according to your response. Here's a glimpse of the different demographics you can choose from to give you an idea of who the questionnaire is intended for (short answer: anyone who has anything to do with Drupal in any capacity!).

The first question on the Drupal Product Survey shows the scope of its audience

Content Editor Experience

The content editing experience in Drupal has seen constant improvements over the last several releases, but how will it evolve in 9.1 and beyond? The survey's questions for content creators include a list of potential Drupal enhancements, which respondents are asked to prioritize. A few highlights:

  • More refined draft/publishing control. This has already been addressed in recent updates; Drupal 9 includes enhanced content moderation workflows that are well-suited to actual editorial processes. It'll be interesting to see how this will be improved upon even further.)
  • Improved accessibility testing and control. Drupal core aims to adhere to stringent accessibility requirements out of the box (note leigh link here to that one page), but it could definitely offer even more testing features for creators directly via the admin UI
  • Improved contextual help and overall "how-to" guidance and Redesigned information architecture/simplified terminology for admin pages. A lot has been done in recent updates to make Drupal more user-friendly and approachable, so this survey question should be a good indicator of how successful those efforts have been--and what still needs to be done to further democratize the CMS.

Other noteworthy points relating to content creation workflows include:

  • Making more pre-built templates available
  • Autosaving
  • Real-time previewing of content being edited
  • Improvements to structured data and metadata management
Developer Experience

Site builders, theme builders, designers, and front- and back-end developers answering the survey also get questions about usability and accessibility, but those obviously look a bit different than the ones targeting content authors.

Discussion points aimed at developers and designers include these potential Drupal enhancements:

  • Improved configuration management
  • Additional front-end development tools, like NPM support and SDKs for common JavaScript frameworks
  • Drush-style out-of-the-box command-line tools integrated into Drupal Core (if you're currently looking for Drush commands to use during deployment, consider getting the Drush module, which adds several admin functionalities)
  • Improved data modeling tools
  • Better support for atomic content (i.e. reusable, channel-agnostic assets), in addition to a component-based theme system with reusable interactive theme elements like responsive tables
  • More modules added to Drupal Core, such as Feeds (to provide a migration UI), Rules (to provide a business logic UI), Admin toolbar, and Pathauto (for generating URL path aliases)
  • Privacy management support, such as user-managed identity access for GDPR
Help Shape Future Versions of Drupal

Of course, this is just the tip of the iceberg when it comes to future plans for Drupal. If you have an opinion on anything we just covered (or on Drupal in general), make sure to take the 2020 product survey (direct survey link) to have your voice heard. Drupal is, and always has been, a community effort, so by taking the time to fill out the questionnaire you'll be directly contributing to the future of a powerful open-source CMS that powers millions of experiences across the web.

Meanwhile, if you want the facts about the latest current edition of Drupal, sign up for our upcoming webinar What You Need to Know About Drupal 9.

+ more awesome articles by Evolving Web

Tag1 Consulting: Introduction to DrupalSpoons, a new developer workflow for Drupal contributors

Mon, 2020/06/22 - 2:16pm

In this exciting episode of Tag1 Team Talks, Moshe Weitzman (Subject Matter Expert, Senior Architect, and Project Lead at Tag1) hopped on with Michael Meyers (Managing Director at Tag1) and your host Preston So (Editor in Chief at Tag1 and author of Decoupled Drupal in Practice) for a deep dive into what makes DrupalSpoons so compelling for Drupal contributors and the origin story that inspired Moshe to build it.

Read more preston Mon, 06/22/2020 - 05:16