Как отобразить форму, заполненную отправкой VBO?


Я хотел бы использовать модуль Privatemsg для отправки сообщений группе пользователей. Для этой цели я планирую использовать представление с Представлениями массовых операций (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;, конечно, будет недостаточно. Например, можно ли использовать страницу панели, содержащую две панели: одну для просмотра пользователями с VBO и одну для формы privatemsg?

Мы будем очень признательны за любую помощь!

Author: Pierre.Vriens, 2016-05-06

1 answers

В соответствии с " Я не очень опытен в разработке", вы можете использовать альтернативный подход, который требует только навыков создания сайтов, как описано ниже...

Вместо этого используйте интеграцию модуля Privatemsg с правилами (обязательно проверьте этот документ сообщества и его дочерние страницы...) вместе с модулем Просмотр массовых операций .

Для получения более подробной информации обратитесь к видео о Использовании компонентов правил с VBO. Возможно, вы также захотите просмотреть 2 предыдущих видео и/или 2 последующих видео (все о Просмотре массовых операций ), т.Е.:

В данном конкретном случае;

  1. использовать Массовые просмотры операции для создания списка ваших целевых пользователей (так что это всего лишь небольшая вариация представления на основе VBO, которое у вас, похоже, уже есть).
  2. создайте компонент правил, который использует Правила действие "Отправить сообщение" (предоставляется модулем Privatemsg). Если бы вы добавили 2 "переменные" в этот компонент правил, названный чем-то вроде "msgsubject" и "msgbody", вы могли бы использовать эти переменные в качестве "токенов" для построения фактического предмета и тела вашего сообщение.
  3. В настройках VBO просто выполните этот компонент Правил. Если вы затем используете это представление VBO, вы можете указать желаемые значения для переменных, используемых для создания компонента правил (например, "msgsubject" и "msgbody"). Таким образом, вы избегаете жесткого кодирования " Тема" и " Тело" для действия "Отправить сообщение" (без этих переменных это позволило бы вам отправлять только предопределенные сообщения). И это просто с помощью этих переменных ваших правил Компонент (для реализации этой "Темы" и "Тела" сообщения). Таким образом, каждый раз, когда вы используете свой VBO для отправки таких сообщений, вы можете ввести желаемую "Тему" и "Тело" для каждого из этих сообщений.

Сделано, не задействовано (пользовательское кодирование)...

Для некоторых других иллюстраций использования VBO в сочетании с компонентами правил обратитесь к ответам на эти вопросы:

 2
Author: Pierre.Vriens, 2017-04-13 12:47:11