ComputerMinds.co.uk: Andrei's first Drupalcon

Image removed.

A little over a year ago, I ventured into the world of Drupal; a complex content management system. Despite making considerable progress in understanding its intricacies, it's widely acknowledged that Drupal presents a steep learning curve. To navigate this learning curve successfully, one must maintain unwavering dedication and find satisfaction in troubleshooting and problem-solving, which can provide a rewarding sense of achievement.

Image removed.

I was fortunate to have an exceptional team that provided a constant stream of knowledge, invaluable advice, and overall support in my pursuit of mastering Drupal. A significant milestone in my Drupal journey was the invitation to attend DrupalCon2023, a pivotal moment as it marked my first conference participation, entirely dedicated to my field of interest.

I'll admit that I felt apprehensive in the lead-up to Dries' keynote address, with doubts about my qualifications to be part of such a prestigious event nagging at me. However, my confidence had a steady revival following the opening ceremony and the initial conference keynote. The first session I attended provided an in-depth exploration of SearchAPI, which provides a quicker and more robust approach to formulating queries and has the potential to reduce reliance on Solr and enhance response times. Additionally, the discussion on the Gin Admin Theme held my attention. Remarkably, observing fellow attendees using Linux on their laptops further motivated me to expedite my laptop's development setup.

Image removed.

The collective experience at DrupalCon instilled a profound sense of community. It reinforced the commitment of remarkable individuals tirelessly working to improve Drupal and, by extension, making positive contributions to the broader world. Immersing myself in this environment was incredibly insightful, offering deep inspiration and motivation. Watching the collaborative brainstorming of like-minded individuals led to the formation of new ideas, which was a unique experience for me.

The event expanded my horizons, particularly in understanding the diverse potential of the applications of Drupal. It also deepened my appreciation of the open-source philosophy and has inspired me to endeavor to contribute back to the Drupal community.

I treasured the opportunity to strengthen my connections with colleagues, engage in collective sessions, and subsequently share insights from the various talks we attended.

Drupal blog: State of Drupal presentation (October 2023)

This blog has been re-posted and edited with permission from Dries Buytaert's blog.

Last week, approximately 1,300 Drupal enthusiasts came together in Lille, France for DrupalCon. In good tradition, I delivered my State of Drupal keynote, commonly referred to as the "Driesnote". You can watch the video of my keynote or download my slides (264 MB).

This keynote was unlike any other. I narrated a fairy tale that explores how the Drupal community is working together to simplify the process of starting, building, and maintaining Drupal websites. Yes, you read that correctly – a fairy tale. However, rest assured, it's a fairy tale with a happy ending.

If you're keen to experience the full magic of the Drupal fairy tale, I highly recommend watching the video instead of reading this blog post. And if you want to avoid any spoilers, stop reading here.

A tale of four cities: learning from competitors

As the speaker, I took the audience on a journey that started with my discovery of a mysterious book related to Drupal. The book uses an analogy to explain Drupal as a character living in the Drupal Village. This village is full of different types of houses, from cozy cottages to grand estates. In this bustling village, ambitious villagers work together to construct and take care of their homes.

The Drupal villagers cherish core values such as creativity, flexibility, scalability, accessibility, collaboration, empowerment, security, and freedom.

In the Drupal Village, a young builder grows frustrated with the challenges of constructing and maintaining homes. Driven by curiosity about alternative approaches, the young builder makes the bold decision to leave Drupal Village and embark on a journey to neighboring towns. Their hope was to uncover if there were superior methods for homebuilding.

Image removed.
The Drupal character leaves on a journey to visit nearby villages.

Drupal, our central character, decides to follow the young builder, embarking on a journey that takes them to four unique villages: Reactopia, Contentville, Squarix, and Edoby Heights. Along the way, Drupal gathers valuable insights from each of these unique villages. Despite uncovering some of their shortcomings, Drupal also came to understand why these villages hold allure for young builders.

Image removed.
Summary of lessons learned from Drupal's visits to Reactopia, Contentville, Squarix, and Edoby Heights.

Learning from the strengths of these four villages, the Drupal character realizes that for Drupal Village to prosper, it must offer an exceptional builder experience. Furthermore, through their visits to these four villages, our main character developed a clear idea of what an exceptional experience might look like. With a clear goal in mind, Drupal decides to simplify the process of starting, building, and maintaining homes in the Drupal Village.

Image removed.
Drupal understands that for the Drupal Village to prosper, the builder's experience must be exceptional: it should be simpler to get started, easier to build, and effortless to maintain.
​​​​​​

Drupal brings together some of the most skilled craftspeople from the community to meet at a nearby atelier called OuiWork. Within this collaborative space, initiative leaders Tim Plunkett (Acquia), Cristina Chumillas (Lullabot), and Lauri Eskola (Acquia) shared valuable insights about the work they are doing.

In practical terms, I discussed the significance of the Project Browser and Automatic Updates Initiatives. These initiatives serve to streamline the process of starting and maintaining your Drupal sites. Our goal is to include Automatic Updates and Project Browser into Drupal 10.3, scheduled to be released in June 2024. Achieving this milestone will be the culmination of over a decade of dedicated effort. I believe Drupal's Automatic Updates and Project Browser will be both the most advanced and most security-conscious tools of their kind among all PHP applications.

I also highlighted various efforts to make it easier to build with Drupal. This includes improvements in content modeling features (watch video segment) and enhancements to Drupal's administration toolbar (watch video segment). This work not only follows a design-first approach but also showcases our ability to make rapid progress, underscoring changes in the way we work and collaborate.

Image removed.
Drupal announces a new strategic initiative: a Next Generation Page Builder.

Lastly, I introduced a new strategic initiative aimed at improving the user experience for building pages with Drupal (watch video segment). The initiative is called Next Generation Page Builder and focuses on improving Drupal's layout builder, which was first introduced in Drupal 8.

Beyond the dark clouds: advocating for an Open Web

Image removed.
The Closed Web proponents casting dark clouds over Drupal Village.

After working on improving the builder experience, the Drupal character returns home to discover Drupal Village shrouded in dark clouds. These ominous clouds are the work of the Closed Web advocates, sinister figures in the story. Hope arrives in the form of a visit from Fairy Godfather Tim Berners-Lee. The visit inspires Drupal to become an unwavering promoter and protector of the Open Web. In the morning, the Drupal character takes it upon themselves to write the Open Web Manifesto. This seminal document binds the entire community to a shared commitment: the creation of a digital future that is more accessible and inclusive for all.

Shining a light on Drupal: the role of Drupal marketing

Image removed.
Drupal seeks the assistance of three sorcerers with magical (marketing) powers.

Sadly, the Open Web Manifesto alone can't clear away the dark clouds created by the Closed Web advocates. As the dark clouds creep closer and obscure the village, Drupal seeks help from three powerful sorcerers. The sorcerers use their magic to dispel the dark clouds, unveiling the remarkable work occurring in Drupal Village to the entire world.

In reality, the "sorcerers" are the Drupal Marketing Committee. Their mission is to shine a light on Drupal, promoting it to showcase the impressive work being done. The goal is to encourage more individuals to consider Drupal over closed web solutions, who often have significant resources for marketing themselves.

The Drupal Association launched a Drupal Marketing Committee after DrupalCon Pittsburgh. Comprising seasoned marketing professionals like Lynne Capozzi (former Acquia CMO), Suzanne Dergacheva(Evolving Web), Nikhil Deshpande (State of Georgia), and more, this committee is developing a marketing strategy for Drupal – a first in Drupal's 20+ year history. I had the honor of conducting an on-stage interview with them during my keynote (watch video segment), where they discussed the importance of marketing for Drupal and how it might impact the Drupal community.

We're committed to investing in Drupal's marketing efforts in the next few years. While the full marketing plan will be unveiled towards the end of this year, expect to see things like:

  • A new website launch, with more focus on outsiders and evaluators.
  • Refreshing the Drupal brand, with focused messaging aimed at attracting fresh talent.
  • Improving Drupal's visibility and presence at conferences.
  • Increase presence and engagement with universities.
  • Grow the involvement of Drupal Certified Partners.

The Drupal Marketing Committee welcomes all Drupal community members to participate in our marketing efforts.

Drupal's three promises

In the end, our main character, Drupal, commits to three important promises:

  1. Enhance the builder experience to make it easier to start, build, and maintain Drupal sites.
  2. Advocate for an Open Web, championing a more inclusive and accessible digital future.
  3. Amplify our marketing efforts to highlight the outstanding work happening in Drupal, and to expand Drupal's reach and influence in the market.

With these promises in motion, the dark clouds fade. As they clear, the village's future sparkles with newfound hope, and the eager young builder returns home.

Image removed.
The Drupal Village celebrates after the clouds vanished. Finally the world can see what a great place it is for ambitious villagers.

Thank you

Last but not least, I want to thank everyone who made DrupalCon Lille a tremendous success. I always come away inspired and full of ideas, and this year is no exception. Here is to a long and prosperous future for Drupal Village and all of its ambitious villagers! I look forward to sharing future chapters of the fairy tale as we continue to grow our community and software together!

— Dries Buytaert

Specbee: Getting Started with Drupal Feeds: A Beginner's Data Import Guide

Disclaimer: Zero coding involved! Yes, you heard it right! It’s because we’re talking about implementing the Drupal Feeds module, where you don’t need to code to import and manage data! The Feeds module in Drupal simplifies data import into nodes, users, taxonomy terms, and more via a user-friendly web interface. No coding required! It handles various formats like CSV, JSON, XML, and RSS feeds. Dive into this article to get started with installing and implementing the Feeds module for data imports. Why use the Drupal Feeds Module When stacked up against other migration modules like Migrate, which is a part of Drupal 10's core, here's what sets Feeds apart: All imports are created from Drupal's UI. Say goodbye to coding and hello to user-friendly imports!  Provides different ways of importing source data, whether it's from local files, directories, or URLs. Your data, your choice!  All your imports can be handled directly from your website's UI. No need to change any configurations.  Allows you to schedule imports so your data is always up-to-date.  You’re not restricted to just a single data source. Installing the Feeds module Like any other contributed Drupal module, you can install the Feeds module with the Composer command: composer require 'drupal/feeds'. (okay maybe just this one line of code :) Once it is downloaded, enable it with the drush command or by visiting the Drupal admin dashboard. Configuring the Import Feed To configure the module, navigate to admin > structure > feed types > Add Feed Type.   To begin importing data, provide the name and a description of the importer, this indicates the importer's use. Below are the 3 Importers options: Fetcher This option indicates the source for importing data. You have 3 different options here: Download: Import data via a URL.  Upload: Data will be imported via a file upload.  Directory: This option lets you select files that will be found in the system folder of our Drupal file system.  After selecting the Fetcher option, you can configure the import settings within the Fetcher settings tab. Parser The parser is responsible for handling the source data's format. It offers a range of format choices for your imported data, including RSS/ATOM, CSV, and XML. If you need JSON format support, you can install the Feeds Extensible parser module. Once you've selected your preferred format, you can fine-tune the settings within the Parser settings tab. Processor The job of the processor is to create the appropriate content in Drupal using the data you’ve received. This can include various content types such as nodes, users, taxonomy terms, files, URL aliases, and more. The processor is configured in the Processor settings tab. Here are some important configurations: Update existing content items  Previously imported items  Insert new content items  Language  Owner  Settings Under the settings tab, you can schedule the import period. Adding Fields to the Feed Type Define which elements of a single item of a feed (Sources) map to which content pieces in Drupal (Targets). To avoid importing duplicate values, make sure that at least one definition has a Unique option checked.  Here is an example of adding fields from a JSON file: To add, click on the Mapping tab. Add context as [ ] key defined in the JSON file as $.array_name.* To add a field, click on Select a target option under the Target tab.  Now, let's add a Title. To add the title field click: Select a target selector  Choose the title field  Click Select a source selector  Choose a New JSON source   Provide the exact key name and save.   Once the Import feed Type is created, you can find it under admin >structure > Feed Types (/admin/structure/feeds). Importing Data With the configuration in place, it's time to initiate the data import using the Feed type you've created. Navigate to Content > Feeds.  Click on +Add feed.  After clicking on Add Feed, you will see a list of configured feeds. Select the appropriate feed type to import data. Select the feed to import data.  To begin the import, provide the title value, select a file for the import, and click on Save and Import. After a successful import, the content will be created for the specific processor. And that, my friends, is your ticket to smoothly importing data into our Drupal website using the versatile Drupal Feeds module. Final Thoughts In this blog, we've explored the key features and steps to implement the Drupal Feeds module, making data import and management a breeze. With its user-friendly interface, support for various data formats, and the ability to schedule imports, the Feeds module empowers you to keep your website's content fresh and dynamic without the need for extensive coding. Looking for a more detailed article on the Drupal Feeds module with examples and module extensions? Click here to read now. Ready to leverage the power of Drupal for your website? Take advantage of our expert-driven Drupal development services and transform your website today. Don't wait, let's get started! 

The Drop Times: Local Drupal Associations Join Forces with Shared Codebase

Drupal aims to establish a consistent and accessible web experience by introducing a shared codebase and theme for local associations worldwide. Discover how this initiative is part of a broader effort to enhance the overall Drupal experience, promoting consistency and accessibility while empowering local associations to create effective and engaging websites for their respective regions with insights from Esmeralda Tijhoff.

Matt Glaman: Documentation added for supported hooks and APIs in Retrofit for Drupal

Retrofit for Drupal now has documentation to explain what Drupal 7 hooks and APIs are supported. Retrofit for Drupal provides backward compatibility layers to run legacy Drupal 7 code in your sites using Drupal 10 and beyond. The problem, however, is anyone evaluating Retrofit for Drupal has had to take time to give it a test run and "see what happens." The documentation explains the various backward compatibility layers.

Drupal Association blog: DrupalCon Pitch-burgh Updates (10.2023)

Policy based access

First, let's start with the most exciting part of the updates. The dedicated team working on Policy-Based Access has successfully completed the work. Kristiaan Van den Eynde has been a pleasure to work with and has always been very responsive. Here is Kristiaan's own update:

The Access Policy API is ready to be committed and was integrated into core with zero test fails. It will revolutionize how contribution access modules are able to interact with the access layer.

While we wait for core maintainers to have a thorough look at it, we still have budget left to follow up on the merge requests until completion

The core committer team is already informed, so it’s just a question of waiting and, if necessary, responding to any reviews.

JSON FTW

We have received an extensive update from Brad, which I’ll reproduce next.

The initiative to implement JSON data storage and introduce an MVP for core field schema support is proceeding on schedule, perhaps even a little ahead. While I had initially intended to work mostly on schemas in the first half of the project, I gained early momentum on JSON data type and ran with it. This is the most complex part of the project, so it’s promising to be more than halfway done with the truly “hard stuff.”

Of specific interest to those who are looking forward to JSON data type support is our handling of database indices. (Thank you to @daffie for his early guidance on this.) I also received some excellent suggestions by a community member who wishes to be a silent helper. As a result, I was able to include auto-magical creation of generated columns for indexing frequently-used jsonpath expressions, which will then be used as indices. It turns out there is quite a bit of variation between core’s supported database drivers on indexing, but we are largely abstracting away this complexity.

The use of jsonpath expression in query conditions necessitates that we add a new condition method, ::jsonCondition(), to the DB abstraction layer. I would love to get more community feedback on the ergonomics of this new syntax.

As I’ve spent the bulk of the first half of the project deep in the weeds of the database API, I haven’t worked as much on schemas, but have switched focus around our project mid-point. The bulk of this work will be in contrib-land, with the exception of the addition of a “schematic normalizer” interface to core.

I welcome community help and suggestions on all the above and appreciate the advice and support by those who have already contributed. - Brad Jones

Decoupled Layout Builder

PreviousNext has been regularly sharing updates on their project. Below, we have highlighted their recent progress. For a quick summary in video format, we recommend watching their demo to get an overview of the current status at this link.

September updates:

  • Evaluation of JSON:API
  • Design of API and Open API specification
  • Persistence layer complete
  • Local development setup
  • API for formatters in React
  • API for Block plugins in React
  • API for Layout plugins in React
  • Evaluation of React drag and drop libraries
  • Drag and drop support for blocks and sections
  • NEW API for Widget plugins in React
  • NEW Reducers for blocks to trigger mutating state
  • NEW Proof of concept of inline editing of simple text and rich text (CKEditor inline editor)

October updates:

  • Finalized the API
  • Added an API for React Widget components plus a Widget manager
  • Added a settings tray
  • Added support for settings form to React Block components
  • Added a document outline with drag and drop support
  • Added a footer component that shows breadcrumbs
  • Plain text widget
  • Rich text widget powered by CKEditor
  • Edit and select document modes
  • Drag and drop to add new section or block

For a more in-depth understanding of their progress, be sure to check out their blog posts:

Drupal API

Brian Perry, lead of this initiative, shared the following update:

We're making good progress on our vertical slice Proof of Concept (POC)

As of right now half of the issues under that meta issue are complete, and all of the remaining issues have open PRs. That puts us slightly behind schedule, but we seem to be closing the gap a bit.

Mentor the mentor

The slide deck for the First-Time Contributor Workshop is now drafted and scripted, designed with accessibility in mind. It serves as a flexible template that can be tailored to suit the specific requirements of the event where it will be presented.

The Mentoring team presented this version on Tuesday, 17 October, at DrupalCon Lille, after which they will make any necessary iterations.

Gutenberg in Drupal

The team has started working on the starter theme, and a demo with the work in progress is scheduled soon. At the moment, the Drupal Association is helping arrange meetings with Automattic and beginning to plan workshops that will take place in the next few months.