web-dev-qa-db-ja.com

VBO送信によって入力されたフォームを表示する方法は?

Privatemsg モジュールを使用して、ユーザーのグループにメッセージを送信したいと思います。この目的のために、私は Views Bulk Operations (VBO)と多くの公開フィルターを備えたビューを使用することを計画しています。

選択したユーザーをメッセージフォームの受信者フィールドに配置するカスタムVBOアクションを作成できました。

function mymodule_my_custom_action(&$user, $context=array()) {

module_load_include('pages.inc','privatemsg');

$recipients = array();
foreach ($user as $recipient) {
$recipients[] = user_load($recipient->uid);
}

$subject = 'Some subject'

$message_form = drupal_get_form('privatemsg_new', $recipients, $subject);
$message_html = drupal_render($message_form);
}

私は開発の経験があまりないので、このフォームを受信者の選択に役立つビューと一緒に表示する方法がわかりません。シンプルな print $message_html;はもちろん十分ではありません。たとえば、2つのペインを含むパネルページを使用できます。1つはVBOを持つユーザーのビュー用で、もう1つはprivatemsgフォーム用です。

どんな助けでも大歓迎です!

2
StG

開発の経験があまりない」のように、サイト構築スキルのみが必要な代替アプローチを使用することをお勧めします。

代わりに Privatemsgモジュールとルールの統合 を使用します(必ずこのコミュニティドキュメントとその子ページをチェックアウトしてください...)、および Views Bulk Operations モジュールを使用してください。

詳細については、 VBOでのルールコンポーネントの使用 に関するビデオを参照してください。おそらく、前の2つのビデオおよび/または後続の2つのビデオ(-- Views Bulk Operations について)も確認したい場合があります。

この特定のケースでは、

  1. Views bulk operations を使用して、ターゲットとなるユーザーのリストを作成します(これは、すでに配置されているように見えるVBOベースのビューのわずかなバリエーションです)。
  2. Rules アクション "メッセージの送信"を使用するルールコンポーネントを作成します( Privatemsg モジュールによって提供されます)。このルールコンポーネントに「MsgSubject」や「MsgBody」などの名前の2つの「変数」を追加する場合、メッセージの実際の件名と本文を作成するための「トークン」としてこれらの変数を使用することができます。
  3. VBO設定内で、このルールコンポーネントを実行するだけです。次に、このVBOビューを使用する場合、ルールコンポーネントの作成に使用される変数(「MsgSubject」や「MsgBody」など)に必要な値を指定できます。したがって、「Subject」と「Body ""メッセージの送信 "アクション(これらの変数がないと、事前定義されたメッセージの送信のみが可能になります)。そして、これはルールコンポーネントのこれらの変数を使用するだけです(メッセージの「件名」と「本文」を実装するため)。そうすることで、VBOを使用してそのようなメッセージを送信するたびに、メッセージごとに目的の「件名」と「本文」を入力できます。

完了、(カスタムコーディング)は含まれていません...

ルールコンポーネントと組み合わせたVBOの使用に関するその他の図については、次の質問に対する回答を参照してください。

2
Pierre.Vriens