Main Drupal Feed

Subscribe to Main Drupal Feed feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 6 days 22 hours ago

Promet Source: No "Small" Drupal Support Contracts

Tue, 06/21/2022 - 16:33
I was recently thinking about Promet’s engagement with British Columbia’s Knowledge Network, and was reminded of a famous maxim from the theater world: “There are no small parts, only small actors.” I’ve always loved that saying because it drives home the point that excellence at every level and at every point in a process, plants seeds for growth that often exceed expectations. 

Specbee: How to make a Multilingual Website using Drupal 9

Tue, 06/21/2022 - 09:35
How to make a Multilingual Website using Drupal 9 Shefali Shetty 21 Jun, 2022

It’s a fact. You can’t go global without localized focus. Yeah, that sounds like a  paradox, but it makes sense from a user perspective. Many organizations are reaping the benefits of multilingual web experiences to connect with their customers across the world. And it’s almost a requirement these days. Not only do Multilingual websites enable you to reach new target audiences more effectively, but it adds credibility to your brand, offers familiarity to visitors and makes users more likely to turn into customers.

In a recent research conducted on a list of top 150 global brands across industries, Wikipedia, Google, Nestlé, Airbnb and Adobe emerged as the top 5 brands that scored the best in terms of multilingual support, localization and global user experience. If you’re looking at localizing your brand as you go global, Drupal is a great CMS to opt for because of its fantastic support for multilingual websites. In this article we will describe how Drupal 9's multilingual feature works and how content editors or content teams can utilize the feature.

Multilingual Support Modules

As I mentioned previously, Drupal 9 makes it really easy to build multilingual sites. It offers 4 multilingual support modules that are already built in core. All you have to do is enable them. In your administrator view, go to Extend, select the 4 modules under Multilingual and click on Install.

  1. Configuration Translation Module - This one is not visible for the end users but especially useful for site builders. It translates configuration text like views names, 
  2. Content Translation Module - Allows to translate content entities and types like blocks, comments, taxonomy terms, custom menu links, and more.
  3. Interface Translation Module - Helps translate user interface elements such as Home, Forms, Title, Body, Description, etc. 
  4. Language Module - The real magic happens here. Here’s where you can choose from a whole range of languages (>100) and add it to your configuration.

You can then further configure these modules to have them enabled for all or for only a selected set of content types, entities, configurations or interface elements. 

For more details on each of these modules, make sure you read this article.

Implementing the Multilingual Feature

Once you have enabled these 4 modules, let’s dive right into configuring them.

Step 1: Add a Language (or multiple languages)

In your Drupal 9 admin interface, navigate to Configuration -> Regional and language -> Languages. Once you’re on the Languages page, click on the + Add language button

 

I’ve chosen Spanish as my language and added it to the list of languages.

Once added, you can select it as your default language or have English as the default.

Adding a Language

Step 2: Update Translations

Now click on the right part of the Edit button and you will get two options as a dropdown - Delete and Translate. When you select Translate, your Drupal site gets updated with all the interface and configuration translations for that language from localize.drupal.org. Here thousands of Drupal contributors help translate interface and configuration strings in regional languages.

Importing translations

Step 3: Language switcher

You can add a language switcher block to any region of your page so the user can switch between their preferred languages.

Adding a Language Switcher block

Step 4: Adding translations to content types and entities

You can have translations for all your content types and entities or you can select the ones as per your requirement.

For this, on your Admin screen go to Configuration -> Regional and language -> Content language and translation

I have selected custom language settings for Content, Redirect and URL alias. Under Content, I’m going to only have translations for my “Ad Page” content type (as shown below). All my fields under “Ad Page” content type are selected to be translated.

 

Now we’re all set to add translated content to the required content types.

Translating the Content

Now that you know how to enable and configure the multilingual modules in Drupal 9, let’s move on to learning how to actually translate the content. Let’s look at a super simple, 3 step process on how content teams can leverage this functionality to add their translated content. If you want to read about migrating multilingual content from CSV to Drupal, check out this article.

Step 1: Create a new page or Edit an existing one

Since I had opted to have translations for all my Ad page content types, I have created a test page under this content type. Now you will see that along with the usual View, Edit, Delete and Revisions tabs, I also have a new Translate tab.

  Step 2: Select the Language

On clicking the Translate tab, you will be able to see all your languages listed (see below). Observe that the Spanish language that we added does not have a translation yet. Now click on Add to create a Spanish translation page.

Step 3: Add translated content to the respective field

Notice how all your fields and elements of your admin interface have translated themselves to Spanish (see below). All you have to do is add your translated content as per requirement!

  Step 4: Save and Review!

We’re almost there! After adding in all your translated content, don’t forget to Guardar your translation! :)

And here’s what your Multilingual web page will now look like.

Spanish Version

You will notice the URL generated for the translated version (here Spanish) will contain a language prefix (here: es).

English Version

One of our recent Multilingual projects on Drupal 9 was for SEMI. SEMI is a global industry association that connects more than 1.3 million professionals and 2500 members worldwide through its programs, initiatives, market research and advocacy. SEMI members are responsible for innovation and advancements in electronics manufacturing and design supply chain. With 8 regional offices located around the world, having a multilingual setup was imperative for them to enable focus and customization. Read more about how we helped them build a cohesive multisite, multi language experience with Drupal 9.

https://www.semi.org/region-selector

Final Thoughts

Did you see how easy it was to build a multilingual website in Drupal 9? If you’re looking for Drupal development assistance in creating your next multi language website so you can reach a bigger target audience, feel free to talk to us.

Author: Shefali Shetty

​​Meet Shefali Shetty, Director of Marketing at Specbee. An enthusiast for Drupal, she enjoys exploring and writing about the powerhouse. While not working or actively contributing back to the Drupal project, you can find her watching YouTube videos trying to learn to play the Ukulele :)

Drupal 9 Drupal Development Drupal Planet Subscribe to our Newsletter Now Subscribe Leave this field blank

Leave us a Comment

  Recent Blogs Image How to make a Multilingual Website using Drupal 9 Image Creating custom design systems with Tailwind CSS and implementing it in Drupal Image Build marketing landing pages quickly and easily with Drupal 9 Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

Upgrading and consolidating multiple web properties to offer a coherent digital experience for Physicians Insurance

Upgrading the web presence of IEEE Information Theory Society, the most trusted voice for advanced technology

Great Southern Homes, one of the fastest growing home builders in the United States, sees greater results with Drupal 9

View all Case Studies

Specbee: How to make a Multilingual Website using Drupal 9

Tue, 06/21/2022 - 09:35
How to make a Multilingual Website using Drupal 9 Shefali Shetty 21 Jun, 2022

It’s a fact. You can’t go global without localized focus. Yeah, that sounds like a  paradox, but it makes sense from a user perspective. Many organizations are reaping the benefits of multilingual web experiences to connect with their customers across the world. And it’s almost a requirement these days. Not only do Multilingual websites enable you to reach new target audiences more effectively, but it adds credibility to your brand, offers familiarity to visitors and makes users more likely to turn into customers.

In a recent research conducted on a list of top 150 global brands across industries, Wikipedia, Google, Nestlé, Airbnb and Adobe emerged as the top 5 brands that scored the best in terms of multilingual support, localization and global user experience. If you’re looking at localizing your brand as you go global, Drupal is a great CMS to opt for because of its fantastic support for multilingual websites. In this article we will describe how Drupal 9's multilingual feature works and how content editors or content teams can utilize the feature.

Multilingual Support Modules

As I mentioned previously, Drupal 9 makes it really easy to build multilingual sites. It offers 4 multilingual support modules that are already built in core. All you have to do is enable them. In your administrator view, go to Extend, select the 4 modules under Multilingual and click on Install.

  1. Configuration Translation Module - This one is not visible for the end users but especially useful for site builders. It translates configuration text like views names, 
  2. Content Translation Module - Allows to translate content entities and types like blocks, comments, taxonomy terms, custom menu links, and more.
  3. Interface Translation Module - Helps translate user interface elements such as Home, Forms, Title, Body, Description, etc. 
  4. Language Module - The real magic happens here. Here’s where you can choose from a whole range of languages (>100) and add it to your configuration.

You can then further configure these modules to have them enabled for all or for only a selected set of content types, entities, configurations or interface elements. 

For more details on each of these modules, make sure you read this article.

Implementing the Multilingual Feature

Once you have enabled these 4 modules, let’s dive right into configuring them.

Step 1: Add a Language (or multiple languages)

In your Drupal 9 admin interface, navigate to Configuration -> Regional and language -> Languages. Once you’re on the Languages page, click on the + Add language button

 

I’ve chosen Spanish as my language and added it to the list of languages.

Once added, you can select it as your default language or have English as the default.

Adding a Language

Step 2: Update Translations

Now click on the right part of the Edit button and you will get two options as a dropdown - Delete and Translate. When you select Translate, your Drupal site gets updated with all the interface and configuration translations for that language from localize.drupal.org. Here thousands of Drupal contributors help translate interface and configuration strings in regional languages.

Importing translations

Step 3: Language switcher

You can add a language switcher block to any region of your page so the user can switch between their preferred languages.

Adding a Language Switcher block

Step 4: Adding translations to content types and entities

You can have translations for all your content types and entities or you can select the ones as per your requirement.

For this, on your Admin screen go to Configuration -> Regional and language -> Content language and translation

I have selected custom language settings for Content, Redirect and URL alias. Under Content, I’m going to only have translations for my “Ad Page” content type (as shown below). All my fields under “Ad Page” content type are selected to be translated.

 

Now we’re all set to add translated content to the required content types.

Translating the Content

Now that you know how to enable and configure the multilingual modules in Drupal 9, let’s move on to learning how to actually translate the content. Let’s look at a super simple, 3 step process on how content teams can leverage this functionality to add their translated content. If you want to read about migrating multilingual content from CSV to Drupal, check out this article.

Step 1: Create a new page or Edit an existing one

Since I had opted to have translations for all my Ad page content types, I have created a test page under this content type. Now you will see that along with the usual View, Edit, Delete and Revisions tabs, I also have a new Translate tab.

  Step 2: Select the Language

On clicking the Translate tab, you will be able to see all your languages listed (see below). Observe that the Spanish language that we added does not have a translation yet. Now click on Add to create a Spanish translation page.

Step 3: Add translated content to the respective field

Notice how all your fields and elements of your admin interface have translated themselves to Spanish (see below). All you have to do is add your translated content as per requirement!

  Step 4: Save and Review!

We’re almost there! After adding in all your translated content, don’t forget to Guardar your translation! :)

And here’s what your Multilingual web page will now look like.

Spanish Version

You will notice the URL generated for the translated version (here Spanish) will contain a language prefix (here: es).

English Version

One of our recent Multilingual projects on Drupal 9 was for SEMI. SEMI is a global industry association that connects more than 1.3 million professionals and 2500 members worldwide through its programs, initiatives, market research and advocacy. SEMI members are responsible for innovation and advancements in electronics manufacturing and design supply chain. With 8 regional offices located around the world, having a multilingual setup was imperative for them to enable focus and customization. Read more about how we helped them build a cohesive multisite, multi language experience with Drupal 9.

https://www.semi.org/region-selector

Final Thoughts

Did you see how easy it was to build a multilingual website in Drupal 9? If you’re looking for Drupal development assistance in creating your next multi language website so you can reach a bigger target audience, feel free to talk to us.

Author: Shefali Shetty

​​Meet Shefali Shetty, Director of Marketing at Specbee. An enthusiast for Drupal, she enjoys exploring and writing about the powerhouse. While not working or actively contributing back to the Drupal project, you can find her watching YouTube videos trying to learn to play the Ukulele :)

Drupal 9 Drupal Development Drupal Planet Subscribe to our Newsletter Now Subscribe Leave this field blank

Leave us a Comment

  Recent Blogs Image How to make a Multilingual Website using Drupal 9 Image Creating custom design systems with Tailwind CSS and implementing it in Drupal Image Build marketing landing pages quickly and easily with Drupal 9 Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

Upgrading and consolidating multiple web properties to offer a coherent digital experience for Physicians Insurance

Upgrading the web presence of IEEE Information Theory Society, the most trusted voice for advanced technology

Great Southern Homes, one of the fastest growing home builders in the United States, sees greater results with Drupal 9

View all Case Studies

The Drop Times: Top Drupal 9 Books to Read

Tue, 06/21/2022 - 01:11
You can use Drupal books to learn about module development, different types of frameworks and creations, marketing and more.

The Drop Times: Top Drupal 9 Books to Read

Tue, 06/21/2022 - 01:11
You can use Drupal books to learn about module development, different types of frameworks and creations, marketing and more.

Security public service announcements: Updated security policy for Drupal core Composer dependencies - PSA-2022-06-20

Mon, 06/20/2022 - 18:18
Date: 2022-June-20Description: In Drupal 9.4 and higher, drupal/core-recommended allows patch-level vendor updates

The drupal/core-recommended metapackage now allows patch-level updates for Composer dependencies. This means that site owners using drupal/core-recommended can now install most Composer dependency security updates themselves, without needing to wait for an upstream release of Drupal core that updates the affected package.

For example, in the future, a Guzzle vendor update like the recent Guzzle security release can be installed by running:

composer update guzzlehttp/guzzle

The change record on drupal/core-recommended and patch-level updates has more detailed information on how this change affects site dependency management.

Drupal security advisories and same-day releases for vendor updates will only be issued if Drupal core is known to be exploitable

It is the Drupal Security Team's policy to create new core releases and issue security advisories for third-party vendor libraries only if an exploit is possible in Drupal core. However, both the earlier version of the drupal/core-recommended metapackage and Drupal.org file archive downloads restrict sites to the exact Composer dependency versions used in Drupal core. Therefore, in practice, we have issued numerous security advisories (or same-day releases without security advisories) where only contributed or custom code might be vulnerable.

For Drupal 9.4.0 and higher, the Security Team plans to no longer issue these "just-in-case" security advisories for Composer dependency security updates. Instead, the dependency updates will be handled as public security hardenings, and will be included alongside other bugfixes in normal Drupal core patch releases. These security hardenings may be released within a few days as off-schedule bugfix releases if contributed projects are known to be vulnerable, or on the next scheduled monthly bugfix window for uncommon or theoretical vulnerabilities. (Keep in mind that Drupal core often already mitigates vulnerabilities present in its dependencies, so automated security scanners sometimes raise false positives when an upstream CVE is announced.)

Site owners are responsible for monitoring security announcements for third-party dependencies as well as for Drupal projects, and for installing dependency security updates when necessary.

Sites built using .tar.gz or .zip file downloads should convert to drupal/core-recommended for same-day dependency updates

Drupal 9.4 sites built with tarball or zip file archives will no longer receive the same level of security support for core dependencies. Going forward, if core is not known to be exploitable, the core file downloads' dependencies will be updated in normal bugfix releases within a few days (if contributed projects are known to be vulnerable) to a few weeks (if the vulnerability is uncommon or theoretical).

Sites built with tarball or zip files should convert to using drupal/core-recommended to apply security updates more promptly than the above timeframe.

Drupal 9.3 will receive prompt, best-effort updates until its end of life

Drupal 9.3 receives security coverage until the release of Drupal 9.5.0 in December 2022, and will not include the above improvement to drupal/core-recommended. Therefore, we will still try to provide prompt releases of Drupal 9.3 for vendor security updates when it is possible for us to do so.

Since normal bugfixes are no longer backported to Drupal 9.3, there will already be few to no other changes between its future releases, so dependency updates may be released as normal bugfix releases (rather than security-only releases). Security advisories for Drupal 9.3 vendor updates may still be issued depending on the nature of the vulnerability.

Drupal 7 is not affected by this change and Drupal 7 core file downloads remain fully covered by the Drupal Security Team

Drupal 7 core includes only limited use of third-party dependencies (in particular, the jQuery and jQuery UI JavaScript packages). Therefore, Drupal 7 is not affected by this policy change. Note that Drupal 7 sites that use third-party libraries with Drupal 7 contributed modules must still monitor and apply updates for those third-party libraries.

For press contacts, please email security-press@drupal.org.

Talking Drupal: Talking Drupal #352 - D7 to D9 Migration

Mon, 06/20/2022 - 18:00

Today we are talking about D7 to D9 Migration with Mauricio Dinarte.

www.talkingDrupal.com/352

Topics
  • Why are you passionate about migration
  • First thing to think about when migrating
  • Timeline
    • Factors
  • Tips and tricks
  • Helpful tools and migrations
  • Tricky things to migrate
  • Data structure inconsistencies
  • Embedded media
  • Data management
  • Source sets
    • CSV
    • Json
    • DB connection
  • Understanddrupal.com
  • Who is the audience
  • Any new content
Resources Guests

Mauricio Dinarte - understanddrupal.com - @dinarcon

Hosts

Nic Laflin - www.nLighteneddevelopment.com @nicxvan John Picozzi - www.epam.com @johnpicozzi Donna Bungard - @dbungard

MOTW

Event Platform The Event Platform is actually a set of modules, each of which provides functionality designed to satisfy the needs of anyone creating a site for a Drupal Camp or similar event.

Talking Drupal: Talking Drupal #352 - D7 to D9 Migration

Mon, 06/20/2022 - 18:00

Today we are talking about D7 to D9 Migration with Mauricio Dinarte.

www.talkingDrupal.com/352

Topics
  • Why are you passionate about migration
  • First thing to think about when migrating
  • Timeline
    • Factors
  • Tips and tricks
  • Helpful tools and migrations
  • Tricky things to migrate
  • Data structure inconsistencies
  • Embedded media
  • Data management
  • Source sets
    • CSV
    • Json
    • DB connection
  • Understanddrupal.com
  • Who is the audience
  • Any new content
Resources Guests

Mauricio Dinarte - understanddrupal.com - @dinarcon

Hosts

Nic Laflin - www.nLighteneddevelopment.com @nicxvan John Picozzi - www.epam.com @johnpicozzi Donna Bungard - @dbungard

MOTW

Event Platform The Event Platform is actually a set of modules, each of which provides functionality designed to satisfy the needs of anyone creating a site for a Drupal Camp or similar event.

Mike Herchel's Blog: Pitfalls (and fixes) when lazy-loading images in Drupal

Mon, 06/20/2022 - 16:00
Pitfalls (and fixes) when lazy-loading images in Drupal mherchel Mon, 06/20/2022 - 12:00

Mike Herchel's Blog: Pitfalls (and fixes) when lazy-loading images in Drupal

Mon, 06/20/2022 - 16:00
Pitfalls (and fixes) when lazy-loading images in Drupal mherchel Mon, 06/20/2022 - 12:00

Peoples BLOG: Usage of PHPCS on Github via Pull Request for Drupal Applications

Mon, 06/20/2022 - 14:30
In this article, we are going to see how some tools & libraries will make people's lives easier during the development & code review process. And to make developer life easier, developers look for tools or libraries which can automated code review and if needed make any corrections in the code automatically. Here comes the PHP codesniffer and Drupal coder module. If you are maintaini

#! code: Drupal 9: Removing Base64 Encoded Files From Content

Sun, 06/19/2022 - 19:07

Occasionally, I have come across Drupal sites that have base64 encoded images embedded into content fields. This is the approach of taking the binary data contained in a file and converting it into a string of characters. The original binary data can then be re-created using this string and the data is understood by lots of different technologies (including web browsers).

Whilst this is technically possible, it massively balloons the size of the database and can often slow down page load times due to the database being slow to respond to the request. Instead of fetching a few kilobytes of data from the table the database is forced to fetch many megabytes of data, which can create a bottleneck for other requests.

When you download a file from the web your browser can make a decision on whether to fetch that file a second time. By injecting files into the content you are forcing your users to download very large pages every time they want to request a page. It isn't possible for the browser to make that decision any more and that can lead to more slowdown for the user.

If you can't tell, I really dislike this method of image storage. Whilst it is technically possible, it creates more problems than it solves and even sites with a couple of thousand nodes can have databases of many gigabytes in size due to this issue. It can also put unnecessary strain on the database due to the increased time taken to return data.

Let's say that when you embed an image into some copy on a Drupal site using the normal media or file embed features. You might see an image element that looks like this.

In certain situations it is possible to embed images directly into content. The image element would look something like this.

Read more.

#! code: Drupal 9: Removing Base64 Encoded Files From Content

Sun, 06/19/2022 - 19:07

Occasionally, I have come across Drupal sites that have base64 encoded images embedded into content fields. This is the approach of taking the binary data contained in a file and converting it into a string of characters. The original binary data can then be re-created using this string and the data is understood by lots of different technologies (including web browsers).

Whilst this is technically possible, it massively balloons the size of the database and can often slow down page load times due to the database being slow to respond to the request. Instead of fetching a few kilobytes of data from the table the database is forced to fetch many megabytes of data, which can create a bottleneck for other requests.

When you download a file from the web your browser can make a decision on whether to fetch that file a second time. By injecting files into the content you are forcing your users to download very large pages every time they want to request a page. It isn't possible for the browser to make that decision any more and that can lead to more slowdown for the user.

If you can't tell, I really dislike this method of image storage. Whilst it is technically possible, it creates more problems than it solves and even sites with a couple of thousand nodes can have databases of many gigabytes in size due to this issue. It can also put unnecessary strain on the database due to the increased time taken to return data.

Let's say that when you embed an image into some copy on a Drupal site using the normal media or file embed features. You might see an image element that looks like this.

In certain situations it is possible to embed images directly into content. The image element would look something like this.

Read more.

Agaric Collective: Drupal 9.4 installation with existing configuration fails because "unable to uninstall the MySQL module"!?

Fri, 06/17/2022 - 13:57

Here is how to deal with the surprising-to-impossible-seeming error "Unable to uninstall the MySQL module because: The module 'MySQL' is providing the database driver 'mysql'.."

Like, why is it trying to uninstall anything when you are installing? Well, it is because you are installing with existing configuration— and your configuration is out-of-date. This same problem will happen on configuration import on a Drupal website, too.

Really this error message is a strong reminder to always run database updates and then commit any resulting configuration changes after updating Drupal core or module code.

And so the solution is to roll back the code to Drupal 9.3, do your installation from configuration, and then run the database updates, export configuration, and commit the result.

For example:

git checkout composer install drush -y site:install drutopia --existing-config git checkout main composer install drush -y updb drush -y cex git commit -m "Apply configuration updates from Drupal 9.4 upgrade"

The system update enable_provider_database_driver is the post-update hook that is doing the work here to "Enable the modules that are providing the listed database drivers." Pretty cool feature and a strong reminder to always, always run database updates and commit any configuration changes immediately after any code updates!

Read more and discuss at agaric.coop.

Lullabot: Lullabot Podcast: The New Olivero Theme – Awesome to the Core

Fri, 06/17/2022 - 03:30

A group of Lullabots (and Former 'bot and podcast co-host Mike Herchel) get together to discuss the new Default theme in Drupal 9 and 10 that they helped build.

The theme called "Olivero" is as beautiful as it is flexible and accessible.

The team talks about the immense amount of work it took for a project of such high visibility in the Drupal community.

Event Organizers: Camp Debrief: Stanford WebCamp 2022

Fri, 06/17/2022 - 02:09

This is the first in a series of “Camp Debriefs” by the Drupal Event Organizer Working Group. In this debrief, Fei Lauren (feilauren) interviews Irina Zaks (irinaz) about Stanford WebCamp 2022. If you would like your Drupal event to be featured in a Camp Debrief, contact the EOWG.

Irina first got involved with Drupal around 2006. After attending BADcamp in 2007, she decided the South Bay Area needed their own camp and Stanford could be a host. “We have to have this [DrupalCamp] experience here without driving that far”. 

Still relatively new to the community, she started reaching out to people who could help put together a proposal to Stanford University. It was approved and the university agreed to provide the space at a minimal cost. Stanford Camp was born and appeared to the public on Jan 23, 2010. 

What is the biggest challenge involved in starting a new camp or event? 

“If you want to do this camp, do it for yourself… do it because you feel that it is important. For you. For your friends. For the people.” 

In spite of the enthusiasm people may have about helping, there will be times when they simply don’t or can’t show up. We can’t always expect others to have the same passion or inspiration that we have - but keep going, Irina says. Not because other people think it’s a good idea, do it because it’s important to you.

“And then getting the word out there. Outreach is the most challenging part - reaching out to people who are struggling to work with Drupal, and they aren’t even aware that they can come to the camp and get support.”

It’s important to keep momentum and meet regularly. An ideal format for organizers might be one smaller meeting in the fall to connect with other organizers, then starting regular meetings 2 - 3 months before the event to start working and planning.  

What have you learned about doing events in-person vs online? 

A huge obstacle has always been to find enough rooms. This is true in many cases - even for casual local meetups, finding an appropriate venue can be a challenge. But for a large camp, Irina warns, the difficulty and cost scales. 

In the wake of the worst of the pandemic, we understand that both remote and in-person events have value. On one hand, humans are deeply social creatures and we need to connect in person. But when sessions are broadcasted online, so many more can be reached for a fraction of the cost. So Irina and the other Stanford WebCamp organizers explored what aspects of each are most valuable and came to the conclusion that a hybrid event would be the most successful. 

Hybrid models are great in theory, but can feel isolating for remote attendees - how can we keep people engaged?


The Stanford WebCamp 2021 organizing team

Stanford WebCamp’s solution is remarkably simple: everyone joins sessions remotely. In person, there is a reception or a lunch so that people who can make it have an opportunity to network and socialize. But it’s not required - even if folks are in the same room, attendees for sessions are each on Zoom.

“We all have the same experience”, Irina says. 

What are some of the things that go wrong?

“There are things that go wrong - and that’s okay”.

She plainly points out that in many cases, people are reasonably patient and folks will work together to get things back on track. The Drupal community is all about collaboration, after all.

But something that helps is having multiple people ready to help keep things on track. For example, a moderator and a back up moderator. 

What can we do to push through the burnout and wrap everything up?

“Have joy in what you do”, she advises. 

But she also talks about how important it is to set ourselves up for success by ensuring we find meaning in our work, but also that we aren’t taking on more than we can sustain.

“Pick the mountain that’s right for you.”

Don’t reinvent wheels and make anything more difficult than it needs to be. Re-use wording for sessions that are similar, don’t rebuild the website, but most importantly - remember that it should be meaningful.

But even so, we can sometimes lose sight of what matters to us. We forget why we are doing the work. In this case, Irina goes back to the values she wrote in 2014 with Tori Lewis, Director of Projects, when she started Fibonacci Web Studio.

Okay - we are inspired. What’s next?

Well, Stanford WebCamp is free. I think it’s safe to say it’s worth checking out their website and signing up to get updates for next year’s event.

Learn more about the Event Organizer’s Working Group, join their monthly meetings, or read up on some of the steps you might want to take to organize a camp of your own.

Agaric Collective: Uniting Visions: Kicking off Thursday 3pm ET planning & building sessions for democratic conversation scaling platform, Visions Unite

Thu, 06/16/2022 - 16:28

Hi friends and collaborators, join us today at 3pm ET (or any subsequent Thursday at 3) as we kick off a series of research, planning, discussion, and building sessions for Visions Unite.

As our primary pro bono project, Agaric is working on Visions Unite, "where people seeking to make the world more whole can share ideas and information and gather the commitment and resources to build power to be the change we need", which a dozen projects have tried to do—what makes this different is sharing power via democratic mass communication.

Here are some initial user stories for Visions Unite.

Help plan and build the interface and underlying technology! (Drupal friends, we have been leaning against Drupal but might do it for the MVP— would love to hear your thoughts for or against.)

Connection info will always be up-to-date at agaric.coop/show (for these sessions we are taking over most of our Show & Tell hour, which is weekly on Thursdays 3pm Eastern).

Read more and discuss at agaric.coop.

Droptica: What's New in Drupal 9.4? Review of the Latest Version

Thu, 06/16/2022 - 07:34

The new, major Drupal update was released on 15 June 2022. There are some new elements and changes, such as the Manage permissions tab, dynamic determination of the minimum PHP version, changes in the API, change of the default frontend theme from Bartik to Olivero, and the administrative theme from Seven to Claro. Quite a few functions and libraries have been labeled "deprecated". We'll talk more about these and other changes later in this article.

Is it worth upgrading Drupal to 9.4?

Yes. With the release of update 9.4, security support for 9.2.x will cease. That's why we recommend updating as soon as possible, at least to version 9.3.x and preferably to the recently released version 9.4. Of course, version 9.4 also introduces new improvements and functionalities that are worth checking out.

What to check before updating Drupal to 9.4?

The most important thing will be to check that the currently used PHP version meets at least the minimum requirements. Drupal 9.4 requires PHP version 7.4 at the very least, but the recommended version is 8.1. From now on, the minimum version will be defined using the \Drupal\Core\PhpRequirements::minimumSupportedPhp() method, which is based on the release cycle of both PHP and Drupal versions.

Another element worth checking out is the main .htaccess file, which – since version 9.4 – has a new section containing the settings for PHP 8^. If your application used PHP 7^ before, and you have changes to htaccess, and you want to upgrade to PHP 8^, these custom settings should be moved to the new section.

Since version 9.4, Drupal will show a warning if the currently used database connection doesn't support the JSON format. A connection supporting JSON will be required for Drupal 10.

The most important changes introduced in Drupal 9.4

The latest version introduced a lot of changes and new functionalities. Let's take a closer look at the most important ones.

Manage permissions tab

When editing the content types, we see standard tabs for editing, field management, and form and content display. This is where the permission management options have been added. In this tab, we can easily see the full list of defined permissions, relating only to the type of content that we're currently editing.

 

In order for the tab to be visible in your entity, two keys should be added to its annotation:

  • handlers.route_provider.permission,
  • links.entity-permissions-form.

 

The form can also be defined by custom routing. You can find out more about this in the functionality task.

Default Olivero theme in Drupal 9.4

The change applies to the installation using the standard Drupal installation profile. Since the latest release, after the installation, we'll see a new graphic design, differing from the older Bartik theme, primarily due to an updated and modern design and full support for the latest Drupal functionalities, such as multi-level navigation, embedded media or Layout Builder. In addition, the Olivero theme complies with WCAG AA, i.e., the guidelines related to the accessibility of web content. It's also a major step towards modernizing Drupal's look.

Source: Drupal.org

Default Claro theme in Drupal 9.4

The change applies to the installation using the standard profile and Umami. Claro is a clear, accessible, and comprehensive administrative theme, and it's part of the Admin UI & JavaScript Modernisation initiative. When compared to the frontend theme Bartik, it stands out due to its cleanliness and a feeling of freshness, as well as the solutions that have a positive impact on the user experience.

Source: Drupal.org

Changes in coding standards in Drupal 9.4

For a long time, the Drupal core has been using ESLint to validate JavaScript. The tool itself remains the same, but Core now uses the eslint-config-airbnb-base configuration instead of eslint-config-airbnb. Anyone using ESLint for the React or JSX code should add eslint-config-airbnb back to their dependencies, as the base version used now doesn’t contain rules for libraries (which we describe below).

Coder has received update 8.3.15, which updates the coding standards. Drupal 9.4 is fully compatible with the latest version of Coder. See the release notes for the complete list of changes in version 8.3.15.

What has been marked as deprecated in Drupal 9.4?

The Color module has been marked, and it'll be completely removed in Drupal 10. If you still need to use it, you can use the contrib module. The same goes for the Hypermedia Application Language (HAL) module. If you need the module, you have to install the contrib version. The Quick Edit module is marked as deprecated since version 9.4 and is planned for removal in Drupal 10. There's a contrib version that should be used instead. A contrib is also available now for the Forum module. For more information on the modules marked as deprecated, see the Deprecated and obsolete modules and themes page.

Apart from the modules, the list of deprecated features has also grown. You can find it on the Drupal.org website.

How to deal with deprecated functions?

The Upgrade Status contrib module will be perfect for this. It lists all the deprecated functions used in contrib and custom modules and themes. Additionally, you can rely on an IDE, which can be equipped with a feature allowing you to list the deprecated functions.

What libraries have been deprecated since Drupal 9.4?

Modernizr.touchevents. This library was used to detect whether the currently used device supports the touchevents, in order to adjust the behavior of the website on this basis. The library is replacing Modernizr.touchevents, i.e., core/drupal.touchevents, uses the same logic, and is backward-compatible. If you used the functions provided by the Modernizr.touchevents library in a custom code, you should get rid of this dependency.

Backbone and Underscore. The first of these libraries was used to create interactive user interfaces, and the second one provided a series of functions, the so-called "helpers", to help write code faster. Drupal Core, and more specifically the drupal.editor.admin and drupal.filter.filter_html.admin libraries, no longer use them. These libraries will be removed in Drupal 10. The modules and themes using these libraries should be rewritten.

Drupal 9.4 release - summary

Drupal seems to be doing better than ever. Systematizing and planning the roadmap well, changing the way of thinking to fewer but sooner, granular changes, one thing at a time, brings results in the form of periodic improvements to Drupal. There's nothing left but to prepare for the update and wait for the next ones. If you need help with the update, our Drupal support team will be happy to advise you or carry out the entire process: from checking for compliance, through upgrading and testing, to implementation.

Drupal blog: Drupal 9.4.0 is available

Wed, 06/15/2022 - 17:56
What’s new in Drupal 9.4.0?

The fourth feature release of Drupal 9 brings a whole new frontend look with the Olivero theme by default and a refreshed backend interface with the Claro theme. There is also a new starterkit theme generator, better image loading performance and easier permission management.

Drupal now uses the Olivero frontend theme by default

When you install Drupal 9.4.0, it will look quite different from previous releases because it uses the new modern Olivero frontend theme. While the theme looks beautiful, it also has superb accessibility and adapts well to various display sizes.

The theme is named after Rachel Olivero (1982-2019). She was the head of the organizational technology group at the National Federation of the Blind, a well-known accessibility expert, a Drupal community contributor, and a friend to many.

Drupal now uses the Claro backend theme by default!

The Claro backend theme has been in the works for a while. It became stable and the default administration theme in Drupal 9.4.0. The new theme brings a modern look to the backend interface of Drupal. It has been available as a core experimental theme for some time, so it is well-tested with contributed projects and real-world sites.

A delicious addition to the Umami demo in core is a new Borscht recipe (pictured), with a dedication to the fantastic Ukrainian Drupal community.

New experimental Starterkit theme and theme generator

Drupal 9.4.0 ships with a new experimental Starterkit theme and theme generator. The new Starterkit theme is used as a basis to generate new standalone themes, rather than being extended at runtime like the Classy core base theme. Currently, the markup provided by the Starterkit theme is the same as Classy's, but its markup can be improved in future minor releases (whereas Classy's can't), so once it becomes stable, Starterkit will replace Classy. For more information, read the blog post on how the new starterkit will change theme creation in Drupal 10!

New lazy loading configuration option added to image fields

A new lazy loading configuration option is added to image fields in 9.4.0 and most image fields shipped in core are now configured to lazy load. This helps browsers to delay downloading and displaying them until they become visible, which speeds up general page display.

Easier permission management for content types, vocabularies, etc.

When editing content types, vocabularies, and so on, site administrators previously had no way to control permissions in context for these entity bundles in the same interface. With Drupal 9.4.0 a new "Manage permissions" tab displays the permissions that depend on the given type, making them easier to configure correctly.

Improvements to drupal/core-recommended for security update management

The drupal/core-recommended metapackage now allows patch-level updates for Composer dependencies. This means that site owners using drupal/core-recommended can now install most Composer dependency security updates themselves, without needing to wait for an upstream release of Drupal core that updates the affected package.

What does this release mean for me? Drupal 8 site owners

Drupal 8 is end of life as of November 17, 2021. Upgrade from Drupal 8 to at least Drupal 9.3.x as soon as possible to continue receiving security coverage. Upgrading is supported directly from 8.8.x and 8.9.x.

Drupal 7 site owners

Drupal 7 support was extended until November 1, 2023, and it will continue to receive bug and security fixes throughout this time. On the other hand, the migration path for Drupal 7 sites to Drupal 9 is stable. Read more about the migration to Drupal 9.

Translation, module, and theme contributors

Minor releases like Drupal 9.4.0 include backwards-compatible API additions for developers as well as new features.

Since minor releases are backwards-compatible, modules, themes, and translations that supported Drupal 9.3.x and earlier will be compatible with 9.4.x as well. However, the new version does include some changes to strings, user interfaces, internal APIs, and API deprecations. This means that some small updates may be required for your translations, modules, and themes. Read the 9.4.0 release notes for a full list of changes that may affect your modules and themes.

This release has further advanced the Drupal project and represents the efforts of hundreds of volunteers and contributors from various organizations. Thank you to everyone who contributed to Drupal 9.4.0!

Pages