PDA

View Full Version : Usergroup condition without global.php


DaveNGU
03-28-2013, 04:47 PM
We're using ExpressionEngine with vB and whenever I include global.php within EE I get various PHP errors, so instead I was wondering if it was possible to use '$vbulletin->userinfo['usergroupid']' without including global.php and if so how :p.

Thanks

kh99
03-28-2013, 04:56 PM
The current directory needs to be your forum directory (the directory that contains global.php) before including it. So do a chdir() to the forum dir, include global.php, then chdir() back if you need to.

Also, if you want to do the include inside a function, you need to declare some variables as global before you do the include (I keep forgetting what they are - if you want to do this, I'll try to find where someone posted it before).

DaveNGU
03-28-2013, 05:02 PM
The current directory needs to be your forum directory (the directory that contains global.php) before including it. So do a chdir() to the forum dir, include global.php, then chdir() back if you need to.

Also, if you want to do the include inside a function, you need to declare some variables as global before you do the include (I keep forgetting what they are - if you want to do this, I'll try to find where someone posted it before).

For your first point, that was actually what I was trying originally and getting this error message:

Fatal error: Call to a member function load_editor_settings() on a non-object in /home/nextgenupdate/public_html/forums/infernoshout/engine/inferno_load.php on line 24

Is there really no way of defining it without global.php? I feel it'd be so much simpler :p.

kh99
03-29-2013, 11:28 AM
So you did something like:
$curdir = getcwd();
chdir('forumid'); // change to path to your actual forum directory
require_once('./global.php');
chdir($curdir);

outside of any function, and you got the above error? That looks like an error from a mod that I'm not familiar with, so I'm not sure. Did you look at the line mentioned to see what's going on there?

DaveNGU
03-29-2013, 12:12 PM
So you did something like:
$curdir = getcwd();
chdir('forumid'); // change to path to your actual forum directory
require_once('./global.php');
chdir($curdir);

outside of any function, and you got the above error? That looks like an error from a mod that I'm not familiar with, so I'm not sure. Did you look at the line mentioned to see what's going on there?

Yeah I tried exactly that, and there was nothing on that line lol.

I'm not convinced it's that plugin, I was getting another error message before that so I assume the two are intertwined. It just doesn't seem to want me to include global.php in any sense.

DaveNGU
03-31-2013, 02:05 PM
So you did something like:
$curdir = getcwd();
chdir('forumid'); // change to path to your actual forum directory
require_once('./global.php');
chdir($curdir);

outside of any function, and you got the above error? That looks like an error from a mod that I'm not familiar with, so I'm not sure. Did you look at the line mentioned to see what's going on there?

Any idea what I could do from here? Could I not just connect to the database via PHP and pull their usergroup from there?

kh99
03-31-2013, 02:13 PM
I'm not familiar with EE. I don't have any other ideas without seeing the error messages. Like I mentioned above, if the include call is being done inside a function then that won't work without more "global" staements. It could also be that there is some conflict in naming between vB and EE.

You could connect to the db and read the user table to get the usergroupid, but you'd need the username or userid.

kh99
03-31-2013, 02:23 PM
Another thought - I remember a while back someone had managed to include init.php, and cut down on unnecessary code being executed by define()ing a number of values. Unfortunately I can't think of what to search for to find the post.

DaveNGU
03-31-2013, 05:18 PM
I'm not familiar with EE. I don't have any other ideas without seeing the error messages. Like I mentioned above, if the include call is being done inside a function then that won't work without more "global" staements. It could also be that there is some conflict in naming between vB and EE.

You could connect to the db and read the user table to get the usergroupid, but you'd need the username or userid.

Their username on EE should be the same as on vB so I guess I could just use that variable and that could work, what would the query be for selecting their usergroupid? I tried some but it didn't seem to like it :p.

Another thought - I remember a while back someone had managed to include init.php, and cut down on unnecessary code being executed by define()ing a number of values. Unfortunately I can't think of what to search for to find the post.

I'll try and do some searching if you can recall anything else from the thread? :p

--------------- Added 1364808655 at 1364808655 ---------------

Another thought - I remember a while back someone had managed to include init.php, and cut down on unnecessary code being executed by define()ing a number of values. Unfortunately I can't think of what to search for to find the post.

Just to update you - we've managed it just by connecting to the database rather than using any of vB's files.

Thanks for your help.