04 Jan 2026

feedDrupal.org aggregator

#! code: Drupal 11: Theming The Search API Search Input

A common request I see when theming Search API forms is to swap out the normal submit element with a magnifying glass icon. Performing this action isn't difficult, but it does require adding a couple of operations to add a suggestion so a custom template can be used.

When I set up a view to perform a search against a Search API index I normally create an exposed filter for the text content. Views shows this as a block that can be embedded into the site. The block, however, comes with a input element to act as the search button, and it isn't possible to inject SVG icons into input elements.

By changing the input element to a button we can then inject a small SVG of a magnifying glass or similar to act as the search button.

Swapping out this input element takes a couple of steps, and I although I have done this technique a few times I still need to dig into old code to figure out how I did it. So, I thought I would document it so I didn't have to go looking for the solution again.

In this article I will look at how we can use a combination of form alters and suggestion hooks to change the Search API form submit input to a button so that an SVG can be embedded inside.

Altering The Search Form

The first step (and perhaps the trickiest) is to alter the search form to add a couple of attributes to the search submit element.

If we add a theme suggestion alter hook for the input element, the element itself has no knowledge of the context that surrounds it. This makes it tricky to know that we are altering the correct element or even to inject a suggestion that would be unique for the search form.

The form alter hook, therefore, is used to inject an attribute into the form element so that we can read this in the suggestions hook. This gives is a bit of data we can identify and use in the suggestions hook.

Read more

04 Jan 2026 6:31pm GMT

feedSymfony Blog

A Week of Symfony #992 (December 29, 2025 – January 4, 2026)

This week, Symfony 6.4.31, 7.3.9, 7.4.3, and 8.0.3 maintenance versions were released. In addition, we published the 2025 year recap blog post to review the main Symfony activity during the last year. Symfony development highlights This week, 28 pull requests…

04 Jan 2026 8:22am GMT

02 Jan 2026

feedDrupal.org aggregator

Centarro: Is Drupal Good for Ecommerce?

The short answer: Yes.

Drupal works well for eCommerce. The Drupal Commerce module is not a light add-on. You aren't slapping some basic shopping cart functionality onto your website and calling it a day. Drupal Commerce is a comprehensive framework suitable for all sorts of applications. It processes billions in annual sales and many businesses trust it to power mission-critical eCommerce applications.

The long answer: It depends. Specifically, it depends on your business, on your budget, on your long-term plans, and maybe even your personality. Drupal could power any eCommerce website, and do it well. But is it the best choice for your particular situation?

What makes Drupal good for eCommerce?

Let's assume the table stakes for a functioning eCommerce store. Shopping cart, products, variations, order management, shipping integrations, payment gateway connections, and all the stuff you'll see advertised on every SaaS commerce platform. Out of the box, Drupal Commerce provides all of this functionality and implements it in a stable, secure way.

But since Drupal Commerce is built on top of Drupal, you get so much more.

Read more

02 Jan 2026 3:03pm GMT

31 Dec 2025

feedDrupal.org aggregator

Dries Buytaert: 20 years of blogging

Plants on a kitchen windowsill, basking in warm sunlight.

My blog turns 20 today!

I have been at this for two decades now, yet I still don't identify as a blogger. It feels awkward to say the words: I am a blogger.

Probably because I started writing to think out loud. I never set out to be a blogger. And honestly, I still feel like I'm figuring the whole thing out.

My history with blogging actually goes back 25 years. Before this site, I started Drop.org, where I shared ideas and experimented with emerging web technologies. Drop.org eventually led me to create Drupal. Drupal 1.0 even included a feature called "public diaries". We didn't call it "blogging" back then, but that is what it was.

The irony was that Drupal was powering personal blogs around the world, while my own site was still a few static HTML files.

At DrupalCon Amsterdam in 2005, Steven Wittens called me out on it. Steven was the number two in Drupal at the time. He proposed a bet: if I did not launch a Drupal-powered site before January 1, 2006, I would owe him a Duvel. If I did, he would owe me one.

I wrote my first post on December 31, 2005 with less than a day to spare. I don't remember if I ever collected that Duvel, but I haven't stopped writing.

In the early years, I would post short thoughts on a whim. Social media did not exist yet, so there was almost nothing between a thought and my Publish button. Today, those quick thoughts often end up on social media instead, although I have mostly stepped away from it. More people read what I write now, so a new post can take me hours instead of minutes.

I removed analytics from my site long ago. I do not want to write for page views, nor do I want to invade your privacy. My site aspires to the privacy of a physical book.

I write to discover and connect with people. But one thing has never changed: I am a terrible judge of what will connect. The posts I polish the longest often get little attention, while the ones I nearly talk myself out of publishing are the ones people share. I have stopped trying to explain this, but it reminds me that I do not get to decide what matters to others. Maybe the polishing takes something away. Maybe the risky ones carry an honesty that others can feel.

I love that writing in public has a way of keeping you honest. Ideas that seem solid in my head can fall apart the moment I try to explain them. I have changed my mind more than once simply by trying to put my thoughts into words.

But the writing is only half of it. The best part happens after you press publish.

Blogging starts conversations with people I have never met. Blog posts become invitations that never expire. They wait patiently for the right moment to be found. Someone reads an old post, reaches out, and suddenly we are talking. Even in person, conversations start more easily because people already have a sense of who I am or what I care about.

My attention to this blog has gone up and down over the years. Work pulled me away. Travel pulled me away. But I always come back. Writing in public gives me something I do not get anywhere else.

It is strange to think this all traces back to that Duvel bet. My site still runs Drupal of course, which must make it one of the oldest Drupal-powered sites.

Some of you have been reading since the beginning. Many found your way here much later. I am grateful for all of you. Thank you for making this feel like a conversation instead of a monologue.

I plan to keep writing here as long as I can. If you have been reading for a while, I would love to hear from you. Even a simple hello means a lot.

31 Dec 2025 4:21pm GMT

feedSymfony Blog

Symfony 2025 Year in Review

This post highlights the key accomplishments of the Symfony project in 2025. We are grateful for your continuous support, which helped make 2025 a remarkable year for Symfony. Releases We released three new major versions: Symfony 7.3 in May and Symfony…

31 Dec 2025 10:13am GMT

Symfony 8.0.3 released

Symfony 8.0.3 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip…

31 Dec 2025 9:43am GMT