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

Открывайте позитивные https://goodday.org.ua идеи для продуктивного дня и полезного досуга. Используйте подходящие рекомендации, составляйте планы и находите возможности сделать повседневные дела более удобными и содержательными.

Permalink

Развивайте цифровые https://inbound.com.ua методы улучшения присутствия бизнеса в интернете. Анализируйте потребности целевой аудитории, планируйте полезный контент и оценивайте результаты, чтобы последовательно совершенствовать маркетинговые процессы.

Permalink

Изучайте интересные https://happywoman.kyiv.ua рекомендации по уходу за собой, стилю и организации повседневной жизни. Подбирайте советы под собственные потребности и выбирайте то, что помогает чувствовать себя комфортно каждый день.

Permalink

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

Permalink

Подберите современные https://ladyone.kyiv.ua идеи для повседневного образа, ухода и личного комфорта. Изучайте разные варианты, ориентируйтесь на собственный вкус и выбирайте решения, которые соответствуют вашему ритму жизни.

Permalink

Выбирайте эффективные https://metalprotection.com.ua решения для защиты металлических поверхностей от внешних воздействий. Сравнивайте условия эксплуатации, тип металла, подготовку поверхности и свойства покрытия, чтобы подобрать подходящий способ защиты.

Permalink

Изучайте современные https://newboard-store.com.ua решения для занятий спортом и освоения новых навыков. Перед покупкой проверяйте размеры, материалы, назначение и особенности использования, чтобы подобрать подходящий инвентарь для тренировок или свободного времени.

Permalink

Открывайте профессиональные https://model.kyiv.ua информацию о работе перед камерой и развитии навыков самопрезентации. Осваивайте особенности освещения, композиции и постановки, чтобы лучше понимать творческий процесс и готовиться к новым проектам.

Permalink

Создавайте гармоничные https://modam.com.ua сочетания одежды, обуви и аксессуаров для разных ситуаций. Изучайте фасоны, оттенки и детали, чтобы находить интересные комбинации и формировать индивидуальный стиль без лишних сложностей.

Permalink

Выбирайте современные https://newboard-store.com.ua товары для активного отдыха и увлечений. Перед покупкой проверяйте размеры, материалы, назначение и особенности использования, чтобы подобрать подходящий инвентарь для тренировок или свободного времени.

Permalink

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

Permalink

Дополняйте модные https://modam.com.ua гардероб с учетом предпочтений, сезона и привычного образа жизни. Сравнивайте фасоны, оттенки и детали, чтобы находить интересные комбинации и формировать индивидуальный стиль без лишних сложностей.

Permalink

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

Permalink

Подбирайте элегантные https://princess.kyiv.ua образы для торжеств, встреч и повседневных выходов. Изучайте фасоны, цвета и декоративные детали, чтобы найти подходящий вариант и подчеркнуть индивидуальность образа.

Permalink

Отслеживайте актуальные https://panorama.zt.ua материалы о местных новостях, общественных вопросах и городских изменениях. Знакомьтесь о происходящем, изучайте различные публикации и обращайте внимание на вопросы, которые влияют на жизнь местного сообщества.

Permalink

Изучите художественные https://sculptureproject.org.ua идеи в области скульптуры, искусства и визуальных форм. Знакомьтесь творческие концепции, обращайте внимание на форму и композицию и находите новые источники вдохновения для собственного интереса к искусству.

Permalink

Развивайте практические https://samozahist.org.ua информацию о самозащите, профилактике рисков и внимательности в повседневной жизни. Учитывайте правила осторожности, развивайте ситуационную осведомленность и отдавайте приоритет предотвращению конфликтов и обращению за помощью.

Permalink

Откройте художественные https://sculptureproject.org.ua направления, связанные с пространством, материалами и пластическим искусством. Знакомьтесь творческие концепции, обращайте внимание на форму и композицию и находите новые источники вдохновения для собственного интереса к искусству.

Permalink

Подбирайте праздничные https://princess.kyiv.ua образы для торжеств, встреч и повседневных выходов. Сравнивайте фасоны, цвета и декоративные детали, чтобы найти подходящий вариант и подчеркнуть индивидуальность образа.

Permalink

Откройте интересные https://selma.com.ua доступные варианты товаров или услуг с учетом конкретных задач. Сравнивайте характеристики, условия и особенности использования, чтобы оценивать предложения осознанно и выбирать наиболее подходящий вариант для своих целей.

Permalink

Изучите полезные https://sweetheart.kyiv.ua идеи для общения, отношений и приятного совместного досуга. Развивайте взаимные интересы, уважайте личные границы и выбирайте способы проводить время вместе, которые комфортны для всех участников.

Permalink

Используйте практичные https://woman365.kyiv.ua идеи для планирования времени, поддержания интересов и заботы о себе. Выбирайте рекомендации с учетом своих потребностей, пробуйте новые подходы и формируйте привычки, которые помогают организовать каждый день.

Permalink

Открывайте свои https://wonderwoman.kyiv.ua идеи для гармоничного сочетания повседневных дел, отдыха и личных целей. Изучайте полезные рекомендации, учитывайте индивидуальные особенности и выбирайте практики, которые помогают увереннее двигаться к собственным задачам.

Permalink

Откройте тематический https://ukk.kiev.ua для знакомства с опубликованными материалами и доступными возможностями. Уточняйте информацию, изучайте условия и выбирайте подходящие решения с учетом собственных интересов и практических задач.

Permalink

Откройте подходящие https://selma.com.ua предложения для повседневных потребностей и личных предпочтений. Рассматривайте характеристики, условия и особенности использования, чтобы оценивать предложения осознанно и выбирать наиболее подходящий вариант для своих целей.

Permalink

Откройте романтичные https://sweetheart.kyiv.ua материалы о взаимопонимании, внимании и организации особенных моментов. Развивайте взаимные интересы, уважайте личные границы и выбирайте способы проводить время вместе, которые комфортны для всех участников.

Permalink

Используйте интересные https://woman365.kyiv.ua идеи для планирования времени, поддержания интересов и заботы о себе. Выбирайте рекомендации с учетом своих потребностей, пробуйте новые подходы и формируйте привычки, которые помогают организовать каждый день.

Permalink

Развивайте творческие https://wonderwoman.kyiv.ua интересы, личные навыки и привычки заботы о себе. Используйте полезные рекомендации, учитывайте индивидуальные особенности и выбирайте практики, которые помогают увереннее двигаться к собственным задачам.

Permalink

Подбирайте автомобильные https://automobile.kyiv.ua материалы для выбора, обслуживания и эксплуатации транспорта. Проверяйте техническое состояние, расходы на содержание, безопасность и удобство, чтобы принимать обоснованные решения при выборе автомобиля.

Permalink

Оформляйте оригинальные https://artpaint.com.ua художественные работы и декоративные решения для интерьера. Изучайте оттенки, фактуры и инструменты, экспериментируйте с техниками и учитывайте особенности поверхности для получения желаемого художественного результата.

Permalink

Откройте актуальные https://beautytips.kyiv.ua идеи для выбора средств, организации ухода и знакомства с новыми техниками. Учитывайте особенности кожи и волос, обращайте внимание на состав косметики и выбирайте подходящие процедуры с учетом личных предпочтений.

Permalink

Изучайте автомобильные https://automobile.kyiv.ua материалы для выбора, обслуживания и эксплуатации транспорта. Проверяйте техническое состояние, расходы на содержание, безопасность и удобство, чтобы принимать обоснованные решения при выборе автомобиля.

Permalink

Создавайте оригинальные https://artpaint.com.ua индивидуальные композиции для оформления пространства и реализации идей. Изучайте оттенки, фактуры и инструменты, экспериментируйте с техниками и учитывайте особенности поверхности для получения желаемого художественного результата.

Permalink

Посетите интересный https://bbb.dp.ua чтобы найти полезные сведения по интересующим направлениям. Читайте представленные данные, уточняйте важные детали и используйте найденную информацию для решения повседневных задач или планирования дальнейших действий.

Permalink

Посетите интересный https://bbb.dp.ua для знакомства с информацией, материалами и доступными возможностями. Сравнивайте представленные данные, уточняйте важные детали и используйте найденную информацию для решения повседневных задач или планирования дальнейших действий.

Add new comment