Talking Drupal: Talking Drupal #370 - A Smaller Core

Today we are talking about A Smaller Core with Théodore Biadala.

For show notes visit: www.talkingDrupal.com/370

Topics
  • What is meant by a smaller core
  • What modules have been removed already
  • What is the process
  • Chopping block terminology
  • Which modules are under discussion
  • When they go to contrib is there a maintainer first
  • What is the impact to users of the module
  • How long will they be maintained in contrib
  • Why is this important
  • What modules are next
  • What is the commitment to being a core system maintainer
  • Is there going to a sub release process
Resources Guests

Théodore Biadala - read.theodoreb.net @nod_

Hosts

Nic Laflin - www.nLighteneddevelopment.com @nicxvan John Picozzi - www.epam.com @johnpicozzi Tearyne Almendariz - @tearyneg

MOTW

Swagger UI for OpenAPI UI Swagger UI is a javascript library which allows a user to explore the api documentation for a web services API. This module provides the Swagger UI library for display of OpenAPI specifications within Drupal site. OpenAPI UI is required to use the project, as it provides the underlying architecture.

Ramsalt Lab: DrupalCon through the eyes of a Project Manager

DrupalCon through the eyes of a Project Manager

Image removed.

Jessica Denkelaar

Drupal developer 24.10.2022 Image removed.

In September Ramsalt traveled to Prague to attend DrupalCon 2022. Since we are a fully remote company these events are important. Not just to see each other in person, but also to learn more about Drupal and its current technical state. It’s educational, inspirational, but also a good team building experience. This year it was Nina’s first time at DrupalCon. Nina is one of our project managers who is young, eager and willing to learn more about the technical aspects of Drupal so she can use the knowledge to improve her day-to-day project management routines. Since DrupalCon is mostly attended by developers we wanted to interview Nina about how she experienced her first DrupalCon as a project manager.

Hi Nina, it was your first time at DrupalCon. How did you experience it? 

I expected a full on developer conference, but I was really surprised at how many non-technical sessions they offered. I imagined it to be nerds developing together but it really surprised me with the diversity of topics and people. For me as a PM there were a lot of interesting talks, presentations and workshops.

You are a project manager; were there enough sessions for you and if so, what sessions did you like the most?

There was a good mix of talks I could attend as a project manager. I already have some technical understanding and also want to learn more about sitebuilding, configurations, testing, modules and WYSIWYG editors. Sometimes I needed to zoom out a bit on the technical sessions because it got too much into coding details.

Which sessions did you like the most?

I really liked the keynote from the Estonian leader about the next big things for digital societies and the one about facing client conflicts in digital projects. As for the technical sessions I liked the one about long-term maintenance of Drupal websites and the session where they talked about the importance of test automations. The maintaining Drupal session gave me a real inside on field and entity strategies and how to work with permissions and views. Which can be really helpful when having conceptual meetings with clients in the early stages of a project. As for the test automation session it was great to discover the automation possibilities, because testing is such a huge part of the PM work and can be crucial for delivering good quality sites.

Another super interesting talk was “Mind the last 20%!!!”. Which was about how to handle the last 20% of a project, which is usually the most critical phase. They had a lot of good recommendations and best practices on how to allocate project resources.

How did you like the community at DrupalCon and were you able to network on DrupalCon?

I really liked the diversity of the people reaching from developers, hosting companies, CEOs, PMs to other Drupal agencies. I did make valuable connections and had interesting talks with other IT agencies about similar problems they are facing.

Would you recommend other project managers to attend DrupalCon?

Yes! Not only because you are stepping out of your comfort zone but attending technical sessions will benefit the skillset of every project manager. It is important that we, to some extent, have technical knowledge and can support developers with technical decisions and sometimes question solution approaches.

These are the sessions that Nina is recommending to see if you didn’t had time to check it out on DrupalCon (you can only watch the sessions if you attended DrupalCon or bought a streaming ticket):

#! code: Drupal 9: Using Drupal Content Moderation Workflows To Create Promoted Pages

The content moderation module in Drupal core is powerful way of allowing content to pass through a moderation workflow. This allows you to create workflows that take content from draft modes into a published state and back again.

Each content moderation state can have a "published" setting that tells Drupal if an item of content in this state should be considered as published. This means that if a page of content is put into a published state then users with the "view published content" permissions can view it.

Users would need the opposite permission "view any unpublished content" to be able to see a content in a state without this flag set.

It is possible to create multiple content moderation states with the "published" setting enabled. For example, you might have a workflow where users can set items of content into a "review" workflow in order to schedule it being updated but still have the content available. The content can then be moved into an unpublished state or updated and put back into a default published state.

The fact that this is possible got me thinking about how this system could be used to provide additional features on a site. It turns out that it is possible to create a workflow moderation state that is used as a way of promoting content. This would be used in the same way as the 'sticky' or 'front page' fields that come with Drupal.

In this article I will go through how to setup an additional published workflow state that can be used as a flag like this. I'll then go on to show how this can be extracted as information in the node templates.

Setting Up An Additional Published State

When you first install content workflow module you will get the Draft and Published states created for you. You just need to set up an additional state that you will use as a flag. For example, this could be "Promoted" but what you use depends on what you want to use it for.

Read more.

Salsa Digital Drupal-Related Articles: DrupalSouth 2022 wrap-up

Image removed.Day 1 Day 1 saw the Salsa staff hit the conference rooms, starting with an enlightening keynote from Zaidul Alam, the current board director and national data lead of GovHack Australia Limited. He spoke about GovHack including its relationship with open source and some of the projects that have come out of the GovHack weekend hackathons.  Below are some key takeaways from some of the other day 1 sessions. Managing a managed service: An exercise in automating the D8 to D9 upgrade for over 170 websites  By Alistair O’Neill & Yvonne Norris from GovCMS/the Department of Finance This session reflected on the work automating the move for 170+ GovCMS websites from Drupal 8 to Drupal 9. Lessons learnt will be fed into the next project, moving 280+ sites from D9 to D10.

Droptica: Streamlined Layout Builder. Overview of the Bootstrap Layout Builder Module

Image removed.

Layout Builder is a complex functionality that, as soon as it’s installed, may not suit every website. However, it can be customized to work appropriately for almost any website. Such a procedure may seem complicated and costly. Fortunately, there are modules available to extend the standard functionality. In this text, we’ll look at one of them - the Bootstrap Layout Builder which aims to adapt the Layout Builder to the specifics of Bootstrap.

Bootstrap Layout Builder - general information

The Drupal Bootstrap Layout Builder module adds support for responsive grids and many UX improvements. It supports Bootstrap versions 3 and 4 and is ready for version 5. In addition, the module supports its adaptation to other frameworks. However, this requires time and a good understanding of the specifics of the framework in question.

The main functionalities of the module include:

  • support for mobile devices,
  • possibility to configure sections or the interface of the Layout Builder,
  • possibility to set images or videos as the background of the section,
  • and many advanced settings, allowing you to configure virtually everything the module offers.

Popularity of the module

The Bootstrap Layout Builder module is used by around 5500 websites. The vast majority of websites use version 2.0.x of this tool.

Image removed.

Source: Drupal.org

Authors of the module

The principal developer of the module is Mahmoud Zayed (mahmoud-zayed), with Aaron Christian (AaronChristian) also listed as the maintainer. In addition, the module is supported by two organisations: Dexalo, which develops and supports the module, and ImageX, which partially supported the development of the module in version 2.x.

Installation of the module

The module in version 2.x defines a dependency to another Drupal module, Bootstrap Styles. By selecting Composer, all necessary libraries and modules will be installed automatically. For this reason, we recommend installation with this tool, using the command:

$ composer require drupal/bootstrap_layout_builder

 

Permissions

The module provides one new permission - Configure Bootstrap Layout Builder. Granting this permission allows full access to the module's configuration form. Therefore, this permission should only be granted to trusted roles.

Image removed.

Configuration of the Bootstrap Layout Builder module

We’ve already installed the module and assigned permissions. The next step is to configure it. Under the path

/admin/config/bootstrap-layout-builder/breakpoints

we’ll find all the configuration options, divided into 4 sections: Breakpoints, Layouts, Styles, and Settings.

Configuration of Breakpoints

With the installation of the module, we receive 3 predefined breakpoints. To add a new breakpoint, we need to give it a name and specify a base class. Each existing breakpoint also has a flag, allowing it to be enabled or disabled.

Image removed.

The list of breakpoints is later used in Layout Builder layouts to change the appearance of sections at different browser widths.

Configuration of Layouts

In this tab, we’ll find a list of all the layouts defined by the Bootstrap Layout Builder module. Here, we can rename any of these layouts and define a list of their options. The layout option in this case is a string of numeric values specifying how many columns a section should occupy. For example, giving a value of 6 6 with twelve columns in the grid for the Bootstrap 2 Cols layout will make the first and second sections have the same width. If we use the value 9 3, the first section will occupy 75% of the width and the second section 25%. We can enable or disable each layout option for any breakpoint.

Image removed.

 

Configuration of Styles

This tab is responsible for enabling and disabling the ability to configure parameters that give additional styles for sections.

Image removed.

 

Configuration in the Bootstrap Layout Builder Settings tab

Here we can define a global class to be used in a layout containing only one section. In addition, we can enable or disable the display of advanced settings when creating and configuring layouts.

Image removed.

How to create a custom layout using the Bootstrap Layout Builder?

After configuring the Bootstrap Layout Builder, it’s time to create the layout. The steps and options look the same for every layout added by the module. We’ll illustrate everything with an example of one of the layouts available after installing the module - Bootstrap 3 Cols.

Configuration of the layout

When adding a new section, the first thing that can be defined is the container type. By default, we can choose from three - Boxed, Full, and Edge to Edge. Next, we can decide whether or not we want to use gutters for this section. The next step will be to choose what percentage a given column should occupy at a given breakpoint.

Image removed.

 

Configuration of styles

In this tab, we can choose the section background, text color and alignment, margins and padding, border, border-radius, or the type of on-scroll animation.

Image removed.

Selecting the colors of the section background and text.

Image removed.

Setting margins and paddings.

Image removed.

Adjusting border-related settings for a section.

Image removed.

A wide selection of scroll effects.

Configuration of the section settings

In the third and final tab, we’ll find options for changing the section title. Here we can also set classes and attributes for the container, rows, and columns. We should provide attributes in YAML format.

Image removed.

 

Bootstrap Layout Builder - summary

The Bootstrap Layout Builder module significantly extends the features of Layout Builder. The flexibility of this module is a considerable advantage. If your corporate website on Drupal uses Bootstrap or another framework that works similarly and you want to gain the freedom that Layout Builder provides, using the Bootstrap Layout Builder module will be a good step.

Chapter Three: Next.js, Drupal and GraphQL: How to use GraphQL with next-drupal

One of the questions I get asked every other week is “Does next-drupal work with GraphQL?” . Yes. Both the Next.js Drupal module and the next-drupal package work with GraphQL 🥳 Let’s take a look at how we can use DrupalClient to fetch GraphQL data. Fetching GraphQL data with DrupalClient We built the DrupalClient on top of the standard Fetch API. This means you can use the DrupalClient.fetch method to make GraphQL requests. Here’s what a GraphQL query looks like:

Drupal Commerce: Commerce Core 2.32 released October 19, 2022

Commerce Core 2.32 is a maintenance release providing PHP 8.1 compatibility fixes, a requirements bump to Drupal 9.3, and a handful of test fixes. A dozen folks contributed code and patch review to make it happen, with maintainer Jonathan Sacksick (jsacksick) landing a variety of quality of life improvements during the course of Centarro’s development sprint at DrupalCon Prague.

One notable addition is the definition of an entity label for draft orders, which includes shopping carts, alongside an update to the label for placed orders. Orders are “placed” via a customer completing the checkout process or a store manager placing it via the order management interface, at which time they are assigned order numbers. Placed orders now have a label of “Order ###”, where ### is that assigned order number. Draft orders will use “Draft ###” or “Cart ###”, where ### is the serial numeric order ID.