The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Question about PM DataManager...
Okay, I have a comma delimited string.... "1,319" stored in $media['subscriptions']
I am using the following code: Code:
if ($media['subscriptions']) { $recipients = str_replace(',',';',$media['subscriptions']); $pmdm =& datamanager_init('PM', $vbulletin); $pmdm->set('fromuserid', $vbulletin->userinfo['userid']); $pmdm->set('fromusername', $vbulletin->userinfo['username']); $pmdm->set('title', "this is a test title"); $pmdm->set('message', "this is a test message"); $pmdm->overridequota = true; $pmdm->set_recipients($recipients, $botpermissions); $pmdm->set('dateline', TIMENOW); $pmdm->save(); } The following users were not found: 1, 319 Now I have several problems with this... 1 - user #1 DOES exist, as that is me, so this shouldn't be happening... 2 - 319 actually doesn't exist, however I would like it to IGNORE this error and send the message to the other users. Is this possible? --------------- Added [DATE]1273473733[/DATE] at [TIME]1273473733[/TIME] --------------- Okay... I got it working... sort of, I now have a new error... Code:
if ($media['subscriptions']) { $users = $vbulletin->db->query_read("SELECT username FROM " . TABLE_PREFIX . "user WHERE userid IN (".$media['subscriptions'].")"); while ($user = $vbulletin->db->fetch_array($users)) { $recipients[] = $user['username']; } $recipients = implode(';', $recipients); $dm =& datamanager_init('PM', $vbulletin); $dm->set('fromuserid', $vbulletin->userinfo['userid']); $dm->set('fromusername', $vbulletin->userinfo['username']); $dm->set('title', "this is a test title"); $dm->set('message', "this is a test message"); $dm->overridequota = true; $dm->set_recipients($recipients, $botpermissions); $dm->set('dateline', TIMENOW); $dm->save(); } However, using this code, I have a new error... Code:
INSERT INTO pmtext (fromuserid, fromusername, title, message, dateline, touserarray, pmtextid) VALUES (2, 'testaccount', 'this is a test title', 'this is a test message', 1273473635, 'a:1:{s:3:\"bcc\";a:1:{i:1;s:5:\"Jaxel\";}}', 2); MySQL Error : Duplicate entry '2' for key 1 Error Number : 1062 Username : testaccount Classname : vB_Database MySQL Version : Stack Trace: #0 vB_Database->halt() called in [path]/includes/class_core.php on line 421 #1 vB_Database->execute_query() called in [path]/includes/class_core.php on line 439 #2 vB_Database->query_write() called in [path]/includes/class_dm.php on line 740 #3 vB_DataManager->db_insert() called in [path]/includes/class_dm.php on line 890 #4 vB_DataManager->save() called in [path]/media/media_comment.php on line 80 #5 require_once([path]/media/media_comment.php) called in [path]/media_ajax.php on line 87 This error doesn't seem to make sense to me... It DOES process an insert in the database, and the PM goes through. This error pops up because for some odd reason it is running the insert code TWICE... which it shouldnt be doing. |
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|