Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
In this tutorial, we will go through how to set breadcrumbs in your Drupal 8 module. In Drupal 7 we were using drupal_set_breadcrumb(). In Drupal 8 drupal_set_breadcrumb() is removed and breadcrumbs are managed using the Breadcrumb service. There are only a few steps to do this:
Declare your service
Define a class implementing BreadcrumbBuilderInterface
This tutorial assumes that you have a working Drupal 8 module.
Playing a bit with Drupal commerce in Drupal 8, we notice that several functions that we used to use in the past with D7 are gone in D8, or they've had several changes, dued to the new API.
Drupal commerce has lots of changes. The new concept give us more flexibility and features (for example, we don't need a content type to display our products, because they have now their own display page, the product variations are now in commerce core, or the Store concept.).
Paying credits for doing actions on a site makes it necessary to check user credits before performing the action. So I use an "Before saving content" event and a "Entity has credits" action to do so.
To avoid publishing the post we send the user back to the add content form using a custom "Execute custom PHP code" action. In order to allow PHP snippets you have to activate core module "PHP filter".
After creating Credit Types at admin/commerce/credits/types (see README.txt for details) you are ready to use credits account. They are linked to users, so adding and removing credits must be related to an user entity.
Here a simple rule which adds 1 credit to users who write a blog post:
The Viewfield module defines an entity reference field type to display a view. Viewfield enables an administrator or content author to integrate a views display into any fieldable entity, such as content, users or paragraphs. In addition, through the use of the Always use default value setting, the same view(s) may automatically be placed into all entities in a bundle. Viewfield has considerable theming support, making it easy to customize presentation.