PDA

View Full Version : Mini: Link Directly to PM in Email Notification


TWTCommish
01-21-2002, 10:00 PM
Ok, I realize this is TINY. Sorry. :) I figured it'd be worth posting anyway, though, because this tiny little hack has been extremely useful to me.

What's it do?
Short, and sweet: instead of a link to the Inbox in the new PM notification email, it displays a link directly to the message itself.

Known bugs
From what I understand, the mysql_insert_id() function is a little bit on the funky side...so it seems that, every few dozen emails I receive, just one doesn't work. This is a real rarity, though. 99% of the time it hums along without a hitch.

Ok, this hack is VERY simple. Here goes:

in private.php in your main forums directory, find the code below (around line 625 or so):

$DB_site->query("INSERT INTO privatemessage (privatemessageid,userid,touserid,fromuserid,title ,message,dateline,showsignature,iconid,messageread ,folderid,receipt) VALUES (NULL,$touserinfo[userid],$touserinfo[userid],$bbuserinfo[userid],'".addslashes(htmlspecialchars($title))."','".addslashes($message)."',".time().",'$signature','$iconid',0,0,$receipt)");
RIGHT after it, place this:

$the_pm_id = $DB_site->insert_id();

Save and upload. Yep, that's it for code editing! :) Then, open the email_pmreceived, and use the $the_pm_id variable as you please. Here's how I used it:


$touserinfo[username],

You have received a new private message at $bbtitle from $bbuserinfo[username]. Please click here to log in and read it:
$bburl/private.php?action=show&privatemessageid=$the_pm_id

Thanks,
$bbtitle
Attached is a quick screenshot of what the email looks like when I receive it. Works well for me. If anyone's got any suggestions, feel free to let me know. I hope this is useful. :)

bokhalifa
01-22-2002, 04:52 PM
Thanks :pleased:

Lionel
01-25-2002, 06:23 PM
thanks

69-FLy-gUy
01-25-2002, 07:10 PM
Thanks.. will install this one later tonight

Ciao

LuBi
02-02-2002, 05:21 PM
So anyone figureo ut what's up with the funky code? Is it something we should worry about or will this feature work?

TWTCommish
02-02-2002, 05:30 PM
Oh, you mean the mysql_insert_id() function? It'll be fine. I think it's only mucked up on me once or twice in maybe 100 emails or so. And it hasn't happened in weeks. I may have imagined it. :D

X-Fan
02-04-2002, 05:14 AM
I've installed this and it seemed to work okay but now I've gotten a bunch of e-mails notifying me of PM's that didn't have the privatemessageid number in the URL so leads to an error page when you click it.

Also, myself and some others on the board have been reporting that they've been getting e-mails advising them of a new PM but when they access their PM section there's nothing there!

Any ideas?

TWTCommish
02-04-2002, 05:29 AM
Can you take me through the steps you've gone through to install this? I can't imagine how it could be much of a problem...one line of code (that needs to be RIGHT after that query), and a minor template change.

X-Fan
02-04-2002, 07:20 AM
Originally posted by TWTCommish
Can you take me through the steps you've gone through to install this? I can't imagine how it could be much of a problem...one line of code (that needs to be RIGHT after that query), and a minor template change.

Yeah, only two steps that I followed to the letter. Editing private.php was a snap, and I even used your example of what to put in the email_pmreceived template but for some reason I'm getting the above probs.

TWTCommish
02-04-2002, 02:39 PM
I'm wondering if it's got something to do with your installation of PHP, then. I do know the function is a tad shaky, but if it completely fails to work, EVER, then there might be some switch missing. Do you know which version you're running, offhand?

fury
02-08-2002, 12:56 PM
You sure you didn't add it after the query inside if ($savecopy) { }? The queries do look very similar at the beginning

If your users do not elect to save copies of their private messages, then this hack would not work, if that's where you added them. You have to add them in the query that is right after this line:

// enhanced - added $receipt to insert

Thanks for the great hack, Commish! :D

NYI Fan
02-15-2002, 10:05 PM
This is GREAT! Thank you!

TWTCommish
02-15-2002, 11:08 PM
No problem -- I'm glad you like it. :) I find it highly useful...so I figured others would as well. BTW: this could be modified slightly to include, say, the title and time sent along with the username and link. Wouldn't be too tough, I don't think.

tanster
03-03-2002, 11:09 PM
Wonderful. Thank you!

:) Jennie

tanster
08-04-2002, 08:53 PM
Originally posted by X-Fan
I've installed this and it seemed to work okay but now I've gotten a bunch of e-mails notifying me of PM's that didn't have the privatemessageid number in the URL so leads to an error page when you click it.I encountered the same problem, and I think it occurs when you're sending PMs to multiple recipients. If you add the same line of code to private2.php (as well as private.php), that seems to fix it. :)

FleaBag
10-14-2002, 03:06 PM
Cheers Chris. Running on 2.3.0. :)

Boofo
01-01-2003, 10:54 AM
TWTCommish. how did you get the Date, To, Subject and From part in your message? Would you be willing to share the code for that? :)

TWTCommish
01-01-2003, 01:25 PM
That's just part of the email. :)

Mystis
01-01-2003, 03:52 PM
I believe that I saw on the PHP changelog that the mysql_insert_id() function problems were fixed in 4.3.0 :)

djwins
07-11-2005, 02:37 PM
Can someone update this for 3.0.7? It doesn't seem to have the same code.
Thanks!

Marco van Herwaarden
07-11-2005, 03:41 PM
Can someone update this for 3.0.7? It doesn't seem to have the same code.
Thanks!That is obvious, since this hack is written for vB2.

djwins
07-11-2005, 04:53 PM
Yeah, I know...thats why I asked if someone could update it.
Who's stating the obvious now? ;)