Creating Custom Content Types Programmatically in Drupal 10

Content types are the backbone of content management in Drupal. In Drupal 10, you can create custom content types to structure and organize your content. This blog post will guide you through the process of creating content types programmatically in Drupal 10, allowing you to tailor your website's content structure to your specific needs.

Prerequisites

Before creating custom content types programmatically in Drupal 10, you should have the following:

  1. A working Drupal 10 or 9 website.
  2. Basic knowledge of Drupal site building and module development.
  3. Familiarity with PHP and Drupal's module structure.

Step 1: Define the Custom Module

To create a custom content type programmatically, you need to place the code in a custom module. If you don't already have a custom module, you can create one by following these steps:

  1. In your Drupal installation, navigate to the sites/all/modules directory (or your preferred module location).
  2. Create a new directory for your custom module. Give it a unique and descriptive name, such as my_custom_content_type.
  3. Inside your module directory, create a my_custom_content_type.info.yml file with the following content:
name: 'My Custom Content Type Module'
type: module
description: 'Defines custom content types programmatically.'
core_version_requirement: ^9 || ^10
package: Custom
dependencies:
  - node

This YAML file defines the basic information about your custom module.

Step 2: Create a Custom Content Type

To create a custom content type, you'll need to implement the hook_entity_type_build and hook_node_type_insert hooks within your custom module.

  1. Create a file named my_custom_content_type.module in your module directory.
  2. In this file, implement the hook_entity_type_build hook to define your custom content type. Here's an example:
/**
 * Implements hook_entity_type_build().
 */
function my_custom_content_type_entity_type_build(array &$entity_types) {
  $entity_types['node']->setClass('Drupal\my_custom_content_type\NodeTypeCustom');
}

This code defines a custom class, NodeTypeCustom, to handle the configuration of your custom content type.

  1. Create the NodeTypeCustom class in a file named NodeTypeCustom.php and place it in your module's directory:
namespace Drupal\my_custom_content_type;

use Drupal\node\NodeTypeBase;

/**
 * Provides a custom content type.
 */
class NodeTypeCustom extends NodeTypeBase {

  /**
   * {@inheritdoc}
   */
  public function postSave(NodeTypeInterface $node_type) {
    parent::postSave($node_type);

    // Define the custom content type settings.
    $config = \Drupal::configFactory()->getEditable('node.type.' . $node_type->id());
    $config->set('name', 'Custom Content Type');
    $config->set('description', 'A custom content type created programmatically.');
    $config->set('new_revision', TRUE);
    $config->save();
  }
}

n the NodeTypeCustom class, we extend the NodeTypeBase class to define the custom content type settings, such as the name and description.

Step 3: Enable and Verify Your Custom Content Type

  1. In your Drupal admin interface, navigate to Extend (admin/modules) and enable your custom module, "My Custom Content Type Module."
  2. After enabling the module, go to Structure > Content types (admin/structure/types) to see your custom content type listed as "Custom Content Type."

Conclusion

Creating custom content types programmatically in Drupal 10 allows you to define content structures that fit your specific project requirements. By following the steps outlined in this blog post, you can easily create and configure custom content types within your Drupal website, providing a flexible and tailored content management experience.

In Drupal 9 and 10, custom modules should be stored in the "modules/custom" directory rather than "sites/all/modules." Drupal's module directory structure has evolved, and the recommended practice is to place custom modules in the "modules/custom" directory to follow the modern Drupal standards.

So, if you're creating a custom module in Drupal 9 or 10, you should place it in the following directory:

/sites/all/modules/custom/

By following this structure, your custom modules will be more organized and adhere to Drupal's best practices, making it easier to manage and maintain your site's codebase.

Share on social media

Comment

Permalink

I objective reviewed slotsguide.co.za while knowledge more about fashionable online slots. The guide presents helpful facts wide online slots at one's fingertips to South African players. Its explanations are calmly to ensure, making it sympathetic due to the fact that both beginners and regular space enthusiasts. It provides a handy overview of the business.

Permalink

I recently discovered this South African slots influence while lore more about fashionable online slots. The website provides usable facts wide online slots available to South African players. The information is presented obviously, making it sympathetic due to the fact that both casual visitors and more experienced players. It is worth exploring in the direction of additional ambience.

Permalink

We recently explored Slots Mentor while lore more approximately novel online slots. The beacon presents useful information wide game mechanics, themes and different features. The content is straightforward and accessible, making it practical for the sake of both accidental visitors and more prepared players. It provides a convenient overview of the motive.

Permalink

Players may appreciate Slots Control while researching online casino games. This resource offers usable facts about online slots handy to South African players. The info is presented unquestionably, making it benevolent pro both up to date players and experienced users. The site can be a advantageous starting point pro spare research.

Permalink

We recently explored slotsguide.co.za while lore more approximately modern online slots. The website provides useful facts about average games, providers and largesse features. Its explanations are calmly to conform to, making it benevolent due to the fact that both beginners and fixed space enthusiasts. It is worth exploring for additional environment.

Permalink

Players may worth Slots Mentor during a search an eye to clear fit information. This resource offers helpful message wide unflinching mechanics, themes and different features. The report is presented clearly, making it helpful for the sake of both casual visitors and more well-versed players. It is worth exploring in the direction of additional environment.

Permalink

We recently explored this advantageous slots resource when comparing odd pigeon-hole features. This resource offers advantageous facts respecting sport mechanics, themes and prime features. The report is presented clearly, making it benevolent pro both supplementary players and veteran users. It provides a handy overview of the motive.

Permalink

Players may appreciate Slots Control during a search for crystalline opening report. The train presents advantageous message hither stylish games, providers and largesse features. Its explanations are indulgent to ensure, making it sympathetic due to the fact that both unplanned visitors and more experienced players. It is merit exploring after additional situation.

Permalink

мента напугать легко
sports betting, [url=https://chezagame-login-kenya.co.ke/]https://chezagame-login-kenya.co.k…] - Betting on sports привлекает множество граждан. Это волнительный СЃРїРѕСЃРѕР± приобрести деньги, РЅРѕ РѕРЅ нуждается знания Рё стратегии. Верные решения РјРѕРіСѓС‚ увеличить прибыль Рё сделать процесс захватывающим.

Add new comment