Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Articles

13/04/2025, by Ivan

By adding a single YAML settings file to our module, Drupal will automatically load the contents of this YAML file, and we’ll be able to access it to provide default configuration. From the root folder of your module, create a new folder called “config.” Inside that folder, create another one named “install.” Finally, inside config/install, create a new file and name it hello_world.settings.yml.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

13/04/2025, by Ivan

Introduction

Much has been said—and debated—about the latest version of Drupal—Drupal 8, and one thing is certain: the way modules are built has changed significantly. There are numerous tutorials addressing the new concepts, and many of them encourage developers to stay updated as the codebase evolves.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

13/04/2025, by Ivan

Introduction

Much has been said—and debated—about the latest version of Drupal—Drupal 8, and one thing is certain: building modules has changed significantly. There are many tutorials focusing on the new concepts, and in each one, the authors advise developers to expect even more changes as the codebase evolves.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

13/04/2025, by Ivan

Part II of the Practical Guide to Creating Basic Drupal 8 Modules
From .info to Tests, Just the Basics

Source URL:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

13/04/2025, by Ivan

Part IV of the Practical Guide to Creating Basic Drupal 8 Modules
From .info to Tests, Just the Basics

So far, everything is pretty tidy, but how can we change what we see? With some forms, of course.

Source URL:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

13/04/2025, by Ivan

Main Topic: Defining Your Own Configuration

You can include default configuration in your module based on the functionality of other modules (content types, views, fields, text formats, etc.).
For example, the Node module provides a content type configuration, so in your own module, you define a default content type that can be shipped with your module.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

13/04/2025, by Ivan

There are two steps to creating a simple page in Drupal:

Declare the route and its parameters.

This step includes the page title, access requirements, and more.

In Drupal 7, you had to implement hook_menu().

In Drupal 8, create a <module_name>.routing.yml file in the top-level directory of your module.

Write the code that returns the page content.

In Drupal 7, you would write a page callback function specified in hook_menu().

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

13/04/2025, by Ivan

Unlike in Drupal 7, creating multiple instances of a block to place on your site is a simple task in Drupal 8.

This tutorial will teach you how to programmatically add a block to the block layout interface, how to add an (administrative) configuration form to the block, and how to handle it. Finally, you’ll learn how to define and display default configuration values for the form.

Before starting this step-by-step guide, prepare your module skeleton as described in “Prepare the module skeleton.”

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

13/04/2025, by Ivan

Now let’s say we want to allow the site builder to enter some configuration for each instance of our custom block. Always keep in mind that all site-building configuration in Drupal 8 can be exported from a development site and imported into a live site (known as Configuration Management). As a module builder, you can also provide default configuration to pre-fill the form when a site builder creates a new block.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.