PDA

View Full Version : $vbulletin->session->vars['profileupdate'] not set correctly


ub.ch
03-03-2015, 07:56 AM
Heya!

We did some changes to our profilefields a while ago and yesterday I was just checking how many of our users have already filled out the new fields.
To my suprise, there are a lot of user who have not yet filled them out, although they have been active since the changes.

I tried to refactor how the $vbulletin->session->vars['profileupdate'] var is set, but can't seem to find anything relevant.
All I could find was a line in functions.php which checks the fields and then, if the user has not filled them out, sets $vbulletin->session->set('profileupdate', 1);

But the function comment reads "Performs general clean-up after the system exits, such as running shutdown queries" [function exec_shut_down()]

So my question to you guys is, do you know where the profileupdate var is set? Is it possible to manually (?) set the var? When is exec_shut_down() called?

Thanks - as always - for your help!

Best
Malte

kh99
03-03-2015, 10:35 AM
It looks like to get the "you must fill in required fields" thing to happen, the 'Field Required' setting must be "Yes, Always", "Field Editable by User" cannot be No, and 'Which page displays this option?' must be "Edit Profile". I don't know why any of that is, but that's what the code does.

Well, I guess it does make sense, because it has to be on the profile page to know where to redirect them to, and of course it has to be required and they need to be able to edit it.

ub.ch
03-03-2015, 11:49 AM
Hi!

thanks for the reply - the fields are set accordingly, that is not the problem :(

and yes, I do understand what the code does, but not when it does it or how to force to do this?

kh99
03-03-2015, 11:53 AM
Ok, sorry. exec_shut_down() is called as one of the last things for every page. And it looks like a variable is set to '1' when you first login in, so it's not until the next page view that it's checked, and the required fields are checked, and if necessary the user is redirected to the profile page. I was able to get it to happen by logging in (and I'd see the main page), then clicking on something else.

ub.ch
03-03-2015, 02:38 PM
can someone confirm this?
All I can find is something like this:

if (defined('NOSHUTDOWNFUNC'))
{
exec_shut_down();
}


AFAIK I have not defined NOSHUTDOWNFUNC..