Entityqueue Form Widget

ノードの追加・編集フォームのサイドバーにEntityqueueウィジェットを追加し、エディターがコンテンツを直接キューに追加・削除できるようにするモジュール。

entityqueue_form_widget
996 sites
21
drupal.org

インストール

Drupal 11, 10, 9, 8 v2.0.8
composer require 'drupal/entityqueue_form_widget:^2.0'

概要

Entityqueue Form Widgetは、Drupalのコンテンツ管理ワークフローを効率化するモジュールです。通常、コンテンツをEntityqueueに追加するには、コンテンツを作成した後に別のキュー管理ページに移動する必要がありましたが、このモジュールを使用すると、ノードの作成・編集フォームの右サイドバーに直接キュー割り当てウィジェットが表示されます。

エディターはコンテンツを編集しながら、同時にどのキューに含めるかをチェックボックスで簡単に選択できます。これにより、コンテンツ作成とキュー管理が一つのフォームで完結し、作業効率が大幅に向上します。複数のキューへの同時割り当ても可能で、コンテンツを保存するだけで自動的にキューへの追加・削除が行われます。

また、Drupal Schedulerモジュールのpublish_onフィールドとの連携もサポートしており、予約投稿されるコンテンツも適切にキューに追加されます。非公開のコンテンツは自動的にキューから除外される仕組みになっています。

Features

  • ノード作成・編集フォームのサイドバーにEntityqueueウィジェットを自動表示
  • チェックボックスによる直感的なキュー割り当てUI
  • 複数のキューへの同時割り当てが可能
  • コンテンツ保存時に自動的にキューへの追加・削除を実行
  • キューの現在のアイテム数と最大サイズを表示
  • キューが満杯の場合はチェックボックスを自動的に無効化
  • Entityqueueモジュールのパーミッションシステムと連携したアクセス制御
  • 予約投稿(publish_onフィールド)との連携をサポート
  • 非公開コンテンツのキューからの自動除外
  • 複数サブキューを持つキュー(Multiple handler)への対応

Use Cases

フィーチャーコンテンツの管理

ニュースサイトやブログで、特定の記事をホームページやカテゴリページのフィーチャーセクションに表示する場合に使用します。「ホームページフィーチャー」「カテゴリフィーチャー」「トレンド」などのキューを作成し、エディターが記事作成時に直接チェックボックスでフィーチャー状態を設定できます。

ECサイトの商品キュレーション

ECサイトで「スタッフおすすめ」「セール商品」「季節のコレクション」などの商品コレクションを管理する場合に使用します。商品ノードの編集時に、どのコレクションに含めるかを一括で指定でき、プロモーション管理が効率化されます。

ブログのカテゴリ別キュレーション

複数のトピックカテゴリを持つブログで、各カテゴリのフィーチャー記事を管理します。「開発フィーチャー」「デザインフィーチャー」「ビジネスフィーチャー」などのキューを作成し、著者やエディターが記事を適切なカテゴリのフィーチャーに追加できます。

オンボーディングコンテンツの構成

SaaSサービスのヘルプセンターで、ユーザーの習熟度別にドキュメントを整理する場合に使用します。「入門」「基本機能」「応用機能」「トラブルシューティング」などのキューを作成し、各ドキュメントを適切なキューに配置してガイド付き学習体験を提供できます。

イベント関連コンテンツの一括管理

カンファレンスサイトで、スピーカー紹介、セッション情報、スポンサー情報などのイベント関連コンテンツを管理します。イベントごとにキューを作成し、関連するすべてのコンテンツを簡単にグループ化できます。イベント終了後はキューをアーカイブすることで履歴も保持できます。

編集カレンダーの管理

出版社やメディアサイトで、週ごとの公開予定コンテンツを管理する編集カレンダーとして使用します。「1月第1週」「1月第2週」などの時間ベースのキューを作成し、コンテンツマネージャーが記事を適切な週に割り当てることで、計画的なコンテンツ公開が可能になります。

Tips

  • キューには明確で説明的な名前を付けましょう(例:「Featured」ではなく「Homepage Featured Articles」)
  • 1つのコンテンツタイプに対して表示されるキュー数は5-10個程度に抑えるとエディターの判断が容易になります
  • 定期的にキューの内容を監査し、古くなったコンテンツを削除しましょう
  • 各キューの目的を文書化し、編集チーム全体で共有しましょう
  • 使用しなくなったキューは削除せず「ARCHIVE:」プレフィックスを付けて無効化することで、データを保持できます
  • キューの並び替えはウィジェットではできないため、/admin/structure/entityqueue/[queue]のドラッグ&ドロップで行ってください

Technical Details

Hooks 1
hook_form_node_form_alter

ノードの追加・編集フォームにEntityqueueウィジェットを追加するために使用。対象ノードタイプに関連するすべてのEntityqueueを取得し、チェックボックス形式でサイドバーに表示します。フォーム送信時にはキューへの追加・削除処理を実行するカスタムサブミットハンドラーも登録します。

Troubleshooting 5
Entityqueuesウィジェットがノードフォームに表示されない

1) Entityqueueモジュールが有効になっているか確認 2) /admin/structure/entityqueueで少なくとも1つのキューが存在するか確認 3) キューのTarget bundlesが編集中のコンテンツタイプを含んでいるか確認 4) ユーザーに「update [queue] entityqueue」または「manipulate all entityqueues」パーミッションがあるか確認 5) drush crでキャッシュをクリア

チェックボックスがグレーアウトして選択できない

キューが最大サイズに達しており、かつ「Act as queue」設定が無効になっている可能性があります。キュー管理画面で既存のアイテムを削除するか、キューの最大サイズを増やしてください。

キューへの変更が保存されない

1) ユーザーに適切なサブキュー編集パーミッションがあるか確認 2) フォーム送信時にバリデーションエラーが発生していないか確認 3) ノード自体の編集権限があるか確認 4) ブラウザの開発者ツールでJavaScriptエラーがないか確認

非公開にしたコンテンツがキューに残っている

コンテンツを非公開にした後、そのコンテンツを編集して保存すると、自動的にすべてのキューから削除されます。手動でキューを更新する場合は、コンテンツを編集して保存し直してください。

多くのキューがある場合にフォームの読み込みが遅い

1) 1つのコンテンツタイプに対するキュー数を5-10個程度に制限 2) 使用していないキューをアーカイブまたは無効化 3) キューのTarget bundlesを適切に設定して、必要なコンテンツタイプのみに表示 4) Drupalのキャッシュを有効化

Security Notes 3
  • ウィジェットの表示はEntityqueueモジュールのパーミッションシステムに完全に依存しています
  • 「manipulate all entityqueues」パーミッションは信頼できるユーザーにのみ付与してください
  • 各キューごとに個別のパーミッションを設定することで、きめ細かいアクセス制御が可能です