---
url: 'https://dxpr.com/ja/hc/documentation/learn-dxpr-builder/development/submodules'
title: 'サブモジュール | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T11:28:24+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: 'ディレクトリmodules/には3つのサブモジュールがあります。2つは小さな設定パッケージです。Builderに接続されたコンテンツタイプとブロックタイプです。3つ目はメディアライブラリー対応より前のレガシーEntity Browserメディアピッカーです。このページでは各モジュールがインストールする内容、依存関係、有効化・廃止方法を説明します。'
tags:
  - 'Architectuur en API’s'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T11:28:24+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: サブモジュール
      description: 'ディレクトリmodules/には3つのサブモジュールがあります。2つは小さな設定パッケージです。Builderに接続されたコンテンツタイプとブロックタイプです。3つ目はメディアライブラリー対応より前のレガシーEntity Browserメディアピッカーです。このページでは各モジュールがインストールする内容、依存関係、有効化・廃止方法を説明します。'
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T11:28:24+0000'
      dateModified: '2026-10-24T11:28:24+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/ja/hc/documentation/learn-dxpr-builder/development/submodules'
      articleSection: 'Architectuur en API’s'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/ja/hc/documentation/learn-dxpr-builder/development/submodules'
      description: 'ディレクトリmodules/には3つのサブモジュールがあります。2つは小さな設定パッケージです。Builderに接続されたコンテンツタイプとブロックタイプです。3つ目はメディアライブラリー対応より前のレガシーEntity Browserメディアピッカーです。このページでは各モジュールがインストールする内容、依存関係、有効化・廃止方法を説明します。'
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: ホーム
            item: 'https://dxpr.com/ja'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: ja
---
[Help Center](/ja/node/75)/[Documentation](/ja/hc/documentation) /[Learn DXPR Builder](/hc/documentation/learn-dxpr-builder) /[Extend](/hc/documentation/learn-dxpr-builder/extend) /[Architectuur en API’s](/hc/documentation/learn-dxpr-builder/extend/architecture) # サブモジュール.

 Learn DXPR BuilderExtendArchitectuur en API’s

   ## In this guide

 Related guides

- [コンテンツタイプ](/ja/hc/documentation/learn-dxpr-builder/integrations/content-types)
- [メディアライブラリーから画像を配置する](/ja/hc/documentation/learn-dxpr-builder/integrations/media-library)

ディレクトリ`modules/`には3つのサブモジュールがあります。2つは小さな設定パッケージです。Builderに接続されたコンテンツタイプとブロックタイプです。3つ目はメディアライブラリー対応より前のレガシーEntity Browserメディアピッカーです。このページでは各モジュールがインストールする内容、依存関係、有効化・廃止方法を説明します。

| モジュール | マシン名 | 提供内容 | 状態 |
|---|---|---|---|
| DXPR Builder Drag and Drop Page | `dxpr_builder_page` | `drag_and_drop_page`コンテンツタイプ | サポート対象 |
| DXPR Builder Block Type | `dxpr_builder_block` | `drag_and_drop_block`ブロックタイプ | サポート対象 |
| DXPR Builder Media | `dxpr_builder_media` | Entity Browserメディアピッカー | レガシー。Extendページでは非表示 |

どれも必須ではありません。Builderはビューディスプレイが**DXPR Builder**フォーマッター(`dxpr_builder_text`)を使う任意のテキストフィールドで動作します。[既存コンテンツタイプへのインストール](/hc/documentation/learn-dxpr-builder/getting-started/installing-on-existing-content-types)を参照。

## DXPR Builder Drag and Drop Page

`modules/dxpr_builder_page`は**Drag and Drop Page**コンテンツタイプ(`node.type.drag_and_drop_page`)を`config/optional/`からインストールします。

- フィールド`body`。既定のビューディスプレイは`dxpr_builder_text`フォーマッターを使い、フォームディスプレイはField Groupでグループ化されます。
- 3つのDXPR Themeフィールド。`field_dth_hide_regions`、`field_dth_main_content_width`、`field_dth_page_layout`です。フィールドストレージがある場合のみインストールされます。DXPR Theme Helperモジュールが提供します。

依存関係は`dxpr_builder_page.info.yml`から。`field_group`、`text`、`node`、`dxpr_builder`です。`hook_install()`は存在しない場合に`body`フィールドストレージを作成します。任意設定がインストールできない場合(Minimalプロフィールなど)でも、`menu_ui`と`path`部分を除いてタイプ、bodyフィールド、ディスプレイ自体をインストールします。`dxpr_builder_page_update_8001()`はインストール済み設定をモジュール強制としてマークします。

`src/DXPRBuilderPageUninstallValidator.php`(`dxpr_builder_page.services.yml`に登録)は`drag_and_drop_page`ノードがある間のアンインストールを阻止します。先にそれらのノードを削除するかタイプを変更します。

1. モジュールを有効化します。

    ```bash
    drush en dxpr_builder_page -y

    ```
2. ページを作るのは`/node/add/drag_and_drop_page`で、編集者がページを見るとbodyフィールドでBuilderが起動します。

有効化が「unmet dependencies」で失敗したら、Field Groupを有効化して`body`フィールドストレージがあるか確認します。[更新後の問題](/hc/documentation/learn-dxpr-builder/troubleshooting/after-updating)を参照。

## DXPR Builder Block Type

`modules/dxpr_builder_block`は**Drag and Drop Block**ブロックタイプ(`block_content.type.drag_and_drop_block`)を`config/optional/`からインストールします。`body`フィールド、既定ビューディスプレイの`dxpr_builder_text`フォーマッター、フォームディスプレイ付きです。タイプは**Create new revision**がオンで、`dxpr_builder_block_update_8002()`が古いインストールでもオンにするため、ブロックでのBuilder保存は毎回リビジョンを作ります([コンテンツステージング](/hc/documentation/learn-dxpr-builder/advanced/content-staging)を参照)。

依存関係：`text`、`node`、`dxpr_builder`。

1. モジュールを有効化します。

    ```bash
    drush en dxpr_builder_block -y

    ```
2. ブロックを作るのは`/block/add/drag_and_drop_block`です。
3. リージョンに配置します。表示される任意のページで編集者がその場で編集します。

`dxpr_builder_entity_type_alter()`はモジュール独自の`Drupal\dxpr_builder\Entity\BlockContent`クラスに入れ替えます。`Node`の場合と同様です。このクラスは空のBuilderフィールドに空文字を保存するため、エディターには常にアタッチ先があります。自分で作るブロックタイプも、ビューディスプレイがDXPR Builderフォーマッターを使えば同じ動作です。

## DXPR Builder Media

`modules/dxpr_builder_media`はコアのメディアライブラリー対応より前にモジュールが使っていたEntity Browserベースの画像ピッカーです。`hidden: true`が`.info.yml`にマークされているため**Extend**には表示されません。Drushでは有効化できます。以下をインストールします。

- `entity_browser.browser.dxpr_builder_media_modal`：2ウィジェットのモーダルブラウザーで、ラベルは**DXPR Builder Image Browser**。**Media Library**タブ(`dxpr_builder_media`ビューに支えられる)と**Upload new image**タブ(Inline Entity Formで`image`メディアエンティティを作成)。
- `views.view.dxpr_builder_media`：最初のウィジェット用のメディアグリッド。
- `image.style.dxpr_builder_media_thumbnail`：グリッド用の300×300ピクセルの拡縮切り抜きスタイル。
- ライブラリー`view`、`claro_style`、`gin_style`(`dxpr_builder_media.libraries.yml`)。モジュールは、有効テーマがGinまたはGinベースの場合にGinスタイルシートをビューに添付し、それ以外はClaroスタイルシートを添付します。

依存関係：`inline_entity_form`、`entity_browser`、`entity_browser_entity_form`、`media`、`media_library`、`views`。インストール時にモジュールは`dxpr_builder.settings`内の`media_browser`を`dxpr_builder_media_modal`に設定します。アンインストール時は空文字(**Basic file upload**)に設定し、画像スタイルを削除します。

推奨ブラウザーはコアのメディアライブラリーで、サブモジュールは不要です。

1. レガシーモジュールが有効ならアンインストールします。

    ```bash
    drush pm:uninstall dxpr_builder_media -y

    ```
2. 移動するのは**DXPR Studio &gt; DXPR Builder &gt; General Settings**(`/admin/dxpr_studio/dxpr_builder/settings`)で、**Media**を開きます。
3. 設定するのは**Browser type**で、**Media Library**にして**Save settings**をクリックします。アンインストールで**Basic file upload**にリセットされています。

サブモジュールを残すのはファイルIDを返すEntity Browserに依存するサイトのみです。不一致ブラウザーのエラーは[画像がアップロードされない・消える](/hc/documentation/learn-dxpr-builder/troubleshooting/images-and-media)を参照。モジュールはリポジトリ唯一のPHPUnitテスト`tests/src/FunctionalJavascript/MediaEntityBrowserTest.php`を持ちます。[テスト](/hc/documentation/learn-dxpr-builder/development/testing)を参照。

## 複数の一括有効化

```bash
drush en dxpr_builder_page dxpr_builder_block -y

```

各サブモジュールは他から独立しています。

## 次のステップ

- [コンテンツタイプ](/hc/documentation/learn-dxpr-builder/integrations/content-types)：独自コンテンツタイプでのBuilder利用に。
- [メディアライブラリー統合](/hc/documentation/learn-dxpr-builder/integrations/media-library)：推奨画像ピッカーに。