Log in

View Full Version : Problem in profile.php


burnist
07-18-2005, 06:12 PM
In profile.php there exsists this piece of code


$vbulletin->input->clean_array_gpc('p', array(
// coppa stuff
'coppauser' => TYPE_BOOL,
'parentemail' => TYPE_STR,
// IM handles / homepage
'aim' => TYPE_STR,
'yahoo' => TYPE_STR,
'icq' => TYPE_STR,
'msn' => TYPE_STR,

'homepage' => TYPE_STR,
// user title
'resettitle' => TYPE_STR,
'customtext' => TYPE_STR,
// birthday fields
'day' => TYPE_INT,
'month' => TYPE_INT,
'year' => TYPE_INT,
'oldbirthday' => TYPE_STR,
// redirect button
'gotopassword' => TYPE_NOCLEAN,
// custom profile fields
'userfield' => TYPE_ARRAY,
));


Now, I am currently trying to add a field to the user table that is edited through profile (trying to add a Skype listing alongside msn, aim etc).
I have added the field to $validfields using a hook (userdata_start) and set the userdata and GPC in another (profile_updateprofile). The addition of the field only works if it is also present in the code block above (have tryed it with the code hacked in and it works) and have no idea how to add it there using a hook.

If you can help I will release the mod here and this is bound to be useful refrence for others :)

Also what does

$vbulletin->input->clean_array_gpc('p', array()); do? and what part does the 'p' play?

Andreas
07-18-2005, 06:27 PM
clean_array_gpc() takes user input, "cleans" it and makes it avialable under keys in array $vbulletin->GPC (Example: $vbulletin->GPC['homepage']).
'p' indicates that it should take $_POST (eg. Form Data) as Input.

burnist
07-18-2005, 06:44 PM
'p' indicates that it should take $_POST (eg. Form Data) as Input.
so then 'g' for $_GET and 'r' for request?

I still can't get this to work though, i've posted both hooks for you to look at, you'd know better if im even doing the right thing.

profile_updateprofile
$vbulletin->input->clean_array_gpc('p', array(
'skype' => TYPE_STR
);


$userdata->set('skype', $vbulletin->GPC['skype']);



userdata_start
$this->validfields['skype'] = array(TYPE_STR);

Link14716
07-18-2005, 08:00 PM
$vbulletin->input->clean_array_gpc('p', array(
'skype' => TYPE_STR
);
You're missing a ) in there.

Also, if you just want to do that to one variable, use this:
$vbulletin->input->clean_gpc('p', 'skype', TYPE_STR);

burnist
07-18-2005, 08:25 PM
:D It works, Thank you sooo much

:) :) :)