Register Members List Search Today's Posts Mark Forums Read

Reply
 
Thread Tools
  #1  
Old 06 Mar 2011, 06:23
Majidm Majidm is offline
 
Join Date: Aug 2005
How to access pmid replies in private_insertpm_complete hook location?

I'm working on a plugin that hooks into private_insertpm_complete

I'm having a really difficult time finding the proper pmid variable in replies

$pmdm->info['parentpmid'] works for the initial message, but I can't use this for replies because the replies have a different pmid

I've tried the following:
$vbulletin->input->clean_gpc('r', 'pmid', TYPE_UINT)
$pmdm->info['replypmid']
$pm['pmid']
$pm[pmid]

Anyone know how to access the pmid for replies?
__________________
RocBattle.com - Battle, Buy and Sell Beats - Hosted by Grammy-award Winning Producer Rockwilder
Reply With Quote
  #2  
Old 06 Mar 2011, 15:02
kh99's Avatar
kh99 kh99 is offline
 
Join Date: Aug 2009
Real name: Kevin
It looks like there's an id for the text, then a different id for the message (one for each recipient). I assume you're talking about the second one (pmid in the pm table)? I'm not sure why parentid doesn't work for replys, but if you use hook location pmdata_postsave_recipient it gets called once per recipient, and you can call $this->dbobject->insert_id() to get the pmid.
Reply With Quote
  #3  
Old 06 Mar 2011, 15:33
Majidm Majidm is offline
 
Join Date: Aug 2005
Originally Posted by kh99 View Post
It looks like there's an id for the text, then a different id for the message (one for each recipient). I assume you're talking about the second one (pmid in the pm table)? I'm not sure why parentid doesn't work for replys, but if you use hook location pmdata_postsave_recipient it gets called once per recipient, and you can call $this->dbobject->insert_id() to get the pmid.
Thanks I will try that, this is for a custom notifications system (Arrowchat)

I was also accessing these variables:
$pmdm->info['recipients']; (recipients array)
$userid (user PM being sent to)
$vbulletin->userinfo[userid] (user PM being sent from)
$vbulletin->userinfo[username] (username PM being sent from)
$pm['title'] (subject of PM)

Will they be accessible too? If not, do you know what the var names are in that hook location?

p.s If so, how do you know these?

Thanks
__________________
RocBattle.com - Battle, Buy and Sell Beats - Hosted by Grammy-award Winning Producer Rockwilder
Reply With Quote
  #4  
Old 06 Mar 2011, 15:57
kh99's Avatar
kh99 kh99 is offline
 
Join Date: Aug 2009
Real name: Kevin
I think you could access all those things. I think you'd have to put "global $vbulletin" in your code, use "$this" in place of $pmdm, and call $this->fetch_field('title') to get the title (or use variable $plaintext_title for the title that's been run through unhtmlspecialchars). Also the user id is in $user[userid].

Look at file includes/class_dm_pm.php and search for private_insertpm_complete (it's around line 581 in my file). it's in function post_save_each() which is called near the end of save()

Another thing you could do is make a plugin for private_insertpm_complete that saves the pmid's in a global variable, then use them in your existing plugin.
Reply With Quote
  #5  
Old 06 Mar 2011, 16:47
Majidm Majidm is offline
 
Join Date: Aug 2005
Nice thanks a lot again kh99!

I used the pmdata_postsave_recipient hook location

/* ARROWCHAT NEW MESSAGE NOTIFICATION */
global $vbulletin;
global $db;

$db->query_write("INSERT INTO arrowchat_notifications (to_id, author_id, author_name, type, alert_time, misc1, misc2) VALUES ('".$user[userid]."', '".$vbulletin->userinfo[userid]."', '".$vbulletin->userinfo[username]."', '1', '".time()."', '".addslashes($plaintext_title)."', '".$this->dbobject->insert_id()."')");
/* END ARROWCHAT MESSAGE NOTIFICATION */

Works perfectly, cheers!
__________________
RocBattle.com - Battle, Buy and Sell Beats - Hosted by Grammy-award Winning Producer Rockwilder

Last edited by Majidm : 14 Mar 2011 at 04:13.
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Jump


New To Site? Need Help?

All times are GMT. The time now is 19:48.

Layout Options | Width: Wide Color: