Üzenetküldés tetszőleges felhasználócsoportnak

ipeto képe

Sziasztok!

Egy olyan belső üzenetküldő megoldást próbálok összerakni, ahol a felhasználók tetszőleges csoportjának írható üzenet. A tetszőleges alatt érthető az, hogy akkor válogatja össze a küldő vagy hogy pl. egy taxonómiamező alapján szűri le a címzetteket.

Az üzenetküldéshez jónak tűnik a Privatmsg modul, de ez csoportként csak az egyes role-okat tudja elfogadni. A felhasználók kiválogatásához így egy nézetet gondoltam használni, megtámogatva felfedett szűrőkkel és a Views Bulk Operation-nal.

Arra van ugyebár lehetőség, hogy a VBA egy rule action-t használjon műveletként, így azzal próbálkozom (valószínűleg nem a legszabványosabb módon), hogy készítek rule action-t, melynek a (VBO-tól kapott) felhasználólista a paramétere és benne egy PHP-kód generálja le a privatmsg űrlapot, a címzett mezőben a kiválasztott felhasználókkal. A privatmsg űrlapjához több helyen (pl. itt vagy itt) lényegében ugyanazt a kódot javasolják:

  1. module_load_include('pages.inc','privatemsg');
  2. $recipients = array(user_load(arg(1)));
  3. $subject = 'Hello ' . $recipients[0]->name;
  4. print drupal_render(drupal_get_form('privatemsg_new', arg(1), $subject));

Ez alapján én ezt írtam a rule PHP-mezőjébe:

  1. module_load_include('pages.inc','privatemsg');
  2.  
  3. $cimzettek = array();
  4. foreach ($felhasznalo as $cimzett) {
  5. $cimzettek[] = user_load($cimzett->uid);
  6. }
  7.  
  8. print drupal_render(drupal_get_form('privatemsg_new', $cimzettek, 'tárgy')));

Maguk a felhasználók és azonosítójuk jól megjelennek, de az üzenetküldő űrlap egyáltalán nem, a drupal_get_form (ami elvileg egy render array-t ereményez) hibára fut, dpm()-mel se ír ki semmit.

Nyilvánvalóan valamit az elején elrontottam, a modul vagy a form betöltésénél pl. Tehát az lenne a kérdésem, hogyan lehet így a rule-ból (vagy máshogy) létrehozni a privatemsg üzenetküldő form-ját?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
ipeto képe

Annyit módosítottam a fentieken, hogy nem szabályban, hanem egy saját action-ben helyezem el a fenti kódot, ill. ebben még van egy felesleges zárójel is. Tehát az alábbi két sor eredményezte $uzenet dpm()-mel ránézve tartalmazza az üzenetküldő űrlapot.

  1. $uzenet_form = drupal_get_form('privatemsg_new', $cimzettek, 'tárgy');
  2. $uzenet = drupal_render($uzenet_form);

A gond, hogy kiíratni nem tudom. Tehát igazából a kérdés az lenne, hogyan lehetne egy olyan oldalt összerakni, ahol a VBO-nézet biztosítja a vezérlést az oldal másik felének? Pl. egy két részből álló paneloldallal megoldható? Hogyan lehetne átadni a VBO eredményét az egyik panelelemből a másikba?

0
0