Layout Components

Drupal Layout Builderの包括的な拡張モジュールで、事前構築済みコンポーネント、改善されたUI/UX、ライブプレビュー機能、セクションとカラムの広範なカスタマイズオプションを提供します。

layoutcomponents
91 sites
86
drupal.org

インストール

Drupal 10, 9 v3.0.3
composer require 'drupal/layoutcomponents:^3.0'
Drupal 8 v4.0.0
composer require 'drupal/layoutcomponents:^4.0'

概要

Layout Componentsは、DrupalのLayout Builderの上に構築された高度なモジュールで、そのシステムと統合されたコンポーネントの完全なパッケージを提供します。このモジュールは、コンテンツ編集中の変更のライブプレビューなどの必須機能を備えた、よりカスタマイズ可能な改善されたインターフェースを作成することで、ユーザーエクスペリエンスを拡張します。

このモジュールは、テキスト、画像、動画、アコーディオン、タブ、タイムライン、カウントダウンなど、すぐに使用できる一連のコンポーネントをエディターに提供します。開発者向けには、Layout Componentsはモジュールが提供するすべてのカスタマイズ機能を活用しながらカスタムフィールドを追加できるAPIを提供します。

Layout Componentsは、背景、色、ボーダー、スペーシングなどをカスタマイズできる6種類のBootstrapベースのグリッドレイアウト(1〜6カラム)を提供します。エディターは、パララックスオプション付きの背景色や画像を追加したり、パディングを設定したり、複数のCSSクラスやHTML属性を追加したり、スタイリング付きのセクションタイトルを作成したり、テンプレートを変更したり、セクションを全幅に設定したりできます。

Features

  • 柔軟なカラム幅配分を持つ1〜6カラム構成をサポートする6つのBootstrapベースのレイアウトテンプレート
  • Layout Builderでのコンテンツ編集中の変更のライブプレビュー
  • タイトル、説明、背景色/画像、パララックス効果、全幅オプションを含む包括的なセクションカスタマイズ
  • 個別のタイトルスタイリング、背景色、ボーダー、ボーダー半径、パディングコントロールを備えたカラムカスタマイズ
  • テキスト、画像、動画、アコーディオン、タブ、タイムライン、カウントダウン、カード、ボタンなど20以上の事前構築済みコンポーネントブロックタイプ
  • セクション、カラム、ブロックをコピー&ペーストするためのクリップボード機能
  • セクション、カラム、ブロックに対するエンティティタイプごとの動的パーミッションを持つきめ細かいパーミッションシステム
  • 開発者がLCのスタイリングと機能を持つカスタムフィールドを作成するためのコンポーネントAPI
  • ブロックのエクスポートとインポート用のDrushコマンド
  • カルーセルセクション用のSlickカルーセルとの統合
  • セクション内のタブレイアウトのサポート
  • エディター用の設定可能なカラーパレット付きカラーピッカー
  • Bootstrap XS、SM、MD、LG、XLブレークポイントをサポートするレスポンシブデザイン
  • 背景画像と動画用のMedia Library統合
  • カスタムラッパー要素タイプ(div、span、section、article、header、footer、aside、figure)

Use Cases

マーケティングランディングページの構築

Layout Componentsを使用して、背景動画を備えた全幅ヒーローセクション、カード付きの3カラム機能セクション、会社の歴史を紹介するタイムラインセクション、ソーシャルリンク付きのお問い合わせセクションを持つ魅力的なランディングページを作成します。各セクションは、一貫したBootstrapベースのレスポンシブデザインを維持しながら、独自の背景色、パディング、スタイリングを持つことができます。

タブ付き製品情報の作成

Simple Tabsコンポーネントを使用して、仕様、レビュー、関連製品が別々のタブに整理された製品ページを作成します。各タブコンテンツエリアは完全なLayout Builderエクスペリエンスをサポートし、各タブ内で複雑なレイアウトを可能にします。

アコーディオン付きチームディレクトリの構築

各部門が折りたたみ可能なセクションになっているアコーディオンコンポーネントを使用してチームページを作成します。展開すると、各セクションにはマルチカラムレイアウトで配置された画像、タイトル、経歴を持つチームメンバーカードが表示されます。

カルーセル付きフォトギャラリー

Slick統合を使用して、複数の画像ブロックを含むセクションをスムーズなカルーセルギャラリーに変換します。自動再生、ナビゲーション矢印、ドットをユーザーコントロール用に設定できます。

イベントカウントダウンページ

イベントまでの日数、時間、分、秒を表示するカウントダウンタイマーコンポーネントを含むイベントページを作成します。イベントポスター用の画像コンポーネントやイベント詳細用のテキストコンポーネントと組み合わせます。

コンテンツエディターのワークフロー

ライブプレビュー機能を使用して、開発者の支援なしにページを構築できるようコンテンツエディターを支援します。エディターはセクションを追加し、カラム幅を調整し、背景色を設定し、リアルタイムで結果を確認しながらブロックを配置できます。

Tips

  • 必要なコンポーネントサブモジュールのみを有効にしてください - 有効にした各コンポーネントはブロック選択ダイアログに表示されるブロックタイプを作成します
  • サイトのデザインシステムに合わせてデフォルトのセクションとカラムスタイルを設定し、エディターの繰り返しスタイリング作業を削減します
  • クリップボード機能を使用して、ページ間で複雑なセクション、カラム、またはブロックを素早く複製できます
  • レスポンシブカラム幅オプションを活用して、異なるブレークポイント(XS、SM、MD、LG、XL)で異なるレイアウトを作成できます
  • 追加クラスと追加属性フィールドを使用して、JavaScriptインタラクション用のカスタムCSSクラスやdata属性を追加できます
  • パフォーマンスのため、カルーセル機能が必要な場合のみlc_slickを有効にしてください。Slickライブラリの依存関係が追加されます
  • デプロイメントワークフローでエクスポート/インポートDrushコマンドを使用する予定がある場合は、一般設定のフォルダパス設定が不可欠です

Technical Details

Admin Pages 5
Layout Components - 一般設定 /admin/config/layoutcomponents/settings

ブロックのエクスポートフォルダパスや横型設定メニューの幅など、Layout Componentsの一般設定を構成します。

Layout Components - インターフェース /admin/config/layoutcomponents/settings/interface

Layout Componentsインターフェースのビジュアルテーマを設定します。

Layout Components - カラー /admin/config/layoutcomponents/settings/colors

セクションとカラムをカスタマイズする際にエディターが使用できるカラーパレットを設定します。

Layout Components - セクション /admin/config/layoutcomponents/settings/section

Layout Componentsセクションのデフォルトのスタイリングと動作設定を構成します。これらのデフォルトは新しいセクションを作成するときに適用されます。

Layout Components - カラム /admin/config/layoutcomponents/settings/column

Layout Componentsカラムのデフォルトのスタイリングと動作設定を構成します。これらのデフォルトは新しいカラムを作成するときに適用されます。

権限 18
設定: デフォルトLC一般設定

フォルダパスやメニュー幅を含むLayout Componentsの一般設定を構成するためのアクセス権。

設定: デフォルトLCインターフェース設定

Layout Componentsのインターフェーステーマ設定を構成するためのアクセス権。

設定: デフォルトLCカラー設定

Layout Componentsのエディターカラーパレットを構成するためのアクセス権。

設定: デフォルトLCセクション設定

デフォルトのセクションスタイリングと動作設定を構成するためのアクセス権。

設定: デフォルトLCカラム設定

デフォルトのカラムスタイリングと動作設定を構成するためのアクセス権。

LCセクションの作成(動的)

特定のエンティティタイプとバンドルに対して新しいLayout Componentsセクションを作成するパーミッション。

すべてのLCセクションの移動(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsセクションを移動/並べ替えするパーミッション。

すべてのLCセクションの削除(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsセクションを削除するパーミッション。

すべてのLCセクションの設定(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsセクションを設定するパーミッション。

すべてのLCレイアウトセクションの変更(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsセクションのレイアウトタイプを変更するパーミッション。

すべてのLCセクションのコピー(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsセクションをクリップボードにコピーするパーミッション。

すべてのLCカラムの設定(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsカラムを設定するパーミッション。

すべてのLCカラムのコピー(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsカラムをクリップボードにコピーするパーミッション。

LCブロックの追加(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsセクション内にブロックを追加するパーミッション。

LCブロックの移動(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsセクション内でブロックを移動するパーミッション。

LCブロックの削除(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsセクションからブロックを削除するパーミッション。

LCブロックの設定(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsセクション内のブロックを設定するパーミッション。

LCブロックのコピー(動的)

特定のエンティティタイプとバンドルに対してLayout Componentsセクション内のブロックをクリップボードにコピーするパーミッション。

Hooks 3
hook_theme

Layout Componentsテンプレート用のテーマ実装を定義します。

hook_preprocess_block

Layout Componentsブロック用のブロック変数を前処理します。

hook_theme_suggestions_alter

Layout Componentsテンプレート用のテーマサジェスチョンを追加します。

Drush Commands 3
drush lc:export

すべてのLayout Componentsブロックを設定されたフォルダ内のJSONファイルにエクスポートします。Layout Builderディスプレイで使用されるブロックとそのエンティティリファレンスリビジョン(タブ、アコーディオンアイテムなど)をエクスポートします。

drush lc:import

設定されたフォルダ内のJSONファイルからLayout Componentsブロックをインポートします。最初に既存のブロックを削除し、エンティティ参照と翻訳を保持しながらJSONファイルからインポートします。

drush lc:delete

Layout Builderディスプレイで使用されるすべてのLayout Componentsブロックを削除します。関連するエンティティリファレンスリビジョンアイテムも削除します。

Troubleshooting 6
レイアウトが正しく表示されない、またはカラムが整列しない

アクティブなテーマがBootstrap 4またはBootstrap 5ベースであることを確認してください。Layout ComponentsはBootstrapのグリッドシステムを使用しており、適切にレンダリングするためにこれらのCSSフレームワークが必要です。

インストール中にパッチが適用されない

composer-patchesがインストールされ有効になっていることを確認してください。composer.jsonの'extras'セクションに'"enable-patching": true'を追加し、'composer update'を実行して必要なパッチを適用します。

ブロックが保存されない、またはinline entity formエラーが発生する

このモジュールにはdrupal/coreとdrupal/inline_entity_form用のパッチが含まれています。composer.lockを確認するか'composer update --dry-run'を実行して、これらのパッチが適用されていることを確認してください。

エクスポート/インポートコマンドが動作しない

lc_commandsサブモジュールがhalおよびserializationモジュールとともに有効になっていることを確認してください。/admin/config/layoutcomponents/settingsでエクスポートフォルダパスが正しく設定されており、フォルダが存在し書き込み可能であることを確認してください。

カラーピッカーに設定された色が表示されない

/admin/config/layoutcomponents/settings/colorsで16進数カラー(カンマ区切り)を追加してください。形式: #ffffff,#000000,#f89456

レイアウト編集時に権限拒否エラーが発生する

Layout Componentsはエンティティタイプごとの動的パーミッションを使用します。admin/people/permissionsで各コンテンツタイプに対する適切なパーミッション(セクションの作成、ブロックの設定など)を付与してください。

Security Notes 4
  • Layout ComponentsはDrupalのパーミッションシステムを尊重し、エンティティタイプごとのきめ細かい動的パーミッションを提供します
  • 追加属性フィールドは任意のHTML属性を許可します - セクションを設定できるのは信頼できるユーザーのみであることを確認してください
  • Iframeコンポーネントは外部コンテンツを埋め込むことができます - XSSベクターを防ぐためにパーミッションを慎重に確認してください
  • エクスポート/インポートコマンドはファイルシステムにファイルを書き込みます - 設定されたフォルダが適切なパーミッションを持ち、Webからアクセスできないことを確認してください