Planet Drupal

LakeDrops Drupal Consulting, Development and Hosting: The ultimate subscription and notification solution for Drupal

3 hours 39 minutes ago
The ultimate subscription and notification solution for Drupal Jürgen Haas Mon, 08/03/2020 - 13:41

Almost all websites have one requirement in common: getting notified when something specific is happening. Whether that's a new blog post, a new comment, a modified version of a node, an exception in the logs or a deleted user account, either the site admin or website visitors would like to know about some or all of these.

Shivan Jaikaran: Composer Memory Problem on Shared Web Hosting

6 hours 53 minutes ago
Composer Memory Problem on Shared Web Hosting admin Mon, 08/03/2020 - 04:27

If you are using shared web hosting for your composer managed Drupal website, you have probably ran into the problem of your server running out of memory for simple commands such as "composer install". Shared web hosting usually have memory limits which are shared across many websites.

This problem becomes quickly apparent if you are trying to install a new Drupal website into your shared hosting account. Because this is probably the first time that you have to run "composer install" for this website. Composer will then have to go and fetch all the files and download them into your vendor directory. This process is memory intensive. The end result is your process is abruptly killed without finishing.


A quick and easy solution is to install the site locally whereby you can successfully run "composer install". You would then have the vendor directory locally. Then use a service like FTP to manually upload the vendor folder into the correct directory on your hosting server. Then on your hosting server, try running "composer install" again. 

At this point, composer would not need to fetch all the files again. Composer may or may not have to update some files in the vendor directory. This is OK. But the process should now be able to complete within your memory limitations.

It should be noted that the vendor directory should not be committed to your git directory for a few important reasons.

Tags Drupal Drupal Planet composer Add new comment Language English

Mark Shropshire: Drupal Camp Asheville Talk on Upgrading Projects to Drupal 9

1 day 23 hours ago

Drupal Camp Asheville was quite different this year, as it transitioned from an in-person event to virtual. While I missed driving up to Asheville, NC and hanging out, it was encouraging to meet new people and see the camp's reach extend internationally! Thanks to all who made this year's event especially great!

I was honored to have a chance to speak on upgrading projects from Drupal 8 to Drupal 9 compatibility, by demonstrating techniques and open source tools used by the community. A primary goal of the talk, "Anyone Can Help Upgrade Drupal Projects to Be Drupal 9 Compatible!", was to show how anyone who wants to help contribute to Drupal 9 upgrades can! This was accomplished by showing that not all Drupal 9 audit tools require developer knowledge, demonstration of the Drupal issue queue, and additional documentation resources provided in the presentation slides.

I thought the most fun part of the day was the live audit, patch testing, and release of a Drupal 9 compatible version of User Password Reset Link Timeout. While the actual release happened a few minutes after the end of the presentation, the demonstration shows a bit about using the issue queue, testing a patch, committing the patch, and pushing up a new tag for release. I just love the energy of live demonstrations!

A page with links to the slides and video can be found here.

Blog Category: 

DrupalEasy: DrupalEasy Podcast 236 - AmyJune Hineline (virtual Drupal events)

1 day 23 hours ago

Direct .mp3 file download.

AmyJune Hineline, community ambassador at Kanopi Studios, joins Mike Anello to talk about virtual Drupal events.

URLs mentioned DrupalEasy News Audio transcript

We're using the machine-driven Amazon Transcribe service to provide an audio transcript of this episode.


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

If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page.

OSTraining: OSTips-How To Easily Replace Media In Drupal 8

3 days ago

One of the great things about Drupal's new media manager is the ability to easily see all the media you're using on your website.

What if you want to replace one of those images or even more likely a PDF that needs to be updated?

Well in this OSTip, I'm going to show you how.

Let's go! Adding classes to Drupal Link field

3 days 23 hours ago
Adding classes to Drupal Link field

I recently came across a situation where I had to add a class to a link field in a content type. Now, this can be done using contributed modules like Link Attributes widget or Advance Link Attributes.

However, there was a small catch in the requirement. The extra class has to be added only for external URLs added via the Link field. Now, although updating the field widget to add an extra field for class seems to be a solution but it's not author-friendly when the users base are non-technical editors.

So, instead of adding any new module or a new field widget, I ended up writing a small preprocess for the field to check if the field item URL is external then add the external class.

/** * Implements hook_preprocess_field(). */ function mars_preprocess_field(&$variables) { $element = $variables['element']; // Check if the field is the target field. if ($element['#field_name'] == 'field_related_articles') { // Iterate through the field items. foreach($variables['items'] as $key => $item) { // Clone the \Drupal\Core\Url object to a variable. $url = clone $item['content']['#url']; // Check if the URL is external then add the class. if($url->isExternal()) { $variables['items'][$key]['content']['#options']['attributes']['class'][] = 'ext-link'; } } } }

This can be achieved using JavaScript as well by checking all the href attributes of the field items on load, but should be avoided. It's always better to look out if Drupal is providing any API or hook to do what is intended. Usage of JavaScript for such purposes should be used as a last resort.

malabya Thu, 07/30/2020 - 21:50 Drupal development

Mobomo: Must-Follow Considerations When Starting a Drupal-Based Project

4 days 1 hour ago

Over 500,000 businesses leverage Drupal to launch their websites and projects. From NASA to Tesla, public and private institutions regularly rely on Drupal to launch large-scale websites capable of handling their development and visual needs. But, starting a Drupal project doesn’t guarantee success. In fact, 14% of all IT projects outright fail, 43% exceed their initial budgets, and 31% fail to meet their original goals! In other words, if you want to create a successful Drupal project, you need to prepare. Don’t worry! We’ve got your back. Here are 5 things to keep in mind when starting a Drupal-based project.


According to PMI, 39% of projects fail due to inadequate requirements. Believe it or not, requirement gathering is the single most important stage of project development. In fact, it’s the first step Drupal itself takes when pushing out new projects (see this scope document for their technical document project). Gathering requirements may sound easy, but it can be a time-consuming process. We recommend using SMART (Specific, Measurable, Agreed Upon, Realistic, Time-based) to map out your specific needs. If possible, involve the end-user during this stage. Don’t assume you know what users want; ask them directly. Internally, requirements gathering should rally nearly every stakeholder with hefty amounts of cross-collaboration between departments. You want to lean heavily on data, establish your benchmarks and KPIs early, and try to involve everyone regularly. The single biggest project mistake is acting like requirements are set-in-stone. If you just follow the initial requirements to a “T,” you may push out a poor project. You want to regularly ask questions, communicate issues, and rely on guidance from stakeholders and subject matter experts (SMEs) to guide your project to completion.


We all have different development strategies. You may leverage freelancers, a best-in-class agency, or internal devs to execute your Drupal projects. Typically, we see a combination of two of the above. Either way, you have to set some software development lifecycle and workflow standards. This gets complex. On the surface, you should think about coding standards, code flow, databases, and repositories, and all of the other development needs that should be in sync across devs. But there’s also the deeper, more holistic components to consider. Are you going to use agile? Do you have a DevOps strategy? Are you SCRUM-based? Do you practice design and dev sprints? At Mobomo, we use an agile-hybrid development cycle to fail early, iterate regularly, and deploy rapidly. But that’s how we do things. You need to figure out how you want to execute your project. We’ve seen successful Drupal projects using virtually every workflow system out there. The way you work matters, sure. But getting everyone aligned under a specific way of working is more important. You can use the “old-school” waterfall methodology and still push out great projects. However, to do that, you need everyone on the same page.


Drupal is a secure platform. Of the four most popular content management systems, Drupal is the least hacked. But that doesn’t mean it’s impenetrable. You want to shift-left test (i.e., automate testing early and often in the development cycle). Drupal 8+ has PHPUnit built-in — taking the place of SimpleTest. You can use this to quickly test out code. You can perform unit tests, kernel tests, and functional tests with and without JavaScript. You can also use Nightwatch.js to run tests. Of course, you may opt for third-party automation solutions (e.g., RUM, synthetic user monitoring, etc.) The important thing is that you test continuously. There are three primary reasons that shift-left testing needs to be part of your development arsenal.

  • It helps prevent vulnerabilities. The average cost of a data breach is over $3 million. And it takes around 300 days to identify and contain website breaches.
  • It bolsters the user experience. A 100-millisecond delay in page load speed drops conversions by 7%. Meanwhile, 75% of users judge your credibility by your website’s design and performance, and 39% of users will stop engaging with your website if your images take too long to load. In other words, simple glitches can result in massive issues.
  • It reduces development headaches. Nothing is worse than developing out completely new features only to discover an error that takes you back to step 1.

If you want to build amazing Drupal projects, you need to familiarize yourself with the Drupal REST API. This may sound like obvious advice. But understanding how Drupal’s built-in features, architecture, and coding flow can help you minimize mistakes and maximize your time-to-launch. The last thing you want to do is code redundantly when Drupal may automate some of that coding on its end. For more information on Drupal’s API and taxonomy, see Drupal API. We know! If you’re using Drupal, you probably have a decent idea of what its API looks like. But make sure that you understand all of its core features to avoid headaches and redundancies.


Every development project needs standards. There are a million ways to build a website or app. But you can’t use all of those million ways together. You don’t want half of your team using Drupal’s built-in content builder and the other half using Gutenberg. Everyone should be on the same page. This goes for blocks, taxonomy, and every other coding need and task you’re going to accomplish. You need coding standards, software standards, and process standards to align your team to a specific framework. You can develop standards incrementally, but they should be shared consistently across teams. Ideally, you’ll build a standard for everything. From communication to development, testing, launching, and patching, you should have set-in-stone processes. In the past, this was less of an issue. But, with every developer rushing to agile, sprint-driven methodologies, it can be easy to lose sight of standards in favor of speed. Don’t let that happen. Agile doesn’t mean “willy-nilly” coding and development for the fastest possible launch. It still has to be systematic. Standards allow you to execute faster and smarter across your development pipeline.


At Mobomo, we build best-in-class Drupal projects for brands across the globe. From NASA to UGS, we’ve helped private, and public entities launch safe, secure, and exciting Drupal solutions. Are you looking for a partner with fresh strategies and best-of-breed agile-driven development practices?

Contact us. Let’s build your dream project — together.

The post Must-Follow Considerations When Starting a Drupal-Based Project appeared first on .

Sooper Drupal Themes: Lessons from COVID-19: Learn to Update Your Drupal Website Fast Without IT Support

4 days 23 hours ago

The new coronavirus (COVID-19) pandemic is more than a health crisis. As the infectious disease spreads across the world, it is leading to horrendous social, economic, and political crises that may last for the foreseeable future.

As lockdowns, physical distancing restrictions, and other measures were implemented to curb the spread of the dangerous virus, it led to an unprecedented shift in how things are done. Specifically, it disrupted the normal work environment in almost every industry, including the IT industry.

Companies that often relied on external IT support suddenly found their critical content and events pages outdated, as the external support team was overrun with requests from many other clients who needed their websites updated.

So, if there is one thing that has become clear during this pandemic it is the need to be self-sufficient. You don’t need to be hiring someone each time you want to update the design of your web page, customize images, or make any content changes to your site.

Why you need to know how to update your Drupal website

Updating your Drupal website is not rocket science. It’s something you can learn how to do on your own and avoid over-depending on your IT support staff, especially in times of crisis when reaching them is difficult.

Here are three reasons why being able to update your Drupal website is important.

1. Keeps you in control

Learning how to update your website quickly without IT support will make you in control over its look and feel. You’ll no longer need to make frantic calls for your site to be updated to meet the ever-changing user expectations.

With this level of control, you can unleash your inner creativity instantly and create whatever you want. So, whenever something unexpected happens, such as the ongoing COVID-19 pandemic, you’ll still ensure your site is up-to-date and performing optimally.

2. Saves costs

Let’s face it: relying on an IT support team to be in charge of updating your site is expensive. If your website needs to be updated regularly, the costs can affect your bottom line, especially during the coronavirus pandemic when cash flow is limited.

Knowing how to update your website will reduce the costs spent on hiring a third-party service. You can use the savings to improve your core business activities and gain a competitive edge in the marketplace.

3. Improves skills

Another benefit of learning how to update your site is that it’ll improve your skills significantly. Updating your Drupal website is a skill that can be acquired easily with our Drupal Layout Builder. With the new skill, you’ll improve your capabilities to succeed in the current digital age.

We all know how technology is rapidly advancing these days. So, if you can add this expertise to your skillset, you’ll position yourself for personal and professional success.

How to update your Drupal website fast without IT support

As earlier mentioned, knowing how to update your website is easy to learn. With our Drupal Layout Builder for Drupal 7, 8, and 9, you can create and update your websites without touching any line of code.

DXPR offers an easy way to make improvements to your website without requiring IT support. It allows you to create and edit what you want lighting fast.

DXPR Builder is built to offer the benefits of an enterprise-class CMS solution without the usual pain points. It comes with simple and easy to use drag-and-drop functionality that makes building and updating web pages hassle-free and rewarding.

Many of our clients have been able to quickly update their website header, footer, homepage, or event pages, with a COVID-19 messages that stands out. Some clients have used our "Alert element" and other chose for more conspicuous "Jumbotron element".

Alert element example: Jumbotron element example: Conclusion

The COVID-19 pandemic has taught us lessons that we’ll live with for a long time to come. For Drupal website owners, it has exposed the importance of knowing how to make updates without relying on third-party services.

DXPR Builder has proved to be a viable solution to make the process of building and updating websites in Drupal fast, easy, and independent.

Photo by Markus Spiske from Pexels

OpenSense Labs: UX in the age of personalisation

5 days 3 hours ago
UX in the age of personalisation Tuba Ayyubi Wed, 07/29/2020 - 17:36

In this digital age, keeping the customers engaged with your brand is one of the most important parts of every business. Personalization has become so important that the companies that have been implementing it have been successful in the age of UX. It has now become a requirement.

Personalization refers to the process of using the information provided by the user to provide a personalized experience to them according to their needs and preferences. This helps you in making your customers feel heard and market the right product to the right person at the right time.

Why do we need to personalize?

Let’s not confuse personalization with customization. Personalization provides experience based on the information provided by the user whereas customization gives the users liberty to custom-make a product or service.

Source: Semrush

When you go to a website, say for shopping or maybe just surfing and you realize that the app or the website is interacting with you. This makes you like the brand and go back to them every time you have a similar requirement. This will make you feel special and more connected to the brand.

Personalization is important because it creates a bond between the users and the brand and makes them loyal customers. If there is no personalized experience given to the users then the user might feel like he’s not being given much help from the brand even though it is.

While personalization can be a big hit for your brand, context factors also make a lot of difference. The device the customer is using, whether in the location the person is in or even the time of the day matters a lot in personalization.

Importance of personalized design

Personalization and design go hand in hand. If the UX of your brand is great and personalized for different kinds of users, you are good to go!

Let’s look at some of the best practices for Personalized UX Design

Show relevant recommendations

When providing personalized information, it is important to make sure that the information that you show the users is relevant and does not disturb the flow of the user experience. Many shopping applications show recommendations according to the search made by the users. This saves the user time and helps the user purchase more valuable.

Myntra shows trending products to let the users know what is trending currently. This is a different way of recommending products.

Understand the interests

When we talk about personalized experiences, Netflix is a well-known player in the market. Netflix provides a personalized experience to its customers by asking for customers’ preferences once they sign up. The first thing that you will observe on the home page is that the content is adjusted according to your interests.

Dynamic personalization

This practice uses algorithms to create an image of their potential customers, their buying habits, and their needs, depending upon factors like demographics, behavior, geolocation, and device.

Combining design with emotion

Combining design with emotion creates a magical personalized experience. To create trust between a brand and its customers, it is important to get the required information from the user and use it to create a design that develops a positive emotional reaction from the user.

It should be taken into consideration that the design should not invade the privacy of the users. This is a major turn off and is not liked by the customers. 

Navigation in personalisation

Navigational personalization means showing products that have been searched by the user but left without purchasing. You can show the products and similar products on the home page or somewhere it is visible to the user when they visit your page next time.

I searched for watches on Amazon and left without purchasing. Now when I visited Amazon again, it shows different kinds of watches under ‘items from popular brands’.

Technical design in personalization

Technical design is another practice that guides your technology decision towards a valuable personalized experience. There are two things that you need to consider: The kind of data that you collect from the users and the tactics that need to be implemented to this data.

Here’s a quick mapping of tactics with respect to customer volume and session time:

Source: A List Apart

To implement such a technical design, different customer data platforms and digital experience platforms can be used. Customer data platforms have become a popular technology that unveils the value of market segmentation and personalisation at scale. Digital experience platforms (DXP) are designed to engage users by building websites rapidly. If you are working on an advanced DXP you will have extended possibilities like machine learning and behavioural profiling that will help you become aware of different segments.

The four magical steps 

Segmentation is a great way to organize contacts by their traits, personas, behavior, or other defining details. This helps the brand to create hyper-personalization content for each user.  Segmentation makes personalization more manageable by grouping contacts. 

Source: Equisoft

Once you are done creating a segment worksheet, the next step is creating a campaign worksheet that includes the strategy that you will use for personalization. Talk about what the goals of your campaign would be, the description of the customers, the time frame of the campaign, the budget, etc.

The next step is wireframing personalization which is the first step in the design process. In this step, you decide the design that you will give to your campaign. Creating a simple wireframe makes sure that your designs will take into account the different page elements that are required to go into the design, and also that they’re placed in the best possible way.

The last and final thing to do now is to create a copy deck. A copy deck is a document that holds a series of related messages. It basically provides the infrastructure to plan your copy.

Writing a copy that relates to your campaign and design is the most important step. For example: 

Source: AutopilothqConclusion

Personalization is actually personal. It is the key for your brand to achieve new heights. It helps you gain the trust of the users and enhances the user experience by providing relevant content, and functions that match the user’s requirements. Personalization can be a great benefit if done in the right way. All you need to do is implement a successful personalization strategy with the help of the practices mentioned above! Contact us at for your online business to boom!

blog banner blog image web personalisation personalisation UX Web Design Blog Type Articles Is it a good read ? On

Promet Source: Marketing in a Time of COVID-19

5 days 14 hours ago
It’s been nearly five months since COVID-19 was declared a global pandemic and a national emergency. This, of course, is not how any of us imagined 2020 would play out when marketing plans were put in place at the start of the year. Despite the disruption and tragic human toll during the Spring months, there was widespread expectation that the pandemic would be headed for the history books by the third and fourth quarters.   Turns out, the pause from business-as-usual is not going to be brief. The disruption and human toll continues.  

Evolving Web: Perfect Your Facebook Link Previews with the Drupal Metatag Module

5 days 20 hours ago

In a previous blog post and video, we looked at the code that controls the display of link previews on Facebook. This is outlined by Facebook's Open Graph protocol, where we modify the tags within the of our HTML web page to say what the title, description, image, and other info should appear in our preview.  

In that post, I showed how to manually modify those HTML tags. While it's good to learn what's going on behind the scenes, in reality, it would be kinda crazy to ask your content editors to modify this code for each piece of content they add. In fact, if you're using a CMS, it would be impossible for them to do so.  

So instead, let's allow the CMS to make our jobs easier. In this video, let's look at the Drupal Metatag module and the included Metatag: Open Graph module to save us time and make our job easier. At the end of this, we will have added tags in the of our article to reflect how we want our preview on Facebook to appear.  

Install the Modules

First, let's download the Metatag module. Inside of this module are many sub-modules, each of which is designed to handle the expected meta tags for other social networks, search engines and products.  

For this tutorial, you'll only need to enable the Metatag and Metatag: Open Graph modules. Although we are going to be dealing with Facebook link previews, we will not require the Metatag: Facebook module for this tutorial.

Create Metatag Field on Content Type

In order to give your editors the ability to change the meta information that gets printed to the , we need to add a field to our content type.   

  • Go to Structure > Content Types > Manage Fields on the content type you want to affect
  • Click Add Field > General > Meta tags
  • Give your field a name ('Metatags' will do)
  • Save Settings  

Now when we go to add or edit a piece of content of this type, we have a collapsible 'Metatags' group on the right hand side of the page. It has a few different sections:  

  • Basic Tags
  • Advanced
  • Open Graph  

We can write inside of these fields and when we do, this will add the tags to our page. This gives your editors control over what gets printed in those tags and (eventually) what can be shown in the Facebook link preview.  

But we can also set some defaults. For instance, there's a lot options in the 'Advanced' section. Some of these fields we may never use, so let's turn them off and configure some others.

Configuring our Metatag Field

A new option appears on the Configuration page when we go to the Search and Metatag section. Click that and go to the Settings tab at the top of the page.

Hiding the Advanced Section

On that page, we get a list of different entities, including the content type that we just added the field to. Opening that section, it shows the Basic, Advanced, and Open Graph areas we saw before. Because none of them are checked, they all appear, but if we check the boxes next to Basic and Open Graph, now only those two sections will appear on our content type.

Hard-Coding Defaults

There are some Metatag fields that we probably don't expect our editors to fill out or have to change. So, we can set the default. For example, if we have an Article content type, we probably want to set the Facebook Open Graph og:type value to article. To change this:  

  • Go to Configuration > Search and Metatag
  • Scroll to the Content section and click Edit
  • Open the Open Graph section and in the Content type field, type article
  • Click Save  

Now, the og:type meta tag will be filled in automatically with the value article. This works for a value that remains constant, but what about fields that change on every piece of content, like the Title field? 

Setting Dynamic Defaults with the Token Module

First, install and enable the Token module.  

To set the Facebook Open Graph tags to match what we add in our content, we have to use the Token browser at the top of the page to select the field value we need. In this example, we'll set the og:title to match the node title:  

  • Open the Open Graph section and click on the Title field, making sure your text cursor is on the field
  • Scroll to the top of the page and click Browse available tokens. A draggable modal window will appear
  • Open the Nodes section
  • Click on [node:title]

This will insert [node:title]in the Title field, automatically putting in that piece of content's Title. You can repeat this for other fields.

A Note on Images

One of the Open Graph tags you probably want to automatically fill in is the og:image field. When configuring the default for this with the Token module, it might be tempting just to click on the image field on your content type, such as [node:field_image].

This won't work. We need the URL of the image, and this token does not provide that.  

Instead, you have to open the triangle beside the field, which reveals the different available Image Styles. Open the appropriate style, and get the URL of it, which appears like so: [node:field_image:large:url].

Wrapping Up

Setting up sensible defaults for your content editors is a great idea, and the Metatag module lets you get very specific with the data. And of course, these fields are editable on the content in case your editors do need to override them.

+ more awesome articles by Evolving Web

Mobomo: Drupal Migration Preparation Audit

6 days ago


All good things must come to an end. Drupal 7 will soon meet its end. Does your organization have your migration plan to Drupal 9 in order? Here’s what you need to know to keep your Drupal site running and supported. Talk to Our Drupal Migration Experts Now!

  • Analyze 
  • Inventory
  • Migration
  • Revision
  • SEO

Staying up to date with Drupal versions is vital to maintaining performance to your site:

  • Future-proofing
  • Avoiding the end-of-life cut-off
  • Performance
  • Security
  1. Catalog existing community contributed modules necessary to the project
  • Do these modules have a corresponding Drupal 8 version?
  • If the answer to the above question is no, is there an alternative?
  • Is there an opportunity to optimize or upgrade the site’s usage of contributed modules?
  1. Catalog existing custom built modules
  • Do these modules rely on community contributed modules that may not have a migration path to Drupal 8?
  • Do these modules contain deprecated function calls?
  • Are there any newer community contributed modules that may replace the functionality of the custom modules?
  1. Review existing content models.
  • How complex is the content currently—field, taxonomy, media?
  • What specific integrations need to be researched so content will have feature parity?
  1. Catalog and examine 3rd party integrations.
  • Is there any kind of e-commerce involved?
  • Do these 3rd party integrations have any Drupal 8 community modules?
  1. Catalog User roles and permissions
  • Do user accounts use any type of SSO?
  • Is there an opportunity to update permissions and clean up roles?
  • Access to the codebase
  • Access to the database
  • Access to a live environment (optional)
  • Access to integrations in order to evaluate level of effort

Module Report The module report should contain an outline of the existing Drupal 7 modules with the corresponding path to Drupal 8, whether that’s an upgraded version of the existing module or a similar module. This report should also contain a sheet outlining any deprecated function usage for the custom modules that will need to be ported to Drupal 8.

Content Model Report The Content Model report should contain an overview of the existing site’s content types, users, roles, permissions and taxonomic vocabularies with each field given special consideration. Recommendations should be made in the report to improve the model when migrating to Drupal 8.

Integration Report The integration report contains a catalog of the third party integrations currently in use and marks those with an existing contributed module from the community and those that will require custom work to integrate with the Drupal 8 system.

Our Insights on Drupal Our latest thoughts, musings and successes.

Contact us. We’ll help you expand your reach.

The post Drupal Migration Preparation Audit appeared first on . Rendering fields in Drupal 9 (the right way)

6 days 1 hour ago

Many of us at ComputerMinds have always taken pride on doing Drupally things the right way whenever possible, and then helping the community do so too. One of these things is displaying values from fields on content entities. We wrote before about how to do this in Drupal 7 and Drupal 8. It's now the turn of Drupal 9! Thankfully, this updated version is basically the same as the last one, as D9 is very similar to D8 on the surface, but with old cruft ripped out to allow it to continue improving. So the short answer to "How can I show a field programmatically?" is still:


Isn't that great? Your existing code for Drupal 8 already works with Drupal 9! That's was the aim of the update; to make the upgrade incredibly easy. Whereas upgrading from Drupal 7 can be a mammoth task (you might want to get in touch with us to help!), the jump to D9 is much simpler.

So is anything different? Most changes are buried well within Drupal's innards. The most relevant difference for displaying fields in Drupal 8 as opposed to Drupal 9 is that if you were originally loading the entity object ($entity) using the entity.manager service (e.g. from \Drupal::entityManager()), you now need to use the entity_type.manager service (e.g. \Drupal::entityTypeManager()).

Our previous article on rendering fields in D8 contains much more detail, which is still totally valid for Drupal 9. That will help you tweak the formatter settings to view a field with, or how to get raw values out of the field. For example:

// Render an image field with a specific image style. $entity->field_my_image->view([ 'type' => 'image', 'label' => 'hidden', 'settings' => array( 'image_link' => 'content', 'image_style' => 'square_icon', ), ]); // Get the raw value out of a single-value link field. $link = $entity->field_web_address->uri;

A comment on that article did point out that you can get fatal errors if you use this code too naïvely. That's because magic methods are used here, with the assumption that you are sure the field exists on the entity. If you don't, then just break the chaining down:

// The $field variable will just be null if the entity doesn't have this field. if ($field = $entity->field_whatever) { $to_show = $field->view(); }

Alternatively, you can use get() methods instead of the magic methods. But if you do, you'll probably want to surround your code with Exception handling to catch InvalidArgumentException exceptions, as the magic method getters are more lenient in more scenarios.


Photo by Belle Hunt on Unsplash

Specbee: Drupal Pathauto Module - A Brief Tutorial on how to Automatically Generate Bulk URL Aliases in Drupal 8

6 days 2 hours ago
Drupal Pathauto Module - A Brief Tutorial on how to Automatically Generate Bulk URL Aliases in Drupal 8 Karishma 28 Jul, 2020 Top 10 best practices for designing a perfect UX for your mobile app

By default, Drupal implements a "node/nid" URL path system. When you create your first node in Drupal 8, the default URL path looks like ”/node/1”, and the next one will look like “/node/2” and so on. This not user-friendly nor is it very SEO-friendly. Search engines always prefer URLs that are more descriptive of the page content, clean and legible. Using the Drupal 8 Pathauto module, you can obtain a path that looks like this -> "/category/my-node-title". The Pathauto module also eliminates the need to manually create path aliases for every type of content on a Drupal site. When you have an existing site with plenty of content, you can leverage the Bulk generate option in the Drupal Pathauto module to automatically generate aliases for them in a jiffy. Let’s learn how to configure and implement this time-saving Drupal module. The Pathauto module is also Drupal 9 compatible.

What does the Drupal Pathauto Module do?

The Drupal 8 Pathauto module enables automatic generation of URL/path aliases for different kinds of content like nodes, taxonomy terms and users. All of this without the need for the user to manually enter the path alias. So instead of a URL that looks like /node/1, the Pathauto module lets you create URL aliases like /category/my-node-title. Thus, giving your users a much better idea on what to expect from the web page. Without Drupal Pathauto, creating a URL structure is time-consuming and error-prone. The site admins can specify a pattern to follow for different types of content. The Bulk generate option lets you automatically generate or regenerate aliases for pre-existing content as well. 

Getting Started with the Drupal 8 Pathauto module Installing

Installing the Drupal 8 Pathauto module is like installing any other contributed module. I’m using the Composer to install since it automatically installs all of the necessary dependencies and Drush commands to enable the module. However, if you choose to install manually, make sure you also have the latest versions of the CTools and Token modules installed. 
Open the terminal, within the project enter the following command.

      $ composer require drupal/pathauto

      $ drush en pathauto

Configuration 1.    Create Drupal URL alias Patterns 
  • Configure Pathauto patterns as required in Configuration -> URL aliases -> Patterns.
  • Click "Add Pathauto pattern"


  • Select the Pattern Type. For example, if you are generating URL aliases for nodes, you should choose “Content” as the Pattern type.
  • Add the path pattern to the textbox, and you can browse available tokens for the pattern. When you click on the link, available options will show up. For example, I used the [node:title] pattern. So, the URL will be
  • Select content type or you can also leave it empty. This pattern will be used for all content from the Content Type dropdown.
  • Enter the Label field which helps in identification of the pattern.
  • Hit the Save button. 
  • Back on the Patterns tab, you will now see that the Pathauto pattern has now been created


2.   Generate Bulk URL aliases
  • Go to the Bulk generate tab for the entity type you want to bulk generate the aliases and click Update.
  • Now you have created the URL aliases automatically.


  • Now Click on one of the Alias just generated and the page will display the Content with the user-friendly URL as shown below



3.   Deleting Aliases

You can also batch delete aliases from the “Delete aliases” tab. You can either choose the entity types you want to delete, or you can bulk delete all aliases. You can choose to delete the aliases that you automatically generated. This will not affect aliases created manually. 



The Drupal 8 Pathauto module works efficiently in improving the user experience and search engine ranking of a Drupal website. This article will give you a brief overview of how the Drupal Pathauto module automatically generates bulk URL aliases and provides the user-friendly URLs within minutes. Want to know more about our Drupal development services? Connect with us today!

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

Leave us a Comment

  Shefali ShettyApr 05, 2017 Recent Posts Image Drupal Pathauto Module - A Brief Tutorial on how to Automatically Generate Bulk URL Aliases in Drupal 8 Image Headless Drupal – The All-You-Need-To-Know Guide Image Getting Started with Layout Builder in Drupal 8 - A Complete Guide 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.


Ny Media: Everything you must know about Klarna Checkout and Drupal Commerce

6 days 6 hours ago
Everything you must know about Klarna Checkout and Drupal Commerce jakub July 28, 2020

It has always been Ny Media’s priority to provide integrations with payment gateways that are giving merchants leverage over their competitors. This is why for many years we’ve been integrating our eCommerce platform with payment platforms provided by Vipps, Nets, Klarna, and many more. When implementing certain payment integration we’re always looking for a solution that would best fit merchant requirements and business model.

Klarna Checkout (KCO) is among the most popular payment gateways not only in Nordic countries (company origins in Sweden), but it is gaining popularity in the rest of Europe and US. KCO is more than just a payment gateway - it’s a checkout solution tightly coupled with payment gateway. We’ve been implementing Klarna over the course of the last few years - first KCOv2 and nowadays KCOv3, which gives us a good understanding of how Klarna works and evolves. To highlight just a few features that have been added to KCO since we first implemented KCOv2:

  • Klarna now allows gathering separate shipping and billing addresses,
  • customer can choose shipping method directly within Klarna Checkout iframe,
  • Klarna added support for external payment methods, i.e. Vipps or PayPal,
  • the customer’s order can be validated by the eCommerce platform before the payment is made.

We’ve partnered with Klarna to make sure our implementation of KCO matches their guidelines and best practices. We can now proudly say that our platform, based on open-source Drupal Commerce, has been officially approved. We believe that sustainability in software can be achieved by sharing the code within a big open-source family so we’re happy to announce that the underlying code that we use in our platform is now part of the commerce_klarna_checkout and commerce_klarna_checkout_external_payment modules and can be downloaded and used by any merchant using Drupal Commerce as their eCommerce platform. If you’re looking for a more tailored solution that facilitates Klarna’s Shipping API - have a chat with us and we can help you with that!

We also want to remind all merchants that Klarna is planning to shut down KCOv2 in October 2020. If your platform is still using that product - reach out to our sales team and we’ll make sure to upgrade your platform in time.


OpenSense Labs: Drupal in COVID-19

6 days 6 hours ago
Drupal in COVID-19 Shalini Rawat Tue, 07/28/2020 - 14:31

This is part 2 of the series on power of open source in the time of COVID-19. In part 1, we focused on the impact of open source during COVID 19 pandemic. In this article, we will explore how Drupal is fighting against COVID-19 and the effects that COVID 19 has had on Drupal.

The COVID-19 crisis has shone a harsh spotlight on a range of development challenges, and the choices the world makes now in its path to recovery. The spread of COVID-19, now considered a pandemic, continues to have a significant global impact on various fronts. As we see, COVID 19 also presents significant economic challenges, due to the convergence of disruptions in daily life, which have immediate implications for businesses as well as their workforce.

During the current period of COVID-19, which incorporates people from all walks of life taking a stab at the solutions to overcome this unprecedented situation, Drupal has emerged as a major world power. In these extraordinary times, the Drupal community has long stood by its slogan i.e., Come for the code, stay for the community. This statement itself is an answer to the fact that Drupal is not built in a vacuum, rather it is built to serve the people who would use it.

The invaluable support of Drupal Community

According to Dries Buytaert (Founder and Project Lead of Drupal), “Open Source continues to grow despite recessions. In other words, Open Source communities have the power to sustain themselves during an economic downturn, and even to grow.”

Drupal is basically used to build the best, most ambitious digital experiences on the web. And even now in the time of the pandemic, Drupal is being used in the fight against COVID-19 by organizations like the National Institutes of Health (NIH), Centers for Disease Control and Prevention (CDC), United Nations International Children's Fund (UNICEF), and many more.

COVID-19 has affected each and every sphere of our lives, and its impact is being felt at the Drupal Association as well. The Drupal Association provides support to all end-users of Drupal with updates and security releases. However, in this time of uncertainty, Drupal’s own finances are at risk. 

Certainly, there was a significant financial shortfall of at least $500,000 against Drupal. However, the Drupal Association took control over the situation and surpassed it by creating a benchmark of $500,000 in just 30 days. This itself is a big victory and an inspiration for how the community rallied to help.

The situation of COVID 19 has made things evident that irrespective of what happens next, Drupal has to deal with the hard reality that DrupalCon revenue is a substantial part of what keeps the Drupal Association lively. With that being said, Drupal Association suffered an estimated loss ranging from $400,000 to $1.1 million.

Before the acquisition of the marketplace by the coronavirus pandemic, the Drupal Association was on track to achieve many of its strategic goals. However, the birth and rapid growth of coronavirus have hindered the Drupal’s solid financial path while also limiting its capacity to meet the mission and serve the community.

In these extraordinary times, the Drupal Association came up with a campaign called #DrupalCares with a view to organizing the fundraising effort across the Drupal Community. The goal of the campaign was to raise a fund of $500,000 in 60 days to secure the future of the Drupal Association, which Drupal achieved.

Individuals, as well as organizations graciously donated a 2-for-1 match for Drupal Association to help them raise money for the Drupal Association and helped keep the Drupal 9 launch right on track.

In order to protect the Drupal Association from the financial impact of COVID 19, the Drupal community also came forward to pour their support to the very known Drupal Association. Several individual donations have been made thus far and the community pledged to make this $1,00,000. 

Drupal’s Values and Principles Source: Dries Buytaert’s blog

Drupal’s Value and Principles are much more than the culture and behaviors that the Drupal community members are deemed to uphold. The principles laid down by Drupal are the foundation of the technical as well as non-technical decisions that are required to be made. Furthermore, these values and principles allow the Drupal community to make better decisions at an augmenting rate, inspire members to be their best selves, and eventually move forward as a unified community. 

In the time of the pandemic, most of us have the chance to encounter if the Drupal stated values (still) align with our values. In addition, we can also consider the role of Drupal in our lives when the pandemic subsides. Consider Drupal’s first principle - "impact gives purpose," which is also an aspect of the first value, "prioritize impact." The first principle is quite practical in nature and concludes that by prioritizing the stakeholder, we should consider the needs of the people who create content before the people who build sites and even before the people who develop Drupal. In other words, this principle states that the Drupal lines up the needs of content creators before the needs of the developers.

Drupal's first principle serves a pivotal role in describing the impact of the Drupal community. For say, prioritizing impact is an implication that every community member acts in the best interest of the project. However, it should be noted that not every community member can or should make the Drupal project their top priority. People will obviously begin with their own needs which is not bad. Contributions to the Drupal should be subjective and should not come at your own expense. Change begins when you have the potential and the power to help others. Drupal does encourage people to participate, but not with some sort of expectations.  

Drupal’s first principle focuses on bigger goals and higher levels of achievements which is way beyond a conference room talking. They seek to help others, both at home and in their careers. The main intent of Drupal revolves around the use of Drupal for Good or even live in (with) Drutopia.

Contributing to Drupal Drupal contributions by project type | Source: Dries Buytaert’s blog

Contributors at Drupal's doorstep are always the most valuable asset and are the sole force behind improvements to the platform and the community itself. Being an open-source project, Drupal depends on the contributions of thousands of people around the world.

Sometimes the best way to contribute is to sit back and not contribute at all. Yes, you heard it right. There is no secret that the Drupal community is huge and it's just not possible to fix thousands of open issues by any stretch of the imagination. We cannot fix everything around us and we need to accept this. Acceptance is the beginning of the contribution to Drupal. Saying so, there is nothing to feel guilty about taking a break and considering what is important to your life. 

Moreover, there are many ways to contribute, and the Drupal community always looks for ways to improve the contributor experience. For instance, there are various local public media organizations that use Drupal to disseminate the most relevant information at the time of COVID 19 pandemic. Also, Drupal doesn’t make the demand for the most gifted Drupal developers to perform their job functions. In other words, Drupal calls for a team of professionals who have the urge and ability to work together and create consensus around ideas. Being in a Drupal community, even the smallest contribution makes a big difference which is of supreme importance. 

The Outset of Change

Change is the only constant in this world. That is to say, we as individuals are subject to changes and there is nothing that ever stays the same. That being said, the world around us is experiencing the biggest change that has ever happened to human life. This outset of the change is owing to the COVID 19 pandemic that has not spared any signal entity present on the earth. 

Most of the vendors are not able to support all previous versions of their software. Generally, older programs are dropped from support and are upgraded or removed from the network. However, considering the impact of the COVID 19 pandemic, Drupal has decided to extend the Drupal 7 end of life till November 2022. The Drupal 7 was released about a decade ago and extending its lifetime is a great investment as it best aligns with Drupal’s goals thereby making it safe for everyone to use. 

The year 2020 also saw the first-ever virtual DrupalCon which seeks to open various opportunities to the speakers and attendees who never would have been able to attend otherwise.


At this point, there are no doubt millions of people worth acknowledging and thanking Drupal for their contributions to fighting the good fight during the current crisis, whether financial, personal, or professional. The Drupal project has faced many financial challenges before and we firmly believe that it can come out of this crisis with a stronger open web. Not to mention, the world around us is facing an unprecedented challenge that will only be solved with an unprecedented community effort. 

Do you wish to contribute your part to the Drupal community? If yes, then be a part of the Drupal community and ping us at We will get in touch with you in the shortest time possible.

blog banner blog image Drupal Covid-19 Coronavirus Blog Type Articles Is it a good read ? On
23 minutes 58 seconds ago - aggregated feeds in category Planet Drupal
Subscribe to Planet Drupal feed