When we updated our Drupal sites to Drupal 11 and also upgraded the DataLayer module to its latest version (2.1.0), we encountered an issue where all DataLayer variables passed to Google Analytics via Google Tag Manager were showing as undefined or not set. Further debugging revealed that this issue arises because the initialization of the DataLayer variables has been moved to the footer of the page and now uses a lazy build approach. Consequently, tags that trigger on the Pageview event in GTM might not have access to these variables, leading to incomplete or missing data in your analytics.
Technical Q&A
A change introduced in Drupal 10 altered the way RSS feeds are generated. This change involved adding a tag nested within the element of each feed item. While seemingly minor, this change had unintended consequences. The issue has been fixed in Drupal 10.2.1.
When automating web applications using Selenium WebDriver with Java, testers sometimes encounter scenarios that cannot be handled by WebDriver alone. This is where Java's Robot class comes in, offering a means to simulate user interactions at a level that goes beyond WebDriver's capabilities. Here's a look at the benefits of integrating the Robot class into your Selenium tests, along with a sample code snippet.
In Selenium WebDriver using Java, multiple methods exist to wait for elements to become present, visible, clickable, or until specific conditions are fulfilled. Using waits is necessary to handle elements to appear before taking actions with automation. You should think about using waits when if you are getting "Element Not Visible Exception"
This how-to talks about creating a custom drush command to import a set of taxonomy terms to sync them between the different environments we maintain.
How to use Term name instead of Term ID in Views Filter?
How to use tokens in the title of a Drupal View?
In Drupal, the default behaviour of entity reference fields allows us to select unpublished content if the content creator has permission to view unpublished content, which can be useful in specific scenarios where we need to establish relationships even with unpublished content.
However, in many cases, we want to refer only to published content. The problem arises when we add references during content creation without verifying whether the referenced items are published. This can lead to confusion later when we wonder why the referenced contents are not visible when viewing the content.
Here's a step-by-step guide on how to use a Drupal view to filter the values appearing in an entity reference field
entityQuery is one of the most used functions in Drupal. It helps you easily pull Drupal entities in code. But when you use this in contexts other than controllers, say in cron-jobs or update hooks where the system is accessed as anonymous users, it may not work as expected in Drupal 9 Unless you call accessCheck explicitly. This short article talks about how to use entityQuery in these contexts and write entityQuery compatible with Drupal 10.x
From MySQL 5.7 onwards, the error SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column will appear if any non aggregated columns are in the select list, which is not in the group by clause. This article discusses one such use case with Mautic and how we solved it.
A step-by-step tutorial on how to configure Lando with Drupal to use a custom domain in your local development environment.
So, what exactly is white box testing? This article will discuss white box testing techniques, examples, and more.
Agility is at the core of any Drupal site building project. The market changes fast, so the business needs. A Drupal site builder or developer also needs to support the business in this agile environment. This tutorial covers how to solve the error - "There is data for this field in the database. The field settings can no longer be changed."
In Drupal 8 or above managing configuration in code is not a challenge, but in the case of Drupal 7, it is still a big issue. Developers often create a module for this and use hook_update to maintain configuration in code. Here we are trying to list 10 common use cases for the making configuration changes using hook_update in Drupal 71
.
The SMTP module enables your Drupal CMS to use your existing SMTP based email delivery platform to send emails. This blog cover steps to configure the SMTP module for Drupal.
Testing email functionality in Drupal is a common use case every developer encounters frequently. Setup a full-featured email system locally or using a 3rd party service for just testing emails may not be feasible always.
Mailhog is the best solution available for this scenario and the bonus point is that it works perfectly with Lando.
"The website encountered an unexpected error. Please try again later." this is the most common error encountered by a Drupal developer. Usually, errors are logged by Drupal and the logs can be accessed from Admin->Reports->Recent log messages. But when you get "The website encountered an unexpected error. Please try again later." you cannot even access the reports dashboard.
You can always create a view manually, and change the configuration one by one manually. And, all done. But, still, there is a chance of manual error. Drupal9 allows you to import-export views.
You can follow the below steps to Import and Export views
In pre Drupal 8 era, the global variable $user was available every where, from you can easily get the current logged in user id. For all new version of Drupal, you should use
\Drupal::currentUser()->id()
Once you have the user id, you can use the User::load to get the user object.
The Drupal Publish Content module is a simple module that provides you additional permissions to allow users to publish or unpublish content without having to give the user the ability to administer all the content on your site. This module is a lightweight solution to help you build out your content management workflow on your Drupal site.