DrupalEasy: Reintroducing Drupal core's Views "Combine fields filter"

Image removed.

I was recently reminded of a Drupal core feature that I hadn't used in a long time - and was pleasantly surprised at how useful it is.

The Combine fields filter Views filter allows a site-builder to quickly and easily set up an exposed filter that searches multiple fields for a given search term. Think of it as a way to combine multiple exposed search filters into a single search box.

Setting it up is quite easy - just include all the fields that you want to search in the Fields section, marking them with Exclude from display as necessary (Unfortunately, Combine fields filter doesn't work with view modes.)

Then, add and expose a Combine fields filter to the view, and configure it to use all the fields you want searchable in the Choose fields to combine for filtering section of the filter's configuration:

Image removed.

 

I created a simple example of a Movie content type with example fields including Title, Image, Plot summary, Spoilers, Year of release, Short description, Taglines, and Trivia. I added all of these fields to the Fields configuration of the view - with all of them hidden except for Title and Image.

Next, I added a Combine fields filter as described above, selecting all of the fields to be combined for filtering. Finally, I added a few sample Movie nodes.

To test things out, I searched for terms that were added as part of the various Movie content type fields (but purposely not words in the Title fields). The results were exactly what I was expecting!

In the first example, the word biff appears in the Plot summary field for Back to the Future

In the first example, the word biff appears in the Plot summary field for Back to the FutureImage removed.Next, the word saga appears in the Short description field of The Last Jedi.Image removed.The number 1985 appears in the Year of release field of Back to the Future.Image removed.Finally, the words Michael Caine appear in the Trivia field of The Dark KnightImage removed.


There are a few caveats when using Combine fields filter with one of the more impactful being that when utilizing a multivalued field (as the Trivia and Taglines fields are in the previous example), the Multiple field settings configuration cannot utilize the Display all values in the same row option. Fortunately, these fields are usually excluded (hidden) from search views like this. 

Image removed.

Specbee: Better Page Layouts with the CSS Grid Layout Module in Drupal

Fed up with the hassle of finicky CSS positioning and floats for organizing your page layout? They don't always play nice with all browsers. It's time for a smoother solution! Let’s talk about the brand new module - CSS Grid or Grid Layout that brings a two-dimensional grid system to CSS. This grid-based layout system is a versatile way of organizing your content, with rows and columns, making it easier to design complex layouts. Check out the rest of the blog for insights on CSS Grid Layout and integrating the CSS Grid Layout Drupal module into your project. CSS Grid Terminology Similar to CSS Flexbox, where we have flex containers and flex items, in CSS Grid, we follow a similar concept with grid containers and grid items. To turn a container into a CSS Grid container, we simply set its display property to “Grid”. Grid Container: The grid container wraps all the grid items within its area. Grid Cell: Each individual item inside the grid container is referred to as a grid cell or grid item.A Grid layout forms a two-dimensional structure, with columns along the Y-axis and rows along the X-axis. Grid Line: The vertical and horizontal lines that divide the grid into columns and rows are called grid lines. They are automatically numbered for columns as well as for the rows starting from 1 all the way to the number of rows or columns plus 1. Grid Gap: The space between Grid cells is called a gutter or Grid Gap. Grid Track: Grid items aligned in a row or column are referred to as a grid track. For horizontal alignment, we use the term "row track," and for vertical alignment, it's called a "column track." Grid Area: The area between two vertical and horizontal lines is called grid area. Demonstration of row and column values and properties HTML <div class="wrapper"> <div class="header">Header</div> <div class="box-1">Box 1</div> <div class="box-2">Box 2</div> <div class="box-3">Box 3</div> <div class="main-content">Main Content</div> <div class="sidebar">Sidebar</div> <div class="footer">Footer</div> </div>CSS .wrapper{ display: grid; grid-template-rows: 100px 200px 400px 100px; grid-template-columns: repeat(3, 1fr) minmax(200px, 1fr); grid-gap: 30px; // Line names grid-template-rows: 100px [box-start] 200px [box-end content-start] 400px [content-end] 100px; // Grid area names grid-template-areas: "head head head ." "box1 box2 box3 side" "main main main side" "foot foot foot foot"; } // Using Line numbers .header{ grid-column: 1 / -1; } .main-content{ grid-row: 3 / 4; grid-column: 1 / 4; } // Using Line Names .sidebar{ grid-row: box-start / content-end; } // Using Grid Area Names .footer{ grid-column: foot; }Grid Properties For making an element a grid container, we use display:grid grid-template-row - Defines the number of rows in a grid layout. grid-template-column - Defines the number of columns in a grid layout. row-gap & column-gap - Defines the gap between grid row and grid column individually. grid-gap - Defines the gap between both rows and columns respectively in a grid layout. The Repeat function -  It is employed to express a recurring segment of the tracklist, enabling the concise notation of a repetitive pattern for a substantial number of columns or rows. The Fr unit - A fractional unit that dynamically calculates layout divisions. With 1fr, you get one share of the available space within the grid. Naming Grid Lines - Give names to specific or all lines in your grid while defining it using the grid-template-rows and grid-template-columns properties. Naming Grid Areas - The grid-template-areas CSS property specifies named grid areas, establishing the cells in the grid and assigning them names. grid-row - The grid item's start and end position within the grid row. grid-columns - The grid item's start and end position within the grid column. min-content - The property specifies the intrinsic minimum width of the content. max-content - The property specifies the intrinsic maximum width or height of the content. minmax - Defines a size range greater than or equal to min and less than or equal to max content. Browser inspector view for grid - align and justify items and content HTML <div class="container"> <div class="item item--1">Modern</div> <div class="item item--2">CSS</div> <div class="item item--3">with</div> <div class="item item--4">Flexbox</div> <div class="item item--5">and</div> <div class="item item--6">Grid</div> <div class="item item--7">is</div> <div class="item item--8">Great</div> </div>CSS .container{ display: grid; grid-template-rows: repeat(2, 150px); grid-template-columns: repeat(2, 300px); grid-auto-flow: row; grid-auto-rows: 150px; grid-gap: 30px; // Aligning content in row direction align-content: center; // Aligning content in column direction Justify-content: center; // Aligning items in row direction align-items: center; // Aligning items in column direction justify-items: center; .item{ &--2{ grid-row: 2 / span 2; // Aligning item in row direction align-self: center; // Aligning item in column direction justify-self: center; } }align-items - Align Grid items inside the grid cell or area in the column/vertical axis. justify-items - Align Grid items inside the grid cell or area in the row/horizontal axis. align-self - Overrides the grid item's align-items value and aligns itself inside the cell/area in the column/vertical axis. justify-self - Overrides the grid item's justify-items value and aligns itself inside the cell/area row/horizontal axis. align-content - Specifies how the grid content is distributed along the column axis / vertically in a grid container. justify-content - Specifies how the grid content is distributed along the row axis / horizontally in a grid container. grid-auto-flow - The property regulates the direction in which auto-placed items are inserted into the grid, either in the row or column direction. The default value is row. grid-auto-rows - This property sets a size for the rows in a grid container. grid-auto-columns - The grid-auto-columns property sets a size for the columns in a grid container. auto-fill - This property fills rows with as many columns as possible, even if the added column is empty, occupying space in the row. Browser inspector view for grid auto-fill property auto-fit - It fills rows with as many columns as possible. It collapses empty cells, setting their width to 0 to prevent excess space. Browser inspector view for grid auto-fit property Implementing the Drupal CSS Grid layout module The Drupal CSS Grid Layout module seamlessly integrates the power of CSS Grid into your Drupal environment, providing a flexible and efficient way to structure and organize content. Installing the module Prerequisites: Layout builder Layout Discovery Install CSS Grid Layout module using - composer require 'drupal/css_grid:^1.0@beta'Next, enable the module here: Administration > extend Add a new layout builder page: Content → add content → Layout builder page → layout → Add section Now you have yourself a newly created layout CSS Grid. Choose CSS Grid, and you'll find options for columns, rows, and gaps, allowing you to create a dynamic grid layout. You can then incorporate column, row, and gap values according to the desired structure.   You can also choose from different CSS and grid layout units. Final Thoughts These are the fundamental aspects of the CSS Grid layout algorithm. Armed with this knowledge, you can construct intricate and interactive layouts, eliminating the reliance on CSS frameworks. For Drupal frontend developers, the integration of the CSS Grid Layout module adds an extra layer of flexibility and enables seamless implementation and customization of grid-based designs within Drupal. If you're ready to implement these cutting-edge design techniques into your Drupal website, explore our Drupal services for seamless integration and customization.

Aten Design Group: Drupal Web Projects Leveled Up with Mercury Editor

Drupal Web Projects Leveled Up with Mercury Editor Image removed.jenna Fri, 03/08/2024 - 13:39 Mercury Editor Process Drupal

Not all choices are created equal. On a web development project, leaders are faced with thousands of decisions, but only a handful of those fundamentally impact the entire project and post-launch success of the website. As a digital project manager, I serve clients by focusing their attention on highly impactful choices and offering informed guidance to achieve their goals. One key choice on every Drupal website redesign project is how editors will build pages on the new website, and my consistent guidance is to go with Mercury Editor.

What is Mercury Editor?

Mercury Editor is a drag-and-drop content editing module that we built for Drupal 9 and 10 websites. It allows Drupal site managers the freedom to implement anything from standardized, form-like content types to blank canvas pages with dozens of component options.

Video file Video demonstration of publishing content on a Drupal website

Why is Mercury Editor the best option for Drupal projects?

What you see is what you get

Have you ever had to work through sheer guesswork? Trying to envision in your mind’s eye how something is going to line up, but never able to see it happening in real time? If you manage content in a Drupal site, the answer is probably yes! Mercury Editor finally gives editors a way to see what they’re building as they’re building it, on both desktop and mobile scales. Honestly, if the list ended here, it would still be enough for Mercury to be my go-to recommendation.

It’s easy to learn

Clients commonly underestimate how much effort is required to get their new site’s content ready for launch – it is truly a second major project running in parallel to the site build itself. Not only does it take time for a team to create, translate, and build dozens, hundreds, or even thousands of pages of content, but it also asks the client team to learn a new page-building tool at the same time.

Mercury Editor relieves this pressure simply by being easy to learn. Once you see how to add any new component, that immediately scales up to any other component on any content type. Using the plus button to add new components or dragging them around the page just makes sense. Choosing an intuitive tool means that instead of struggling to know how to do their important work before launch, they can just focus on doing it.

It creates a sustainable post-launch site

Mercury has little-to-no ongoing maintenance needs, no licensing fees or restrictions, no limits on pages created, and it removes the need for developers to help make new pages or page edits down the road. A single, non-technical user can realistically maintain an entire website’s content after a short primer on how to use Mercury.

Flexible or formulaic – it supports the right level of complexity for you

A robust technical application like Drupal needs a page-building tool that can hang with it. Mercury offers a lot of knobs we can dial up or down to give different teams the level of flexibility that is right for them. Want to avoid decision paralysis or differing layouts across similar types of content? Go simpler. Want to give more creative freedom to editors? Expand the options. Mercury can do both within a single design philosophy.

For large teams that want a consistent look across editors, Mercury Editor allows us to:

  • create predefined layout templates as an instant starting point for editors
  • dial back on multi-column layout options
  • restrict which components can be placed on a content type

For small teams that want more creative freedom, Mercury allows us to:

  • create different components for use in different contexts
  • let editors select rules and filters for dynamic components within the interface without needing a developer
  • offer complex section and multi-column options
  • use components in unexpected ways without breaking the look and feel of the site

Streamline your Drupal project with Aten

I’m a project manager. I know how choices impact the time, budget, and success of a website redesign project. Choosing a page-building tool that the Aten team is intimately familiar with is going to save your project time and money and will result in a design that leans into the tool used to implement it in the end.

Our team speaks Mercury – Aten’s clients benefit from our team’s experience working with this Drupal editor, and they begin to learn the editing experience themselves early in the project. Our design team knows what Mercury can do and how to create the best post-launch editor experience from the very first conversation of the project.

It’s a reflection of Aten’s values

Values matter to our clients, and they matter to us. My colleague Kathryn Sutton spoke about Aten’s organizational values in a recent webinar. Mercury Editor is another manifestation of those values in tangible, product form. It obviously embodies values like creative, productive, and collaborative. A tool that enables creative page editors to build to their vision is a natural, almost inevitable, conclusion to Aten’s core values.

What may be less obvious at first glance is how Mercury is shaped by other values like trustworthy and thoughtful. Mercury Editor is not just a tool but a commitment from Aten to the Drupal community – to support and grow Mercury Editor for years to come, with plans through Drupal 12 and beyond. By adopting this module, you adopt the assurance that we have your back.

We are not mercurial when it comes to Mercury. It matters to us, we stand behind it, and we invest heavily in its accessibility, reliability, and constant improvement.

As for the final Aten value, eager? We made Mercury Editor, and we would love to make it work for you. Get in touch about your next Drupal project, and we’ll make it happen.

Image removed.Jake Douma, PMP

ImageX: Integrate Zoom Meetings Seamlessly into Your Drupal Website via Our Developer’s Module

Authored by: Nadiia Nykolaichuk and Leonid Bogdanovych.

Zoom is a key player in the sphere of online meetings. They have the power to dissolve geographical barriers, uniting individuals and teams across vast distances for communication and collaboration. What can be more convenient than using a robust video conferencing platform? Using it in the comfort of your own Drupal website!

Talking Drupal: Talking Drupal #441 - CI for Drupal modules

Today we are talking about CI for Drupal modules, How it helps us build Drupal, and the ongoing work and improvements being made with guest Fran Garcia-Linares. We’ll also cover Require on Publish as our module of the week.

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

Topics
  • What does CI mean
  • How do Drupal modules use CI
  • When we talk about Drupal CI are we talking about the website itself or the CI that supports contributors
  • What tools does Drupal use for CI
  • How do maintainers interact with CI
  • What changes have happened in the last year
  • Speed improvements
  • Drupal CI vs Gitlab CI
  • Process to convert
  • When is Drupal CI being shut down
  • What improvements are coming
  • If someone has an issue where do they get help
Resources Guests

Fran Garcia-Linares - fjgarlin

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Anna Mykhailova - kalamuna.com amykhailova

MOTW Correspondent

Martin Anderson-Clutz - mandclu

  • Brief description:
    • Have you ever wanted to have content fields that could be optional until a piece of content is published, or ready to be published? There’s a module for that.
  • Module name/project name:
  • Brief history
    • How old: created in Apr 2018 by Mike Priscella (mpriscella), though recent releases are by Mark Dorison (markdorison) of Chromatic
    • Versions available: 8.x-1.10
  • Maintainership
    • Actively maintained, latest release just over a month ago
    • Security coverage
    • Test coverage
    • Number of open issues: 18, 8 of which are bugs
  • Usage stats:
    • 3,001 sites
  • Module features and usage
    • With this module enabled, form to configure fields for you content types will have a new checkbox labeled “Required on Publish”
    • Check this new box instead of the normal “Required field” checkbox to have the field only required if the content is being published or already published
    • Useful for publishing workflows where you want content creators to be able to quickly get started on content, but ensure that fields will be filled in before publishing
    • Useful for fields that will optimize the content for SEO, social sharing, search, and so on

Drupal Association blog: Meet Imre, empowering Drupal's growth as a board member of the Drupal Association

Image removed.

We're delighted to introduce Imre Gmelig Meijling, one of the newest members elected in October of the Drupal Association Board. Imre, CEO at React Online Digital Agency in The Netherlands, brings a wealth of digital experience from roles at organizations like the United Nations World Food Programme, Disney, and Port of Rotterdam.

Imre is not only a member of the Drupal Association Board of Directors but also serves as an executive member on the DrupalCon Europe Advisory Committee. Previously, he chaired the Dutch Drupal Association, expanding marketing efforts and establishing a successful Drupal Partner Program. Imre played a key role in launching drupal.nl, a community website used by several countries. He co-created the Splash Awards and led Drupaljam, a Dutch Drupal event with almost 500 attendees. In 2023, Imre joined the Drupal Business Survey.

As a recent board member, Imre shares insights on this exciting journey:

What are you most excited about when it comes to joining the Drupal Association board?
I am very excited about joining the Drupal Association Board and contributing with insights and perspectives from the digital business market in Europe. Drupal has a strong market position with many opportunities for the coming years. I look forward to supporting the marketing team in their expanding efforts. I am particularly proud and excited to be part of an inclusive global community. Being part of an inclusive global community and supporting the Open Web Manifesto aligns closely with my personal values.

What do you hope to accomplish during your time on the board?
I aim to help expand Drupal's marketing outreach aiming for more wonderful brands and organizations adopting Drupal and attracting new talent to get involved with Drupal. I am also looking forward to establishing and sustaining relationships between Europe and other regions with the Drupal Association and finding ways to work even more closely together.

What specific skill or perspective do you contribute to the board?
Being part of an inclusive global community and supporting the Open Web Manifesto aligns closely with my personal values. Working with Drupal at various digital agencies in Europe, I support the growth of Drupal from a business-perspective, but having a technical background, I know the strength of the Drupal community has and can be for brands. Having been in both worlds for a long time, I will help and make sure we bring them together.

I was Chair of the Board for the Dutch Drupal Association, in which time a successful Dutch Partner Program was launched. Also, marketing and advertising on mainstream media was taking off during that time. I was also involved in the design and setup of the Dutch Drupal website, which is now open source. I co-founded the Splash Awards and I am Executive Member of the DrupalCon Europe Community Advisory Committee. I will share all of my experiences where I can. 

How has Drupal impacted your life or career?
It's part of my life, both professional as well as personal, for over 16 years.

Tell us something that the Drupal community might not know about you.
I own my own digital agency in The Netherlands, React Online. I began my career as a UX designer and front end developer for Lotus Notes applications, called 'groupware' at the time, a long gone predecessor to the social collaboration platforms that we now know well. Interestingly, my birthday is on January 15, just like Drupal!

Share a favorite quote or piece of advice that has inspired you.
A true leader is not one with the most followers, but one who makes the most leaders out of others. A true master is not the one with the most students, but one who makes masters out of others.

We can't wait to experience the incredible contributions Imre will make during his time on the Drupal Association Board. Thank you, Imre, for dedicating yourself to serving the Drupal community through your board work! Connect with Imre on LinkedIn.

The Drupal Association Board of Directors comprises 12 members, with nine nominated for staggered 3-year terms, two elected by the Drupal Association members, and one reserved for the Drupal Project Founder, Dries Buyteart. The Board meets twice in person and four times virtually annually, overseeing policy establishment, executive director management, budget approval, financial reports, and participation in fundraising efforts.

The Drop Times: Fostering Diversity, Equity, and Inclusion in Drupal Community

As we weave through the ups and downs of the evolutionary tides of technology, it's imperative to anchor ourselves in the values that foster an inclusive, equitable, and diverse environment. The essence of the Drupal community lies not just in our exceptional technical prowess but in the collective spirit that champions Diversity, Equity, and Inclusion (DEI). This isn't merely a buzzword; it's the bedrock of innovation, creativity, and growth. 

As Mahatma Gandhi once said,

"Our ability to reach unity in diversity will be the beauty and the test of our civilization." 

Let us embrace this wisdom as we continue to build not just extraordinary products but also a community that reflects the world's vast and vibrant tapestry.

In this journey towards a more inclusive community, we must recognize that DEI is not the responsibility of a select few but a commitment from all of us. Whether you are a developer, stakeholder, or a member of the wider public, your voice matters. Your experiences, perspectives, and contributions shape our community's very fabric. Let's pledge to listen, learn, and act with empathy and understanding. Together, we can create a space that not only drives technological advancement but also mirrors the diverse world we live in.

Last week, celebrating Women's Day, TDT spotlighted notable quotes from women in the Drupal community, sharing their valuable insights and messages with fellow Drupalers. Additionally, the TDT released a special feature authored by Alka Elizabeth titled "Inspiring Inclusion: Celebrating the Women in Drupal | #1", emphasizing the importance of fostering inclusivity. In the article, Fei Lauren notes that,

One major problem is that we talk about DEI too abstractly instead of looking at data to identify problems – often, the data isn't even there. And when data is available, too often we talk about solutions without asking the individuals themselves what they need. We should learn to think about everything we do through the lens of DEI, but if we really want to drive change, we need to learn how to ask the right questions.

Please let us know if any women in the Drupal Community have inspired you and would like us to know and help us spread the word about them. Please share your insights with us at editor@thedroptimes.com. Also, part two will be out soon, so stay tuned.

Now, let's shift the focus and explore some of the latest news stories and articles we covered last week.

I had the opportunity to interact with James Shield and delve into his extensive 15-year journey within the Drupal community through a unique blend of personal interests and professional advancements. Read the full interview here.

Before the commencement of NERD Summit 2024 on March 8th and 9th, I also had the opportunity to discuss the event with its organizer, Rick Hood, and the keynote speaker, Jessica Cobb. Drawing from their valuable insights, I crafted a featured article highlighting NERD Summit 2024  titled "Exploring the Dynamic Landscape of NERD Summit 2024."

Alka Elizabeth penned a feature on  Alex Moreno's initiative to transform Drupal.org by integrating user roles for personalized onboarding, fostering community collaboration, sustainability, and innovation to boost contributions and engagement while also exploring future strategies for a sustainable Drupal and the community's pivotal role in effecting change. Learn more here.

In an exciting collaboration announcement, The Drop Times has partnered with DrupalCamp Ghent 2024, marking their return to Ghent on May 10-11, 2024, as the event's official media partner. We are also the official Media Partner for DrupalCamp Asheville 2024, an important fixture in the Drupal community calendar scheduled from July 12-14.

Developers are invited to submit their Drupal-based projects for consideration in the 2024 Splash Award Germany & Austria, with submissions open until July 31. The awards ceremony, scheduled for November 7 in Berlin, will see experts selecting the winners from the pool of digital projects. For more information, visit this link.

Registration is now available for Drupal Developer Days 2024 in Burgas. Speakers must register on the event's website to submit session proposals, but attendance is open to all without registration.

DrupalCon Portland introduces an exclusive $50 rate for students and recent alumni (from 2022 onwards), extending this discounted offer to individuals from colleges, universities, trade schools, and Drupal training programs. Learn more here.

Drupaljam 2024 announces an early-bird ticket promotion, allowing attendees to secure their spots at the event and save on registration fees until March 31st. More details are available for interested participants here.

Time is running out to submit session proposals for DrupalCon Barcelona 2024, with less than a month left for interested participants to seize the opportunity and share their ideas. Learn more about this here.

Get ready to celebrate coffee and community as the Drupal Coffee Exchange occurs during MidCamp 2024 on Thursday, March 21st, from 2:00 pm to 2:15 pm CDT. Events for the week are here.

Gábor Hojtsy reveals the latest updates on the Drupal 11 release, announcing potential release dates for either the week of July 29 or the week of December 9, 2024, pending completion of beta requirements. To learn more about the release, visit this link.

A critical security update for the Registration Role Module in Drupal has been issued, addressing an access bypass vulnerability affecting versions before 2.0.1. Discovered by Pamela Barone and Renaud Joubert, the flaw stems from a logic error during module upgrades, potentially allowing unauthorized role assignments to new users. Know more about this security update here.

The formation of the Advisory Committee for DrupalCon Barcelona 2024 has been announced, showcasing the combined efforts of diverse volunteers dedicated to ensuring the success of this European Drupal event. For further details about the committee members, visit the provided link.

Alex Moreno unveils a transformative approach to user onboarding, emphasizing enhanced engagement through simplified communication and community contribution incentives. Learn more here.

We acknowledge that there are more stories to share. However, due to selection constraints, we must pause further exploration for now.

To get timely updates, follow us on LinkedIn, Twitter and Facebook. Also, join us on Drupal Slack at #thedroptimes.


Thank you,
Sincerely
Elma John
Sub-editor, TheDropTimes.

ComputerMinds.co.uk: Webform Protected Downloads

Image removed.

I recently produced the first release of the Webform Protected Downloads module that is compatible with Drupal 10. It provides the ability for sites to have 'gated' content which users can download once they have filled out a form for their details. This can convert engaged visitors into leads, set up licenses for customers, or simply validate a user for access to a file. Put simply, as the project's description says, this module could be useful to you if:

  • You want to offer some files for download to either anonymous or registered users
  • You don't want those files to be publicly accessible
  • You want to collect some data before granting access to the files
  • You want to be sure that the user gives a valid email address

One of our clients recently came to us with requirements along these lines for their Drupal 10 site, so I went out looking for suitable solutions. There are several similar modules, but this was the only one that fit these specific needs:

  1. There should be no way for the public to access the files without completing the webform.
  2. There could be more than one file to provide access to from a webform.
  3. The file(s) should be downloaded from the website rather than sent by email.

We had used the module on an old Drupal 7 site a long time ago, but there hadn't been any work on it for a few years and there was no release compatible with Drupal 10. However, development had started in a branch that had been automatically opened up to new maintainers. This was a great example of how that process can help the community keep modules up-to-date and secure with little fuss. All I had to do was confirm a few details myself, and within a few hours I had access to update the project. Of course, I'm building upon the great work that has been done by the previous maintainers - and in this case, Timotej Lovrecic especially, who had created an initial fork on GitHub that was compatible with Drupal 8.

Now that we have a version to use with Drupal 10; let me introduce you to how to use it! I'll assume you can already download and install the module

Image removed. Screenshot of the handler settings (click image for full size)

When you configure the settings of a webform, you can set up 'handlers'. Emails sent to users or administrators are probably the most common sort of handler, so the tab to configure these under Webform's 'Settings' page is labelled 'Emails / Handlers'. Add a handler, and choose the 'Webform protected download' type in the popup.

From here you can control what amount of verification you want to apply to the download link (such as whether you want to restrict it to the user that submits the form or not), whether the link should only work once, or expire after some time. The file to protect can be uploaded at the bottom of the form. 

Once you've configured and saved your handler, the next step is to use tokens to set how a user receives their link. These could go in an email - in which case configure an email handler, or a confirmation message/page - which can be set from the 'Confirmation' tab of the Webform's 'Settings' page.

In either case, the token to use takes the format: [webform_submission:protected_download_url:my_handler_id]. (If you only have one protected download, you can skip that last part off so it is just [webform_submission:protected_download_url].) The handler ID should be the 'machine name' from your handler settings, which is also shown in a column in the list of handlers. The token will be replaced with the user's unique download URL, so you may wish to use it directly within a plain-text email, or as a link destination in a confirmation message (which is usually HTML).

Image removed.Example of using a download token for a link within the confirmation message

With that token in the right place, when your guest completes the webform, they'll now receive the link to download the file they wanted - and you'll have what you wanted in return.

Let me know how you get on. Your feedback is welcome in the comments below or in the Webform Protected Downloads module's issue queue!

Drupal Association blog: Contributor guide: Maximizing Impactful Contributions

As I have mentioned in the past, many people and companies have communicated to me in the past their willingness to know how they could make their contribution more impactful to Drupal and the Drupal association. The Bounty program has proved success, and we are exploring and getting new ideas to extend it. However we don't want to stop here.

That’s why we are publishing today this list of strategic initiatives, and list of issues and modules where your contribution should be more impactful.

Additionally we may want at some point to grant extra credits to some those issues. For now, if you are not sure where to contribute but you want to make sure that your contribution makes a difference, have a look at this list and take your pick. 

And have in mind that this is a work in progress or a living document. Some sections will need proposals that we will start populating after internal review, and depending on the feedback received on the usefulness of this document.

Strategic Initiatives

Strategic initiatives are where some of the most important innovations in Drupal happen. These are often big picture ideas to add major new features to Drupal that range from improving major apis, to adding better page building, to improving the total cost of ownership by adding quality of life features, and much more. 

Participating in a strategic initiative can be challenging but also rewarding. It is not a place for a drive-by contribution - it's a place to join if you have dedicated time to devote, are willing to listen and learn from the existing contributors and initiative leads before you jump in, and have a strong background in related areas.

Find here more information about the current Strategic Initiatives.

Issues

Contributing to individual issues can be less of a long-term commitment than participating in Strategic Initiatives, but it can also be overwhelming because of the sheer number of issues on Drupal.org. It's also very important to follow the issue etiquette guidelines when contributing to issues. Most of all - listen to and respect the project maintainer and their guidance when contributing to issues on their project. It's better to help solve existing issues to show your willingness to help before opening any new ones.

Modules and projects

Drupal is built on the back of a powerful ecosystem of extensions, modules, themes, distributions, etc. These extensions are crucial for supporting the vast variety of industry use cases that Drupal is used for, and oftentimes some of the most important innovations in Drupal begin as contributed extensions. 

These are just a few projects that could use contribution support to help advance Drupal.

Top used patches

  • Would it be amazing to have a list of most used patches, and propose those as priorities to get fixed? We are working on extracting that list. COMING SOON
  • Would you like to propose a patch or patches on this section? Send me your suggestions and why it would make a difference to: alex.moreno@association.drupal.org

Easy picks

Issues that are easy to fix or just need a little push

Ideas/others?

Contact me: alex.moreno@association.drupal.org

Educational resources for contribution

We offer some detailed resources that we recommend everyone review when learning to first contribute: 

Resource #1: A video introduction to contribution:

https://www.youtube.com/watch?v=lu7ND0JT-8A

Resource #2: A slide deck which goes into greater depth about contribution:

https://docs.google.com/presentation/d/1jvU0-9Fd4p1Bla67x9rGALyE7anmzjhQ4vPUbf4SGhk/edit 

Resource #3: The First Time Contributors Workshop from DrupalCon Global:

https://www.youtube.com/watch?v=0K0uIgKaVNQ

Avoid contribution behavior that seems motivated just to 'game the system'

It's unfortunate, but we do sometimes see contributors who appear and disappear on single issues on small, repetitive tasks that could just as easily be handled by automated tools. These issues are generally not eligible for credit anyway, and often cause frustration for Project Maintainers. It's not good for you or your company's reputation to contribute in this way.

Resource #4: Abuse of the credit system

These guidelines help clarify what kinds of contributions are not considered acceptable for marketplace credit.

https://www.drupal.org/drupalorg/docs/marketplace/abuse-of-the-contribution-credit-system

We did see some recent examples of issues being opened for individual phpcs issues, when we prefer to see all phpcs issues fixed in a single issue, for example.