Book Image

Drupal 10 Development Cookbook - Third Edition

By : Matt Glaman, Kevin Quillen
Book Image

Drupal 10 Development Cookbook - Third Edition

By: Matt Glaman, Kevin Quillen

Overview of this book

This new and improved third edition cookbook is packed with the latest Drupal 10 features such as a new, flexible default frontend theme - Olivero, and improved administrative experience with a new theme - Claro. This comprehensive recipe book provides updated content on the WYSIWYG (What You See Is What You Get) editing experience, improved core code performance, and code cleanup. Drupal 10 Development Cookbook begins by helping you create and manage a Drupal site. Next, you’ll get acquainted with configuring the content structure and editing content. You’ll also get to grips with all new updates of this edition, such as creating custom pages, accessing and working with entities, running and writing tests with Drupal, migrating external data into Drupal, and turning Drupal into an API platform. As you advance, you’ll learn how to customize Drupal’s features with out-of-the-box modules, contribute extensions, and write custom code to extend Drupal. By the end of this book, you’ll be able to create and manage Drupal sites, customize them to your requirements, and build custom code to deliver your projects.
Table of Contents (17 chapters)

Writing a custom migration source plugin

At this point, you have seen a few powerful ways that Drupal can migrate in data using available source plugins. What happens when one does not exist to meet your needs? You can write a migration source plugin, of course!

Consider this scenario. You need to migrate data in from a MySQL database as nodes into Drupal. While the migration system in Drupal can understand how to connect to databases, it does not understand how to query for the data you are trying to obtain. In these instances, you can write a source plugin.

How to do it…

Let’s assume that the database has a table named articles that we want to pull data from in the migration, and it has id, title, body, is_published, and published_on as fields. Before we can write our source plugin, the first thing we need to do is establish a connection that will access this database.

In your settings.php file, add the following MySQL database connection:

$databases...