vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   How to access pmid replies in private_insertpm_complete hook location? (https://vborg.vbsupport.ru/showthread.php?t=259924)

Majidm 03-06-2011 05:23 AM

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? :confused:

kh99 03-06-2011 02:02 PM

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.

Majidm 03-06-2011 02:33 PM

Quote:

Originally Posted by kh99 (Post 2170191)
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

kh99 03-06-2011 02:57 PM

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.

Majidm 03-06-2011 03:47 PM

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!


All times are GMT. The time now is 10:40 AM.

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.01787 seconds
  • Memory Usage 1,717KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete