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:
module_load_include('pages.inc','privatemsg'); $subject = 'Hello ' . $recipients[0]->name; print drupal_render(drupal_get_form('privatemsg_new', arg(1), $subject));
Ez alapján én ezt írtam a rule PHP-mezőjébe:
module_load_include('pages.inc','privatemsg'); foreach ($felhasznalo as $cimzett) { $cimzettek[] = user_load($cimzett->uid); } 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?
custom vbo action
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.
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?