Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 18 hours 41 min ago

Aten Design Group: Expressive Authoring with Layout Paragraphs

Wed, 11/18/2020 - 19:30
Expressive Authoring with Layout Paragraphs Justin Toupin Wed, 11/18/2020 - 11:30 Drupal User Experience The Authoring Experience Problem

Authoring experience is a huge concern for web teams everywhere. As it should be. The ability for digital publishers to keep up with the rapidly accelerating demands of their users, and the pace of their competitors, largely depends on providing easy-to-use, expressive tools for their teams to create compelling content.

In practice, this means that publishers need the ability to quickly produce rich digital content from a range of possible components: text, images, videos, social media assets, and so on. Authors should be able to mix various elements quickly and effortlessly, with simple controls for managing content flow and layout. Under the hood, content should be structured and predictable. We’ve written about this before: organizations cannot sacrifice structure for flexibility. They need both.

And yet authoring experience has been a major shortcoming of Drupal, often articulated by marketing and editorial leaders as, “Drupal is too complicated for my organization.”

Other platforms from across the entire spectrum of digital publishing systems – from Adobe Experience Manager to Wordpress, Squarespace to WiX – provide rich, intuitive tools for easily creating all kinds of digital content. What Drupal offers in terms of flexibility – powerful APIs, easily customizable structured content, and a huge range of content management features – has come at the expense of the authoring experience.

Layout Paragraphs

A while ago I wrote about Entity Reference with Layout (or ERL), a Drupal 8 module that combines Paragraphs with the Layout API for a more flexible, expressive authoring experience in Drupal. ERL had one concerning drawback: you had to use a special field type for referencing paragraphs. That means ERL wouldn’t “just work” with existing paragraph fields.

Layout Paragraphs, the successor to ERL, fixes that problem. The Layout Paragraphs module combines Drupal Paragraphs with the Layout API and works seamlessly with existing paragraph reference fields.

Video file

The Layout Paragraphs module makes it dead simple for authors to build rich pages from a library of available components. It offers drag-and-drop controls for managing content flow and layout, and works seamlessly with existing paragraph reference fields.

Layout Paragraphs features include:

  • Easily configure which content components, or paragraph types, are available to your authors wherever Layout Paragraphs is used.
  • A highly visual, drag-and-drop interface makes it simple to manage content flow and layout.
  • Site admins can easily configure Layout Paragraphs to support nested layouts up to 10 levels deep.
  • A “disabled bin” makes it easy to temporarily remove content elements without deleting them.
  • Layout Paragraphs works seamlessly with existing paragraph reference fields.
  • Authors can easily switch between different layouts without losing nested content.
  • Layout Paragraphs is fully customizable and works with Layout Plugins, Paragraph Behaviors, and other Drupal APIs.
What About Layout Builder?

While there are strong similarities between Layout Paragraphs and Layout Builder, Layout Paragraphs solves a fundamentally different problem than Layout Builder.

Layout Builder, in Drupal core, is a powerful system for managing layouts across an entire website. With Layout Builder, site administrators and content managers can place content from virtually anywhere (including custom blocks) within specific regions of a layout. Layout Builder is extremely powerful, but doesn’t directly solve the problem I mentioned above: “Drupal is too complicated for my organization.”

Layout Paragraphs adds a new interface for effortlessly managing content using Drupal Paragraphs. It is simple, fast, and expressive. Layout Paragraphs is a field widget, and works the same way as other Drupal fields. The Layout Paragraphs module makes it simple for publishers to create and manage rich content from a library of available components: text, images, videos, etc. Layout Paragraphs is completely focused on the authoring experience.

Try It Out

If you want to see Layout Paragraphs in action, simply download the module and give it a try. Setup is fast and easy. From the Layout Paragraphs module page:

  1. Make sure the Paragraphs module is installed.
  2. Download/Require (composer require drupal/layout_paragraphs) and install Layout Paragraphs.
  3. Create a new paragraph type (admin > structure > paragraph types) to use for layout sections. Your new paragraph type can have whatever fields you wish, although no fields are required for the module to work.
  4. Enable the “Layout Paragraphs” paragraph behavior for your layout section paragraph type, and select one or more layouts you wish to make available.
  5. Make sure your new layout section paragraph type is selected under “Reference Type” on the content type’s reference field edit screen by clicking “edit” for the respective field on the “Manage fields” tab.
  6. Choose “Layout Paragraphs” as the field widget type for the desired paragraph reference field under “Manage form display”.
  7. Choose “Layout Paragraphs” as the field formatter for the desired paragraph reference field under “Manage display”.
  8. That’s it. Start creating (or editing) content to see the module in action.

If you’re using Layout Paragraphs in your projects, we’d love to hear about it. Drop a note in the comments section below, or get involved in the issue queue.

Read This Next Justin Toupin

Chapter Three: Drupal Backender Learns Gatsby: Core JSON:API vs GraphQL 3

Wed, 11/18/2020 - 19:24

At BADCamp 2019 I attended Michael Schmid’s presentation on decoupled web site building and hosting. There, I learned about the GraphQL module that's been developed to do decoupled Drupal, instead of JSON:API. When I first started experimenting with Gatsby I decided to try it, not really knowing anything about GraphQL at the time. This made my experience trickier than it needed to be. As it turned out, all the tutorials and examples I could find for Drupal + Gatsby had query examples for gatsby_source_drupal with JSON:API. Once I got my head around GraphQL though, things were pretty slick.

Four Kitchens: Don’t Let a Bare-Bones Backend Design Leave Your Site Editors Stranded

Wed, 11/18/2020 - 19:17

From the consumer perspective, there’s never been a better time to build a website. User-friendly website platforms like Squarespace allow amateur developers to bypass complex code and apply well-designed user interfaces to their digital projects. Modern site-building tools aren’t just easy to use—they’re actually fun.

For anyone who has managed a Drupal website, you know the same can’t be said for your platform of choice. While rich with possibilities, the default editorial interface for Drupal feels technical, confusing, and even restrictive to users without a developer background. Consequently, designers and developers too often build a beautiful website while overlooking its backend CMS.

Drupal’s open-ended capabilities constitute a competitive advantage when it comes to developing an elegant, customer-facing website. But a lack of attention to the needs of those who maintain your website content contributes to a perception that Drupal is a developer-focused platform. By building a backend interface just as focused on your site editors as the frontend, you create a more empowering environment for internal teams. In the process, your website performs that much better as a whole.

UX principles matter for backend design as much as the frontend

Given Drupal’s inherent flexibilities, there are as many variations of CMS interfaces as there are websites on the platform. That uniqueness is part of what makes Drupal such a powerful tool, but it also constitutes a weakness.

The editorial workflow for every website is different, which opens an inevitable training gap in translating your site’s capabilities to your editorial team. Plus, despite Drupal’s open-source strengths, you’ll likely need to reinvent the wheel when designing CMS improvements specific to your organization.

For IT managers, this is a daunting situation because the broad possibilities of Drupal are often overwhelming. If you try to make changes to your interface, you can be frustrated when a seemingly easy fix requires 50 hours of development work. Too often, Drupal users will wind up working with an inefficient and confusing CMS because they’re afraid of the complexity that comes with building out a new interface.

Fortunately, redesigning your CMS doesn’t have to be a demanding undertaking. With the right expertise, you can develop custom user interfaces with little to no coding required. Personalized content dashboards and defined roles and permissions for each user go a long way toward creating a more intuitive experience.

Improving your backend design is often seen as an additional effort, but think of it as a baseline requirement. And, by sharing our user stories within the Drupal community, we also build a path toward improving the platform for the future.

Use Drupal’s Views module to customize user dashboards

One of the biggest issues with Drupal’s out-of-the-box editorial tools is that they don’t reflect the way any organization actually uses the CMS. Just as UX designers look to provide a positive experience for first-time visitors to your site, your team should aim for delivering a similarly strong first impression for those managing its content.

By default, Drupal takes users to their profile pages upon login, which is useful to . . . almost no one. Plus, the platform’s existing terminology uses cryptic terms such as “node,” “taxonomy,” and “paragraphs” to describe various content items. From the beginning, you should remove these abstract references from your CMS. Your editorial users shouldn’t have to understand how the site is built to own its content.

In the backend, every Drupal site has a content overview page, which shows the building blocks of your site. Offering a full list that includes cryptic timestamps and author details, this page constitutes a floodgate of information. Designing an effective CMS is as much an exercise in subtraction as addition. Whether your user’s role involves reviewing site metrics or new content, their first interaction with your CMS should display what they use most often.

If one population of users is most interested in the last item they modified, you can transform their login screen to a custom dashboard to display those items. If another group of users works exclusively with SEO, you can create an interface that displays reports and other common tasks. Using Drupal’s Views module, dashboards like these are possible with a few clicks and minimal coding.

By tailoring your CMS to specific user habits, you allow your website teams to find what they need and get to work faster. The most dangerous approach to backend design is to try and build one interface to rule them all.

Listen to your users and ease frustrations with a CMS that works

Through Drupal Views, you can modify lists of content and various actions to control how they display in your CMS. While Views provides many options to create custom interfaces, your users themselves are your organization’s most vital resource. By watching how people work on your site, you can recognize areas where your CMS is falling short.

Even if you’ve developed tools that aimed to satisfy specific use cases, you might be surprised the way your tools are used. Through user experience testing, you’ll often find the workarounds your site editors have developed to manage the site.

In one recent example, site editors needed to link to a site page within the CMS. Without that functionality, they would either find the URL by viewing the source code in another tab and copying its node ID number. Anyone watching these users would find their process cumbersome, time-consuming, and frustrating. Fortunately, there’s a Drupal module called Linkit that was implemented to easily eliminate this needless effort.

There are many useful modules in the Drupal ecosystem that can enhance the out-of-the-box editorial experience. Entity Clone expedites the content creation process. Views Bulk Operations and Bulk Edit simplify routine content update tasks. Computed Field and Automatic Entity Label take the guesswork out of derived or dependent content values. Using custom form modes and Field Groups can help bring order and streamline the content creation forms.

Most of the time, your developers don’t know what solutions teams have developed to overcome an ineffective editorial interface. And, for fear of the complexity required to create a solution, these supposed shortcuts too often go unresolved. Your backend users may not even be aware their efforts could be automated or otherwise streamlined. As a result, even the most beautiful, user-friendly website is bogged down by a poorly designed CMS.

Once these solutions are implemented, however, you and your users enjoy a shared win. And, through sharing your efforts with the Drupal community, you and your team build a more user-friendly future for the platform as well.

The post Don’t Let a Bare-Bones Backend Design Leave Your Site Editors Stranded appeared first on Four Kitchens.

myDropWizard.com: Drupal 6 core security update for SA-CORE-2020-012

Wed, 11/18/2020 - 19:13

As you may know, Drupal 6 has reached End-of-Life (EOL) which means the Drupal Security Team is no longer doing Security Advisories or working on security patches for Drupal 6 core or contrib modules - but the Drupal 6 LTS vendors are and we're one of them!

Today, there is a Critical security release for Drupal core to fix a Remote Code Execution (RCE) vulnerability. You can learn more in the security advisory:

Drupal core - Critical - Remote code execution - SA-CORE-2020-012

Here you can download the Drupal 6 patch to fix, or a full release ZIP or TAR.GZ.

If you have a Drupal 6 site, we recommend you update immediately! We have already deployed the patch for all of our Drupal 6 Long-Term Support clients. :-)

FYI, there were other Drupal core security advisories made today, but those don't affect Drupal 6.

If you'd like all your Drupal 6 modules to receive security updates and have the fixes deployed the same day they're released, please check out our D6LTS plans.

Note: if you use the myDropWizard module (totally free!), you'll be alerted to these and any future security updates, and will be able to use drush to install them (even though they won't necessarily have a release on Drupal.org).

Security advisories: Drupal core - Critical - Remote code execution - SA-CORE-2020-012

Wed, 11/18/2020 - 18:18
Project: Drupal coreDate: 2020-November-18Security risk: Critical 17∕25 AC:Basic/A:User/CI:All/II:All/E:Theoretical/TD:DefaultVulnerability: Remote code executionCVE IDs: CVE-2020-13671Description: 

Drupal core does not properly sanitize certain filenames on uploaded files, which can lead to files being interpreted as the incorrect extension and served as the wrong MIME type or executed as PHP for certain hosting configurations.

Solution: 

Install the latest version:

Versions of Drupal 8 prior to 8.8.x are end-of-life and do not receive security coverage.

Additionally, it's recommended that you audit all previously uploaded files to check for malicious extensions. Look specifically for files that include more than one extension, like .php.txt or .html.gif.

Reported By: Fixed By: 

Drudesk: How to generate a username automatically in a Drupal site with the Automatic User Names module?

Wed, 11/18/2020 - 15:13

First of all, generating a username automatically in your Drupal site is very useful for the site admins and website visitors. Let's start with the fact that today, to use the services of the site, users have to log in.

As a rule, registration includes filling in the following data:

Specbee: How to Configure Faceted Search for Drupal 8 (and 9) – An easy step-by-step tutorial

Wed, 11/18/2020 - 13:00
How to Configure Faceted Search for Drupal 8 (and 9) – An easy step-by-step tutorial Shefali And Shruthi 18 Nov, 2020 Top 10 best practices for designing a perfect UX for your mobile app

Faceted search offers users with a superior search experience by displaying filters against their search results. It is particularly useful for websites having large catalogues and listings. Once the user types in their search query, they will be presented with a list of relevant filter options to further narrow down their search. These filtering elements are facets.

Previously Facet API in Drupal 7, the Facet module in Drupal 8 enables your website with faceted searching abilities. Facets also supports Drupal 9! Let’s look at configuring and implementing Faceted search with Drupal’s own search server, Search API.

What is Faceted Search?

If your users are finding it hard to see what they are searching for even after keying in their search query, they are bound to get frustrated. Faceted search provides users with multiple filters at the same time for the various attributes of the content. The facets provided are based on the search query the user has executed. Facets will also display the number of matched results (usually within brackets) next to it. Let’s take a look at this below screenshot to understand Facets better-

In one of our recent Drupal 8 projects, a quick search for Homes in Columbia on this website presents to you with facets like Communities, Hot Deals, Quick Move-ins and more. You will also see the count of the results next to each facet. So, a query with “Columbia” keyword is sent to the search server to retrieve the already configured and indexed categories (Communities, Hot Deals, etc.)

Installing the Facets Module for Drupal 8

As previously discussed, we will be implementing Faceted search using Drupal’s Search API module. 

Step 1: Enabling the modules

Install and enable these modules
•    The Facet Module 
•    Search API module

Step 2: Creating Content Types

Create the content you would like to include in the faceted search by adding Content types as shown below. You can also use the default content types provided by Drupal.

   Step 2: Create Content Types
Step 3: Configuring the Search server

Navigate to Configuration -> Search and metadata -> Search-API from the admin interface to configure your search server. Give a name to your search server (here - data server). 

   Step 3: Configure the Search server

 

Step 4: Configuring the Search Index

Next, configure the search index to improve the search performance. Navigate to Configuration -> Search and metadata -> Search-API -> Index -> data_index.

   
    Step 4: Configuring the Search Index

Give a name to your index and then select Content as your Datasources since we will be indexing the Content entities here.
You can then move on to the next section - Configuring the Datasource (here – Content). Here you can choose to select all the bundles or only select a few from the below list to index.
Next, select your server that you had already created (here - data server). Select the “Index items immediately” option to begin the indexing process. Click on Save.

   
   Configuring the Datasource
Step 5: Adding Fields for Indexing

Next, we need to add Fields to be indexed. Navigate to Configuration -> Search and metadata ->Search API -> data index and select the Fields tab. Click on the Add fields button to create fields according to your requirement.


  Step 5: Adding Fields for Indexing
Step 6: Indexing the Content

Under the same location, click on the View tab to start the process of indexing your content. In the Start Indexing Now section, click on the Index Now button. It will then show you a progress bar with the status of the number of items that have been indexed.

 
   Step 6: Index the Content

 

Step 7: Creating a View

Now we will be creating a view for the data that needs to be indexed and displayed to your users. Navigate to Structure -> Views -> Add View.


   Step 7: Creating a View

Give a name for the View.
Under View Settings dropdown list, select the index that you have created in Step 4.
Create a page for your search results by clicking on the Create a page checkbox under the Page Settings tab. Give a name and a path for the same. 
Under Items to Display, select 0 if you want to display all the results in one page. Else, select a number of results to be displayed. 
Under Page Display settings, you can select the format in which you want to display your results – Table, Grid, HTML list or Unformatted list. We have selected Unformatted list here. Click on Save.

Step 8: Adding Fields to the View

Here we will be adding fields that we have indexed earlier to the View.
Go to Views, click on Add button next to the Fields section. Select the Fields, click on Add and Configure. 
Under Render Settings, select the Link to Content checkbox so that the results displayed are clickable. 
Click Save.

  
   Step 8: Adding Fields to the View
Step 9: Configuring the Facets

Now let’s begin configuring and enabling the facets. Navigate to Configuration -> Search and meta data -> Facets

Click on the Add Facet button.

 

  
  Step 9: Configuring the Facets

Select the Facet Source – This will be your View that you created previously.
Select the Field – This will display the fields you had added for indexing in Step 5.
Give a name to the Facet.
Click on Save.

Next, you will then see more configuration options for displaying the facets (as shown in the below image). Widgets will list out a number of options like List of links, array, dropdown, etc. You can choose what suits your website the best.
Select the “Transform entity ID to label” to avoid displaying the machine name of the content type.
Click on Save.

Configuring the FacetsStep 10: Placing the Facet blocks in the chosen page regions 

Next, place the Facets you created as blocks in a page region of your choice. 
Navigate to Structure -> Block Layout.
Select the region of the page where you would like to place the block containing the Facets.
Here, we are selecting Sidebar. Click on the Place Block button next to the Sidebar.
In the next dialog box, search for the Facet name and click on Place Block.

 


Step 10: Placing the Facet blocks in the chosen page regions


In the Configure Block section, mention the Search page path that you had previously created. Here -“site-search” is our page we had created. 
Give a display name for your Block and select the Display title checkbox if you want the block name to be displayed (here – Type).
Click on Save Block.

The Result

And just like that, your faceted search page and functionality is ready! Notice the Facet called Type (display name) that has Basic page and Article listed as content types to filter against.


Result: The Faceted Search Page

 

Implementing faceted search provides users with an easy and fast search experience. In this tutorial, we have used Search API as the search engine. You could also use search servers like Apache Solr, Search API Solr search or Elasticsearch with Drupal 8, whatever suits your requirements. As a leading Drupal development company, Specbee’s Drupal experts can help you build exemplary search experiences. Contact us to know more.

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

Leave us a Comment

  Shefali ShettyApr 05, 2017 Recent Posts Image How to Configure Faceted Search for Drupal 8 (and 9) – An easy step-by-step tutorial Image Evaluating a Drupal Partner for your Next Project – Some Unbiased Tips and Suggestions Image How to Import External Feeds into your Drupal 9 Website with the Feeds Module 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]7.ai

link

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.

link

Discover how a Drupal powered internal portal encouraged the sellers at Flipkart to obtain the latest insights with respect to a particular domain.

link

Community Working Group posts: A different kind of contribution - become a trained Drupal event Code of Conduct contact

Mon, 11/16/2020 - 19:42

The Drupal Community Working Group is continuing to team up with Otter Tech to offer live, monthly, online Code of Conduct incident response training for the Drupal community.

At the time of this article, twenty community members have completed the training, ensuring that both in-person and online Drupal events world-wide have access to qualified Code of Conduct contacts.

Contribute to the community

Being a Code of Conduct contact for Drupal events is a great way to contribute to the community without coding. It is essential that community events are safe for all people and our Code of Conduct contacts are key to making that happen.

What is a Code of Conduct contact?

The role of a Code of Conduct contact is to be available on behalf of a virtual or in-person event to take incident reports and assist event organizers in responding to Code of Conduct violations.

Drupal event organizers typically identify at least two unique individuals that agree to be Code of Conduct contacts to help create a safe and welcoming environment for their attendees. These contacts and their contact information are made available to attendees on the event website, through event emails, in event presentations, etc. so that attendees know who and how to approach if an incident occurs.

What are the characteristics of a good Code of Conduct contact?
  • Trustworthy: This includes being able to keep information confidential as well as being reliable when it comes to being accessible during an event.
  • Approachable: Good contacts are seen as friendly, empathetic, and respectful. They listen carefully, appreciate the emotions and needs that underlie each conversation, and come across as genuinely concerned with the well-being of everyone involved.
  • Perceptive: Someone who can quickly grasp a situation, understand its complexities and dynamics, and provide a clearer understanding of options by analyzing the issues and identifying risk.
  • Impartial: To be effective, a contact must be able to control their feelings and not invest emotionally in the outcome.
About the workshop

The training is designed to provide "first responder" skills to Drupal community members who take reports of potential Code of Conduct issues at Drupal events, including meetups, camps, conventions, and other gatherings. The workshops will be attended by Code of Conduct enforcement teams from other open-source events, which will allow cross-pollination of knowledge with the Drupal community.

The workshop covers:
  • Tips for protecting reporter privacy
  • Frameworks for deciding consequences of inappropriate behavior
  • Discussion on bias, intent, and microaggressions
  • Discussion on personal conflicts, false reporting, and power dynamics
  • 40 minutes total of Q&A time
  • Interactive practice enforcing a Code of Conduct
Upcoming workshops

Saturdays, 9am to 1pm US Pacific Time
(Saturday, 5pm to 9pm UTC)

Workshop cost

The standard cost of the workshop is $350, but Otter Tech has offered a $50 discount for Drupal community members. To receive the discount, let us know you are interested by completing the following form.

$50 discount sign-up form

An additional subsidy of $100 is available for the December 5, 2020 workshop. Subsidies will be provided based on reported need as a way to make this training opportunity available to more of our community.

$50 discount + $100 subsidy sign-up form

After completion

Drupal community members who successfully complete the workshop will receive a community contribution credit on Drupal.org and may be listed on Drupal.org (in the Drupal Community Workgroup section) as a means to highlight that they have completed the training.

We are fully aware that the fact that the workshops will be presented in English limits who will be able to attend. We are more than interested in finding additional professional Code of Conduct workshops in other languages. Please contact us if you can assist.

DrupalCon News: DrupalCon Europe will only sustain if you show up for it

Mon, 11/16/2020 - 15:53

If Drupal in Europe is important to you, we need your help! Read on to see how.

Promet Source: New Website Ignites New Growth Trajectory

Thu, 11/12/2020 - 23:35
When a family business that’s been run by three successive generations grows to $100 million in annual revenue by continuously building upon a track record of service, integrity, and quality, who’s to say that an outdated, uninspiring website isn’t doing enough heavy lifting? That was the case at Binford Supply for many years, until new ownership and a new media manager set out to update the site and take the company to the next level. 

Aten Design Group: Absolute menu links in Drupal 8

Thu, 11/12/2020 - 20:15
Absolute menu links in Drupal 8 Joel Steidl Thu, 11/12/2020 - 12:15 Drupal Code

Creating absolute menu links in Drupal 8 is pretty simple, but it took a little thought to land on the best solution for my use case. I ran into the requirement while working with a client to deploy their site navigation to a REACT app sitting on a different domain. The menu links we pulled in from their primary website needed to point back to their domain correctly, which of course meant they needed to be absolute.

A quick search turned up a couple of solutions, but none that quite suited my requirements. Here’s what I came up with — it’s fairly concise, leaves the menu link attributes intact, and doesn’t involve the theme layer.

/** * Implements hook_preprocess_menu(). * */ function MYTHEME_preprocess_menu(&$variables) { // Limit to specific menus for performance. $menus = ['main', 'footer']; if (isset($variables['menu_name']) && in_array($variables['menu_name'], $menus)) { MYTHEME_set_menu_items_to_absolute($variables['items']); } }   /** * Recursively make menu items link with absolute. * */ function MYTHEME_set_menu_items_to_absolute(&$items) { foreach ($items as $item) { $url = $item['url']; if (!$url->isExternal()) { $item['url'] = $url->setOption('absolute', TRUE); } // Recursively loop of sub-menu items. if (isset($item['below'])) { MYTHEME_set_menu_items_to_absolute($item['below']); } } }

Generating absolute menu links this way means I can pull main navigation onto various apps without any headache and without sacrificing any Drupal theme layer functionality.

You can download the gist here. Make sure you specify which menus you'd like to act on, by machine name, in the first line of the MYTHEME_preprocess_menu() function. The code goes in mytheme.theme — don't forget to replace MYTHEME with your theme name throughout.

Do you have a simpler way? Feel free to share in the comments.

OSTraining: OSTips - Create a Drupal Site Copy in Acquia’s DevDesktop

Thu, 11/12/2020 - 18:03

So you're working away on your Drupal site using Acquia’s DevDesktop just like we do here at OSTraining, and you want to take a snapshot of your site to use for another project. Or maybe you just want to keep a backup of it at a certain state in your Drupal site development.

In this video, I'm going to show you exactly how to create Drupal site copy in Acquia’s DevDesktop.  It's really simple. 

Let's get to It.

Gábor Hojtsy: Get involved with the future of Drupal at DrupalCon Europe!

Thu, 11/12/2020 - 16:09

DrupalCons are a great way to learn and connect, but they are especially great to meet various people leading Drupal's future direction. DrupalCon Europe in a couple weeks is no execption.

There is of course the Driesnote to get an update on where Drupal's progress is and get inspired about where its going. There is a dedicated question and answer session with project lead Dries Buytaert where you can inquire about topics not covered in the keynote.

The initiative leads provide a glimpse into their respective areas in the Drupal Initiative leaders keynote. This is a great way to get to know the leaders and learn more about their plans and where you could help.

Various initiatives have dedicated sessions: the Core Automatic Updates Initiative Update and the Configuration Management Initiative 2.0 session provides updates on the progress made and gives you a look forward. There is not one but two sessions about the new experimental Olivero frontend theme in Drupal 9.1.0: Designing for chaos: The design process behind Olivero and The Olivero theme: Genesis and Update on Drupal 9's Newest Theme.

A practically inevitable future milestone is Drupal 10. In The Drupal 10 initiative, here we go I will cover where we are in preparing Drupal 10, what you can expect and where you can be involved. On the way to Drupal 10 is our support for PHP 8. While not specifically about Drupal core's progress, the PHP 8: What's new and changing will showcase the new version of the programming language.

For the future of Drupal, the people leading and the technology being built is at least as interesting as the platform we are collaborating on. You might have heard that merge requests and issue branches became generally available on drupal.org yesterday (yes!). In Drupal.org Update - The latest collaboration tools to help you build Drupal (panel), you can learn more about the current state and future of the platform we use to build Drupal itself.

Also of wide interest is the effect of end of life Drupal versions: Jeremy Andrews and Mike Meyers will cover Drupal 7 and Drupal 8 end of life.

These were just the pre-planned sessions. The real involvement possibilities are at Birds of a Feather discussions where you can be directly involved with core discussions, see how hard problems are deconstructed and solved. Most BoF slots are still open for submission, but there will be various covering core's future. Also contribution events will happen all week where you can learn Drupal development and any other kind of Drupal contribution based on your interests. I expect contribution topic groups forming around Symfony 6 compatibility, removing jQuery UI components, CKEditor 5, the Claro admin theme and Olivero frontend themes and so on.

These are just the core focused sessions out of 119 sessions offered at the event in five tracks. Also there are even 4 in-depth workshops included with each ticket. Hope to see you there! Check out https://events.drupal.org/europe2020 for more information.

Photo credit Boris Baldinger from DrupalCon Amsterdam.

Agiledrop.com Blog: Top Drupal blog posts from October 2020

Thu, 11/12/2020 - 07:26

Like every month, we’ve compiled some of the top Drupal blog posts written the previous month. Take a look at our list for October.

READ MORE

ComputerMinds.co.uk: Core web vitals - how to debug and improve cumulative layout shift (CLS) issues

Wed, 11/11/2020 - 21:15

TLDR : Check your cookie popup!

It seems everyone is talking about core web vitals at the moment, spurred on by Googles’ recent announcement that page experience (which includes core web vitals) will start influencing search ranking in May 2021.

We won’t go into detail on web vitals in this post - there is plenty of information already on the web, including from Google themselves on the excellent web.dev site.

Instead, this post will look specifically at cumulative layout shift - or CLS as it’s known. I like to think of this as the jerkiness measure of your site - the higher the number the worse the jerkiness.

Getting your CLS score is pretty easy - you can use pagespeed or lighthouse (built right into chrome). I will assume (because you are reading this post) that you have done this already AND you are not happy with your score. So - what next - how do you go about diagnosing and fixing the issue?

The reading online makes lots of great suggestions, mostly around helping the browser reserve space for elements that are late loaded (images, video etc). This is all good stuff - however - it didn’t help me and the sites I was working on.

So first off I switched to incognito mode (I wanted to simulate a fresh first-time visit to the site - for various reasons) in chrome, loaded the site and then fired up the performance tab in the chrome dev tools. This is a scary looking tab - there is a lot going on here - and you can safely ignore 98% of it (at least for now). You just need to make sure the ‘Screenshots’ tick box is ticked - then hit the little refresh icon - this will refresh the page and start profiling the page load. It’s worth pointing out that this is running locally so you can use it on your local dev sites.

This takes a few seconds and when complete you should have a lovely looking film strip of screenshots along the top - mouseover and you get a larger version. Start at the left and move rightwards - and keep your eyes open for any obvious content shifts.

I did this for 3 individual and unrelated client sites - and found the cookie popup to be the culprit in 2 of the sites - it was appearing mid-way through the load and pushing ALL the content down - fixing this took around .4 off the CLS score (which is a lot). The other site had the ENTIRE expanded mobile menu briefly rendering at the top of the page - which then disappeared (as it should) and shifted all the page content up by about 800px! Fixing this took about .5 off the CLS score.

So - the takeaway from this is probably before you spend ages fiddling with width and height attributes on your img tags, have a quick look to make sure there isn’t some low hanging fruit massively impacting your CLS.

Drupal.org blog: Live deployment previews for Drupal Core (Thanks to TugboatQA!)

Wed, 11/11/2020 - 18:30

Tugboat.qa offers automated and on-demand deployment previews to accelerate development. In 2019, Tugboat was successfully integrated as the backbone of the community testbed Simplytest.me. Following that success, a community-lead initiative emerged to provide these previews for all of Drupal Core development, by integrating into the Drupal.org issue queue. Drupal Association CTO Tim Lehnen (hestenet on Drupal.org) opened an issue to explore this option in early August.

Why automated environments for Core issues?

Reviewing and testing Drupal.org issues has historically been the purview of experienced Drupal developers. Designers, end-users, and other stakeholders have been relegated to the role of watching over the shoulder of developers who drive demos from local development environments. This has been detrimental to fully involving those stakeholders in a development process that could improve Drupal for all users. With Drupal's ease-of-use, accessibility, and front-end features being central to the current strategic initiatives, it was time to ensure that these stakeholders are fully empowered. 

Automated deploy environments help bridge the technical divide and bring the ability to review changes to more users. Longtime Drupal contributor YesCT says:

The Tugboat integration with drupal.org issues makes reviewing and testing possible for people who have never been able to do it before. This project uses technology to lower the barriers of contributing to Drupal, and makes contributing more accessible to more people. It’s going to be a huge game-changer.
YesCT

In practice, visitors to the Drupal.org issue queue can click a link to tour a live, working version of a Drupal website wherever Tugboat deploy previews are enabled. As of November 10, 2020, this includes all Drupal Core issues.

Current UI:

Upcoming UI revision:

Drupal.org deploy previews - under the hood

The Drupal.org/Tugboat integration relied on a handful of contributors across a project that spanned months, but the core of this collaboration was a partnership between core contributor Juampy NR and Drupal.org architect Neil Drumm

As a senior developer at Lullabot, Juampy's continuous integration expertise, as well as his familiarity with Tugboat, made him an invaluable contributor to implementing the Tugboat side of the integration. Neil's expertise as architect, meanwhile, gave Juampy and Tugboat the guidance to find the right places in Drupal.org's custom logic to add code for this new integration. Simultaneous to the Tugboat integration, Juampy and Neil also worked to implement the Drupal Association GitLab integration, bringing issue forks and merge requests to the issue queue

Some of the challenges that this team faced included:

  • Drupal.org’s large database. Because of the size of the database, the team had to work remotely using a provisioned development environment. Remote debugging helped to catch and traverse the different events involved in the workflow.

  • Understanding where to write code. Drupal.org has a ton of custom logic, so finding the right place to add new code was not easy. The Drupal Association's guidance was key.

  • Integrating multiple systems. The team had to write interactions between Drupal.org, Tugboat, and GitLab, taking into account error responses, timeouts, and firewall restrictions.

Reducing friction by making changes visible and more accessible to all contributors

Before this integration, contributors had to take and upload screenshots of their changes, and reviewers had to replicate changes locally in order to see them in action. Tugboat reduces friction by making changes visible - and more accessible - to anyone who clicks the preview URL. This shortens review time considerably and invites participation from non-developers, working toward Drupal's value of respecting and valuing inclusivity.

Check out our documentation on Drupal.org to learn more!

The Drupal Association gives our thanks to TugboatQA/Lullabot, for contributing this feature to the Drupal project.

Tag1 Consulting: Drupal 7 extended support: An overview of the Drupal 7 Extended Support Program - Tag1 TeamTalk #028.2

Wed, 11/11/2020 - 17:30

Tag1 Quo, Tag1's extended support service for Drupal, offers you peace of mind when it comes to receiving all of the important security updates that Drupal 7 Extended Support (D7ES) vendors maintain. But Tag1 Quo goes well beyond the minimum requirements of the D7ES program, because we cover all of your contributed modules and notify you right away of security patches that need your attention.

Read more preston Wed, 11/11/2020 - 08:30

OpenSense Labs: Hiring The Right Skills for Your Decoupled Drupal Development

Wed, 11/11/2020 - 14:53
Hiring The Right Skills for Your Decoupled Drupal Development Gurpreet Kaur Wed, 11/11/2020 - 19:23

Drupal development is not everyone’s cup of tea, however, it could be, provided that the person at the development end has the right skill set to handle all of Drupal’s potential. With Decoupled Drupal the need for these skills becomes even more prominent, you have to have excellent front-end and back-end developers separately since the two are independent of each other. And this is where the hiring process of the right set of professionals for your Decoupled Drupal projects becomes tricky and cumbersome.There are a lot of aspects to take under consideration and a lot of different skills to look for.

To make your job a tad bit easy, here is the checklist of the skill sets and the professionals that you need to successfully deliver the Decoupled Drupal projects.. 

What skills are needed for Drupal development during the decoupling process?

When you decouple Drupal, you are only going to be using it as a content repository, meaning it would only serve a purpose for backend development needs. Even if you use it for back-end, you are still going to be using it, so you would need good Drupal developers. So, here are the skills you need to be looking out for.


Proficiency in Site Building 

You must know how important it is to attend primary school, the things we learn set the pace for our entire educational journey. So, what primary school is to us, Site Building is to Drupal. It is the most basic need of a Drupal website. 

The primary purpose of a site builder is to reap all the benefits of Drupal by making it run and configuring all the options required to make a website fully functional. There isn’t a need for a custom code for this to happen, rather the Admin User Interface is equipped to handle it on its own. There are several other responsibilities of site builders as well, so, when hiring a site builder, you must keep in mind all of these.

  • Installing  Drupal manually and also doing the same with an application or a service;
  • Downloading and installing modules along with disabling, uninstalling and removing them;
  • Understanding of all core and contributed modules; 
  • Thorough knowledge of fields and entities with expertise in content and non-content fields;
  • Finally, being familiar with blocks, menus and navigation as well as the basic Views skills;

All of these are the everyday requirements for site builders, and a proficient one excels at all of them.

Proficiency in Backend Development

The decoupled Drupal requires backend developers to be at their best at all times. This is because an impeccable front-end would seem sub-standard, if the content repository is not up to the par. There when hiring backend developers, you have to be extra picky and choose one who fits the criteria to the T. And here is what the criteria looks like;

  • Unlike site builders, Backend developers are involved in writing the code in PHP and other languages, so they must have experience in PHP and MySQL at least. 
  • They must be competent in creating and executing modules. The added knowledge of building custom modules in Drupal 7, 8 and 9 (for Drupal 7 and Drupal 8 have not reached End-of-life as yet) is always preferable. 
  • They also need to have advanced knowledge of themes, consuming web services and automated deployments to name a few. 
  • The backend developer has to be aware of all the security concerns as well, along with the ways of overcoming them.
Proficiency in Theming

Theming is a part of Drupal’s front-end development. I know you must be wondering why decoupled Drupal would need front-end developers with experience in Drupal. To answer your question, I have three words; Progressively Decoupled Drupal

Because the entire front-end is not separated from Drupal, it is important to have a good themer to build around Drupal’s front-end capabilities. Themers are responsible for the front-end design as well as the development and implementation of the client-side architecture. 

For this purpose, 

  • they need to be experts in front-end technologies;
  • they need to be experts in installing themes and generating sub-themes using PHP or Twig in Drupal;
  • they need to be experts in designs and modifying them into a completely functional issue;
  • they need to be experts in creating such modules that would expose the configuration to the site builders. 

When you find someone like this, you would have the perfect themer for your progressively decoupled Drupal. 

Read these infinity stones of Drupal development to adhere to the best practices when it comes to everything ranging from site-building to backend development.

Proficiency in Drupal Architecture 

Drupal work is often regarded as web projects, and each project has to have someone who is aware of the ins and outs of the work. And in the case of Drupal that person is a Drupal Architect. 

A Drupal architect is essentially the manager of the project, who possesses knowledge of all the key areas of the project. From backend development and site building to front end development and theming, he needs to be proficient in every task as a leader. 

He should have an in-depth understanding of the ways to optimise Drupal because that is what the main role of a Drupal architect is. For the same, a certain level of expertise in PHP, MySQL, JQuery and CSS along with the knowledge of implementation tools like Varnish, GeoIP and UberCart comes in quite handy. 

Note: Some proficiency in front-end technologies is always beneficial for Drupal developers. This may seem odd to you, since we are talking about the Drupal skills in decoupling. However, it isn’t much of an oddity and let me tell you why. We know that when decoupling is done, the presentation layer is entirely separated from the content aspect of a website, yet they still have to work together and they have to be in sync. This would become all the more convenient for decoupled Drupal developers, if they have some knowledge of the current front-end technologies. HTML, CSS, React and Gatsby are some of the most used technologies, so an understanding or maybe even some experience in using it would come in very handy for the streamlined development of a decoupled Drupal website. 

Read these infinity stones of Drupal development to adhere to the best practices when it comes to everything ranging from site-building to backend development.

What is the requirement for Drupal web services?

The decoupled Drupal needs a good API layer for it to give you all the benefits it boasts. And a good API is only good when it is being handled by competent hands and these hands are your developers’. 

There are three particular web services that are being implemented during decoupling. Although all three will be achieving the same goal, the way they do it is quite different. Therefore, your developers need to be aware of even the minutest details of these web services, especially with respect to the different Drupal versions.


Starting with GraphQL, firstly, it is not available in Drupal 7; an expert developer would know this. The GraphQL module in Drupal 8 and 9 will let your developers create their own custom schema or extend an existing one, as long as they are good with coding. 

JSON:API is also not available in Drupal 7 and even in Drupal 8, it was a late addition, having been added as a stable core feature in Drupal 8.7. With the JSON:API module, a developer can decide which HTTP methods he should be using along with which response codes should be returned and when, eventually increasing productivity. A JSON:API expert would do it with ease. 

Coming to REST API, it has been a part of Drupal core for a long time. Your developers need to be equipped to configure REST resources, customise their formats, customise their authentication mechanism as well as create the plugins.

A developer who speaks fluently in Drupal web services is the developer with the right skill set for Decoupled Drupal, since the API is the thread that holds both the front and backend together. 

How do you capitalise the separated front end?

Now that Drupal specific skills are out of the way, let us move on to the presentation layer and the technologies the front-end developers need to be experienced with. 

HTML and CSS

When talking about front-end development, the first things that come to mind are HTML and CSS. As you may know, the structure and layout of a page, both of the visual and aural, depends on these two, making them quite crucial for your web pages. Henceforth, they are the  foundational technologies for building web pages, front-end developers need to be experts in these. 

JavaScript Frameworks

For many, the primary reason behind taking up decoupling is to take advantage of the advanced JavaScript framework. Although Drupal has its own JavaScript library, it still lacks in the features provided by the JS framework.

React, Vue and Angular tend to be the most sought after technologies for transitioning into decoupled Drupal., with Vue.js being the latest addition in the mix. Frontend developers need to be aware of these and get the most of them with their knowledge. 

Static Site Generators 

If you have a static site with already available input files, you would want to delve into Static Site Generators for your frontend development. For this reason, you would need experts in SSG to fully capitalise its various tools. Gatsby, Metalsmith and Tome are the ones that are the most renowned at present. 

Note: There is one more thing that you should be looking for in your front-end developer and that is the knowledge of Drupal. Like I mentioned in the previous section, the Drupal developers need to have some knowledge of the front-end technologies, similarly, the front-end developers need to have knowledge of the Drupal. Both the back-end and front-end may be different and their development may also be different, but they are going to be a part of one web project, so both teams need to have some cognisance of the other’s working. Decoupling would make a lot more sense then.

What other skills should you be looking for?

Up until now, we have discussed all the skills specific to the development of decoupled Drupal, you might think that your work is done, but it isn’t. There are certain skills that need to be held by developers, whether they are involved in decoupled Drupal or monolithic Drupal and they are going to be equally important for your decoupled Drupal project. 

Adept at Designing

The process of website building starts with designing. The very first step towards development is the making of wireframe, which is basically a design template. This wireframe sets the pace and the direction of the web project, so your designer has to know what he is doing because if he doesn’t, the end would not be as enlightening as you might want. 

Designing mandates tools, without them a designer would be helpless. Sketch, Figma, InvisionApp and Adobe XD are some of the go-to options for User Interface designing. The apprehension of these would make a designer adept at his job.

Adept at DevOps 

In essence, DevOps is an IT service delivery channel that focuses on the adoption of practises that would collaborate your operations with the development team. For this to happen, you need a DevOps Engineer or a System Admin, who would be responsible for deploying websites to the live server. 

  • Expertise in Linux;
  • Expertise in bash scripting and continuous integration;
  • Expertise in automations technologies;
  • And expertise in IAC (Infrastructure as Code) are essentials for this particular hiring objective. 
Adept at QA 

QA refers to quality assurance. It is a position held by developers to check the quality of work being churned out. They act as the targeted client and see whether what they are getting from the website is up to the standards or not. 

Someone with limited knowledge of Drupal, web technologies and the industry requirements would not be a good fit. You would only be able to check something, if you know what to look for, right?

Adept at Project management 

Like the suggests, this is a skill that oversees the project from the very beginning to the very end. From time deadlines to the day-to-day progress of the project, each and every aspect has to be monitored. 

Drupal Project Management requires the manager to be skilled at a variety of things, namely;

  • Expertise in team management and segregation of workload;
  • Expertise in dealing with the clientele to understand their requirements and acting as the middle ground between them and the team;
  • Expertise in analysing and rectifying plausible risks during the project;
  • Expertise in the Drupal and all the technologies that accompany Drupal projects; 
  • And expertise in using reporting tools and implementing sound SEO strategies.
Adept at Business analysis

Every Drupal site has a business side, so when hiring the right skill set for decoupling, business analysis holds a key to success. Through business analysis, the business and IT sides of the website find a connection and work together. This is done through the use of data analytics, which help in examining the undergoing processes, analysing its needs and effectively communicating the same to the executives and stakeholders along with running logic/system interference with them. 

While using Drupal, it is always preferable to have an analyst that has a development background with knowledge of Drupal. Extroverts are usually ideal for this position, since communication is vital here.

The Sum Total 

Drupal is a pretty diverse system and an even higher level of diversity is found when Drupal is decoupled. Since you would be trying to capitalise Drupal in addition to capitalising other frontend technologies, you would have to put in an extra effort in the hiring process. Decoupled Drupal developers need to be equipped to handle the diversity it is going to inundate them with. The right skill set would help you and them to reap the benefits of decoupling. 

blog banner blog image Decoupled Drupal Decoupled Drupal Development Drupal Drupal Developer Frontend developer Blog Type Tech Is it a good read ? On

Mediacurrent: Expanding Open Source with WordPress

Wed, 11/11/2020 - 14:26

If you know us at Mediacurrent, you know we create amazing digital experiences with Drupal. Did you know we also support WordPress websites?

Since 2007, Mediacurrent has been the open source expansion partner for enterprises and global brands. As certified experts, we have a reputation for providing best-in-class digital solutions and growing long-term, strategic partnerships for clients like Weather.com, MagMutual, and Emory University

With thousands of implementations and thought leadership resources completed, we have been continuously looking for ways to add more value to our customers. We've seen a rising need in our Drupal community through hours of partnerships, and that need is more WordPress support. 

WordPress in the enterprise has risen 16%, driven largely by the rise of multiple CMS use.

- Source: The Rise of Multi-CMS in the Enterprise

Why the Expansion?

For over a decade, we have been helping customers migrate from WordPress to Drupal, and we've proven ourselves a trustworthy partner in the migration process. As we've grown, we’ve expanded our Drupal expertise into deep open source strategies—partnering with clients on a long-term basis to solve their technology challenges.

Many enterprise organizations that have standardized on Drupal will still have some non-Drupal sites in their ecosystem. That's where Mediacurrent comes in as a single-source digital partner. 


What We've Done So Far

Currently, Mediacurrent is assisting large-scale enterprises with their WordPress sites. What started as Drupal legacy clients have turned into an opportunity to better serve our customers. Our open source software clients came to us with similar pain points, and thanks to our long-term partnership, we were able to provide crucial benefits that provided a valuable impact on their return of investment, including but not limited to:

  • Engaging UX - Our recent WordPress customers faced the challenge of creating an engaging user experience. Mediacurrent planned for a full redesign of the website's look and feel, providing randing, design, and value proposition workshops and including considerations for persona needs and critical business objectives.
     
  • Data-driven Strategy - These organizations needed to maximize the return on their digital investment. Mediacurrent is continuing to incorporate best practices for content, page layout, navigation, lead generation, and search engine optimization.
     
  • Open Source Training - Designs were implemented using the Elementor page builder plugin for WordPress. Mediacurrent’s training team provided specialized instruction on Elementor page design to create page layouts and components. 
     
  • Post-Launch Support - Monthly support agreements help to optimize for performance and security, providing immediate value to our legacy customers. Security updates to WordPress and plugins can (and do) come at any moment. You must have a dedicated support team closely monitoring and upgrading the code regularly.

Where We're Going

Moving forward, we will expand our support for open source clients who maintain Drupal and WordPress websites within their organizations. If 2020 has taught us anything, it’s that Mediacurrent needs to pivot with our customers' needs and continue to provide the best solutions possible.

As your digital partner, Mediacurrent will evaluate your web properties by assessing several core functionalities including;

  • Security - Making sure your WordPress site stays updated and secure.
     
  • Responsive Design and Development - Mobile-first designs backed by data and user research.
     
  • Search Engine Optimization - We consider three factors when it comes to perfecting your on-page optimization: Page load times, Schema.org implementation, and CDN.
     
  • Content Authoring Experience - A seamless publishing workflow is the key to empower content creators. Tools like Elementor let teams create and design new page layouts on the fly using a drag and drop interface. We've found this very similar to Drupal's Layout Builder, but more advanced and easier to use. 

We see organizations growing, and the need to evolve our services to support others who have more than one CMS to manage. 

49% of enterprises are planning to expand to additional CMSs in the future.

- Source: The Rise of Multi-CMS in the Enterprise


How We Can Help 

Mediacurrent is excited to continue to expand our unique value proposition to organizations that aren’t standardized on a single platform and require peace of mind in terms of quality, security, and consistency. We have a reputation as a valued partner that is driven by growth strategy, risk mitigation, solving complex business problems, and producing real, bottom-line value with our solutions.

If you’re already running on Drupal and need help managing additional WordPress sites, or just have a lot of questions about migration, security, or future support, please reach out to the Mediacurrent team. We are available to discuss your websites' future, how we can help you efficiently manage your existing platforms, and provide a strategic roadmap that will keep your multi-CMS organization on the path to success