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

Нужна мебель? мебель из массива официальный сайт эксклюзивные изделия из натурального дерева. Индивидуальный дизайн, качественные материалы и точное изготовление. Решения для дома и бизнеса.

Permalink

Нужна мебель? https://mebel-dub-zakaz.ru эксклюзивные изделия из натурального дерева. Индивидуальный дизайн, качественные материалы и точное изготовление. Решения для дома и бизнеса.

Permalink

Нужна мебель? продажа элитная мебель эксклюзивные изделия из натурального дерева. Индивидуальный дизайн, качественные материалы и точное изготовление. Решения для дома и бизнеса.

Permalink

Нужна мебель? мебель из массива эксклюзивные изделия из натурального дерева. Индивидуальный дизайн, качественные материалы и точное изготовление. Решения для дома и бизнеса.

Permalink

Нужна мебель? мебель на заказ из массива дерева эксклюзивные изделия из натурального дерева. Индивидуальный дизайн, качественные материалы и точное изготовление. Решения для дома и бизнеса.

Permalink

Нужна мебель? мебель на заказ эксклюзивные изделия из натурального дерева. Индивидуальный дизайн, качественные материалы и точное изготовление. Решения для дома и бизнеса.

Permalink

Нужна премиум мебель? мебель из массива продажа изготовление на заказ. Натуральные материалы, эксклюзивный дизайн и долговечность. Решения для дома и бизнеса с высоким уровнем качества.

Permalink

Нужна премиум мебель? мебель премиум сегмента изготовление на заказ. Натуральные материалы, эксклюзивный дизайн и долговечность. Решения для дома и бизнеса с высоким уровнем качества.

Permalink

Нужна премиум мебель? премиум мебель официальный сайт изготовление на заказ. Натуральные материалы, эксклюзивный дизайн и долговечность. Решения для дома и бизнеса с высоким уровнем качества.

Permalink

ЖК Солянка Парк https://tzstroy.su современный жилой комплекс с комфортными квартирами и развитой инфраструктурой. Удобные планировки, благоустроенная территория и хорошая транспортная доступность для жизни.

Permalink

The site https://play-mods.com.az/ contains information about downloading PlayMods, downloading PlayMods APK files, compatibility with iOS, Android, and PC, as well as basic information about GTA San Andreas and other modified games.

Permalink

Live football qolvar.com.az broadcasts, daily game streams, football news, and the most popular live streaming sections.

Permalink

Мнения игроков 1win отзывы — реальные отзывы о платформе, бонусах и выводе средств. Узнайте о плюсах и минусах сервиса и сделайте правильный выбор.

Permalink

Реальные 1win отзывы игроков — честные мнения о работе сервиса. Узнайте о ставках, бонусах, выводе средств и надежности платформы.

Permalink

Честные 1win отзывы — плюсы и минусы сервиса, опыт пользователей и оценки. Информация о выплатах, бонусах и удобстве использования платформы.

Permalink

Юрист по делам несовершеннолетних оказывает квалифицированную правовую помощь детям и их законным представителям. Переходите по запросу юрист по делам несовершеннолетних. Специалист защитит права ребёнка в судах и государственных органах, решит вопросы опеки, споры в семейных и уголовных делах. Консультации помогают быстро разобраться в ситуации и выбрать правильную стратегию защиты интересов несовершеннолетнего.

Permalink

Актуальні новини https://lentalife.com поради та історії з усього світу. Дізнавайтеся про події, тренди й корисні лайфхаки, щоб залишатися в курсі та робити життя простішим і зручнішим щодня.

Permalink

Авто журнал https://bestauto.kyiv.ua тест-драйвы, обзоры и новости автоиндустрии. Узнавайте о новинках, технологиях и трендах рынка. Удобный формат для чтения каждый день.

Permalink

Авто портал https://nerjalivingspace.com автомобильные новости, тест-драйвы и обзоры. Узнавайте о новинках, технологиях и тенденциях рынка. Удобный сервис для автолюбителей.

Permalink

Женский портал https://lubimoy.com.ua статьи о красоте, здоровье, отношениях и саморазвитии. Полезные советы, лайфхаки и актуальные темы для женщин. Все для вдохновения и гармонии каждый день.

Permalink

Удобный строительный https://anti-orange.com.ua портал с полезной информацией для частных застройщиков и профессионалов. Обзоры, инструкции, идеи для ремонта, каталог услуг и материалов. Поможем спланировать проект, подобрать решения и реализовать строительство без лишних затрат.

Permalink

Женский портал https://lubimoy.com.ua статьи о красоте, здоровье, отношениях и саморазвитии. Полезные советы, лайфхаки и актуальные темы для женщин. Все для вдохновения и гармонии каждый день.

Permalink

Женский портал https://muz-hoz.com.ua мода, красота, здоровье и психология. Советы, тренды и полезные статьи для современной женщины. Удобный онлайн формат для ежедневного чтения.

Permalink

Строительный портал https://zip.org.ua все для ремонта и строительства в одном месте. Актуальные статьи, советы экспертов, обзоры материалов и технологий. Найдите подрядчиков, сравните цены и выберите лучшие решения для дома, квартиры или бизнеса быстро и удобно.

Permalink

Туристический портал https://swiss-watches.com.ua для путешественников: направления, маршруты, советы и лайфхаки. Подбор отелей, билетов и экскурсий, идеи для отдыха и полезные рекомендации. Планируйте поездки легко и открывайте новые страны с комфортом.

Permalink

Мужской портал https://swiss-watches.com.ua о стиле жизни, здоровье, финансах и саморазвитии. Полезные статьи, советы экспертов, идеи для карьеры и отдыха. Всё, что важно современному мужчине для уверенности, успеха и баланса в жизни.

Permalink

Все о беременности https://z-b-r.org и родах: полезные статьи, советы врачей и ответы на важные вопросы. Подготовка к родам, развитие малыша по неделям, здоровье мамы и восстановление. Надежная информация для будущих родителей на каждом этапе.

Permalink

Мужской портал https://swiss-watches.com.ua о стиле жизни, здоровье, финансах и саморазвитии. Полезные статьи, советы экспертов, идеи для карьеры и отдыха. Всё, что важно современному мужчине для уверенности, успеха и баланса в жизни.

Permalink

Туристический портал https://swiss-watches.com.ua для путешественников: направления, маршруты, советы и лайфхаки. Подбор отелей, билетов и экскурсий, идеи для отдыха и полезные рекомендации. Планируйте поездки легко и открывайте новые страны с комфортом.

Permalink

Все о беременности https://z-b-r.org и родах: полезные статьи, советы врачей и ответы на важные вопросы. Подготовка к родам, развитие малыша по неделям, здоровье мамы и восстановление. Надежная информация для будущих родителей на каждом этапе.

Permalink

Современный строительный https://sinergibumn.com журнал: идеи, технологии, обзоры и советы экспертов. Помогаем разобраться в материалах, выбрать решения и реализовать проекты любой сложности — от квартиры до загородного дома.

Permalink

Профессиональный строительный https://newhouse.kyiv.ua журнал с полезной информацией и практическими решениями. Аналитика рынка, обзоры материалов, инструкции и советы. Всё, что нужно для качественного строительства и ремонта.

Permalink

Современный строительный https://sinergibumn.com журнал: идеи, технологии, обзоры и советы экспертов. Помогаем разобраться в материалах, выбрать решения и реализовать проекты любой сложности — от квартиры до загородного дома.

Permalink

Профессиональный строительный https://newhouse.kyiv.ua журнал с полезной информацией и практическими решениями. Аналитика рынка, обзоры материалов, инструкции и советы. Всё, что нужно для качественного строительства и ремонта.

Add new comment