Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 03-06-2011, 05:23 AM
Majidm Majidm is offline
 
Join Date: Aug 2005
Posts: 59
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default 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?
Reply With Quote
  #2  
Old 03-06-2011, 02:02 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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 03-06-2011, 02:33 PM
Majidm Majidm is offline
 
Join Date: Aug 2005
Posts: 59
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
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
Reply With Quote
  #4  
Old 03-06-2011, 02:57 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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 03-06-2011, 03:47 PM
Majidm Majidm is offline
 
Join Date: Aug 2005
Posts: 59
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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!
Reply With Quote
Reply


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

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:54 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03860 seconds
  • Memory Usage 2,196KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete