Drupal News

Ben's SEO Blog: Drupal SEO Checklist Module: How to Install, Configure and Use

Main Drupal Feed - Tue, 09/29/2020 - 20:14

https://www.drupal.org/project/seo_checklist The Checklist API module is required: https://www.drupal.org/project/checklistapi 

Credits & Thanks

Thank you to Travis Carden (TravisCarden on Drupal.org) for helping Volacci create and maintain the SEO Checklist module. Travis also created the required Checklist API module.

About the SEO Checklist Module

The SEO Checklist module uses Drupal SEO best practices to check your website for proper search engine optimization.

The SEO Checklist module and the original book from which this guide is based upon, were designed to work together. While the SEO Checklist module tells you what to do, the book (and this guide) tells you how to do it. Over the course of this guide, we go through the SEO Checklist module one task at... Read the full article: Drupal SEO Checklist Module: How to Install, Configure and Use

Dropsolid: New: Gitlab integration into Dropsolid Experience Cloud

Main Drupal Feed - Tue, 09/29/2020 - 13:28
29 Sep Nick Veenhof

Today, Dropsolid is proud to announce that all customers that have a project on Dropsolid Experience Cloud have been migrated to a private GitLab instance which enables in-browser code changes and extensive collaboration options to manage their code.

Collaborating and allowing code review with a direct deployment option to one of the environments or instantly loading a project locally, making a change and asking someone else to review and push has never been easier.

    Saving time with Open Source

    Dropsolid Experience Cloud powers more than 200 users that make code changes to one of our 2000+ environments every single day. To give you an idea, at the time of writing, the amount of commits pushed in a single day is above 150, and growing every day. If you could save 10 minutes everyday, by using great tooling, this could save one developer a whole working week a year, by bringing great Open Core technologies together and making them work like a harmonious orchestra. And this is only taking the time saved with taking the code portion of a digital project into account.

    Let me give you an example. A change could be to correct a spelling mistake in a project. Which could be easily fixed were it not that someone could work on 10+ different projects. Finding the project, making a git clone, making a feature branch, making the change, committing it and making a merge request would all be manual steps that could be avoided. 

    Notable features are:

    • Merge requests (also known as pull requests).
    • Discuss changes and improve code together.
    • Native integration with Dropsolid’s CI runners.
    • Single Authentication using the OAuth of Dropsolid Platform.
    • Take full control while protecting your main branch from rewriting its history.

    Dropsolid Experience Platform wants to bring the best of those Open Core technologies closer to the end user. That is why, next to Drupal, Mautic, Apache Solr & Apache Unomi we also chose to embed GitLab in our mix to create the only real Open Digital Experience Platform in the world that is loved and embraced by developers.

    In Phase 2 of our GitLab rollout we will also allow customers to enable Gitlab pipelines, either with runners that the customer brings or in packages that can be purchased at Dropsolid to run CI/CD tests with. It goes without saying that all official GitLab integrations also run on the Dropsolid Experience Cloud’s version of GitLab. 

    Stop working around limitations of other deployment platforms, choose openness today and sign up for the Dropsolid Experience Cloud.

    Specbee: A Comprehensive tutorial on the ColorBox Module for Drupal 9 (And how to extend it)

    Main Drupal Feed - Tue, 09/29/2020 - 12:07
    A Comprehensive tutorial on the ColorBox Module for Drupal 9 (And how to extend it) Megha Kundar 29 Sep, 2020 Top 10 best practices for designing a perfect UX for your mobile app

    Images play a significant role in improving the user experience of a website. A study shows that 90% of the information we pass on to our brains is visual. Many websites work around this theory alone and bombard users with tons of rich media like images and video files. Most of them overlook the presentation aspect of these media files and end up with a disappointing user experience. What they need is a tool like ColorBox that is an extremely lightweight jQuery plugin which allows you to display images elegantly and intuitively. The styles and functionalities are highly customizable via CSS and Javascript. The Drupal ColorBox module is compatible with Drupal 6, 7, 8, and now Drupal 9 too! In this article, you will learn how to configure, implement and further extend the ColorBox module for Drupal 9. 

    ColorBox for Drupal 

    The ColorBox module integrates with ColorBox jQuery plugin into Drupal. The plugin is a lightweight customizable lightbox for jQuery. Among the other competitor “box” modules that are used for similar purposes (Thickbox, Lightbox2, Shadowbox, Greybox, etc.), the ColorBox module is the most popular and has the highest number of installs. The usage of Drupal ColorBox doesn't just end with displaying uploaded images beautifully. It also supports styling for like videos, pdfs, node, taxonomy, webforms, iframed content and more. The styling can be controlled through the CSS so the appearance is highly customizable. Functionality is also easily customizable via the JS file without having the need to touch the HTML. It supports photo grouping as well and preloads upcoming images

    Steps to Install the ColorBox Module
    • Install the ColorBox module with composer. composer require 'drupal/colorbox:^1.6'
    • Download the ColorBox plugin 1.x.
       

               1. Using the Drush command

    (Note: If you are using the drush command to install the ColorBox plugin, you must enable the module and then run the below command)

    drush colorbox-plugin

               2. Manually download ColorBox plugin
    Download the Colorbox plugin and unpack in /libraries. Make sure that path to the plugin file looks like:

    “/libraries/colorbox/jquery.colorbox-min.js”
    •       Enable the Drupal ColorBox module.
    drush en -y colorbox

    Congratulations! You are now ready to use the features of the ColorBox module.

    Configuring the ColorBox Module

    Configure the Drupal ColorBox module by navigating to Configuration -> Media -> Colorbox settings.

              ColorBox ConfigurationHow to Create an Image Gallery Using ColorBox

    1.    To make an image gallery, we first need to add an image field for one of the content types. Choose the label name and then click on the save and continue button.

               Add an image field

    2.    Next step is to configure the field settings. We can add the default image when there are no images uploaded. An alternative text for accessibility purpose and a title. The allowed number of values settings says maximum upload limit for a field. Select the desired option and then click on the save field settings button.

              Configure Field Settings

    3.    Then we will set the other configurations for this image fields like Allowed file extensions, File directory, Maximum and Minimum image resolution, Maximum upload size, alt and title for the image and then click on save settings.

              More Configurations


    4.    Now, we are done image field configuration. Let’s set the formatting option for the image field created for ColorBox. Navigate to Manage display of the content type and then set the format option from the dropdown as ColorBox. Clicking on the gear next to the format option allows us to customize the image displayed. Once all the options are updated, click on the update button and then click on save option.

            Manage display of ColorBox

    5.    Now Let’s add some content into our ColorBox image gallery by clicking on Add content. We can change the order of images uploaded based on image weights. And then click on the save button. The display of the content will look as below.

           The ColorBox Image Gallery


    6.    Finally, clicking on any of the images displays the image within the ColorBox modal as shown below.


    You can also do the same with video embedded field.

    How to Integrate with the ColorBox Inline Module

    The Colorbox Inline module allows the user to open the content that is already on the page within the ColorBox.

    • Install the colorbox inline module composer require 'drupal/colorbox_inline:^1.2'
    •    Enable the module using drush command / Manually enable through drupal UI  
    drush en -y colorbox_inline
    • Drush en -y colorbox_inline
    • Open image in ColorBox modal which is on the page using a link
    • Navigate to add content -> Any content type which has body field 

    Change the text formatter from basic html to full html

    • Then click on the save button.

      Here in above example, data-colorbox-inline attribute of anchor tag can also contain class name instead of id. view image is a link where it opens an already existing image in a page (modify the changes according to your project requirements). We can use this module to render any content - video, webform, etc., in a similar manner.

      On viewing this page, you can see a link with the image. And on click of the view image link, a ColorBox popup will appear as shown in below image.

              ColorBox image popupHow to Integrate ColorBox With ColorBox Load Module

    The ColorBox Load module allows users to load the content into ColorBox using Ajax. With this module, users can specify a series of paths which when rendered will open a ColorBox with the content. It depends on the NG Lightbox module for paths admin interface. This method can be used to render nodes, pages, web forms and more.

    Install the colorbox load module

    composer require 'drupal/colorbox_load:^1.2' Enable the module using drush command / Manually enable through drupal UI 

    Implementing a login popup using ColorBox Load module. drush en -y colorbox_load

    1.    Configure the ColorBox Load module by navigating to Configuration -> Ng Lightbox (Under Media). We can configure the paths for which we want to provide the ColorBox modal display, width of the ColorBox modal, class for the lightbox modal and renderer options. (Choose your option as desired).

           Configuring the ColorBox Load module

    2.    Now we can see the Drupal ColorBox modal implemented for the login page by clicking on the login button on the homepage.

    How to Integrate ColorBox with Drupal Views

    For some websites, we might need a feature that can display a ColorBox modal for a list of images. This can be done with the help of the Views module.
    1.    Go to structure -> views -> add view.
    2.    Add the image field to view and configure the formatter to ColorBox and other settings accordingly and then save the view.

            Adding Views

    3.    Now take a look at the view that you have just created (In my case I have created a view as a page). You can see a list of images and when you click on one of them, the individual image is shown in the ColorBox popup window.

     

    The need for more interactive and user-friendly websites have given birth to various tools that improve user experiences. With images and other rich media being one of the vital factors for a successful website design, ColorBox does an amazing job at esthetically presenting images and other media. Drupal integrates seamlessly with this jQuery plugin with the ColorBox Drupal module. We hope this tutorial on the Drupal ColorBox module has helped you get a deeper understanding of this beneficial module. Want to know how our Drupal experts leverage powerful modules like these in their projects? Contact us now, we’d love to hear from you.

    Drupal Planet Drupal 9 Drupal 9 Module Drupal Development 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 A Comprehensive tutorial on the ColorBox Module for Drupal 9 (And how to extend it) Image Why the AngularJS and Drupal Combination will make you rethink your web strategy Image How to toggle between Dark and Light Mode in Drupal 8 (or 9) based on user preference Want to increase your organic visibility with Drupal? TALK TO OUR DRUPAL SEO EXPERTS 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

    Promet Source: Retooling Higher Ed Sites for the New and Next Normal

    Main Drupal Feed - Tue, 09/29/2020 - 03:49
    Covid-19 has presented higher education websites with distinct challenges. During a semester when it's iffy  whether students or faculty will be present on campus at all, a cohesive communications platform that offers easy access to all necessary updates, information, and resources is more important than ever before. Waubonsee Community College was ahead of the pandemic, reaching out to Promet Source for help in redeveloping its mywcc communications platform at the very start of 2020.

    undpaul: Managing web projects with Scrum

    Main Drupal Feed - Tue, 09/29/2020 - 00:00
    Overall goal of our projects is to create or enhance websites that exactly meet the specific requirements and expectations of our customers. More and more the path determines the success of the results. So we at undpaul decided some years ago to apply agile project management and now follow the Scrum framework.

    Debug Academy: A New Way to GovCon - A 2020 Recap

    Main Drupal Feed - Mon, 09/28/2020 - 15:25
    A New Way to GovCon - A 2020 Recap A new virtual experience with the same great outcome.

    This year was anything but ordinary when it comes to a lot of things, and Drupal GovCon was no exception. We enjoyed seeing the transition from a fully in-person to a fully online event, and how Drupal camps can still be successful no matter what curveballs are thrown at them. With that, we want to throw a big shout-out to everyone involved in putting together the camp this year and say cheers to another successful event.

    lindsey.gemmil… Mon, 09/28/2020

    Gábor Hojtsy: Testing Composer 2 RC1 with Drupal 9: huge memory and time savings; and what does it mean for Drupal

    Main Drupal Feed - Mon, 09/28/2020 - 14:46

    Drupal 8 and 9 core were already made compatible with Composer 2 back in May. Last week the Drupal package repository (packages.drupal.org) rolled out full support for Composer 2 as well. While Michael Anello did Drupal vs. Composer 2-alpha2 benchmarks in July and Malabya also did an even more detailed benchmark in July, various things have been improved in Composer 2 since July and the packages.drupal.org improvement should also show.

    Inspired by numbers posted by Konstantinos Skarlatos from a simple scenario to the #composer drupal.org/slack channel today, I went ahead and attempted to produce a reproducible scenario you can also try at home. I included all commands to copy-paste. There are no external dependencies other than a PHP executable on your command line and curl to download files as used. For reference, my PHP is as follows (definitely not the latest):

    $ php -v PHP 7.3.11 (cli) (built: Jun 5 2020 23:50:40) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies Set up the latest Composer 1 and 2 locally

    First let's grab the latest Composer versions locally. This will avoid any confusion as to which version is used when.

    $ curl https://getcomposer.org/composer-1.phar --output composer-1.phar $ php composer-1.phar -V Composer version 1.10.13 2020-09-09 11:46:34 $ curl https://getcomposer.org/composer-2.phar --output composer-2.phar $ php composer-2.phar -V Composer version 2.0.0-RC1 2020-09-10 15:39:45 Install Drupal 9 with create-project

    Make sure that we are not using cache and ask composer to profile itself. This got me two Drupal 9.0.6 copies, again to separate our testing environments properly.

    $ php composer-1.phar --no-cache --profile create-project drupal/recommended-project composer1site [...] [9.3MiB/41.02s] Memory usage: 9.35MiB (peak: 197.23MiB), time: 41.02s $ php composer-2.phar --no-cache --profile create-project drupal/recommended-project composer2site [...] [12.5MiB/18.29s] Memory usage: 12.48MiB (peak: 13.71MiB), time: 18.29s

    The time is cut in half but the peak memory usage had an even bigger drop to less than 7% of the Composer 1 memory peak with Composer 2.

    Adding and removing a Drupal module

    You only do site creation once for a site. Let's add and remove a Drupal module! Konstantinos tested with Metatag which sounds like a good one to do. While Metatag only has Drupal project dependencies, the savings are likely similar for projects with 3rd party dependencies.

    $ cd composer1site $ php ../composer-1.phar --no-cache --profile require drupal/metatag [...] [629.4MiB/65.35s] Memory usage: 629.36MiB (peak: 1557.29MiB), time: 65.35s $ php ../composer-1.phar --no-cache --profile remove drupal/metatag [...] [450.9MiB/47.98s] Memory usage: 450.85MiB (peak: 1377.67MiB), time: 47.98s $ cd .. $ cd composer2site $ php ../composer-2.phar --no-cache --profile require drupal/metatag [...] [13.7MiB/3.13s] Memory usage: 13.67MiB (peak: 14.23MiB), time: 3.13s $ php ../composer-2.phar --no-cache --profile remove drupal/metatag [12.1MiB/0.18s] Memory usage: 12.1MiB (peak: 12.49MiB), time: 0.18s

    Ok, that is pretty jaw dropping. Adding Metatag goes from 65 seconds down to 3 seconds. Removing Metatag goes from 48 seconds to 0.18(!) seconds. Memory usage goes down to 1% (one percent!), from a gigabyte and a half to 12-14 megabytes.

    What does this mean for Drupal?

    Given the explicit support on drupal.org, you should be able to use Composer 2 for your Drupal site builds whenever you are comfortable, maybe already in the RC stage or later on as it gets stable. Assuming any composer plugins you need are compatible. Drupal sites are often using cweagans/composer-patches, which itself still needs a patch to get compatible.

    Not everybody is using composer at all to build sites. However, an increasing number of drupal.org projects require external Composer dependencies to function. Based on last week's data from Ryan Aslett from the Drupal Association, 12% of drupal.org projects directly have a third-party Composer dependency. Another 6% have a Drupal dependency that in turn has a third-party Composer dependency. So even if we only look at direct and one-level indirect dependencies, 18% of Drupal.org projects require Composer to be installed properly. I also looked at various segments of projects and the ones requiring Composer are very well distributed. 15.2% of the top 500 projects (by usage) require Composer while 16.2% of the top 5000 do. So if you are not yet using Composer to build your Drupal sites, it seems to be only a matter of time. The improvements in Composer 2 should help a lot with its adoption I think.

    These improvements will also be crucial for the Automated Updates initiative which has Composer 2 compatibility on their roadmap as well. Signature verification is only possible with Composer 2 and the lower memory and time requirements allow it to be run from web requests.

    Finally, the downloadable tarballs of Drupal core are built with Composer 1 currently to make it easy to transition from a tarball based site to a Composer site. Allow Drupal 9 (including dev builds) to use Composer 2, part 2 is open to move that to Composer 2. Unfortunately a sizable blocker to that is Composer's "prefer-stable" setting cannot be relied on to produce a stable release. That would need more discussion and a solid resolution to move forward. There is less than 3 weeks before Drupal 9.1 is locked down, so your feedback there would be more than welcome!

    Danny Englander: Drupal 8 & 9 Tutorial: a Method to Group Fields in Layout Builder Using Ctools Entity View

    Main Drupal Feed - Sun, 09/27/2020 - 09:00

    I've been building Drupal 8 sites with Layout Builder over the past year. One feature that I think is missing is the ability to group specific fields inside a wrapper for enhanced theming; a layout within a layout if you will.

    There are a few issues open in core for this feature but these seem to be just in the planning stage right now. There are some workarounds to achieve this feature.

    • Create a view with an argument that just renders the fields in context to the entity item they are a part of.
    • Use an entity view via the contrib. module, Chaos Tool Suite, AKA Ctools.

    It is the second solution above that I will write about here as it is my favorite one and one which a developer friend of mine told me about. The idea behind Entity View is that you add some fields ...

    Danny Englander: Drupal 8 & 9 Tutorial: a Method to Group Fields in Layout Builder Using Ctools Entity View

    Main Drupal Feed - Sun, 09/27/2020 - 09:00

    I've been building Drupal 8 sites with Layout Builder over the past year. One feature that I think is missing is the ability to group specific fields inside a wrapper for enhanced theming; a layout within a layout if you will.

    There are a few issues open in core for this feature but these seem to be just in the planning stage right now. There are some workarounds to achieve this feature.

    • Create a view with an argument that just renders the fields in context to the entity item they are a part of.
    • Use an entity view via the contrib. module, Chaos Tool Suite, AKA Ctools.

    It is the second solution above that I will write about here as it is my favorite one and one which a developer friend of mine told me about. The idea behind Entity View is that you add some fields ...

    OpenSense Labs: Layout Builder vs Paragraphs

    Main Drupal Feed - Sat, 09/26/2020 - 13:30
    Layout Builder vs Paragraphs Gurpreet Kaur Sat, 09/26/2020 - 19:00

    Websites have overpowered the world of businesses today. There aren’t many business people left who do not have or want an online presence for their business. And websites are just the way to accomplish that. Now, building a website is not complicated at all, with just one youtube tutorial, you can do that. The tricky part is ensuring that it meets all the standards that the end user will desire. Websites built using Drupal and all its accompaniments are often considered to be up to the user standards. 


    From world renowned privately owned enterprises to governmental organisations, Drupal has successfully served everyone. Drupal’s success is primarily attributed to the versatility and functionality it can provide to the web designers and content creators throughout the process of website development.

    Continuing on the same lines, today we will discuss two such features in great detail to make you understand their importance, use and workings. We are going to talk about Layout Builder module, one of the most sought after modules in recent times, and Paragraphs module. Let’s dive right in.

    The Seasoned Paragraphs  This is how the paragraphs module will segregate your content into different paragraph types.

    If you are reading this article, you must be familiar with the various modules of Drupal. You must also be familiar with the needs of websites and how complicated they can become. To satiate those needs, I will be telling you about one of the most convenient and user-friendly modules, which is Paragraphs.

    Paragraphs module is a great tool that gives a high degree of editing power to the end users of a website. It does so by letting the end users choose predefined paragraph types that are independent from one another. This allows the web builder to avoid putting all the information in one WYSIWYG body type.

    With this module, you can add a hero image that would be the banner of your webpage, you can add images and you can add grids as well. All of this can be done by simply selecting the types with the same name. Can website design become any more easy?

    Although there are no default Paragraph types, you can easily create as many as you want. 

    It is up to you to decide how many columns you want and where you want them. On top of that you also get to decide how much leeway you want to give to your end-users in terms of future edits.

    The Modern Layout Builder With Layout builder, you can add sections with each having a set of regions for the content to be placed thereby resulting in more flexibility than Paragraphs

    The other convenient and user-friendly module is Layout Builder. Layout builder is a multi-functional tool that allows the content creators the ability to make content appear on their website as they wish to. 

    Layout Builder has multiple settings that can be used to build pages from the ground up. Its highlighting feature is the visual layouts. When a layout is selected, if the web builder wants, he can implement the same throughout his website for consistency and brand image. If that is not what is desired by the web builder, he can also create customised templates for individual pages. This kind of ease in design is unfound in other options. 

    Layout builder has become increasingly popular amongst designers and writers, and the reason is the power of customisation it provides. The below video by Dries Buytaert will give you a glimpse of what that really looks like, all you have to do is drag and drop.

    How Advantageous Can Paragraphs and Layout Builder Modules Be?

    I have already mentioned that Paragraphs and Layout Builders are two most popular modules in Drupal. So, how can I say this? I have reasons, validations and explanations for my claim, and all of them can be characterised as their advantages. People only make things popular because they like, and likability and advantageousness go hand-in-hand. So, let us delve right into them.

    Paragraphs  Layout Builder 
    • No limits for Paragraph types
    • Grouping and reusing of Paragraph types
    • Flexible content model 
    • Simple and clean structure
    • Multilingual support for content 
    • Build from scratch 
    • Control over the layouts you want
    • Use of block types
    • Better structures for content 
    • Minimal coding required 
    • Enhanced authoring experience 
    Paragraphs and Its Merits 

    Paragraphs come with an array of features that only enhance its beneficial aspects. This may seem like a simple tool, but it has the ability to make your website design as appealing as it can get. 

    Forget limits 

    Let us start with the most helpful merit and that is Paragraph’s limitlessness. There is no limit as to the number of configurations you can create using Paragraphs. You want 20 different paragraph types scattered throughout your webpage, go for it!

    Group and reuse 

    Not only can you group various fields of your content into new complex elements, you can also reuse the components you have already created.  Can you possibly tell me that this does not fascinate you?

    Flexible to the core 

    Moving on, a website is constantly under construction, there is always going to be something or the other that needs to be updated, corrected or added. Most of the time these changes are not necessarily huge, and you do not need to change the entire layout. The advantage of Paragraphs is that it provides a great deal of flexibility in the content model, so that minor changes can easily be made by the content authors with ease.

    Simple, yet impactful 

    Paragraphs are often considered to be too plain and bland. Many regard this as a disadvantage, however I tend to disagree here. Yes, paragraphs are simple, but that is a benefit because simplicity means few clicks. The result; you do not need to be an expert to use this module, a content editor with minimal experience in Drupal can also use it with the least amount of effort. 

    Its intuitiveness helps the web authors and builders to add pop-ups and quotes and easily rearrange them. On top of this, the simplicity of Paragraphs also means that your design will not seem cluttered, resultantly, your site will not slow down in its performance. Now, you tell me how can simple be bad for you, when it is actually avoiding a mess? 

    Multilingual Setup 

    Websites are becoming more multilingual in the present, so the setup of multiple languages in the content becomes somewhat of a necessity. Here, the paragraph module comes quite handy as it works within a multilanguage setup. 

    Layout Builder and Its Merits

    So far, you must have been impressed with the advantages of paragraphs, now prepare to be dazzled by the umpteen merits of the layout builder.

    Builds from scratch 

    The best feature of a layout builder is that it gives the developer the potential and resources to build something from the ground up. All you have to do is make custom block types, arrange them as you want and fill them up with content, pictures or videos and you are done.

    Lets you be in control

    With a layout builder, you will always be in control. I say this because customisation is ingrained in its formula. You can use it to make configuration of your liking, and if you want, you can implement your created template and use it throughout your website. The layout builder also allows you to build customised landing pages that will have your creative stamp all over it.

    Blocks all the way

    Blocks can be termed as the foundation of the layout builder, without them, it would be hard to imagine. Blocks are what help you get an idea of how your content would be displayed on the actual page. From globally available blocks suitable for all pages to uniquely build custom inline blocks made for specific pages, layout builder has your needs covered.

    Structures your information 

    Have you ever been to a website that had no structure at all? The information was all over the place and you couldn't tell where it began and where it ended? If you have, then you know how important structure is for a website. Layout builder helps you build a particular structure for your website that would organise your content appropriately. If you want e-form, customer testimonials and other such content information on one page, layout builder will provide a template that will segregate the information in a way that it does not look haphazard. 

    Less custom code 

    Layout Builder is popular because it mandates less custom code. This means that the module is less time-consuming and less complicated, once you become familiar with it. The use, maintenance and creation of content becomes easy with less code involved.

    Better authoring experience

    A website’s content can easily make or break it, so it has to be pitch perfect and in accordance to the needs of the site’s target audience. With a layout builder, you can be at ease with this aspect. It has proven to enhance the authoring experience of content creators by providing an improved interface to effectively communicate data about everything the author wants to.

    Are Any Limitations Holding Them Back?

    With the number of benefits you have read above for both paragraphs and layout builder, you might be inclined to think that they could not possibly have any demerits. Unfortunately, they do lack in some aspects. 
     

    Paragraphs Layout Builder 
    • Not a core module
    • Becomes messy with intricate layouts
    • Dependency on developers.
    • Cannot simply drag and drop sections
    • May not connect nodes
    • Template combinations may become problematic 
    • May be difficult to achieve consistency with the customised layouts
    • Needs time to learn and adapt 
    • Needs to be customised with the use of other modules 
    Challenges of Paragraphs module

    Starting with paragraphs, its drawbacks are not necessarily drawbacks, they are more like functional mismatches to your needs as a web developer. Let us find out how.

    Not part of Drupal core

    Unlike Layout Builder, which was made a part of Drupal core ecosystem in Drupal 8.7, the paragraphs module is not part of the Drupal core. Although it does not come as default in Drupal, it is still quite popular. Being a contributed module, you would have to separately install it.

    Can only handle simplicity 

    Paragraphs were intended to make website design simpler for the non-technical folks. The problem with simplicity is that it cannot handle intricacy. So, when your content is anything but simple, paragraphs become messy and the output is just not upto the mark. With more nested paragraphs, the editing experience may slow down. Also, to ensure that the paragraphs are being displayed as preview, you have to always customise the Form display. If you do not do that, you will end up with a mega-form. 

    Dependence on web developer  

    Paragraphs also do not provide free reins to the content author. He would have to be heavily reliant on the developer for setting up even the tiniest of changes.

    No drag and drop 

    The ease of picking up a section from one part of the layout and dropping it in a different part is unfound here.

    Challenges of Layout builder module

    While the problem for paragraphs was its simplicity, the problems for layout builder stem out of its complexities. Let us understand how.

    Challenges with nodes

    Every blog, article, forum topic and even pages are stored as nodes in Drupal. Now, when a web builder makes new content, most often, he or she would relate it with an old piece of information. With layout builder, you may notice that block content is not entirely connected to nodes.

    Challenges with combinations 

    The templates in a layout builder can be used any way the designer wants to. He or she can make a number of combinations with the templates. However, when a custom-made layout is used with a template-based one, it becomes quite tricky to get right.

    Challenges with consistency 

    With layout builder, you can implement one layout throughout your website with ease. Although it is true, when customised layouts are the centre of attention for the entire website, it may be difficult to enforce sitewide consistency.

    Challenges with control 

    This is going to a little sound paradoxical, the layout builder provides more control to the content editors as opposed to paragraphs. When you do not trust your content creators’ judgement implicitly, this can become problematic.

    Challenges with learning 

    The switch to layout builder comes with a learning curve for the content writers, which can take some time. This module does not operate with form-filling like others, so a change in the way the work is done becomes mandatory and time consuming. 

    Challenges with dependency on additional modules 

    The layout builder may need customisation and that can be achieved through the help of other Drupal modules. Block Blacklist and Layout Builder Restrictions aid in limiting the block type and layouts, while Layout Builder Modal aids in enhancing the user experience.

    Which Would Win the Race?

    Before I answer this, it is important to know that the selection of a module depends on the developer’s needs. So, the winner in this module race would vary in accordance to the needs and wants of the site and its developers, both the designer and the content author. Let us have a look at these needs.

    Paragraphs is suitable when Layout Builder is suitable when
    • You need to process content again;
    • You need to accommodate nodes;
    • You need nested paragraphs.
    • You need landing pages;
    • You need a customised web page;
    • You need to tweak the existing templates. 
    Paragraphs and reuse 

    The paragraphs module is ideal for situations that mandate simple solutions, with reuse being the primary answer. By reuse, I mean using the existing content again, while making changes in the website. With paragraphs you can use the earlier content in an entirely new webpage with ease. You can also use the same content in accordance to the nodes.

    Apart from this, when nested paragraphs are of the essence for your content, paragraphs are bound to become your best friend. 

    Layout Builder and customisation 

    The suitability of layout builder varies a great deal from paragraphs primarily because reuse is not a term this module uses much. It is all about the new energy.

    Whether you want to create new landing pages with a variety of blocks, views and fielded content structured like grids or you want to customise a page with a layout that you created yourself and is one of a kind, layout builder will help you. 

    Apart from creating completely new pages from the ground up, layout builder is also perfect for tweaking the existing pages with templated layouts. 

    You have to remember that both of these modules are configurations, they will not make the content for you, they would simply arrange it. So, when you make your choice ensure that you have a pre-formed vision and awareness of the layout you want for your pages. Once you have that the choice would become very easy for you. If the choice is still difficult for you, know that you can use the combination of both of these in your content configuration, so you do not really have to decide.

    The Bottom Line 

    Both these modules are quite amazing at the work they do for your websites, so choosing the better one out of the two is somewhat tricky. Of course, like I have told you that your need plays a pivotal role in this decision. However, ending this article without a clear winner would make it seem somewhat incomplete and I do not want that. 

    So, for me layout builder is the better choice and I will tell you why. The kind of intricacy layout builder offers and the control I would get for layouts for each page, that too with consistency, makes the layout builder the one for me. 

    Apart from these two, Gutenberg is also gaining some traction as a flexible module. However, it stores the content in a large body field and this often compromises the structure of the content.

    I also want to mention one more fact and it is that flexibility often comes with a price. Having a really flexible content can often impede with the accessibility of  your website as your content may lose its semantic markup. Also make sure to add metadata to your content in addition to flexible content components..

    All in all, Drupal allows you to create websites and their content in a well-structured manner and despite what module you choose, the end result is always going to be satisfactory. Contact us at hello@opensenselabs.com to get the best of both the worlds in your next Drupal project.

    blog banner blog image Drupal module layout builder paragraphs Drupal Website Design Blog Type Articles Is it a good read ? On

    OSTraining: OSTips - How to Create New Date & Time Formats in Drupal

    Main Drupal Feed - Fri, 09/25/2020 - 15:10

    I don't know about you, but as a site builder when I add a date field to a content type in Drupal, and I tell it I do NOT want the time just the date and then I go to a node, and I enter the date, and it shows me both the date AND the time... it kind of drives me crazy!

    How do we fix it? In this video, I'm going to show you how to create new date & time formats in Drupal sites, so you don't have to worry about getting a time and a date when you only want the date.  And, as a bonus, you'll get it in the format that you want.

    Let's get started!

    OpenSense Labs: The unlikely Drupalists: An electrical engineer who became a frontend developer

    Main Drupal Feed - Fri, 09/25/2020 - 11:39
    The unlikely Drupalists: An electrical engineer who became a frontend developer Tuba Ayyubi Fri, 09/25/2020 - 17:09

    Sometimes the Road of Life Takes an Unexpected Turn and You have No Choice but, to Follow it to End Up in the Place You are Supposed to Be.
    - Anonymous

    A thought that’s crossing my mind while I type this is I never expected myself to be here as a writer. For me, since childhood, I have always been told that I’d end up being a doctor. And I always thought I would. But as I grew up, I realized that it wasn’t what I actually wanted at all. Life did take an unexpected turn and I am where I should be today. Something like this hits each one of us at a point in life. 

    At OpenSense Labs, we have Lakshay, who started off working as an Electrical engineer and went on to become an Acquia-certified front end developer. Let’s look at his experience with OSL and Drupal! 


    Tuba: So Lakshay, I heard you pursued electrical engineering. Tell me about your education.

    Lakshay: I switched to three different schools in the last 3 years of my school life. I wanted to start something of my own while I was in high school but my parents always told me I lacked experience. Although I studied electrical engineering, I have had a lot of interest in developing websites for a very long time.

    Tuba: How the shift to web development finally happened and how did it all begin at OpenSense Labs?

    Lakshay: A very old friend of mine was already working with OpenSense Labs. He told me that he was working with a web development company and asked me to come and join them. So, I gave it a shot and joined OSL. When I reached there, I had no idea what I had to do, because everybody there was a professional developer. So I joined them as an intern and started watching tutorial videos and studying how to build a website and then tried coding it and showing my work to senior pros like Vinit and Pritam at the end of the day. After 3 months of the internship, I was hired as a full-time front end developer. A year later, I was an Acquia-certified front end specialist. I was promoted to the position of a senior frontend developer. Since then a lot of interns have worked under me and I’ve trained them sharing whatever I learned during my early days as an intern.

    Tuba: That’s amazing! How is your experience with Drupal?

    Lakshay: It’s been 3 years now and the experience so far has really been great. The Drupal community is really amazing. I’ve attended many camps where I got a chance to interact with people working across the globe.

    I got to learn about different emerging technologies and how Drupal is rising with these technologies thereby embracing innovation always. I’ve presented sessions in DrupalCamp Delhi 2019 and DrupalCon Amsterdam 2019

    Tuba: Do you think you made the right decision?

    Lakshay: I definitely think I made the right decision. While I was working in the electrical industry for 6 months, it felt like a job, but working here felt like something that I willingly wanted to do. I’m following my passion, working with Drupal.

    Tuba: That’s great! Thank you for your time Lakshay. It’s been great talking to you. I hope people are inspired to make decisions and accept the turns that life takes as you did. 

    These turns can be the most challenging thing to experience, but it is the starting point of something great in your life. There is always light at the end of the tunnel, take your time to find it! The journey, I promise, will be way better than the destination. Good luck!

    blog banner blog image Drupal Frontend developer Blog Type Articles Is it a good read ? On

    Centarro: Latest Commerce API release adds support for on-site payments

    Main Drupal Feed - Wed, 09/23/2020 - 18:45

    Our Drupal contributions and client engagements this year have let us continue to expand JSON:API support in Drupal Commerce. We released the first alpha version of the Commerce API module earlier this year and have been constantly working on it since then, resulting in the module's 1.0-beta4 release last week.

    What's new in the latest release?

    One feature that has been heavily requested is the ability to use on-site payment gateways like Braintree or Stripe in a decoupled context, and guess what? This is now possible since the latest release! Furthermore, "manual" payment gateways (i.e "offline" payments such as cash on delivery...) are now also fully supported.

    Great! But... how does this work?

    The frontend application is responsible for collecting (usually through a gateway's JS library) and submitting a "payment_instrument" to the backend. The payment instrument instructs the Drupal Commerce backend how to process a customer's payment through the specified payment gateway.

    This payload for Braintree demonstrates the payment instrument format:

    { "payment_instrument":{ "payment_gateway_id":"braintree", "payment_method_type":"credit_card", "payment_details":{ "card_type":"Visa", "payment_method_nonce":"xxxxxxxxxx", "last2" => 18, } }

    Note that the expected "payment_details" differs for each payment gateway.

    The "payment_instrument" is submitted by performing a "PATCH" request to the /jsonapi/checkout/{commerce_order} resource.

    Read more

    Centarro: Latest Commerce API release adds support for on-site payments

    Main Drupal Feed - Wed, 09/23/2020 - 18:45

    Our Drupal contributions and client engagements this year have let us continue to expand JSON:API support in Drupal Commerce. We released the first alpha version of the Commerce API module earlier this year and have been constantly working on it since then, resulting in the module's 1.0-beta4 release last week.

    What's new in the latest release?

    One feature that has been heavily requested is the ability to use on-site payment gateways like Braintree or Stripe in a decoupled context, and guess what? This is now possible since the latest release! Furthermore, "manual" payment gateways (i.e "offline" payments such as cash on delivery...) are now also fully supported.

    Great! But... how does this work?

    The frontend application is responsible for collecting (usually through a gateway's JS library) and submitting a "payment_instrument" to the backend. The payment instrument instructs the Drupal Commerce backend how to process a customer's payment through the specified payment gateway.

    This payload for Braintree demonstrates the payment instrument format:

    { "payment_instrument":{ "payment_gateway_id":"braintree", "payment_method_type":"credit_card", "payment_details":{ "card_type":"Visa", "payment_method_nonce":"xxxxxxxxxx", "last2" => 18, } }

    Note that the expected "payment_details" differs for each payment gateway.

    The "payment_instrument" is submitted by performing a "PATCH" request to the /jsonapi/checkout/{commerce_order} resource.

    Read more

    Four Kitchens: Drupal 10 Is Coming, and Much Sooner Than Expected—But That’s Not a Bad Thing

    Main Drupal Feed - Wed, 09/23/2020 - 17:09

    Working in digital design and development, you grow accustomed to the rapid pace of technology. For example: After much anticipation, the latest version of Drupal was released this summer. Just months later, the next major version is in progress.

    At July’s all-virtual DrupalCon Global, the open-source digital experience conference, platform founder Dries Buytaert announced Drupal 10 is aiming for a June 2022 release. Assuming those plans hold, Drupal 9 would have the shortest release lifetime of any recent major version.

    For IT managers, platform changes generate stress and uncertainty. Considering the time-intensive migration process from Drupal 7 to 8, updating your organization’s website can be costly and complicated. Consequently, despite a longtime absence of new features, Drupal 7 still powers more websites than Drupal 8 and 9 combined. And, as technology marches on, the end of its life as a supported platform is approaching.

    Fortunately, whatever version your website is running, Drupal is not running away from you. Drupal’s users and site builders may be accustomed to expending significant resources to update their website platform, but the plan for more frequent major releases alleviates the stress of the typical upgrade. And, for those whose websites are still on Drupal 7, Drupal 10 will continue offering a way forward.

    The news that Drupal 10 is coming sooner rather than later might have been unexpected, but you still have no reason to panic just yet. However, your organization shouldn’t stand still, either.

    Image via Dri.es The End for Drupal 7 Is Still Coming, but Future Upgrades Will Be Easier

    Considering upgrading to Drupal 8 involves the investment of building a new site and migrating its content, it’s no wonder so many organizations have been slow to update their platform. Drupal 7 is solid and has existed for nearly 10 years. And, fortunately, it’s not reaching its end of life just yet.

    At the time of Drupal 9’s release, Drupal 7’s planned end of life was set to arrive late next year. This meant the community would no longer release security advisories or bug fixes for that version of the platform. Affected organizations would need to contact third-party vendors for their support needs. With the COVID-19 pandemic upending businesses and their budgets, the platform’s lifespan has been extended to November 28, 2022.

    Drupal’s development team has retained its internal migration system through versions 8 and 9, and it remains part of the plan for the upcoming Drupal 10 as well. And the community continues to maintain and improve the system in an effort to make the transition easier. If your organization is still on Drupal 7 now, you can use the migration system to jump directly to version 9, or version 10 upon its release. Drupal has no plans to eliminate that system until Drupal 7 usage numbers drop significantly.

    Once Drupal 10 is ready for release, Drupal 7 will finally reach its end of life. However, paid vendors will still offer support options that will allow your organization to maintain a secure website until you’re ready for an upgrade. But make a plan for that migration sooner rather than later. The longer you wait for this migration, the more new platform features you’ll have to integrate into your rebuilt website.

    Initiatives for Drupal 10 Focus on Faster Updates, Third-Party Software

    In delivering his opening keynote for DrupalCon Global, Dries Buytaert outlined five strategic goals for the next iteration of the platform. Like the work for Drupal 9 that began within the Drupal 8 platform, development of Drupal 10 has begun under the hood of version 9.

    A Drupal 10 Readiness initiative focuses on upgrading third-party components that count as technological dependencies. One crucial component is Symfony, which is the PHP framework Drupal is based upon. Symfony operates on a major release schedule every two years, which requires that Drupal is also updated to stay current. The transition from Symfony 2 to Symfony 3 created challenges for core developers in creating the 8.4 release, which introduced changes that impacted many parts of Drupal’s software.

    To avoid a repeat of those difficulties, it was determined that the breaking changes involved in a new Symfony major release warranted a new Drupal major release as well. While Drupal 9 is on Symfony 4, the Drupal team hopes to launch 10 on Symfony 6, which is a considerable technical challenge for the platform’s team of contributors. However, once complete, this initiative will extend the lifespan of Drupal 10 to as long as three or four years.

    Other announced initiatives included greater ease of use through more out-of-the-box features, a new front-end theme, creating a decoupled menu component written in JavaScript, and, in accordance with its most requested feature, automated security updates that will make it as easy as possible to upgrade from 9 to 10 when the time comes. For those already on Drupal 9, these are some of the new features to anticipate in versions 9.1 through 9.4.

    Less Time Between Drupal Versions Means an Easier Upgrade Path

    The shift from Drupal 8 to this summer’s release of Drupal 9 was close to five years in the making. Fortunately for website managers, that update was a far cry from the full migration required from version 7. While there are challenges such as ensuring your custom code is updated to use the most recent APIs, the transition was doable with a good tech team at your side.

    Still, the work that update required could generate a little anxiety given how comparatively fast another upgrade will arrive. But the shorter time frame will make the move to Drupal 10 easier for everybody. Less time between updates also translates to less deprecated code, especially if you’re already using version 9. But if you’re not there yet, the time to make a plan is now.

    The post Drupal 10 Is Coming, and Much Sooner Than Expected—But That’s Not a Bad Thing appeared first on Four Kitchens.

    Four Kitchens: Drupal 10 Is Coming, and Much Sooner Than Expected—But That’s Not a Bad Thing

    Main Drupal Feed - Wed, 09/23/2020 - 17:09

    Working in digital design and development, you grow accustomed to the rapid pace of technology. For example: After much anticipation, the latest version of Drupal was released this summer. Just months later, the next major version is in progress.

    At July’s all-virtual DrupalCon Global, the open-source digital experience conference, platform founder Dries Buytaert announced Drupal 10 is aiming for a June 2022 release. Assuming those plans hold, Drupal 9 would have the shortest release lifetime of any recent major version.

    For IT managers, platform changes generate stress and uncertainty. Considering the time-intensive migration process from Drupal 7 to 8, updating your organization’s website can be costly and complicated. Consequently, despite a longtime absence of new features, Drupal 7 still powers more websites than Drupal 8 and 9 combined. And, as technology marches on, the end of its life as a supported platform is approaching.

    Fortunately, whatever version your website is running, Drupal is not running away from you. Drupal’s users and site builders may be accustomed to expending significant resources to update their website platform, but the plan for more frequent major releases alleviates the stress of the typical upgrade. And, for those whose websites are still on Drupal 7, Drupal 10 will continue offering a way forward.

    The news that Drupal 10 is coming sooner rather than later might have been unexpected, but you still have no reason to panic just yet. However, your organization shouldn’t stand still, either.

    Image via Dri.es The End for Drupal 7 Is Still Coming, but Future Upgrades Will Be Easier

    Considering upgrading to Drupal 8 involves the investment of building a new site and migrating its content, it’s no wonder so many organizations have been slow to update their platform. Drupal 7 is solid and has existed for nearly 10 years. And, fortunately, it’s not reaching its end of life just yet.

    At the time of Drupal 9’s release, Drupal 7’s planned end of life was set to arrive late next year. This meant the community would no longer release security advisories or bug fixes for that version of the platform. Affected organizations would need to contact third-party vendors for their support needs. With the COVID-19 pandemic upending businesses and their budgets, the platform’s lifespan has been extended to November 28, 2022.

    Drupal’s development team has retained its internal migration system through versions 8 and 9, and it remains part of the plan for the upcoming Drupal 10 as well. And the community continues to maintain and improve the system in an effort to make the transition easier. If your organization is still on Drupal 7 now, you can use the migration system to jump directly to version 9, or version 10 upon its release. Drupal has no plans to eliminate that system until Drupal 7 usage numbers drop significantly.

    Once Drupal 10 is ready for release, Drupal 7 will finally reach its end of life. However, paid vendors will still offer support options that will allow your organization to maintain a secure website until you’re ready for an upgrade. But make a plan for that migration sooner rather than later. The longer you wait for this migration, the more new platform features you’ll have to integrate into your rebuilt website.

    Initiatives for Drupal 10 Focus on Faster Updates, Third-Party Software

    In delivering his opening keynote for DrupalCon Global, Dries Buytaert outlined five strategic goals for the next iteration of the platform. Like the work for Drupal 9 that began within the Drupal 8 platform, development of Drupal 10 has begun under the hood of version 9.

    A Drupal 10 Readiness initiative focuses on upgrading third-party components that count as technological dependencies. One crucial component is Symfony, which is the PHP framework Drupal is based upon. Symfony operates on a major release schedule every two years, which requires that Drupal is also updated to stay current. The transition from Symfony 2 to Symfony 3 created challenges for core developers in creating the 8.4 release, which introduced changes that impacted many parts of Drupal’s software.

    To avoid a repeat of those difficulties, it was determined that the breaking changes involved in a new Symfony major release warranted a new Drupal major release as well. While Drupal 9 is on Symfony 4, the Drupal team hopes to launch 10 on Symfony 6, which is a considerable technical challenge for the platform’s team of contributors. However, once complete, this initiative will extend the lifespan of Drupal 10 to as long as three or four years.

    Other announced initiatives included greater ease of use through more out-of-the-box features, a new front-end theme, creating a decoupled menu component written in JavaScript, and, in accordance with its most requested feature, automated security updates that will make it as easy as possible to upgrade from 9 to 10 when the time comes. For those already on Drupal 9, these are some of the new features to anticipate in versions 9.1 through 9.4.

    Less Time Between Drupal Versions Means an Easier Upgrade Path

    The shift from Drupal 8 to this summer’s release of Drupal 9 was close to five years in the making. Fortunately for website managers, that update was a far cry from the full migration required from version 7. While there are challenges such as ensuring your custom code is updated to use the most recent APIs, the transition was doable with a good tech team at your side.

    Still, the work that update required could generate a little anxiety given how comparatively fast another upgrade will arrive. But the shorter time frame will make the move to Drupal 10 easier for everybody. Less time between updates also translates to less deprecated code, especially if you’re already using version 9. But if you’re not there yet, the time to make a plan is now.

    The post Drupal 10 Is Coming, and Much Sooner Than Expected—But That’s Not a Bad Thing appeared first on Four Kitchens.

    Drupal blog: A successful Google Summer of Code – thanks to our student, mentors and Drupal community!

    Main Drupal Feed - Wed, 09/23/2020 - 15:10

    Google Summer of Code (GSoC) is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school or college. In the 16th year of the program, 1106 students from 65 countries have successfully completed Google Summer of Code in 2020, including Drupal!

    The Drupal Association’s Community Liaison, Rachel Lawson, caught up with those taking part in GSoC on Drupal related projects this year, to find out how things went, what they learned along the way, and what their future may hold.

    You are invited to watch our “Community Chat”, with Vishal Chaudhary, Shawn McCabe, and Ryan Szrama.

    Drupal blog: A successful Google Summer of Code – thanks to our student, mentors and Drupal community!

    Main Drupal Feed - Wed, 09/23/2020 - 15:10

    Google Summer of Code (GSoC) is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school or college. In the 16th year of the program, 1106 students from 65 countries have successfully completed Google Summer of Code in 2020, including Drupal!

    The Drupal Association’s Community Liaison, Rachel Lawson, caught up with those taking part in GSoC on Drupal related projects this year, to find out how things went, what they learned along the way, and what their future may hold.

    You are invited to watch our “Community Chat”, with Vishal Chaudhary, Shawn McCabe, and Ryan Szrama.

    The Savvy Few: Accessing the current node ID in Drupal

    Main Drupal Feed - Wed, 09/23/2020 - 14:03

    From time to time you just need the node ID of the current node to get things done. In Drupal 7 you simply used the arg() function to do this, this approach no longer works for Drupal 8 and onwards because arg() is deprecated.

    The Savvy Few: Accessing the current node ID in Drupal

    Main Drupal Feed - Wed, 09/23/2020 - 14:03

    From time to time you just need the node ID of the current node to get things done. In Drupal 7 you simply used the arg() function to do this, this approach no longer works for Drupal 8 and onwards because arg() is deprecated.

    Pages