サブモジュール.

Learn DXPR BuilderExtendArchitectuur en API’s

ディレクトリ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)を使う任意のテキストフィールドで動作します。既存コンテンツタイプへのインストールを参照。

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. モジュールを有効化します。

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

有効化が「unmet dependencies」で失敗したら、Field Groupを有効化してbodyフィールドストレージがあるか確認します。更新後の問題を参照。

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保存は毎回リビジョンを作ります(コンテンツステージングを参照)。

依存関係:text、node、dxpr_builder。

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

    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. レガシーモジュールが有効ならアンインストールします。

    drush pm:uninstall dxpr_builder_media -y
    
  2. 移動するのはDXPR Studio > DXPR Builder > General Settings(/admin/dxpr_studio/dxpr_builder/settings)で、Mediaを開きます。

  3. 設定するのはBrowser typeで、Media LibraryにしてSave settingsをクリックします。アンインストールでBasic file uploadにリセットされています。

サブモジュールを残すのはファイルIDを返すEntity Browserに依存するサイトのみです。不一致ブラウザーのエラーは画像がアップロードされない・消えるを参照。モジュールはリポジトリ唯一のPHPUnitテストtests/src/FunctionalJavascript/MediaEntityBrowserTest.phpを持ちます。テストを参照。

複数の一括有効化

drush en dxpr_builder_page dxpr_builder_block -y

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

次のステップ