Quote:
Originally Posted by Pandemikk
If you notice private.php has it so adding &u=90 will make member ID 90's username show up in the recipient field.
My question, how would I go about doing this in my own custom PHP file and template? What snippet controls this- if any.
|
Anseur's post above is basically right, you could just use something like:
PHP Code:
$userid = intval($_REQUEST['u']);
And then check to make sure $userid > 0 before using it (otherwise, $_REQUEST['u'] didn't exist, was not an integer, or was <= 0).
If you're wondering how private.php does it: around line 1350 or so in private.php is this code
PHP Code:
$vbulletin->input->clean_array_gpc('r', array(
'stripquote' => TYPE_BOOL,
'forward' => TYPE_BOOL,
'userid' => TYPE_NOCLEAN,
));
The function clean_array_gpc is found in includes/class_core.php. It uses a list of short versions of some parameters, one of which allows "u" for "userid". So it's this line that gets the value from the "&u=NN" on the URL and puts the value of NN into $vbulletin->GPC['userid']. (Also the 'r' that's passed means to look for it in $_REQUEST).
So a little farther down in private.php is
PHP Code:
//set up for standard new PM
// insert username(s) of specified recipients
if ($vbulletin->GPC['userid'])
{
GPC['userid'] will have been set by the previous call to clean_array_gpc. In this case it's using TYPE_NOCLEAN for 'userid', I think because there can be more than one userid for a new PM. You'd probably want to use TYPE_UINT if you know you are just passing one number.