The Drop Times: Moments to Treasure

Dear Drupal Community,

As the holiday season embraces us, I extend warm Seasons' Greetings from The DropTimes Family! These cherished moments, surrounded by our loved ones, savoring comforting meals, and cherishing each instance together, signify what many consider the most beautiful time of the year.

Amidst this season of togetherness, let's not overlook the parallels between these heartwarming moments and the essence of Drupal. Just as we cherish our connections with family and friends, Drupal thrives on the power of connections—forging a community built on collaboration, shared passion, and innovation.

This extended holiday period offers us a chance to revel in the warmth of our relationships and celebrate the robust network of connections within the Drupal community. It’s a time to pause, reflect, and appreciate the bonds that enrich our personal and professional lives.

As we approach the culmination of the year, surrounded by laughter and love, let’s acknowledge the significance of these connections. Just as the Drupal community comes together to innovate and create, let us also embrace the spirit of unity and collaboration, nurturing relationships and supporting one another.

May these moments of togetherness and shared joy serve as a poignant reminder of the importance of connections—both personal and within our Drupal family—filling our hearts with gratitude, warmth, and a renewed sense of community.

Warm wishes for a joyful holiday season and a Happy New Year!

Last week, The DropTimes had a captivating interview with Daniel Angelov, exploring his remarkable journey in accessibility advocacy. Kazima Abbas skillfully conducted this insightful conversation. Meanwhile, Alka Elizabeth had an engaging email exchange with Jeff Eaton, delving into the Token Module's origin, progress, and prospects. I had the pleasure to capture the festive Christmas celebrations held at the offices of Zoocha and SparkFabrik. You can check it out here . I also had the chance to delve deeper into the Drupal Project Browser Initiative, where Christopher Wells is playing a pivotal role. This initiative represents a significant step forward in enhancing Drupal's user experience and accessibility. 

Exciting news from the Drupal 7 security initiative: Klaus Purer, Ivan Tibezh, Juraj Falat, and Andrii Cheredn have joined as new members! Explore their valuable contributions here. In recent updates, a moderately critical security risk has been identified in the data visualization framework module within Drupal. Dominique De Cooman, Dropsolid's Co-Founder and Co-CEO, achieves a remarkable milestone by securing a seat on the esteemed Mautic Community Council. Discover more about this remarkable achievement in the news article.
Introducing the Drupal Geysir Module! This latest release brings a collection of user interface improvements aimed at streamlining content authors' daily workflow. Dive into its transformative impact on Drupal's user experience right here. Guided by CEO Tim Doyle, the Drupal Association achieved significant milestones in 2023 through a visionary 3-year plan, fostering innovation, expanding outreach, and boosting support. Read more about it here.

Exciting news from DrupalCamp Belgium 2024. The call for speakers is now open until March 10, 2024. Don't miss this opportunity to share your insights and participate in this dynamic event. Join the exceptional Drupal Mountain Camp 2024 - organizers seek potential sponsors for this remarkable event. Click here for details on involvement. Dive into the dynamic world of design systems on January 17, 2024, at iO Campus Amsterdam during the 'Insightful Design Systems' meetup. Professionals across fields are invited to explore the intricacies of design systems in this engaging event.

At DrupalCon Portland 2024, Julia Kranzthor, Director of Philanthropy at the Drupal Association, unveils the return of the Nonprofit Summit, fostering collaboration and innovation for nonprofits leveraging Drupal.

 Fresh off the press: Adam Bergstein's latest release, "Drupal 10 Masterclass: A Comprehensive Guide for Beginners," is now available on Amazon. Tailored specifically for beginners, this book is a must-read for those diving into Drupal.

While more stories beckon for exploration, constraints compel us to halt further selection. To get timely updates, follow us on LinkedIn, Twitter and Facebook.

Thank you,

With warm wishes,
Elma John
Sub-Editor, TheDropTimes

Specbee: A Deep Dive into the Webform Module for Drupal 10

The Webform module is the most powerful and flexible form builder and submission manager for Drupal. It gives  site builders the power to easily create complex forms instantly. It comes with a certain level of default settings, also letting you customize it as per your requirements. Check out this amazing blog - Drupal 9 Webform Module - A Brief Tutorial to help you get started with the Webform module for your Drupal 9 or 10 website. This will help you understand the basics easily.  The Webform module ships with tons of interesting features! Allow me to present a concise overview of some of the noteworthy features and functionalities that make this module a powerhouse in the world of Drupal.  This is an updated version of the article last published on 12 October 2021, designed to keep you in the loop with Drupal 10 and its latest developments. Altering form & elements Any form, element and its related settings can be altered by using their respective hooks. Below are few hooks that are available to use and you can find more in the webform.api.php file: Form hooks         ◦ hook_webform_submission_form_alter()            ◦ Perform alterations before a webform submission form is rendered. Element hooks         ◦ hook_webform_element_alter()        ◦ Alter webform elements. Option hooks         ◦ hook_webform_options_alter()        ◦ Alter webform options. Handler hooks         ◦ hook_webform_handler_invoke_alter()        ◦ Act on a webform handler when a method is invoked. more hooks…         ◦ hook_webform_access_rules_alter() etc..        ◦ Alter list of access rules that should be managed on per webform level. YAML Source The Webform module started as a YAML Form module, which allowed people to build forms by writing YAML markup. At some point, the YAML Form module started to have UI and became the Webform module for Drupal 8. YAML provides a simple & easy to learn markup language for building & bulk editing a webform's elements. The (View) Source page allows developers to edit a webform's render array using YAML markup. Developers can use the (View) Source page to hand-code webforms to alter a webform's labels quickly, cut-n-paste multiple elements, reorder elements, as well as add custom properties and markup to elements. Here’s an example of a Contact form and its corresponding YAML source code:   A Contact form with drag-n-drop UI   The Contact form’s YAML source code Conditional fields Webform lets you add conditional logic to your elements within your form. Let us consider a small example, wherein we need to conditionally handle the visibility of elements based on the value of another element within the form. Here’s an example form with two-step fields, STEP 1 (Radios element) with options ‘Email’ and ‘Mobile Number’. STEP 2 (Fieldset) with two elements, 'Email' and 'Mobile Number'. Form Build page Form View page In the above example, I would like to show the ‘Email’ field if the ‘Email’ option is chosen in Step 1, else show the ‘Mobile Number’ field if the ‘Mobile Number’ option is chosen in Step 1. To achieve that, edit your ‘Email’ field, click on the ‘Conditions’ tab, choose the ‘State’ as ‘Visible’ and set the ‘Trigger/Value’ as ‘STEP 1 [Radios] value is email’. Similarly, follow the same steps to add conditional logic to your ‘Mobile Number’ field and set the ‘Trigger/Value’ as ‘STEP 1 [Radios] value is mobile_number’. Here’s the final look of the Webform: Setting up conditional logic Form when ‘Email’ is chosen on STEP 1 Form when ‘Mobile Number’ is chosen on STEP 1 Custom options properties Webform lets you add custom option properties to your from elements. Imagine a scenario where you would want to conditionally handle the options of a radio element based on the value of a different element within the form. How would you do that? Well, I did not find any way to handle it through the Conditional logic settings from the UI. But there is a provision to set ‘custom options properties’ to your element, wherein you write the required conditional logic targeting your options within the element using the YAML code. Here is an example, where we can see two radio elements and based on the option I select in the first element, the visibility of the options within the second element should change. Form Build page Form View page before adding any custom options properties: If ‘Type A’ is chosen, then ‘Option 1’ and ‘Option 2’ should be visible from the second element. Similarly, if ‘Type B’ is chosen, then ‘Option 3’ and ‘Option 4’ should be visible.  To achieve this edit the second element, go to the ‘Advanced’ tab, scroll down to the ‘Options (custom) properties’ sections and write the necessary logic in YAML. Setting up the options properties Form when ‘Type A’ is chosen Form when ‘Type B’ is chosen Webform submission email handlers Email handlers Email handlers sends a webform submission via email. To add email handlers to your webform, go to ‘Settings’ and then ‘Emails/Handlers’ tab. Next, click on the ‘Add Email / Add handler’ button. Add Email Handler As shown in the below image, on the ‘General’ tab, add the ‘Title’ and set ‘Send to’  and ‘Send from’ details. Add the message ‘Subject’ and ‘Body ‘ as required and save the configuration form.    And that’s about it. Your handler gets fired whenever the form is submitted. You can also set conditional email handlers to your webform i.e., trigger different email handlers based on the value of certain elements within the form. For example, let us consider a ‘Select’ element with values ‘Type 1’ and ‘Type 2’. If the user submits ‘Type 1’, trigger the ‘Email - Type 1’ handler that has set ‘To’ address to ‘user1@gmail.com’. If the user submits ‘Type 2’, trigger the ‘Email - Type 2’ handler that has set ‘To’ address to ‘user2@gmail.com’. To add conditional logic to your email handler, create one handler and name it ‘Email - Type 1’. Set ‘To’ address to ‘user1@mail.com’, switch to the ‘Conditions’ Tab, choose the ‘State’ as ‘Visible’ and set the ‘Trigger/Value’ as ‘Select Type [Select] value is type_1’.  Similarly, create the second handler and name it ‘Email - Type 2’. Set ‘To’ address to ‘user2@gmail.com’, switch to the ‘Conditions’ Tab, choose the ‘State’ as ‘Visible’ and set the ‘Trigger/Value’ as ‘Select Type [Select] value is type_2’.   Scheduled email handlers It extends the Webform module's email handler to allow emails to be scheduled. To use this feature, enable the ‘Webform Scheduled Email Handler’ sub-module.  To schedule sending an email of the form submissions, click on the ‘Add handler’ button. Select ‘Scheduled Email’ handler here.   There is only one extra config setting in the ‘Scheduled Email’ handler compared to the normal ‘Email handler’. And that is to add Schedule email date under the General settings tab.   Scheduled email handler Set the date to trigger your handler and when the next cron is run, your email will be sent!  Generate PDF copies of Webform submission The webform module lets us download and export webform submissions as PDF documents. It also supports sending these PDF documents as email attachments and customising the templates and CSS of the PDF documents. How do we get this working? To begin with, you need to enable the Webform Entity Print (PDF) submodule (to download and export the PDF documents) and Webform Entity Print (PDF) Attachment submodule (to send these PDF documents as email attachments). Please note: It requires the Entity Print module to be installed which allows you to print any Drupal entity (Drupal 7, 9 and 10) or View (Drupal 9 and 10 only) to PDF. Download the PDF of a single submission Visit your webforms results page, view the submission you want to download and scroll down to click on ‘Download PDF’. Click on ‘Download PDF’   Downloaded PDF Export multiple webform submissions as a PDP document in a zip file  Visit your webforms results page, go to the Download exports tab, choose export format as ‘PDF document’ and hit Download.   You will get all your webform submissions as a PDF in a single *.tar.gz or *.zip file.  Choose Export format as ‘PDF documents Customise the templates and CSS of the PDF documents Go to your webforms general settings tab (/admin/structure/webform/manage/{your-webform-name}/settings), and scroll down to the ‘Entity print’ settings section.  Add necessary header and footer template details (it supports tokens) and some CSS to be shown in your PDF.   Customising your PDF by adding a default header, footer and some CSS PDF after customizing Attach these PDF documents to your emails Start by adding an element called PDF to your webform. Add the PDF element details like its title, view mode, file name etc and save it. Click on ‘Add element’ Add PDF element details The PDF element is now added to your results column (Please note: we are not adding it to our form). When you click on it, you will be redirected to your PDF document. The next step is to attach it to your emails. For that, go into Settings > Email/Handlers. Edit any of your email handlers, check the PDF element and enable ‘Include files as attachments’ and save the handler. Enable ‘Include files as attachments Next time you submit the webform, the PDF will be attached to your email along with webform submission details. Contact.pdf is attached in the email attachments Finding Help There are different ways through which you can seek help with the webform module. Here is a list of a few sources: Documentation, Cookbook, & Screencasts - https://www.drupal.org/docs/contributed-modules/webform Webform Issue Queue - https://www.drupal.org/project/issues/webform Drupal Answers - http://drupal.stackexchange.com Slack channel - You can always post your queries regarding the Webform module at the #webform channel within the Drupal slack workspace. Anyone from the community, even the module maintainer themselves are always around and are kind enough to guide you with your problems. A HUGE shoutout to Jacob Rockowitz for his relentless support towards the Drupal 9/10 Webform module. Webform wouldn't have been what it is now without him. Final Thoughts There’s just so much this versatile Webform module can do that we cannot possibly cover it all in one article. If you love Webforms as much as we do, we’d encourage you to get involved and contribute in any way possible. Looking for professional Drupal services and expertise to build your next Drupal website with beneficial modules such as this? We would love to hear from you. 

Golems GABB: Enhancing Site Performance with Drupal's BigPipe Module

Enhancing Site Performance with Drupal's BigPipe Module Editor Tue, 12/26/2023 - 15:09

Nowadays, the stakes are getting higher and higher. Speed is of the essence for an ordinary user, and each web page and developer has to comply with it. This is where Drupal's BigPipe module takes the stage. 
BigPipe is not a simple addition but a powerful tool for ensuring faster page loading times. It is achieved by fragmenting a web page into smaller units and prioritizing their loading order. Following this logic, the most crucial parts will be loaded first, while the others will catch up later. Let's delve deeper into this marvelous technology and learn more about web page optimization using Drupal's BigPipe module

LN Webworks: Top 7 Secrets No One Told You For The Success of Drupal Web Development Projects

Image removed.

Drupal has solidified its position as a go-to content management system and web development framework, earning the trust of businesses and developers worldwide. As more organizations lean on Drupal for their web development needs, the demand for top-tier projects, handled by a seasoned Drupal development company, is on the rise.

In this article, we're delving into the seven secrets that set the best Drupal web development projects apart. These are some core industry insights from the top Drupal website development companies for higher chances of project success. 

Talking Drupal: Talking Drupal #430 - Drupal in 2024

Today we are talking about Drupal in 2024, What we are looking forward to with Drupal 11, and the Drupal Advent Calendar with James Shields. We’ll also cover Drupal 10.2 as our module of the week.

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

Topics
  • Advent calendar
  • Selection process
  • Popularity
  • Next year
  • Drupal features in 2024
  • Drupal 11
    • Project browser
    • Recipes / Starter templates
    • Automated updates
    • Gitlab
    • Smaller core
  • Predictions
Resources Guests

James Shields - lostcarpark.com lostcarpark

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Martin Anderson-Clutz - mandclu Ron Northcutt - community.appsmith.com rlnorthcutt

MOTW Correspondent

Martin Anderson-Clutz - mandclu Drupal 10.2

  • Improvements include
    • Technology Updates
      • PHP 8.3
      • Includes capabilities that previously required contrib projects
      • File name sanitization
      • A search filter on the permissions page
    • End Users
      • Performance enhancements and improved caching APIs
      • Support for PHP Fibers to accelerate handling things like asynchronous remote calls
    • Content Creators
      • Revision UI for media
      • Wider editing area in Claro on large screens
      • The return of “Show blocks” in CKEditor 5, missing until now
    • Site Builders
      • Field creation UI has a new, more visual interface, and an updated workflow
      • Block visibility can now be based on the HTTP response status, for example to make it visible or invisible on 404 or 403 responses
      • Tour module is no longer enabled by default for the Standard and Umami profiles
      • New “negated regular expression” operator for views filters (string/integer), to exclude results matching a provided pattern
    • Site Owners
      • Announcements Feed is now stable and included in the Standard profile
      • The functionality in the experimental Help Topics module has been merged into the main Help module, so the Help Topics module is now deprecated
      • New permission: Use help pages
    • Developers
      • A fairly sizable change is a move to use native PHP attributes instead of doctrine annotations to declare metadata for plugin classes. Work is already underway to get core code converted, and an issue has been opened to have rector do this conversion for contrib projects
      • A new DeprecationHelper::backwardsCompatibleCall() method to help write Drupal extensions that support multiple versions of core
      • A PerformanceTestBase is now in core, to support automated testing of performance metrics
      • A new #config_target property in ConfigFormBase to simplify creating configuration forms
      • Symfony mailer is now a composer dependency of core
      • New decimal primitive data type
      • Expanded configuration validation, Symfony autowiring support, HTML5 output from the HTML utility class is now default, and more
      • In addition to these and the features highlighted in the official announcement, there are three pages of change records for the 10.2.0 release, and we’ll include a link to those in the show notes

#! code: Drupal 10: Creating Custom Paths With Path Processors

Routes in Drupal can be altered as they are created, or even changed on the fly as the page request is being processed.

In addition to a routing system, Drupal has a path alias system where internal routes like "/node/123" can be given SEO friendly paths like "/about-us". When the user visits the site at "/about-us" the path will be internally re-written to allow Drupal to serve the correct page. Modules like Pathauto will automatically generate the SEO friendly paths using information from the item of content; without the user having to remember to enter it themselves.

This mechanism is made possible thanks to an internal Drupal service called "path processing". When Drupal receives a request it will pass the path through one or more path processors to allow them to change it to another path (which might be an internal route). The process is reversed when generating a link to the page, which allows the path processors to reverse the process.

It is possible to alter a route in Drupal using a route subscriber, but using path processors allows us to change or mask the route or path of a page in a Drupal site without actually changing the internal route itself.

In this article we will look what types path processors are available, how to create your own, what sort of uses they have in a Drupal site, and anything else you should look out for when creating path processors.

Types Of Path Processor

Path processors are managed by the Drupal class \Drupal\Core\PathProcessor\PathProcessorManager. When you add your a path processor to a site this is the class that manages the processor order and calling the processors.

There are two types of path processor available in Drupal:

Read more

LostCarPark Drupal Blog: Drupal Advent Calendar day 24 - Web Summit

Drupal Advent Calendar day 24 - Web Summit james Sun, 12/24/2023 - 07:00 Image removed.

Today is the last day of our Advent Calendar, and what a trip it’s been. For our final door, we have a real treat, as Baddý Sonja Breidert (baddysonja) joins us to tell us all about the Drupal presence at this year’s Web Summit, including the video of her keynote speech, available for the first time.

Image removed. The Drupal Booth at Web Summit

At DrupalCon Pittsburgh in June 2023, the Drupal Association Board of directors approved a new strategic plan for the next 3 years with three main objectives:

  • Objective #1 - Innovation
    Drupal becomes the most innovative and impactful web-platform in the world, by enabling “makers” and connecting with…

Tags

LostCarPark Drupal Blog: Drupal Advent Calendar day 23 - Single Directory Components

Drupal Advent Calendar day 23 - Single Directory Components james Sat, 12/23/2023 - 07:00 Image removed.

For the penultimate door of the Drupal Advent Calendar, we are joined by Mike Herchel (mherchel) to tell the amazing story of bringing Single Directory Components into Drupal Core.

How we brought SDC into Drupal Core (and how you can too!)

Single Directory Components (SDC) started out as a rough idea in early 2022, had its first contrib release in March 2022, was proposed to go into core in October 2022, and was committed to core just 6(ish) months later! In the general schedule of Drupal core development, this was a light speed!

In this story I’ll walk through how the idea came about, and how we…

Tags

MidCamp - Midwest Drupal Camp: Call for Speakers is Extended to Jan 7!

Call for Speakers is Extended to Jan 7!

We’ve had 35 sessions submitted since we launched the open call and we’d love to add your idea to that number. We’re looking for talks geared toward a variety of attendees, beginner through advanced Drupal users, as well as end users and business owners. Please see our session tracks page for full descriptions of the kinds of talks we are looking for.

Important Dates:

  • Proposal Deadline: January 7 (Sunday), 2024 at midnight CST
  • Tickets on sale: very soon!
  • Early-bird deadline and speakers announced: February (all speakers are eligible for a free ticket, and anyone who submits a session that is not accepted will be eligible for early-bird pricing even after it closes)

Sponsors Get Early, Exclusive Access

Sponsors make MidCamp possible so we want to return the favor by helping your organization grow within the community and save you time.  Get access to new talent and customers as a sponsor of MidCamp.

With packages starting at just $600, organizations can target their jobs to a select group of experienced Drupal talent, maximize exposure by sharing space with dozens of jobs instead of millions, and have three days of being face-to-face with applicants.

Our sponsorship packages are designed to showcase your organization as a supporter of the Drupal community and provide opportunities to:

  • grow your brand,
  • generate leads,
  • and recruit Drupal talent.

Check out the sponsorship packages here, we look forward to working with you to get your organization involved for 2024!

Stay In The Loop

Please feel free to ask on the MidCamp Slack and come hang out with the community online. We will be making announcements there from time to time. We’re also on Twitter and Mastodon.

Keep your eyes peeled in the new year, we will be sharing more information with venue details, hotel and travel options, fun social events, speaker announcements, and more!

Thanks!

The MidCamp Team