Entity Registration
イベント、コース、その他のEntityベースの登録を追跡するための柔軟なモジュール。ワークフローサポート、定員管理、Commerce連携機能を備えています。
registration
インストール
composer require 'drupal/registration:^3.4'
概要
Entity Registrationは、イベントやサインアップが必要なコンテンツタイプに対するユーザー登録管理を可能にする包括的なDrupalモジュールです。DrupalのWorkflowsモジュールを通じて完全なワークフローサポートを提供し、Pending(保留中)、Complete(完了)、Held(保持)、Canceled(キャンセル)などのカスタム状態と設定可能な遷移が可能です。
主な機能には、イベントごとの定員制限、自動開始/終了日、複数登録のサポート、匿名および認証済みユーザーの登録、自動リマインダーメールがあります。別モジュールのCommerce Registrationモジュールを通じてDrupal Commerceと連携し、有料登録やチケット販売を可能にします。
登録はRegistrationフィールドを追加することで任意のフィールド対応Entityで有効化でき、Node、Commerce製品、カスタムEntityで柔軟に使用できます。管理リスト用の包括的なViews連携を提供し、言語バリアント間で登録設定を同期できる多言語サポートも含まれています。
Features
- Registrationフィールドタイプを介して任意のフィールド対応Entity(Node、Commerce製品など)に登録機能を追加
- ワークフローベースの登録状態(Pending、Complete、Held、Canceled)と設定可能な遷移
- イベントごとの設定可能な制限と登録ごとのスペース予約による定員管理
- 設定可能な日付に基づく登録の自動開始/終了
- cronによる自動状態遷移を伴う保持登録の有効期限システム
- トークンサポート付きの予定日に送信される自動リマインダーメール
- すべての登録者にメッセージを送信する一斉メールシステム
- 自己登録、他のユーザーの登録、匿名登録のサポート
- 各イベントに対する1人あたり複数登録オプション
- 空き状況と残りスペースを表示する登録ステータスBlock
- ホストEntityフィルターとフィールドを含む包括的なViews連携
- 言語間で設定を同期する完全な多言語サポート
- Drupal 7 Registrationモジュールからのマイグレーションサポート
- データベース匿名化のためのDrush sql:sanitize連携
- 登録、設定、ホストEntityデータ用のトークンサポート
- カスタム制約を含む拡張可能なバリデーションシステム
Use Cases
イベント登録システム
Registrationフィールドを持つイベントコンテンツタイプを作成し、ユーザーがイベントにサインアップできるようにします。定員制限、開始/終了日を設定し、イベント前にリマインダーメールを送信します。登録管理タブを使用して、参加者を表示し、一斉メールを送信し、登録リストをエクスポートします。
コース登録
コースやクラスのコンテンツタイプに登録を追加して、学生の登録を管理します。スペース機能を使用してグループ登録(例:家族メンバー)を可能にします。コースが定員に達したときにオーバーフロー登録を自動的にキューに入れるウェイトリストを有効にします。
有料チケット販売
Commerce Registrationモジュールと組み合わせてチケットを販売します。登録フィールドを持つCommerce製品を作成すると、注文完了時に登録が作成されます。保持状態を使用してチェックアウト中にスポットを予約し、支払いが失敗した場合は自動的に解放します。
カンファレンスセッションサインアップ
複数セッションのカンファレンスでは、セッションコンテンツタイプに登録フィールドを追加します。セッションごとの定員制限を設定し、Registration Scheduled Actionサブモジュールを使用して各セッション前にリマインダーを送信します。ワークフロー状態を使用して、確定済み参加者と仮参加者を追跡します。
ボランティアコーディネーション
登録フィールドを持つボランティア機会コンテンツを作成します。異なるボランティアスロットに対してユーザーごとに複数の登録を許可します。一斉メール機能を使用してすべてのボランティアと連絡を取り、シフト前にリマインダーメールを送信します。
多言語イベントシステム
多言語サイトでは、登録時に使用された言語が登録に記録されます。設定同期機能を使用して、翻訳間で定員と日付を一貫させながら、言語固有のリマインダーテンプレートを許可します。
Tips
- Registration statusブロックを使用して、各状態用のカスタマイズ可能なテキストでホストEntityページに動的な空き状況メッセージを表示
- Registrationフィールドのフィールド表示設定を構成して、インライン登録フォームまたは登録ページへのリンクのいずれかを表示
- Registration Confirmationサブモジュールを有効にして、登録完了時に自動的に確認メールを送信
- Registration Scheduled Actionサブモジュールを使用して、開始/終了日をトリガーとする自動メールを設定
- 複雑な登録ワークフローの場合、カスタムワークフローエンティティを作成し、ビジネスプロセスに合わせて状態遷移を設定
- トークンサポートはモジュール全体で利用可能 - すべてのメールテンプレートで[registration:*]、[registration_settings:*]、ホストEntityトークンを使用
- モジュールにはDrupal 7 Registrationモジュールからのマイグレーションサポートが含まれています - drush migrateコマンドを使用して既存データをマイグレート
- 提供されたアクションとViewsバルク操作を使用して、登録を一括管理(メール送信、状態変更)
Technical Details
Admin Pages 9
/admin/structure/registration-settings
メール処理、既存登録ポリシー、多言語同期、フィルターしきい値などのグローバル登録モジュール設定を構成します。
/admin/structure/registration-types
登録のワークフローとデフォルト状態を定義する登録タイプバンドルを管理します。各タイプのフィールド、フォーム表示、ビュー表示を構成します。
/admin/structure/registration-types/{registration_type}/edit
ワークフロー、デフォルト状態、保持登録の有効期限などの登録タイプ設定を構成します。
/admin/people/registrations
フィルタリングと一括操作を含むシステム内のすべての登録の管理リスト。
/user/{user}/registrations
特定のユーザーアカウントに関連付けられたすべての登録を表示します。
/{entity_type}/{entity}/registrations
特定のホストEntity(Node、製品など)のすべての登録を表示および管理します。
/{entity_type}/{entity}/registrations/settings
有効化/無効化、定員、日付、通知を含む特定のホストEntityの登録設定を構成します。
/{entity_type}/{entity}/registrations/broadcast
特定のホストEntityのすべての登録者に一斉メールを送信します。
/{entity_type}/{entity}/register
ユーザーがイベントやEntityにサインアップするための登録フォーム。
権限 9
Hooks 1
hook_registration_host__access
登録固有の操作に対するホストEntityの操作アクセスを制御
Drush Commands 1
drush sql:sanitize
このモジュールはDrushのsql:sanitizeコマンドを拡張して、メールやテキストフィールドを含む登録データを匿名化します
Troubleshooting 5
Registrationフィールドがコンテンツタイプに追加され、表示設定でフィールドフォーマッターが「Registration form」に設定されていることを確認してください。また、Entityの登録設定で登録が有効になっていることを確認してください。
ユーザーが適切な権限(create [type] registration、register self)を持っていることを確認してください。登録開始日が過ぎており、終了日に達していないことを確認してください。定員が超過していないことを確認してください。
登録設定で「リマインダーを送信」がチェックされ、リマインダー日が設定されていることを確認してください。cronが正常に実行されていることを確認してください。登録者が有効なメールアドレスを持ち、アクティブな状態にあることを確認してください。
保持登録の有効期限にはcronの実行が必要です。登録タイプの保持有効期限時間設定を確認してください。有効期限の状態が正しく設定されていることを確認してください。
コアの制限により、UserエンティティからそのRegistrationへの逆リレーションシップを有効にするには、Entity APIコントリビュートモジュールをインストールしてください。
Security Notes 4
- 権限「administer registration types」と「administer registration」は制限付き権限です - 信頼できる管理者にのみ付与してください
- モジュールはアクセス制御ハンドラーとバリデーション制約を通じてすべての登録操作を検証します
- 登録を通じて収集されたメールアドレスはデータベースに保存されます - 適切なデータ保護対策が実施されていることを確認してください
- Drush sql:sanitize統合は、ステージング環境用に登録データを匿名化するのに役立ちます