ユーザーには2つの役割があります:AdminsおよびContent Creators(基本的に認証済みコンテンツを作成するためのいくつかの追加権限が必要です)。コンテンツ作成者が既存のコンテンツから新しい下書きを作成し、管理者が公開することを承認できるようにしたいと考えています。
このアプローチは簡単に聞こえますが、いくつかの障害にぶつかり、複数のアプローチを試しました。
その他の考慮事項:
この機能がD8に組み込まれていることがわかります。事実、 まさにチケット は、私たちがやろうとしていることを説明しています。
理想的には、任意の状態を任意のリビジョンに割り当てることができるはずです。私は、公開された改訂、承認待ちの改訂、およびそれ以上の改訂草案を持つことができました。
これをDrupal 7で発生させる方法はありますか?
可能な代替案は Revisioning モジュールです。さらに詳細(プロジェクトページから):
...コンテンツリビジョンを作成、モデレート、公開するワークフローを構成するためのモジュール。
ほとんどのユースケースでは、設定は簡単です。トリッキーなビットは権限です。すぐに起動して実行するには(D6またはD7)、ここで説明されている手順に従います。 最も単純な改訂 。
これについてのスクリーンプリントは次のとおりです(プロジェクトページから)。
これらのモジュール(および通常のコンテンツタイプ)を組み合わせて使用します。
以下は、同様のアプローチでワークフローを実装するための詳細です。
コンテンツ作成者は、コンテンツタイプ(たとえば)「リクエスト」のノードを作成します。
コンテンツアクセス を使用して、「複数のタイプのリクエストがあり、複数のコンテンツタイプに拡張する場合は、どのタイプのタイプを作成できるロールに関するあらゆる種類の権限を微調整します。
Rules を使用して、管理者に「電子メールを送信」(=アクション)します。「タイプ「リクエスト」のコンテンツが保存された後」(=イベント)。管理者向けの(カスタム)電子メールに、リクエストに関連するすべての詳細を含めます(ルールで使用できるさまざまなデータに応じて)。確認するノードのURLなど。
コンテンツの作成者がリクエストデータを変更できないようにするには(レビュープロセスが未解決の場合)、同じ(以前の)ルールに追加のアクションを追加して、リクエストへのアクセスを更新します(コンテンツの作成者のみが読み取りできるようにします)。
Flag モジュールを使用して、管理者が送信済みノードを「承認済み(管理者による)」または「拒否(管理者による)」(拒否?)などのフラグでマークできるようにします。これらのフラグを設定する権限は、管理者に制限されています。
送信されたノードが承認された後、 Rules を使用して、ノード(要求)を以前のバージョン(非公開または削除、あるいはその両方)を置き換える新しいバージョンと見なすために必要なアクションを実行します。リクエストに置き換えるバージョンへのエンティティ参照が含まれている場合は、以前のバージョンを自動的に置き換えるように Rules を指定することもできます。
必要に応じて、 Rules を使用して、コンテンツ作成者に「電子メールを送信」(=アクション)します。「タイプ「リクエスト」のコンテンツにフラグが付けられた後」(=イベント)。バリエーション:適切なビューを作成して、各コンテンツ作成者が承認プロセスを監視するための何らかのダッシュボードを使用できるようにします。
ワークフロー参加者の一部がまったく「見る」べきではない特定の「フィールド」で上記をさらに調整したい場合も、 Node Convert モジュールを追加します(「フィールドを使用する必要がないようにするため」許可」、これはその代わりになる可能性があります。
私たちは Workflow モジュールを使用し、それが非常に安定していることを発見しました。そして、あなたが説明したとおりにそれを使用して、コンテンツ担当者がコンテンツを編集し、管理者がそれを承認できるようにします。
ワークフローモジュールの構成は少し複雑ですが、必要な機能を提供するため、実行する価値があります。通常、次の手順があります。
Drupal Users のワークフローの作成には、優れたチュートリアルが含まれています。