Planet Drupal

Subscribe to Planet Drupal feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 2 hours 37 sec ago

Specbee: Driving E-Commerce Revenue Success with Drupal Commerce

Tue, 2024-02-13 01:56
Every e-commerce business has unique requirements. While some are simple plug-and-play solutions, others are tailored with custom development. Evolving trends like AI-driven personalization, seamless mobile experiences, and the growing importance of sustainability, are equally playing a part in an e-commerce application’s requirements.  Using a framework that offers deep customization is essential for almost every e-commerce store. Today, we’re going to talk about one such e-commerce framework - Drupal Commerce. With Drupal Commerce, you get the flexibility of Drupal and the power of innovation. Let's take a closer look at some of its features and architecture in this article. The Relevance of E-commerce Today Global Reach: With an internet connection, anyone can access e-commerce platforms worldwide. 24/7 Accessibility: Enjoy the convenience of anytime access. Diverse Product Offerings: Unlike offline shopping, where options are limited, e-commerce opens the door to a wide variety of products. Economic Growth: E-commerce fosters economic growth by offering a broad spectrum of products, breaking free from the constraints of limited stock seen in offline shopping. Contactless Transactions: Embrace the ease and safety of contactless transactions in the digital shopping realm. Choosing Drupal Commerce Now, the next question arises: Why should we choose the Drupal Commerce platform for e-commerce? Considering the myriad CMS platforms in the market such as Magento, WordPress, Shopify, and Drupal, selecting the right platform can indeed be challenging. Here are some reasons for opting for Drupal as your e-commerce platform: Open-source and extensible Flexibility for complex business needs Rules-based architecture  Community support and modules Integration with third-party services Stands out for businesses aiming to create a user-friendly and easily accessible e-commerce platform. Key Features of Drupal Commerce Take a look at some key features of Drupal Commerce that you might like: Integrations - Drupal provides extensive integration possibilities with third-party services and tools. E-commerce websites can seamlessly integrate with payment gateways, shipping providers, and other essential services. Rules-Based Architecture - Drupal Commerce, as part of Drupal, integrates with the Rules module. This allows administrators to define complex business rules and workflows, providing flexibility in managing various aspects of the e-commerce process. Headless and Decoupled Architecture - Drupal supports headless and decoupled architectures, allowing businesses to use Drupal as a back-end while using a different front-end technology. This flexibility is beneficial for creating unique and tailored user interfaces  Additional Features: Multiple stores - Easily create and manage multiple stores with Drupal Commerce. Multiple currencies - Handle transactions in multiple currencies. Flexible and Extensible Powerful Content Management Community Support Theming and Responsive Design SEO-Friendly Multilingual Capabilities Security Drupal Commerce Architecture and Components Now, let's delve into the architecture and components of Drupal Commerce. There are different types of entities in Drupal Commerce, including, Store: Can products be added without a store? Absolutely not! A key element in Drupal Commerce, the store, plays a crucial role in controlling billing and shipping countries available during the checkout process. Each store can even have its own currency, a boon for dealing with multiple currencies across locations. Product Architecture: Understanding the product structure is key before diving into adding products in Drupal Commerce. Imagine your store selling t-shirts or shirts. These products come in various sizes, colors, types, fabrics, etc. To handle this complexity, Drupal Commerce introduces Product Attributes. For example: Product Type: t-shirt Size: Product Attribute Color: Product Attribute In Drupal Commerce: There's a single product entity. This product entity comprises 7 different product variations. Size Product Attribute has 3 values: Small, Medium, and Large. Color Product Attribute has 4 values: Green, Orange, Red, and Blue. Order Entities: Order entities contain information about the product, its variation, and customer details. Order Items: These represent purchased items within the order. Order Types: Each order type has its own settings for the cart and checkout pages. We’ll discuss more practical implementations of this later. Implementing Drupal Commerce Prerequisites Make sure you have a web server that satisfies Drupal’s requirements The preferred memory limit is 256MB or more. Latest version of Composer to manage dependencies. DDEV or lando for local development.  Drupal Installation composer require "drupal/commerce"Enable Commerce drush en commerce_product commerce_checkout commerce_cartGetting Started Create a Store From the toolbar navigate to Commerce > Configuration > Store > Stores and click on the Add Store button. Once you add the store, you will be able to add and display products easily.   Configure different product entities To add a new Product inside a Store, let’s first create a Product Type by navigating to Commerce > Configuration > Product types from the toolbar menu or visit /admin/commerce/config/product-types Click on Add Product type button When you select Product variation type as “Create new” then you don’t need to add Product variation additionally. Now, let's create Product Attributes for the same Product Type by navigating to Commerce > Configuration > Product Attributes or simply visit /admin/commerce/product-attributes and click on the “Add product Attribute” button. While adding a Product Attribute, you will notice that the Product variation types (created in step 2) are present and you can map your attributes to your variations. As a result, these attributes will be visible when you add variations to any product. Here in the above example, we have created a Product Attribute as Color, in which we have listed different colors. Similarly you can create different Product attributes like Size, Type, etc. Now that you have created a Store, Product Type, Product Variations, and Product Attributes, it’s time to create a new Product. Add Products 1. To add a Product navigate to Commerce > Products and click on the “Add Product” button. 2. Enter your Product Details and click on “Save and add variations”. 3. Add your different product variations. Displaying Products Product display pages First, you will need to customize the product pages from the “Manage Display” tab option. For multi-product displays, simply create a view page to display multiple products. Add to cart form Next, include the Add to Cart form on product pages or the other pages from where the user can add the products to the cart. To include the “Add to cart” form, navigate to Commerce > Configuration > Orders > Order Item Types and then navigate to “Manage Form Display” of the particular order item (here we used Default)   Product images To add Product Images, you need to add a field inside the Product Variation Type entity so that different images can be uploaded for every different Product variations. Further, you can learn how to use the Drupal Core Image module to create a custom image style for products. To create a custom view mode for product variations, you can use the Image delta formatter module. Add Payment Gateway By default, Drupal Commerce provides a COD (Cash On Delivery) payment gateway, but you can configure different payment gateways as well. To learn more about how to add a payment gateway click here.     Orders You can manage your orders from the Orders page by navigating to Commerce > Orders.   Final Thoughts Choosing the right framework for your unique e-commerce business is absolutely crucial. A robust and customizable framework like Drupal Commerce is not just an option; it's a strategic necessity. Combining the flexibility of Drupal with a flair for innovation, Drupal Commerce stands as a powerful solution for varied e-commerce needs. If you’re looking to build or enhance your e-commerce solution, we have the Drupal development expertise and experience to bring your vision to life. Let’s make it happen!  
Categories: FLOSS Project Planets

Chapter Three: Apigee Kickstart in Action: Powering Financial Services

Mon, 2024-02-12 15:34
A Developer Portal Shows the Flexibility of Drupal Black Knight, Inc. is a financial services company that provides integrated software, data, and analytics solutions primarily to the real estate and mortgage lending sectors, as well as to the capital and secondary markets. Originally founded as Computing and Statistical Services in 1962, the Jacksonville, Florida-based corporation is a national leader in providing automated solutions that span the homeownership life cycle. Note that Black Knight has recently been acquired by Intercontinental Exchange (ICE).
Categories: FLOSS Project Planets

Talking Drupal: Talking Drupal #437 - Drupal Mail & Easy Email

Mon, 2024-02-12 14:00

Today we are talking about sending email with Drupal, The Easy Email Module, and Drupal Mail Best Practices with guest Wayne Eaker. We’ll also cover Content Access by Path as our module of the week.

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

Topics
  • Current state of email
  • What happened to swiftmailer
  • Do you still need the mailsystem module
  • Why Symfony Mailer
  • New dependency in core
  • Difference between Symfony Mailer module and the Symfony Mailer Lite module
  • How does the Easy email module make it easier
  • What are the features of Easy Email
  • Why not use PHP mail
  • JMAP
  • Do you have a roadmap
  • How do we communicate the different module options
  • Are you looking for help
Resources Guests

Wayne Eaker - drupaltutor.com zengenuity

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Ivan Stegic - ten7.com ivanstegic

MOTW Correspondent

Martin Anderson-Clutz - mandclu

  • Brief description:
    • Have you ever wanted to grant users access to edit content based on the path alias of the content? There’s a module for that.
  • Module name/project name:
  • Brief history
    • How old: created in the past month by Mark Conroy of Annertech, who is also a core subsystem maintainer for the Umami profile
    • Versions available: a stable 1.0.0, created in the past week, that works with Drupal 10
  • Maintainership
    • Actively maintained
    • Doesn’t have a user guide yet, but the module’s README does include some FAQs, and the project page includes a link to a YouTube video that demonstrates how to install and use the module
    • Number of open issues: 2, one of which is a bug
  • Usage stats:
    • 2 sites
  • Module features and usage
    • When installed, the module adds a new taxonomy vocabulary to your site. You can add terms to this vocabulary to define sections by path
    • Users on the site will have a new field, where you can reference one or more of the section terms, granting the user access to edit any content with a path that matches the section
    • The module also includes a submodule called Content Access by Path Admin Content. When installed, users who go to the admin/content listing will only see content listed that they can edit, based on either the sections they’ve been assigned, or their ownership of the content.
    • Granting edit permissions to a “section” of the website is a common ask for site owners, so I’m excited that this module makes it easy to set that up. There are solutions in the contrib ecosystem based on taxonomy for access control, and back in episode #414 we talked about Access Policy as a very flexible way to grant edit permissions, but in my mind those all require more set-up, and may require an extra step during content creation to make sure the right access is available. Content Access by Path, along with something like the near-ubiquitous Pathauto, can make it pretty painless to set up and use section-specific edit permissions
Categories: FLOSS Project Planets

Drupal Association blog: Single Sign-On is coming to Drupal.org thanks to Cloud-IAM

Mon, 2024-02-12 10:46

The Drupal Association is pleased to announce that we have partnered with Cloud-IAM to deploy secure, GDPR-compliant managed KeyCloak for single sign-on for Drupal.org. 

Using single sign-on for Drupal.org identity management has been a long term goal of the Drupal Association, as it offers a number of benefits: 

  • We can more easily manage authentication across our upgraded Drupal 10 sites, and our legacy Drupal 7 sites while we migrate all of our Drupal.org properties.

  • We can begin to introduce 'social login' allowing new users to create their Drupal.org accounts using external identities they already have - making it easier to jump straight in to contribution, as one example. 

  • Once we establish the appropriate terms of service, we can begin to allow Drupal.org users to use their identity to login to external community sites, such as Drupal Camp websites, and use that to federate data back to Drupal.org. 

We know we wanted to implement KeyCloak as our identity and access management solution under the hood, because it is Open Source, robust, and well supported. 

We reached out to Cloud-IAM because they built their company around providing managed services to support KeyCloak as an open source solution to identity management with a strong SLA, and no vendor lock-in. Wherever possible the Drupal Association looks to work with companies that share our Open Source ethos, and are excited to support the Drupal community. 

Being based in Europe, Cloud-IAM is also a privacy-centric service provider, with robust compliance processes for GDPR that also meet or exceed international standards for other privacy regulations such as CCPA, LGPD, etc. 

To our immense gratitude, Cloud-IAM was not only willing to support us, but excited to partner with us to support the Drupal Community and Drupal project. Based on our experience, we would certainly recommend them to all the Drupal agencies and site owners who are looking for their own solutions for managed IAM based on an open source platform.

In fact - CloudIAM would like to offer the site owners and agencies who are looking for their own identity and access management service 10% off, with promo code: DRUPAL10. You can sign up to try the service for free and then apply the discount to a subscription plan of your choice.

So What's Next?

The Drupal Association has partnered with Tag1Consulting to help us build a migration process for Drupal.org users. In the coming month or so we'll be scheduling the migration of our user database. On the Drupal side, we'll be using the OpenID Connect contrib module. 

The majority of your user profile on Drupal.org will stay the same, you will now just see a Cloud-IAM login/registration flow, and use the Cloud-IAM UI for editing some of the core fields for your user account, like name and email address. The rest remains on your Drupal profile. 

When the migration window is scheduled we'll share in the #drupal_infrastructure channel on Drupal Slack, and repost to our usual drupal_infra social media channels.

Categories: FLOSS Project Planets

Kyle Einecker|True Summit: Search Web Components Alpha 2 Release

Mon, 2024-02-12 10:21
A few weeks ago, I announced the Search Web Components module, and since then, I've seen a lot of interest and gotten some great feedback on the module's state and where it could go from here. I've also been doing a lot of work to improve the site builder experience and stabilize config structures and patterns to help avoid breaking changes moving forward. Here's a look at the improvements included in the Alpha 2 release
Categories: FLOSS Project Planets

The Drop Times: Life as a Drupal Storyteller: A Journalist's Perspective

Mon, 2024-02-12 09:19
Curious about life as a journalist for Drupal? Step into the world where every day brings new stories, connections, and insights. From interviews with community members to crafting engaging articles, it's a dynamic journey of discovery and collaboration.

Hey there, Drupal Fam!

Wanted to drop you a line and share a bit about what it's like to be a journalist here in the heart of Drupal. It's not all flashy headlines and breaking news, but it's rewarding in its special way.

So, picture this: every day, I'm diving deep into the world of Drupal, connecting with community members, and getting the scoop on all the latest happenings. Whether it's chatting with developers, designers, or contributors, there's never a dull moment.

One of the valuable aspects of my role is connecting with Drupal community members for interviews. These engagements offer valuable insights and perspectives, enriching our understanding of the community and its contributions.

And let's not overlook the articles. We have some fantastic content lined up for you. From insightful analyses to thought-provoking pieces and event coverage, we consistently bring fresh and engaging material.

But here's the thing – it's not just about churning content. It's about doing justice to Drupal and all the incredible work being done by our community members. Their contributions make a difference, and I'm honoured to play a small part in showcasing their talents.

So, next time you're scrolling through our articles or tuning in to one of our interviews, remember – thanks to the Drupal community's amazing folks who make it all possible.

An organizational update: We are now active on Drupal Slack as #thedroptimes. Do search for the handle and join Slack, where you can participate in the process of news gathering by occasionally answering our queries or sharing your perspectives. 

Now, let's talk about some important news stories we covered from last week:

Automated Testing Kit for Drupal, led by André Angelantoni, revolutionizes end-to-end testing with its versatile features, impactful vision, and seamless integration of Cypress.io and Playwright frameworks. Andre is the project lead of the Automated Testing Kit, Layout Builder Kit, and Campaign Kit. He speaks with Alka Elizabeth in an email correspondence about the project.  

Nicolas Loye, CTO of Smile, a French Drupal agency, and the treasurer of Drupal France, shares insights with Elma John in an interview on community-driven growth, financial stewardship, and fostering collaboration. From porting projects to organizing Drupal events, Nicolas reflects on the essence of community work and its impact on his role as a technology leader.

Jorge Lopez-Lago, a seasoned Solutions Architect at FFW, shares his diverse experiences and insights in another exclusive interview with Elma. Jorge offers a glimpse into his evolution from a hands-on Drupal developer to a multifaceted leader and discusses his unique approach to problem-solving and community engagement.

Get the latest update from FOSDEM as Drupal, Joomla, Typo3, and WordPress join forces to establish the Open Website Alliance, representing over 50% of websites online.

The Drop Times is thrilled to announce its official media partnerships with DrupalCamp Rennes and Drupal Developer Days Burgas 2024! Stay tuned for exclusive coverage of these premier Drupal events, featuring insights, interviews, and live updates.

Discover the latest in Drupal and web technologies with Dries Buytaert, founder of Drupal, as he visits Japan for the first time in nearly eight years. This exclusive event on March 14, 2024, in Tokyo, promises valuable insights into the future of web development.

Get ready to save $100 on DrupalCon Portland tickets! Early bird registration is now open. Join the City of Roses for networking, collaboration, and learning with the Drupal community. Register now! Drupal Association introduces scholarships for historically oppressed communities and community grants to support vital Drupal contributors at the upcoming DrupalCon Portland 2024. Eligible individuals can seize this opportunity to engage in the conference and contribute to the Drupal community.

Dive into the heart of Drupal MountainCamp as a volunteer! Join in welcoming attendees, ensuring smooth sessions, and making this event unforgettable. Your contributions will be rewarded with drupal.org credits. Drupal Mountain Camp announces Acquia as its latest Gold Sponsor, adding substantial value to the upcoming event.

DrupalCamp Ghent 2024 invites professionals and experts to submit session proposals for its upcoming event, offering a platform to share insights with the Drupal, PHP, and JavaScript communities.

Beginning July 1, 2024, Drupal.org will discontinue patch testing and DrupalCI testing, mandating a shift to GitLab CI for automated testing. Contributors must switch from patches to merge requests by the specified date, marking a significant transition in the platform's testing framework.

We acknowledge that there are more stories to share. However, due to constraints in selection, 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
Kazima Abbas
Sub-editor, TheDropTimes.

Categories: FLOSS Project Planets

Gábor Hojtsy: Onwards to Drupal 11 - ways to get involved

Mon, 2024-02-12 06:52
Onwards to Drupal 11 - ways to get involved

Last November the Drupal project announced that Drupal 10 will receive long term support until mid-late 2026. That is when Drupal 12 will be released, so this long term support does not mean that Drupal 11 will not be released as well in the meantime. And by meantime, I mean Drupal 11 will be released this year, in 2024, in June or July or December.

Gábor Hojtsy Mon, 02/12/2024 - 13:52
Categories: FLOSS Project Planets

mcdruid.co.uk: What is overriding your Drupal config?

Mon, 2024-02-12 06:32

Something is overriding config in Drupal - you can see it by invoking drush with and without the flag to include overrides:

$ drush cget system.performance | grep -B1 preprocess css: preprocess: false -- js: preprocess: false $ drush cget --include-overridden system.performance | grep -B1 preprocess css: preprocess: true -- js: preprocess: true

Perhaps we want to turn this config off, but these overrides won't let us.

Where are these config overrides coming from?

Generally, overrides can come from two places - for example, see:

https://git.drupalcode.org/project/drupal/-/blob/10.2.3/core/lib/Drupal/Core/Config/Config.php#L280

// Apply overrides. if (isset($this->moduleOverrides) && is_array($this->moduleOverrides)) { $original_data = NestedArray::mergeDeepArray([$original_data, $this->moduleOverrides], TRUE); } if (isset($this->settingsOverrides) && is_array($this->settingsOverrides)) { $original_data = NestedArray::mergeDeepArray([$original_data, $this->settingsOverrides], TRUE); }

There could be an override in settings(.php) or perhaps it's coming from a module. How can we tell which?

The settingsOverrides and moduleOverrides properties of the config object are protected, but in modern PHP there's at least one trick we can use to have quick look at them.

$ drush ev "var_dump((fn() => \$this->moduleOverrides)->call(\Drupal::config('system.performance')))" NULL $ drush ev "var_dump((fn() => \$this->settingsOverrides)->call(\Drupal::config('system.performance')))" array(2) { ["css"]=> array(1) { ["preprocess"]=> bool(true) } ["js"]=> array(1) { ["preprocess"]=> bool(true) } }

So we can tell that these overrides are coming from settings as opposed to modules.

Hopefully that'll help us track them down.

Tags: drupal-planetdrupaldebugging
Categories: FLOSS Project Planets

LN Webworks: How To Manage Custom Drupal Migrations Using SQLBase?

Mon, 2024-02-12 06:05

Drupal 9 stopped getting updates on November 1, 2023. Drupal 7 will stop getting updates by January 2025, but that's the last extension. Drupal 10 came out in December 2022, and the latest version, 10.1.6, was released on November 1, 2023. What does this mean? 

There’s a lot going right now in the drupal space and many websites are migrating to updated versions of Drupal. In fact, as of now, over 12,000 websites have already switched to Drupal 10, as per the Upgrade Status module download stats. This simply means that now is the best time for you to opt for a Drupal migration company and make the move. Let's have a look at the various ways to migrate in Drupal, with a special focus on custom migrations using the SqlBase source plugin.

Categories: FLOSS Project Planets

Gábor Hojtsy: Looking for your input for DrupalCon Portland 2024 initiative highlights

Mon, 2024-02-12 04:50
Looking for your input for DrupalCon Portland 2024 initiative highlights

I have the pleasure to organize the DrupalCon initiative keynotes now twice a year. The genius idea of this I believe came from Angie Byron, and ever since we include them, they are among the top rated sessions at each DrupalCon. The goals of this keynote are manyfold. First, we want to show the people who lead important work in core, humanising the software.

Gábor Hojtsy Mon, 02/12/2024 - 11:50
Categories: FLOSS Project Planets

The Drop Times: Nicolas Loye: Bridging Technology and Community for Sustainable Growth

Fri, 2024-02-09 15:59
Uncover the journey of Nicolas Loye, CTO at Smile and a Drupal luminary, as he shares insights on community building, leadership, and staying at the forefront of technology. Discover the blend of technical expertise and community stewardship that defines his impactful role in the Drupal ecosystem.
Categories: FLOSS Project Planets

Community Working Group posts: Nominations are now open for the 2024 Aaron Winborn Award

Fri, 2024-02-09 12:47

The Drupal Community Working Group is pleased to announce that nominations for the 2024 Aaron Winborn Award are now open. 

This annual award recognizes an individual who demonstrates personal integrity, kindness, and above-and-beyond commitment to the Drupal community. It includes a scholarship and travel stipend for the winner to attend DrupalCon North America and recognition in a plenary session at the event.

Nominations are open to all Drupal community members*, including but not limited to people who have made a big impact in their local or regional community. If you know of someone who has made a big difference to any number of people in our community, we want to hear about it. 

This award was created in honor of long-time Drupal contributor Aaron Winborn, whose battle with Amyotrophic lateral sclerosis, or  ALS (also referred to as Lou Gehrig's Disease)  came to an end on March 24, 2015. Based on a suggestion by Hans Riemenschneider, the Community Working Group, with the support of the Drupal Association, launched the Aaron Winborn Award.

Nominations are open until Friday, March 29, 2024.
A committee consisting of the Community Working Group members (Conflict Resolution Team) as well as past award winners will select a winner from the nominations. 
* Current members of the CWG Conflict Resolution Team and previous winners are not eligible for winning the award.

Previous winners of the award are:

2015: Cathy Theys  
2016: Gábor Hojtsy
2017: Nikki Stevens 
2018: Kevin Thull 
2019: Leslie Glynn  
2020: Baddý Breidert
2021: AmyJune Hineline
2022: Angie Byron 
2023: Randy Fay

Now is your chance to show, support, and recognize an amazing community member!

If you know someone amazing who should benefit from this award please submit a nomination.

Also, if you are a creator and would like to help craft one of our future Aaron Winborn Awards, please reach out to the Drupal Community Working Group.
 

Categories: FLOSS Project Planets

Gábor Hojtsy: Upgraded my blog from Drupal 7 to Drupal 10 in less than 24 hours with the open source Acquia Migrate Accelerate

Fri, 2024-02-09 08:57
Upgraded my blog from Drupal 7 to Drupal 10 in less than 24 hours with the open source Acquia Migrate Accelerate

After 16 years, I was back in Brussels for another FOSDEM last weekend. Back then, as the lead maintainer, I presented about the brand new Drupal 6 version. Now I revisited the pieces that made the Drupal 8 Multilingual Initiative super successful (dedicated post about that coming soon). That reminded me how much I used this website and other custom websites to support initiatives I worked on, and how I neglected to take care of the site in recent years. I wanted to move a bit forward, and kind of got carried away in the best way possible.

Gábor Hojtsy Fri, 02/09/2024 - 15:57
Categories: FLOSS Project Planets

Balint Pekker: To Patch or Not To Patch

Thu, 2024-02-08 18:35
There is an ongoing debate among developers regarding the use of patches versus pull requests for contributions. Since its migration to GitLab in 2018, Drupal has undergone significant changes. As of July 2024, the removal of Drupal CI and automated patch testing could potentially change the way contributions are made.
Categories: FLOSS Project Planets

Drupal Association blog: The Top 6 Benefits of Attending DrupalCon Portland 2024

Thu, 2024-02-08 14:51

DrupalCon Portland 2024 promises to be an unmissable event for web developers, designers, and business professionals invested in the Drupal ecosystem. As one of the most significant gatherings in the Drupal community, the conference offers a variety of benefits that extend beyond just technical knowledge. From networking opportunities to staying ahead in the rapidly evolving digital landscape, attending DrupalCon Portland can be a game-changer for professionals. Let's explore 6 of the top benefits of being part of this transformative event!

Cutting-Edge Insights

DrupalCon is renowned for bringing together thought leaders and experts in the Drupal community. Attendees will have the chance to gain insights into the latest trends, innovations, and best practices in web development, ensuring they stay at the forefront of the industry.

Networking and Career Opportunities

Connect with like-minded professionals and Drupal enthusiasts at DrupalCon. The conference offers a networking platform beyond sessions, fostering relationships for potential partnerships, job opportunities, and collaborative projects. Explore career prospects by engaging with hiring companies and recruiters in the Drupal ecosystem, as many organizations actively seek skilled professionals to join their teams.

Skill Enhancement

Join interactive training sessions and learn from industry experts at DrupalCon. These sessions aim to improve your skills and offer practical knowledge for immediate application to your projects. DrupalCon provides a variety of session tracks suitable for different interests and skill levels. Whether you're a beginner or an experienced developer, there are sessions customized to meet your requirements, guaranteeing a comprehensive learning experience.

Stay Informed About Drupal releases

DrupalCon Portland 2024 presents a fantastic chance to stay informed about the latest developments and insights in Drupal's upcoming core and feature releases. By participating, you can stay ahead of the curve by gaining knowledge about the new features, enhancements, and possible challenges that Drupal has in store. This event provides a valuable opportunity to stay current and well-informed within the Drupal community.

Contribute to the Community

DrupalCon provides a comprehensive experience beyond training and discussions, allowing participants to actively contribute through collaborative code sprints. These hands-on sessions, where developers collectively enhance Drupal core and modules, offer valuable practical experience. Beyond coding, attendees can also contribute through non-code avenues such as volunteering and mentoring, enriching their overall DrupalCon experience. This inclusive and collaborative spirit defines DrupalCon, fostering a vibrant community of shared knowledge and expertise.

Vendor Expo

Take advantage of the vendor expo at DrupalCon Portland 2024 to explore cutting-edge tools, services, and technologies that seamlessly integrate with Drupal. Immerse yourself in engaging conversations with industry-leading vendors to gain a deep understanding of their offerings. This is a unique opportunity to identify potential partnerships or solutions that can significantly enhance the effectiveness of your Drupal projects. By actively participating in the expo, you'll be able to discover and leverage the latest innovations that can elevate your Drupal experience.

DrupalCon Portland 2024 is not just a conference; it's an immersive experience that can significantly impact your professional growth. The benefits are extensive, from staying updated on the latest Drupal developments to forging valuable connections and contributing to the open source community. Attendees can expect to leave the conference with enhanced skills, fresh perspectives, and a network of contacts that can propel their careers to new heights.

Registration is now open for DrupalCon Portland 2024, held from 6-9 May at the Oregon Convention Center.

Categories: FLOSS Project Planets

Ramsalt Lab: Upgrading your site from Drupal 9 to 10

Thu, 2024-02-08 08:44
Upgrading your site from Drupal 9 to 10 Perry Aryee Developer 08.02.2024

With Drupal 9 having reached its end of life (EOL) on November 1, it’s time to start planning for an upgrade.

For those already operating on Drupal 9, upgrading to Drupal 10 is not as daunting as earlier upgrades and promises to be easy, reflecting the software’s overall trend towards smaller, more incremental upgrades and faster iterations. According to Drupal, you should "completely update your Drupal 9 site to the most recent version of the modules and theme(s), before updating to Drupal 10." 

The deprecated code will be based on Drupal 9 moving into Drupal 10, but there are ways to search your system and update the specified code block.

The first thing to do is to install the  drupal/upgrade_status module in your project and enable it. composer require drupal/upgrade_status && drush en upgrade_status, if you have drush installed else go to admin > modules  and search for upgrade status and install it. After the module is enabled, go to Admin > Reports > Upgrade Status. This page should contain all the upgrades and code changes necessary before your site can be upgraded to Drupal 10.

Steps to upgrade Drupal 9 to Drupal 10

Migrating from Drupal 9 to Drupal 10 can be easy or can be difficult depending on the project you are involved in. Yes, because every site is different and may present its own unique challenges.

These are the following steps to migrate from Drupal 9 to Drupal 10.

  1. Keeping your custom modules up to date with new standards and removing deprecated code will result in small changes before you have to do a major core upgrade. If the site is well maintained the changes are mostly with the core_version_requirement. You will need to update from core_version_requirement: ^9 to core_version_requirement: ^9 || ^10 . As soon as we are sure that our custom code is compatible with Drupal 10, we can move to check the contrib modules. And this is where things might get tricky
  1. Upgrade contrib modules to versions which support Drupal 9 and 10. If the new version only supports D10, then you can add it to composer as an alternative version, for example: 'drupal/module_name': '^1 || ^2', and you can have version 1 still installed while on Drupal 9. Once you install Drupal 10, version 2 of the module will be installed by composer.
  1. Uninstall obsolete modules and themes like Color, RDF, Seven etc. You can’t remove core modules or themes, but if you are not sure if these are depended upon, it can be moved from core to contrib especially classy and stable, which you can keep as contrib modules. You may need to set your Admin theme to Claro and re-export your config on this step. Use drush theme:uninstall theme(s) command (drush thun for short) to uninstall themes.
  1. Remove orphaned permissions which are still assigned to user roles. Export your config before starting this step. The upgrade_status module will tell you which permissions need to go from which roles. Simply edit the user.role.[role].yml config ymls and remove the relevant lines from the permissions array. 
  1. Upgrade Drupal core to latest 9.5, in order to upgrade to 10.

composer require drupal/core-recommended:^9.5 drupal/core-composer-scaffold:^9.5  --update-with-all-dependencies

Now let's look at the tricky part. Drupal 10 has some specific things we have to do to allow us to upgrade to drupal 10.

  1. Drupal 10 runs with PHP 8.2 or later so make sure you have it to be able to upgrade. 
  1. Not all modules are Drupal 10 ready so you will have to use drupal lenient.  You will have to get a patch for Drupal 9 only modules. Install mglaman/composer-drupal-lenient before attempting to upgrade. Otherwise these modules will create a dependency problem. After the installation, you need to declare the Drupal 9 modules which should be treated as Drupal 10 modules. For example, to allow drupal/token to be installed run:

composer require mglaman/composer-drupal-lenient

composer config --merge --json extra.drupal-lenient.allowed-list '["drupal/token"]'

  1. If you have Drush installed make sure the version is ^11 || ^12, we use this because some module may not be version 12 compatible.
  1. Drupal Console (drupal/console) is not Drupal 10 compatible and as such we have to remove it. 

composer remove drupal/console --no-update

  1. Upgrade CKEditor 4 to CKEditor 5,if you have custom CKEditor 4 plugins which don’t have an upgrade path to CKEditor 5, then you can keep using CKEditor 4 but as a contrib module. You may have to use it although it is deprecated, to avoid errors when you deploy the Drupal 10 upgrade, when the config import tries to uninstall CKEditor.
  1. If you use Entity Embed, you need to manually replace CKEditor Embed buttons with SVG icons as Drupal 10 is not using png.
  1. Check custom code for core/jquery.once if it does exist update it to use core/once because jquery.once is removed from Drupal 10
  1. If you encounter dependency issues, and composer just won’t let you upgrade to D10, but you are sure that all the dependencies are in order, then the quickest thing to do is to delete the composer.lock file(although its not a best practice), delete vendor folder then run composer install which will install from the composer.json file and create a new .lock file.
  1. Note that you can ignore some false positives such as an empty custom profile, which phpstan can’t scan, and as such upgrade status would complain, the trick would be to create an empty .php file to get the issue fix

After all these are done and ready for upgrade, you can run this command

composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --no-update

If   drupal/core happens to be part of the composer.json file, remove it. This dependency is included in drupal/core-recommended and may cause problems. If you have drupal/core-dev installed, you can run this

composer require 'drupal/core-dev:^10' --dev --no-update

Now,let us test perform the update with the --dry-run option: this allows us to see if the update will runs smoothly or might encounter some errors.

composer update --dry-run

If you encounter any errors, walk through the process to resolve them. Resume the process when the errors are resolved, run the update with dependencies to update any transitive module.

composer update -W

Don’t forget to run drush updb and drush cex after the upgrade. This means you should run the upgrade on top of an installed and functioning D9 database.

If you have a custom theme that is  based on classy,seven or stable then don’t forget to install them as  contrib themes - composer require 'drupal/[module_name]'. You should uninstall and remove upgrade status after the upgrade process.

Pathauto has an issue with some config files so, if you have Pathauto installed then you need to update some configs by hand. Namely pathauto.pattern.[name] config files have had their selection_criteria plugins updated. For example node_type becomes entity_bundle:node. or  try the following command

drush eval 'include_once(DRUPAL_ROOT . "/modules/contrib/pathauto/pathauto.install"); pathauto_update_8108()'

In summary the whole update process for a site can be very difficult and ranges from project to project. It could have different modules installed, with some even locked to specific dev versions, as well as heavily patched old major versions of modules which needed to be upgraded. You walk through these steps and iterate through if need be to get your upgrade completed.

Categories: FLOSS Project Planets

The Drop Times: André Angelantoni Discusses Automated Testing Kit Module

Thu, 2024-02-08 08:44
Discover how the Automated Testing Kit for Drupal, led by André Angelantoni, revolutionizes end-to-end testing with its versatile features, impactful vision, and seamless integration of Cypress.io and Playwright frameworks.
Categories: FLOSS Project Planets

PreviousNext: Handling Emails Asynchronously: Integrating Symfony Mailer and Messenger

Wed, 2024-02-07 14:54

Take advantage of Symfony Mailer’s first-class integration with Symfony Messenger brought to Drupal via the SM project, allowing your site to send emails asynchronously.

by daniel.phin / 8 February 2024

This post is part 6 in a series about Symfony Messenger.

  1. Introducing Symfony Messenger integrations with Drupal
  2. Symfony Messenger’ message and message handlers, and comparison with @QueueWorker
  3. Real-time: Symfony Messenger’ Consume command and prioritised messages
  4. Automatic message scheduling and replacing hook_cron
  5. Adding real-time processing to QueueWorker plugins
  6. Making Symfony Mailer asynchronous: integration with Symfony Messenger
  7. Displaying notifications when Symfony Messenger messages are processed
  8. Future of Symfony Messenger in Drupal

Since Swift Mailer and its Drupal contrib integration were recently deprecated, many projects have naturally switched to its replacement: Symfony Mailer, either via Drupal Symfony Mailer or Drupal Symfony Mailer Lite.

This post outlines how you can take advantage of Symfony Mailer’s first class integration with Symfony Messenger brought to Drupal via the SM project. This integration allows for dispatching emails off-thread, potentially improving performance of the dispatching (usually web-) thread by offloading email-related tasks to dedicated Symfony Messenger workers. This setup can be considered an alternative to using Queue Mail.

Setup

As of writing, of the two Symfony Mailer implementations in contrib, Drupal Symfony Mailer Lite has built in support for Symfony Messenger. Drupal Symfony Mailer does not yet support it, an issue and merge request exist to add it. Apply a patch until the changes are merged.

Symfony Messenger itself does not require any special configuration, other than installing SM.

To run asynchronously, the \Symfony\Component\Mailer\Messenger\SendEmailMessage message must have routing configuration to a transport. Or at least the fallback transport must be configured. Without transport configuration, Emails will still be dispatched through Messenger, however they will be executed synchronously in the same thread they were dispatched.

Opting out

If you happen to have both Symfony Mailer and Symfony Messenger installed but do not want emails to be sent asynchronously, you can configure routing for the \Symfony\Component\Mailer\Messenger\SendEmailMessage message to instead use the synchronous transport.

If you’re using the SM Config submodule:

Sending emails and dispatching emails

Emails may be dispatched using the usual Drupal mechanism, or you can dispatch using Symfony Mailer directly by constructing an email object:

$email = (new \Symfony\Component\Mime\Email()) ->to('jane@example.com') ->from('john@example.com') ->subject('Hello world!') ->text('Some sample text.') ->html('<p>some <strong>sample</strong> text.</p>'); /** @var \Symfony\Component\Mailer\MailerInterface $mailer */ $mailer = \Drupal::service(\Symfony\Component\Mailer\MailerInterface::class); $mailer->send($email);

After the send method is executed, Mailer checks Messenger is available, creates a new SendEmailMessage message to wrap the \Symfony\Component\Mime\Email object. Then dispatches SendEmailMessage to the messenger bus.

As is typical with Symfony Messenger, email messages must be serialisable. Avoid including any Drupal entities or service references in an email object, and render email contents before sending it.

Processing emails

To process email messages, run the worker with sm messenger:consume. This command will either listen or poll for messages and execute them in a dedicated thread, ensuring quick processing after they are dispatched. For more information on the worker, please refer to post 3 of this series.

In the next post, we’ll explore how to add a user interface to notify users when relevant tasks have been processed.

Tagged Symfony, Symfony Messenger, Symfony Mailer, Email
Categories: FLOSS Project Planets

mark.ie: Show the last author of a node in the Drupal content list

Wed, 2024-02-07 09:40

Instead of showing the original author of a node, show the last person to edit it.

Categories: FLOSS Project Planets

Pages